有限长单位脉冲响应滤波器设计
- 格式:doc
- 大小:260.00 KB
- 文档页数:27
实验五 有限长单位脉冲响应滤波器设计
一、实验目的
1、掌握用窗函数法、频率采样法以及优化设计法设计FIR滤波器的原理及方法,熟悉相应的MATLAB编程。
2、熟悉线性相位FIR滤波器的幅频特性和相频特性。
3、了解各种不同窗函数对滤波器性能的影响。
二、实验原理
window=ones(1, N): 产生N点矩形窗,行向量。
window=hann(N): 产生N点汉宁窗,列向量。
window=hanning(N): 产生N点非零汉宁窗,列向量。等价于去除hann(N+2)的第一个零元素和最后一个零元素,得到的N点非零窗函数。
window=hamming(N): 产生N点海明窗,列向量。
window=blackman(N): 产生N点布莱克曼窗,列向量。
window=kaiser(N, beta): 产生参数为beta的N点凯塞窗,列向量。
[M, Wd, beta, ftype]=kaiserord(f, a, dev, fs): 凯塞窗参数估计。f为一组边界频率,最高频率为fs/2。a为f中各个频带的幅度值,通带取1,阻带取0。如果f中有2个元素,则形成3个频带,其中第1个和第3个是通带或阻带,第2个是过渡带,a中也有2个元素,指明第1个和第3个频带是通带还是阻带;如果f中有4个元素,则形成5个频带,其中1,3和5是通带或阻带,2和4是过渡带,a中有3个元素,指明1,3和5是通带还是阻带。dev的维数与a相同,指明每个频带上的波动值。fs为采样频率。M为FIR滤波器的阶数,M=N-1。Wd为归一化边界频率,等于数字边界角频率除以π,或者边界频率除以fs/2。beta就是凯塞窗的参数β。ftype为滤波器的类型。
b = fir1(M, Wd, 'ftype', window): 用窗函数法求FIR滤波器的系数b(单位脉冲响应)。M为滤波器的阶数,M=N-1。Wd为一组归一化边界频率,通带和阻带间隔分布,无过渡带;只有一个元素,表示低通或高通滤波器;有两个元素表示带通和带阻滤波器;有三个及以上元素,表示多带滤波器。'ftype'表示滤波器类型,'high'表示高通滤波器,'stop'表示带阻滤波器,'DC-0'表示多带滤波器的第一个频带为阻带,'DC-1'表示多带滤波器的第一个频带为通带。window为窗口类型,缺省为海明窗。
b = fir2(M, f, m, window): 用频率采样法求FIR滤波器的系数b。M为滤波器的阶数,M=N-1。f为一组归一化频率,第一个元素必须为0,最后一个元素必须为1(对应奈奎斯特频率,即采样频率的一半),中间的元素按升序排列。m的维数与f相同,指明f中每个频率上的理想幅度。window为窗口类型,缺省为海明窗。Fir2可以实现任意幅度特性的滤波器。
三、实验内容
1、用窗函数法设计一个线性相位FIR高通滤波器,通带边界频率为0.7π,阻带边界频率为0.5π,要求阻带衰减不小于50dB,窗函数从矩形窗、汉宁窗、海明窗和布莱克曼窗中选取,且要求滤波器的阶数最小。给出该滤波器的单位脉冲响应h(n)的解析式,并用MATLAB绘出时域波形和幅频特性。
2、用窗函数法设计一个线性相位FIR带通滤波器,通带边界频率为3kHz和7kHz,阻带边界频率为2kHz和9kHz,采样频率为20kHz,要求阻带衰减不小于40dB,窗函数从矩形窗、汉宁窗、海明窗和布莱克曼窗中选取,且要求滤波器的阶数最小。给出该滤波器的单位脉冲响应h(n)的解析式,并用MATLAB绘出时域波形和幅频特性。
3、用窗函数法设计一线性相位FIR带阻滤波器,通带边界频率为600Hz和1400Hz,阻带边界频率为700Hz和1200Hz,采样频率为4000Hz,要求阻带衰减不小于50dB,窗函数从矩形窗、汉宁窗、海明窗和布莱克曼窗中选取,且要求滤波器的阶数最小。给出该滤波器的单位脉冲响应h(n)的解析式,并用MATLAB绘出时域波形和幅频特性。
4、分别用矩形窗、汉宁窗、海明窗和布莱克曼窗设计FIR低通滤波器,理想滤波器的边界频率为0.8π,N=51,用Fir1函数设计。根据所设计滤波器的阻带最小衰减值确定实际阻带边界频率。
5、用频率采样法设计一个线性相位低通滤波器,N=40,通带边界频率为π/4,过渡带设置一个采样点|H(k)|=0.5,给出单位脉冲响应h(n)的序列值,并作出幅频响应。
6、用频率采样法设计一个线性相位高通滤波器,通带边界频率为2π/3,过渡带设置一个采样点|H(k)|=0.5,分别求N=31和N=32时的单位脉冲响应h(n)的序列值,并分别作出幅频响应。
7、用频率采样法设计一个多带线性相位滤波器,理想幅频特性如下图所示,N=50,过渡带设置一个采样点,过渡点的值设为0.5,窗函数选矩形窗。给出该滤波器的单位脉冲响应h(n)的解析式,并用MATLAB绘出时域波形和幅频特性。
00.10.20.30.40.50.60.70.80.9100.20.40.60.811.21.41.61.8/|Hd(ej)|理想滤波器的幅频特性 四、实验结果与分析
1. 解:求通带和阻带的数字边界频率:
5.07.0rc,
求理想高通滤波器的边界频率。理想高通滤波器的边界频率是实际滤波器幅度函数正负肩峰频率的中心,但这里不知道正负肩峰的频率,因此用通带和阻带边界频率的中心近似:
6.02nrc
选择窗函数和窗口长度。阻带衰减不小于50dB,因此选择海明窗(其阻带衰减为53dB,满足衰减要求)。滤波器的过渡带宽为2.0cr,因此窗口长度为:
..NN660233
线性相位延迟常数为:
N1162
根据理想边界频率n和线性相位延迟常数,求理想单位脉冲响应d()hn:
ananwananananjanjdnnnndedenh)(])sin[(])sin[(1)()(][21)(
窗函数与理想单位脉冲响应相乘,得到线性相位FIR低通滤波器的单位脉冲响应:
16)(*)16()]16(6.0sin[)]([s*)]16cos(46.054.0[164.0)()()(hnnRnnaninnndNnhnwn
时域波形: 05101520253035-0.4-0.3-0.2-0.100.10.20.30.4nh(n)线性相位高通滤波器FIR的单位脉冲响应h(n)
幅频特性:
00.10.20.30.40.50.60.70.80.91-100-90-80-70-60-50-40-30-20-100频率/Hz幅度/dB线性相位高通滤波器FIR,海明窗,N=33
程序:
N=33;
n=0:1:N-1;
wn=0.6*pi;
a=(N-1)/2; hd=(sin(pi*(n-a))-sin((n-a)*wn))./(pi*(n-a));
hd(a+1)=0.4;
win=hamming(N);
h=win'.*hd;
figure;
stem(n,h);
xlabel('n');
ylabel('h(n)');
grid;
title('线性相位高通滤波器FIR的单位脉冲响应h(n)');
[H,w]=freqz(h,1);
H=20*log10(abs(H));
figure;
plot(w/pi,H);
axis([0 1 -100 0]);
xlabel('频率/Hz');
ylabel('幅度/dB');
title('线性相位高通滤波器FIR,海明窗,N=33');
2.解:求通带和阻带的数字边界频率:
9.0,2.0,7.0,3.02121rrcc
求理想带滤波器的边界频率。理想带通滤波器的边界频率是实际滤波器幅度函数正负肩峰频率的中心,但这里不知道正负肩峰的频率,因此用通带和阻带边界频率的中心近似:
8.02,25.0222211c1rcr
选择窗函数和窗口长度。阻带衰减不小于40dB,且阶数最小,因此选择汉宁窗(其阻带衰减为44dB,满足衰减要求)。滤波器的过渡带宽为,1.011c1r
2.0222cr,选择较小过渡带宽,因此窗口长度为: - 6 - 31N0.2N6.2
线性相位延迟常数为:
1521N
根据理想边界频率n和线性相位延迟常数,求理想单位脉冲响应d()hn:
nnnnnnjnjddedenh)(])sin[(])sin[()()(12122112][21)(
窗函数与理想单位脉冲响应相乘,得到线性相位FIR带通滤波器的单位脉冲响应:
15)15()]15(25.0sin[)]15(8.0sin[)]15cos(5.05.0[1555.0)()()(hnnnnnndnhnwn
时域波形:
051015202530-0.3-0.2-0.100.10.20.30.40.50.6nh(n)线性相位带通滤波器FIR的单位脉冲响应h(n)
幅频特性: 00.10.20.30.40.50.60.70.80.91-100-90-80-70-60-50-40-30-20-100频率/Hz幅度/dB线性相位带通滤波器FIR,汉宁窗,N=31
程序:
N=31;
n=0:1:N-1;
w1=0.25*pi;
w2=0.8*pi;
a=(N-1)/2;
hd=(0.5-0.5.*cos(pi/15*n)).*(sin(w2*(n-a))-sin(w1*(n-a)))./(pi*(n-a));
hd(a+1)=0.55;
win=hanning(N);
h=win'.*hd;
figure;
stem(n,h);
xlabel('n');
ylabel('h(n)');
grid;
title('线性相位带通滤波器FIR的单位脉冲响应h(n)');
[H,w]=freqz(h,1);
H=20*log10(abs(H));