I'm learning about ICA, but dont know whats the purpose of centering the data (making each component have zero mean)and whitening the data (not sure what is this for, is it the same as PCA?), I'm following FastICA algorithm for wikipedia FastICA
The goal of FastICA is to rotate your data (unitary transform) so that each axis looks as non-Gaussian as possible. Gaussian data still looks Gaussian when you rotate it.
If you don't "sphere" the data, all the algorithm can really do is rotate the whole block to one axis. By bringing the mean to zero (centering), and normalizing the variance in all directions (whitening), you give the algorithm freedom to rotate in all directions.
This lets FastICA find the rotations that correspond to non-gaussian data. All of the rotations it tries will leave the Gaussian components of your data as zero-mean and unit-variance, but non-gaussian components can be optimized.
Given a set of signals(observation in the ICA/BSS context) with a covariance matrix M, whitening transform is basically a de-correlation transform that converts M into an identity matrix. Whitening ensures all the source signals(or dimensions) are treated equally before the algorithm is run. Centering is nothing but removing the DC offset from the observations.
This page gives a good graphical explanation about how the Whitening process and ICA transform the joint distribution of the observations.
Centering is usually conducted at the very beginning step before whitening. It would make the follow-up theory and computation easier. The behave of centering is shifting the original X, and thus it won't change other statistics, e.g. variance is not changed after centering.