Per Window Normalization
In several application the mean is removed by using a high pass filter. A first order high pass filter has the following structure: 
$$y[k] = x[k] - x[k-1] + \beta y[k-1]$$ 
or
$$y[k] = \beta x[k] - \beta x[k-1] + \beta y[k-1]$$ 
where $0&lt;\beta&lt;1$ determines the steepness of the high pass filter, larger $\beta$ leads to a steeper/sharper filter. 

NOTE: Multiplying $x[k]$ and $x[k-1]$ by $\beta$ (as in the second equation) ensures that the gain per frequency is at most one. Due to the next normalization step, using this $\beta$ for $x$ is redundant.

Normalization of the signals energy can be performed with a recursive estimation of the signal energy: 
$$ P_x[k] = \alpha y[k]y[k] + (1-\alpha) P_x[k-1] $$
where $y[n]$ is the zero mean signal and $0&lt;\alpha&lt;1$ is a forgetting factor. Small values for $\alpha$ lead to large time-constants of the recursive filter.

The normalized output output $z[k]$ is calculated as follows: 
$$z[k] = \frac{y[k]}{\sqrt{P_x[k]}}$$

The signal $z[k]$ is a zero-mean signal with unit variance. You can scale your variance to a desired level $\sigma^2$ by applying the gain $\sqrt{\sigma^2}$ to signal $z[k]$. 

NOTE1: A signal in the rang [0,1] always has a non-zero mean if the signal is not zero all the time. 

NOTE2: In order to guarantee the signal levels to be in a specified range such as [-1,1], either a compression technique has to be applied or you have to know the original abolute maxima and minima such that you can scale to the desired range. 

NOTE3: The variance in combination with the distribution only tells something about the majority of the samples.