- added Wiener stuff
git-svn-id: http://moon:8086/svn/matlab/trunk@40 801c6759-fa7c-4059-a304-17956f83a07c
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
function [xs, g, rxy, ryy] = wiener_td(x, y, sigma_noise)
|
||||
%rxy = ifft(fft(x).*conj(fft(y)));
|
||||
x = x - mean(x);
|
||||
y = y - mean(y);
|
||||
rxy = circulant(y, 'step', -1).'*conj(x);
|
||||
%ryy = ifft(fft(y).*conj(fft(y)));
|
||||
ryy = circulant(y, 'step', -1).'*conj(y);
|
||||
|
||||
sum_rxy = sum(abs(rxy))
|
||||
sum_ryy = sum(abs(ryy))
|
||||
|
||||
R = toeplitz(ryy + sigma_noise.^2*(1-j));
|
||||
g = inv(R)*(rxy)./sum_ryy;
|
||||
|
||||
sum_g = mean(abs(g))
|
||||
g = g./sum_g;
|
||||
|
||||
xs = (circulant((g)))*(y);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user