ZOB 发表于 2007-6-7 11:42

如何表示多个滤波器的综合效果?

实验中从传感器中取得数字信号x[],采样率为30HZ。
用MATLAB做滤波器
N=20;
b1=fir1(N,0.1,hamming(N+1));
对x滤波。
然后对滤波后的数据重新采样,每十个取一个,采样率变为3HZ。对采样后的数据进行第二次滤波,滤波器
N=20;
b2=fir1(N,0.0056,hamming(N+1));

据说这种滤波方式效果比一次到位的滤效果好。对第一个和第二个滤波器都可以直接用freqz()函数作图,看出各自的效果。
请问如何做出将两个滤波器作为一个整体的整体效果图。

[ 本帖最后由 eight 于 2007-6-7 14:43 编辑 ]

yangzj 发表于 2007-6-7 12:05

把两个freqz相乘得到的就是整体的

ZOB 发表于 2007-6-7 12:19

回复 #2 yangzj 的帖子

:victory:
------yangzj ------
------(飞天客) ----


多谢多谢!

yangzj 发表于 2007-6-7 12:24

了解滤波的实质就好了,滤波是在时域做卷积,在频域就是一个乘积。

ZOB 发表于 2007-6-7 12:34

:@L

是,要多学习了!

ZOB 发表于 2007-6-7 13:24

再请教yangzj

不好意思,请问如果以以下代码为例,应当具体怎么写代码呢?对MATLAB和数字滤波都不太了解,见笑了。
N=20
b1=fir1(N,0.1,hamming(N+1))

N=20
b2=fir1(N,0.012,hamming(N+1))
figure(1);

yangzj 发表于 2007-6-7 15:01

对信号X用b1来滤波用 filter(b1,1,x)
filter具体用法查看help

ZOB 发表于 2007-6-7 15:24

如楼上所说,用filter(b1,1,x)来看
N=20
b1=fir1(N,0.1,hamming(N+1))
这个滤波器对x的滤波效果。代码为
sf=filter(b1,1,x);
figure(1);
plot(sf);
用freqz(b1,1,1024)可以看滤波器的幅频相频特性。
假设对x重新采样后为xx,第二次滤波,滤波器为
N=20
b2=fir1(N,0.012,hamming(N+1))
此时由以下代码
sf1=filter(b2,1,xx);
figure(2);
plot(sf1);
可以看两次滤波后信号的状况。
可是,如果把前后两个滤波器看成一个整体,如何看这个滤波器本身的幅频相频特性呢?
如楼上所言,“把两个freqz相乘得到的就是整体的”,这个代码怎么写呢?
我写freqz(b1,1,1024)*freqz(b2,1,1024)不行,写了其他几种也不行。:@L 惭愧!

yangzj 发表于 2007-6-7 15:33

仔细看看freqz的帮助,主要是它的返回值

ZOB 发表于 2007-6-7 16:15

谢谢!
页: [1]
查看完整版本: 如何表示多个滤波器的综合效果?