声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1232|回复: 5

[综合讨论] 滤波的结果不好

[复制链接]
发表于 2006-12-15 10:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我的信号是现场信号,用matlab设计一个带通滤波器进行滤波,通带的范围是可选的,我不太清楚滤波器的性能指标,只要效果好,可以牺牲计算量等,现在的问题是滤波得到的结果总是信号开头的一段效果不好,如图所示。我试过用不同的函数如fir1,butter,cheby1等,也试过调整参数,但这个问题只是好一点,都不能彻底解决,求助高手!
程序如下:
Tdata = load('D:\work\matlab gui\s.txt');               
fs = 3082;
N = 1024;
f = fs*(1:N/2)/N;
t = 1000*(0:1/fs:(N-1)/fs);
[b,a] = ellip(2,0.1,50,[90 100]*2/fs);
SFdata = filter(b,a,Tdata);

subplot(221)
plot(t,Tdata)
grid on;
title('滤波前信号时域');
subplot(2,2,2);
plot(t,SFdata);
grid on;
title('滤波后信号时域');
subplot(2,2,3);
y = abs(fft(Tdata));
plot(f,y(1:N/2));
grid on;
title('滤波前信号频谱');
subplot(2,2,4);
sy = abs(fft(SFdata));
plot(f,sy(1:N/2));
grid on;
title('滤波后信号频谱');

m_filter.fig

40.47 KB, 下载次数: 38

回复
分享到:

使用道具 举报

发表于 2006-12-15 14:31 | 显示全部楼层
试试用fdatool看看吧
 楼主| 发表于 2006-12-15 20:06 | 显示全部楼层
我要在gui里实现滤波啊
有没有其他的指点?
发表于 2006-12-15 20:56 | 显示全部楼层
你在GUI里面把滤波的效果表现出来不是就是要提高滤波的效果嘛?

那就调整系数啊,让你用FDATOOL重新设计一个阶数高一些的滤波器啊。
发表于 2006-12-16 06:49 | 显示全部楼层
不知什么原因打不开楼主提供的图,也可能版本不同。
从楼主设计的滤波器来看,信号采样频率是3082,而通带的频率是90-100,带宽只有10Hz,相对采样频率是一个窄带。因此在滤波输出的开头部分效果不好是正常现象,因为任何一个滤波过程都有一个从暂态趋于稳态的过程,这个过程的时间长短和滤波器的带宽有关,与滤波器的阶数有关。
发表于 2006-12-16 20:21 | 显示全部楼层
你用模拟滤波器就直接开始滤波了?要先把模拟滤波器转化为数字滤波器:
[b,a] = ellip(2,0.1,50,[90 100]*2/fs);

[BZ,AZ] = IMPINVAR(B,A,fs);

SFdata = filter(BZ,AZ,Tdata);
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-21 10:43 , Processed in 0.058061 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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