声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: rockzone

[滤波] 如何滤除指数信号叠加的正弦波?

[复制链接]
 楼主| 发表于 2008-1-19 15:13 | 显示全部楼层
H=[tf(b,a)];
[yA,t1]=lsim(H,y,t);%y是原始信号

yA就是滤波后的波形
回复 支持 反对
分享到:

使用道具 举报

 楼主| 发表于 2008-1-19 19:13 | 显示全部楼层
刚做了FFT滤波,不知道对不对
麻烦大家帮忙看看

dt=1/1000;
N=5000;
n=0:N-1;
t=n*dt;
f=n/(N*dt);
x1=exp(-t);
x2=0.025*sin(2*pi*50*t);
y1=x1+x2;
z=fft(y1);
z(251)=0.;%50Hz点频谱幅度置零
figure(1)
plot(t,x1)
title('指数信号')
xlabel('时间/S')
figure(2)
plot(t,y1)
xlabel('时间/S')
title('指数信号叠加50Hz纹波')
figure(3)
plot(t,real(ifft(z)))
title('FFT滤波后,通过IFFT变换到时间域')
xlabel('时间/S')

这种方法应该很彻底的滤掉了50HZ正弦波

但是滤波效果不太理想,是我程序有问题吗?

麻烦高手帮我看看。谢谢了 ~
原始图.jpg
FFT滤波.jpg
发表于 2008-1-19 20:28 | 显示全部楼层
要共扼置零,也就是z(4751)也要为零

评分

1

查看全部评分

发表于 2008-1-19 20:34 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-8 14:52 编辑
原帖由 rockzone 于 2008-1-19 19:13 发表
刚做了FFT滤波,不知道对不对
麻烦大家帮忙看看

dt=1/1000;
N=5000;
n=0:N-1;
t=n*dt;
f=n/(N*dt);
x1=exp(-t);
x2=0.025*sin(2*pi*50*t);
y1=x1+x2;
z=fft(y1);
z(251)=0.;%50Hz点频谱幅度置零
figur ...

把“z(251)=0.;%50Hz点频谱幅度置零”语句改为
z(251)=0.;  z(4751)=0;%50Hz点频谱幅度置零
就能把正弦信号消去,得下图:
brc2c.jpg

评分

1

查看全部评分

 楼主| 发表于 2008-1-20 13:07 | 显示全部楼层
高手就是高手,谢谢楼上二位!!
发表于 2008-1-24 10:41 | 显示全部楼层

回复12楼的帖子

这是一篇文献里面设计陷波滤波器的公式,能够设计出连续的滤波器,我想知道楼主在得到b,a参数的时候用到的是什么公式,得到陷波器的性能与采样频率还有什么关系吗?

附件里是pdf格式的文献

[ 本帖最后由 witty01 于 2008-1-24 10:44 编辑 ]
0124.JPG

陷波滤波器在TMS320F240上的实现.doc

81.66 KB, 下载次数: 12

发表于 2008-1-24 10:42 | 显示全部楼层

回复12楼的帖子



[ 本帖最后由 witty01 于 2008-1-24 10:44 编辑 ]
 楼主| 发表于 2008-1-26 15:22 | 显示全部楼层
我做的模拟陷波器就是应用G(s)传递函数

至于b,a的确定方法,看看matlab帮助,或者信号教材,你就知道怎么确定了

模拟滤波器跟采样频率没关系
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-17 12:29 , Processed in 0.066049 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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