tjucruiser 发表于 2011-7-15 11:27

求一维频域维纳滤波器代码例子

一维频域维纳滤波器
观测信号是信号i(x)卷积系统传递函数h(x)后,再加上噪声n(x),要求信号i(x)
j(x)=i(x)*h(x)+n(x)
频域表达式为:
J(w)=I(w)H(w)+N(w) %w为频率
采用维纳滤波器为
F(w)=|H(w)|^2/[|H(w)|^2+C^2]
H(w)为系统传递函数的傅里叶变换,C为常数。改变C的大小,可以获得不同的滤波效果
I(w) = J(w)F(w)/H(w);
请问有这种最古老方式的资料及代码吗?多谢

tjucruiser 发表于 2011-7-23 10:15

{:{20}:}

tjucruiser 发表于 2011-8-10 11:16

{:{33}:}

tjucruiser 发表于 2011-8-12 10:57

自己搞定了
原始信号I1,恶化传递函数Dx,恶化后结果J
J=conv(I1,Dx);
JN = AWGN(J,30);%给恶化后的结果J再加入高斯白噪声,加入噪声后信号的信噪比为30dB

%求Dx的傅里叶变换H_Dx
Hw_Dx = fft(Dx,9999);
Ph   = abs(Hw_Dx).^2;
%求滤波器函数
%滤波器中常数C
C=1.84;
Fw=Ph./(Ph + C.^2);
Jw=fft(JN);
Iw_out = Jw .* Fw./Hw_Dx;
I_out = ifft(Iw_out);
plot(I_out);

azazacoming 发表于 2011-12-31 15:48

{:{39}:}
页: [1]
查看完整版本: 求一维频域维纳滤波器代码例子