I have a stationary process $w_1(t)$, white in band $B=[-2, 2] KHz$, and another process: $x(t)=w_1(t)-w_1(t+t_0)$, where $t_0=250\mu s$.
I want to re-obtain $w_1(t)$ by filtering $x(t)$ through $h(t)$: $w_1(t)=x(t)*h(t)$ (where $*$ is the convolution operator).
I know that $r_{w_1x}=r_x*h$, ($r_{w_1x}$ is cross-correlation and $r_x$ is autocorrelation)
from this one I can conclude that $S_{yx}(f)=S_x(f)\cdot H(f)$, so my filter will be $H(f)=\frac{S_{yx}(f)}{S_x(f)}$. ($S$ is the Power Spectral Density)
Is this right? Then from antitransforming I should obtain the time domain representation of my filter.
My problem occurs when I try to calculate it with Matlab:
I have already the autocorrelation of x, and its Power Spectral Density, but I can't figure out how to calculate the cross-correlation of my processes. For example $w_1=randn(8000,1000);$, then filtered, but it's still 1000 representations of a white gaussian noise, and so is $x$.
I thought about doing the mean of all 1000 crosscorrelations and then transform with fft:
Rwx=0;
for i=1:1000
Rwx=Rwx+xcorr(w1(:,i),x(:,i));
end
Rwx=Rwx/1000;
Swx=fftshift(fft(Rwx));
But this doesn't seem to work.
Do you have an idea on how to solve this?