在fdatool中设计好高通滤波器后,选择菜单中的file->export...可以把滤波器的系统函数的系数导出来,如果设计的是fir滤波器,变量名默认为num,就相当于你的fir滤波器的hn。假设你的要滤波的输入序列为x的话,滤波结果
y
=
filter(num,
1,
x);
如果设计的是iir滤波器,输出的变量有两个:sos和g,这是以直接ii型结构给出的系数,需要通过调用函数
[b,
a]=sos2tf(sos,g),转化为多项式形式的系数,然后可用于滤波。假设你的要滤波的输入序列为x的话,滤波结果
y
=
filter(b,
a,
x);
p.s.
使用plot(y)可以画出滤波后的波形。
首先在command
window中输入fdatool,回车,出现下图所示界面
根据你的要求设计滤波器,然后点下方的design
filter,导出滤波器系数方法File-Export,格式可以自己选择,然后将你要滤波的信号与该滤波器系数做卷积conv,就可以得到你想要的波形了。
看你用Fdatool设计的是FIR滤波器还是IIR。
若是前者,则需要在Fdatool界面的File下选择Export,注意输出的变量名默认为Num,此时需要这样设置,b=Num,a=1;而后滤波,filteredA=filter(b,a,A);
若是后者,同样选择Export,并注意输出变量名(注意大小写),并调用[b,a]=sos2tf(SOS,G);而后滤波,filteredA=filter(b,a,A);
1、输入:被白噪声污染的正弦信号,fs=100khz,信号频率为10khz,噪声信号为20khz,现在要滤掉20khz的正弦信号。
2、现在用等波纹IFR滤波器,10khz通过
12khz截止。
3、使用file菜单---generate
mfile,命名为mylowfilter。
4、figure(2);Hd
=
mylowfilter;output=filter(Hd,y);plot(output);title('滤波后的波形');
这里说的很明白了。