Just to be clear what I said at the meeting, I write all this down here. Adaptive filtering of real signals (MC_F and GUR1_X) with all noises inside is

This is offline filtering but with real signals and with the C-code that is compiled at the 40m now. We can reduce the MC_F signal by ~100 below 10 Hz, but the problem is that reducing the adaptation gain, the error increases. As a result when we move towards FxLMS algorithm with AA, AI and downsampling, we have to take the gain equal to ~1e-2 and we do not reduce any noise.
The second demonstration of this problem is static Wiener filtering. This is the result

We can see that adaptive filtering outperforms the "optimal" filtering. This is because an adaptive filter can follow the changes of coefficients immediately while the Wiener filter averages them. This is the mathematical formulation:
mcl_real = coeff _real* seismic_noise_real + other_noise
mcl_real - the real length of the MC,
coeff_real - real coefficients, that represent the transfer function between seismic noise and MC length,
other_noise - noise uncorrelated to the seismic noise seismic_noise_real
But in the world of our measured signals we have the equation
mcl_measured = coeff * seismic_noise_measured + other_noise
mcl_measured = TF_mcl * mcl_real
seismic_noise_measured = TF_seis * seismic_noise_real
where TF_mcl and TF_seis - transfer functions from the real world to measurements.
It seems to me that TF_mcl or TF_seis are not constants and for that reason the TF between measured seismic noise and mcl is not constant. But it is exactly what an adaptive or Wiener filter tries to define:
coeff(time) = average(coeff(time)) + delta(coeff(time))
The result of applying average(coeff) is the green line in the Figure 2 - error after applying the Wiener filtering.
delta(coeff) - the changing part of the transfer function is caught by the adaptive filtering. The lower the gain, the lower is the capability of adaptive filter to catch these changes. Theoretically. the error after applying adaptive filter can be presented like this:
E(error*error) = E(other_noises*other_noises) + 1/(2-mu)*mu*E(other_noises*other_noises) + 1/ {mu*(2-mu)} * Tr(Q) * A
where mu = adaptation gain
Q - covariance matrix of delta(coeff)
A - norm of the seismic signal
The first term in this equation is the dispersion of other noises, the second term is the error of the adaptive filter due to non-zero gain, the third term is due to the changes in the transfer function - we can see that it is proportional to 1/mu. This term explains why the error increases while mu decreases.
Now I'm looking for the part in the path of the signals where the transfer function can change. As I mentioned above, this is not a change in the real world, it is the change in the measured signlals. My first guess is the quantization error - we do not have not enough counts. If this is not the case, I'll move to other things of the signal path. |