关于FIR滤波器的系数 |
您所在的位置:网站首页 › 高通滤波怎么计算 › 关于FIR滤波器的系数 |
目录 FIR频率采样结构 fir1函数 fir2函数 FIR频率采样结构 频率采样是FIR滤波器的一种结构方式,其中描述FIR滤波器的参数为所求的频率响应的参数,而不是冲激响应 我们可以使用MATLAB中的函数实现其具体的操作,在这里我们主要利用了MATLAB中的fir1函数或者fir2函数。 fir1函数fir1函数是用窗函数法设计线性相位FIRDF的工具箱函数,以实现线性相位FIRDF的标准窗函数法设计。 b=fir1(n,wn); b=fir1(n,wn,'ftype'); b=fir1(n,wn,'ftype',window); 其中参数 在采样前我们首先要对频率进行归一化处理,这是因为在使用fir1函数进行滤波器设计时采用的是归一化频率。设实际采样频率为 以设计一个48阶的滤波器为例: fs=3200;%采样频率 fs_half=fs/2;%归一化频率 f1=45/fs_half;f2=55/fs_half; b = fir1(48,[f1 f2]);%设计滤波器 [H w]=freqz(b,1,512);%求频响 [b_new,a_new]=invfreqz(H,w,48,0); figure;freqz(b,1,512); figure;freqz(b_new,1,512); fir2函数fir2函数可以用于设计有任意频率响应的加窗FIR滤波器,对标准的低通、带通、高通和带阻滤波器的设计可使用fir1函数。 函数fir2的各种形式如下: b = fir2(n,f,m) b = fir2(n,f,m,window) b = fir2(n,f,m,npt) b = fir2(n,f,m,npt,window) b = fir2(n,f,m,npt,lap) b = fir2(n,f,m,npt,lap,window) 接下来对fir2函数中的各项参数进行介绍, 例如设计一个30阶的FIR滤波器,其代码如下: f = [0 0.6 0.6 1]; m = [1 1 0 0]; b = fir2(30,f,m); [h,w] = freqz(b,1,128); plot(f,m,w/pi,abs(h)) legend(‘Ideal’,‘fir2 Designed’) title(‘Comparison of Frequency Response Magnitudes’)再举一个例子。用fir2函数设计一个60阶的FIR滤波器,要求滤波器0到π/4的幅度响应为0 ,π/4到π/2的幅度响应为1/4,π/2到3π/4的幅度响应为0,3π/4到1的幅度响应为1。其程序如下: n=60; f=[0 0.25 0.25 0.50 0.50 0.75 0.75 1]; m=[0 0 1/4 1/4 0 0 1 1]; %对幅频响应插值时插值点的个数 npt=1024; %插值时不连续点转变成连续时的点数 lap=50; %衰减为30dB的切比雪夫窗函数 window=chebwin(61,30); b=fir2(n,f,m,npt,lap,window); |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |