I want to use gyro, accelermeter and magnetometer to get a full smooth rotation in 3 axis.
The first problem is that my outputs individualy has very noise and I want to know how can I remove it.
The second problem is the gyro drift that I think it should solve with Kalman filter.
The third problem is the accelerometer. If I combine the gyro and accelermeter when I move the device without rotating the device the output will change. Is Kalman filter can remove the moving effect from output too?
the first problem is that my outputs individualy has very noise and i want to know how can i remove it.
Yes, that is natural, do not worry, you can remove the noise.
the second problem is the gyro drift that i think it should solve with kalman filter.
Yes, Kalman filter is one way to go. You may find these answers useful:
Sensor fusioning with Kalman filter
Combine Gyroscope and Accelerometer Data
the third problem is the accelerometer.if i combine the gyro and accelermeter when i move the device without rotating the device the output will change.
I am not sure I understand that correctly. If you have magnetometer Kalman filter can remove the gyro drift even if you are not rotating the device. Is that what you are asking?
EDIT: Depending on your application, you can assume that the acceleration is zero on average. Read this, especially page 24:
http://gentlenav.googlecode.com/files/DCMDraft2.pdf
I use this assumption in my application for human motion sensing and it works perfectly.