声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1525|回复: 4

[综合讨论] (已解决)请教一个滤波器使用的问题,多谢各位了~

[复制链接]
发表于 2007-2-8 20:39 | 显示全部楼层 |阅读模式

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

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

x
Fs=1000Hz%采样频率
load('x11.txt');%一组采集来的数据
x11_fft=fft(x11);
N=length(x11);
t=(1:N)/Fs;
df=Fs/N;
n2=1:N/2;
ff=(n2-1)*df;
subplot(2,1,1);
plot(t,x11);
subplot(2,1,2);
plot(ff,abs(x11_fft(n2)));%画图
Ws=30;%截止为30Hz
Wp=25;%通过为25Hz
Rp=0.1;
Rs=60;
[N,Wn]=cheb1ord(2*Wp/Fs,2*Ws/Fs,Rp,Rs);%设计切氏低通滤波器
[b,a]=cheby1(N,0.5,Wn);
y11=filter(b,a,x11);
figure(2);
plot(t,y11);
这样使用滤波器函数正确么,为什么我得出的y11的幅度异乎寻常的大,达到10的304的数量级
还有这里使用的是模拟滤波器,是不是需要转化为数字滤波器,才能y11=filter(b,a,x11)啊?
谢谢指教!

[ 本帖最后由 henryqian 于 2007-2-14 17:06 编辑 ]

x11.txt

144 KB, 下载次数: 41

x11.txt数据

回复
分享到:

使用道具 举报

发表于 2007-2-9 06:29 | 显示全部楼层
滤波频率选择有问题
 楼主| 发表于 2007-2-9 19:31 | 显示全部楼层
那究竟什么问题啊?能指明么,谢谢
发表于 2007-2-10 15:28 | 显示全部楼层
看了楼主的程序,建议在谱分析之前先消除直流分量(这和滤波器的设计无关的)。从楼主获得的谱图中看,主要在0频率处有一条很大的谱线,这便是直流分量造成的,把其它的频率成分都掩盖了。而消除直流分量后,便能显现出其它的频率成分。
楼主在滤波器设计中,主要对滤波器的要求太高,致使滤波器的阶数N=16。在用MATLAB设计滤波器中,如果滤波器的阶数太高,按我的经验,对滤波器系数的精度要求很高。但在MATLAB中是32位运算,这时便不能满足它精度的要求,使滤波器的运算误差加大,最终把滤波器变成一个振荡器,或滤波器不稳定。楼主的情况可能就是这样的原因造成的。要解决的方法,是降低滤波器的要求,也降低了滤波器的阶数,这样便能得到合理的滤波器输出了。把程序稍作修改如下:
Fs=1000;%采样频率
load('x11.txt');%一组采集来的数据
N=length(x11);
xmean=sum(x11)/N;
x11=x11-xmean;
x11_fft=fft(x11);
t=(1:N)/Fs;
df=Fs/N;
n2=1:N/2;
ff=(n2-1)*df;
subplot(2,1,1);
plot(t,x11); grid;
subplot(2,1,2);
plot(ff,abs(x11_fft(n2)));%画图
grid;
Ws=30;%截止为30Hz
Wp=25;%通过为25Hz
Rp=1;
Rs=30;
[N,Wn]=cheb1ord(2*Wp/Fs,2*Ws/Fs,Rp,Rs); %设计切氏低通滤波器
[b,a]=cheby1(N,Rp,Wn);
y11=filter(b,a,x11);
figure(2);
plot(t,y11); grid;

评分

1

查看全部评分

 楼主| 发表于 2007-2-14 17:06 | 显示全部楼层
多谢指导,问题已解决,谢谢
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-14 06:37 , Processed in 0.071310 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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