- 4
- 0
- 约1.86千字
- 约 4页
- 2019-09-10 发布于山西
- 举报
实验9 有限冲激响应数字滤波器设计
一.实验目的:
加深对数字滤波器的常用指标和设计过程的理解。
二.实验原理:
在MATLAB中,可以用b=fir1(N,Wn,’ftype’,taper) 等函数辅助设计FIR数字滤波器。N代表滤波器阶数;Wn代表滤波器的截止频率(归一化频率),当设计带通和带阻滤波器时,Wn为双元素相量;ftype代表滤波器类型,如’high’高通,’stop’带阻等;taper为窗函数类型,默认为海明窗,窗系数需要实现用窗函数blackman, hamming,hanning chebwin, kaiser产生。调用firl函数时,用scale(缺省方式)对滤波器进行归一化,即滤波器通带中心频率处的响应幅值为0dB。用noscale不对滤波器归一化。
三.实验内容
用凯塞窗设计一FIR低通滤波器,通带边界频率 ,阻带边界频率 ,阻带衰减 不小于50dB。
首先由过渡带宽和阻带衰减 来决定凯塞窗的N和 , , ?
上图给出了以上设计的频率特性,(a) 为N=30直接截取的频率特性(b)为凯塞窗设计的频率特性。凯塞窗设计对应的MATLAB程序为:
wn=kaiser(30,4.55);
nn=[0:1:29];
alfa=(30-1)/2;
hd=sin(0.4*pi*(nn-alfa))./(pi*(nn-alfa));
h=hd.*wn;
[h1,w1]=freqz(h,1);
或者:b = fir1(29,0.4,kaiser(30,4.55));
[h1,w1]=freqz(b,1);
plot(w1/pi,20*log10(abs(h1)));
axis([0,1,-80,10]);
grid;
xlabel(归一化频率/p) ;
ylabel(幅度/dB) ;
还可以使用[n,Wn,beta,ftype] = kaiserord(f,a,dev)函数来估计滤波器阶数等,得到凯塞窗滤波器:
fcuts = [0.3 0.5]; %归一化频率omega/pi
mags = [1 0];
devs = [0.05 10^(-2.5)];
[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs); %计算出凯塞窗N,beta的值
hh = fir1(n,Wn,ftype,kaiser(n+1,beta),noscale);
freqz(hh);
四.实验习题:
用窗函数法设计一个数字带通滤波器,指标要求如下:
通带边缘频率:,,通带峰值起伏:。
阻带边缘频率:,,最小阻带衰减: 。要求:给出FIR数字滤波器的冲激响应,绘出它们的幅度和相位频响曲线,讨论它们各自的实现形式和特点。
设计过程如下:
调用函数[n,wn,bta,ftype]=kaiserord(f,a,dev,fs)
参数:f=[0.3 0.45 0.65 0.8]为对应数字频率,,,,
a=[0 1 0]为由f指定的各个频带上的幅值向量,一般只有0和1表示;和f长度关系为(2*a的长度)—2=(f的长度)
devs=[0.01 0.1087 0.01]用于指定各个频带输出滤波器的频率响应与其期望幅值之间的最大输出误差或偏差,长度与a相等,计算公式:阻带衰减误差=,通带波动衰减误差=
fs缺省值为2HZ
[n,wn,bta,ftype]=kaiserord([0.3 0.45 0.65 0.75],[0 1 0],[0.01 0.1087 0.01]);%用kaiserord函数估计出滤波器阶数n和beta参数
h1=fir1(n,wn,ftype,kaiser(n+1,bta),noscale);
[hh1,w1]=freqz(h1,1,256);
figure(1)
subplot(2,1,1)
plot(w1/pi,20*log10(abs(hh1)))
grid
xlabel(归一化频率w);ylabel(幅度/db);
subplot(2,1,2)
plot(w1/pi,angle(hh1))
grid
xlabel(归一化频率w);ylabel(相位/rad);
如果直接用freqz(h1,1,256)来绘制图形如下
原创力文档

文档评论(0)