声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2145|回复: 4

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

[复制链接]
发表于 2011-7-15 11:27 | 显示全部楼层 |阅读模式
12体能
一维频域维纳滤波器
观测信号是信号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);
请问有这种最古老方式的资料及代码吗?多谢

回复
分享到:

使用道具 举报

 楼主| 发表于 2011-7-23 10:15 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2011-8-10 11:16 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 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);

评分

1

查看全部评分

回复

使用道具 举报

发表于 2011-12-31 15:48 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-4-29 10:44 , Processed in 0.061673 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表