【转帖】MATLAB中用FDATool设计滤波器及使用

MATLAB中用FDATool设计滤波器及使用 该文章讲述了MATLAB中用FDATool设计滤波器及使用.

MATLAB中用FDATool设计滤波器及使用

该文章讲述了MATLAB中用FDATool设计滤波器及使用.

1. 在Matlab中键入fdatool运行Filter Design and Analysis Tool。具体使用请参见Matlab Help中的Signal Processing Toolbox->FDATool。

2. 在fdatool工具中应该注意的几个问题:(a)Fstop(阻带截止频率)不能大于或等于采样频率Fs/2,这是由于数字滤波器设计的方式决定的。(b)将设计好的滤波器导出,可以采用两种方式Export the filter either as filter coefficients variables or as a dfilt or mfilt filter object variable。(详细说明参见Matlab Help中的Signal Processing Toolbox->FDATool->Exporting a Filter Design。

导出:

File---Export弹出EXPORT对话框,选择“Export As”为“Objects”,“Varable Names”可以更改,默认为Hd。

3. (a)如果导出的是dfilt or mfilt filter object variable,则可以用[b, a] = tf(Hd)将dfilt filter object转换为转移函数形式 然后用d=filter(b,a,x);使用这个滤波器。其中:filter是默认函数,b、a是刚刚设计的传递函数参数,x是原始采集信号,d为滤波后的信号。 x=importdata(\'E:\matlab_work\xy\bb\O6.txt\'); N=length(x); %取长度 fs=4000; %采样频率 t=(0:N-1)/fs; 输出Hd; [b,a]=tf(Hd);%得到传递函数 d=filter(b,a,x); subplot(311); plot(t,x); title(\'原始信号\'); xlabel(\'t\'); ylabel(\'y\'); grid on;