数字信号处理实验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
实验一 信号、系统及系统响应
一 实验目的
1.熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对采样定理的理解。 2.熟悉离散信号和系统的时域特性。
3.熟悉现行卷积的计算编程方法,利用卷积的方法,观察、分析系统响应的时域特性。
4.掌握序列傅氏变换的计算机实现方法,利用序列的傅氏变换对离散信号、系统及系统响应进行频域分析。
二 实验原理
(一) 连续时间信号的采样
采样时从连续时间信号到离散时间信号的过渡桥梁,对采样过程的研究不仅可以了解采样前后信号时域和频域特性发生的变化以及信号内容不丢失的条件,而且有助于加深对拉氏变换、傅氏变换、Z变换和序列傅氏变换之间的关系。 根据Shannon取样定理,如果原信号时带限信号,且采样频率高于原信号最高频率分量2倍,则采样以后不会发生频谱混淆现象。
在计算机处理时是利用序列的傅里叶变换计算信号的频谱,在分析一个连续时间信号的频谱时,可以通过取样将有关的计算转化为序列福利叶变换的计算。
(二) 有限长序列分析
一般来说,在计算机上不可能,也不必要处理连续的曲线X(ejω),通常,我们只要观察、分析X(ejω)在某些频率点上的值。对于长度为N的有限长序列:
一般只需要在0-2π之间均匀地取M个频率点,计算这些点上的序列傅里叶变换:
其中 =2πk/M,k=0,1……,M-1。X( )是一个复函数,它的模就是幅频特性曲线。
(三) 信号卷积
一个线性时不变离散系统的响应y(n)可以用它的单位冲击响应h(n)和
输入信号x(n)的卷积来表示:
y(n)=x(n)*h(n) (1) 根据傅里叶变换和Z变换的性质,与上式对应应该有:
Y(z)=X(z)H(z) (2)
Y()= X()H() (3)
(1)告诉我们可以通过对两个序列的移位、相乘、累加计算信号响应;式
而(3)式告诉我们卷积运算也可以在频域上用乘积实现。
三、实验内容及步骤
(一) 编制实验用主程序及相应子程序
1.信号产生子程序,包括:
(1)理想采样信号序列
(2)单位脉冲序列
(3)矩形序列
2.系统单位脉冲响应序列产生子程序
3.有限长序列线性卷积子程序
(二) 上机实验内容
1.理想采样信号序列
MATLAB操作如下:
n=0:50; A=444.128;a=50*sqrt(2)*pi; T=0.001; w=50*sqrt(2.0)*pi; x=A*exp(-a*n*T).*sin(w*n*T); subplot(1,1,1); stem(n,x);
title('理想采样信号序列');
n=0:50; A=444.128;a=50*sqrt(2)*pi; w=50*sqrt(2)*pi; T=1/1000; x=A*exp(-a*n*T).*sin(w*n*T); x1=fft(x); subplot(3,1,1) stem(n,x1,‘*’) cleara*n*T).*sin(w*n*T); T T=1/300; x=A*exp(-
x2=fft(x); subplot(3,1,2) stem(n,x2,‘*’) clear T T=1/200;
x=A*exp(-a*n*T).*sin(w*n*T); x3=fft(x); subplot(3,1,3) stem(n,x3,‘*’)
从图中可以看出频谱出现混叠现象,这是因为采样频率f<2倍的信号固有频
率
2.离散信号,系统和系统响应的分析
Matlab操作如下:
(1)n=1:50;h=zeros(1,50);h(1)=1;hb(2)=2.5;h(3)=2.5;h(4)=1;
subplot(3,1,1);stem(h,’*’);m=1:50;T=0.001;A=444.128;a=5
0*sqrt(2.0)*pi;w0=50*sqrt(2.0)*pi;x=A*exp(-a*m*T).*sin(w0
*m*T);subplot(3,1,2);stem(x,'*');y=conv(x,h);
subplot(3,1,3);stem(y,‘*’);
(2)clear all
>> n=0:50;k=-25:25;
>> xc=[ones(1,10) zeros(1,41)];
>> ha=[ones(1,10) zeros(1,41)];
>> xb=[ones(1,4) zeros(1,41)];
>> y=conv(xc,ha);subplot(2,1,1);stem(y,'*');title('y');
>> z=conv(xb,ha);subplot(2,1,2);stem(y,'r');title('z');
clear all>> x=[ones(1,5) zeros(1,46)];>> hb=x;>> y= conv(x,hb);
>> subplot(2,1,1);stem(x,'*')>> subplot(2,1,2);stem(y,'*')
clear all
>> n=0:50;
>> A=1;
>> a=0.4;
>> w=2.0734;
>> T=1;
>> x=A*exp(-a*n*T).*sin(w*n*T);
c1=conv(x,ha); subplot(3,1,1) stem(c1,'.') >> ha=[ones(1,10) zeros(1,41)];
clear a ; a=0.1; x=A*exp(-a*n*T).*sin(w*n*T); ha=[ones(1,10) zeros(1,41)]; c2=conv(x,ha); subplot(3,1,2) stem(c2,'*') clear a w a=0.4; w=1.2516;x=A*exp(-a*n*T).*sin(w*n*T); ha=[ones(1,10) zeros(1,41)]; c3=conv(x,ha);
subplot(3,1,3) stem(c3)
3验证卷积定律
close all
>> k=-25:25;X=x*(exp(-j*pi/12.5)).^(n'*k); Hb=hb*(exp(-j*pi/12.5)).^(n'*k);
n=1:99;k=1:99;
Y=y*(exp(-j*pi/12.5)).^(n'*k);
XHb=X.*Hb;Subplot(2,1,1);stem(abs(XHb));
Subplot(2,1,2);stem(abs(Y));
四 思考题
(1)回答上机内容2-(2)中的问题。
答:根据输出序列长度公式L=N+M-1可以计算理论长度
(2)在分析理想采样信号序列的特性实验中,利用不同采样频率所得的采样
信号序列的傅氏变换频谱,数字频率度量是否相同,他们所对应的模拟频
率是否相同,
答:数字频率度量不同~模拟频率相同。因为模拟频率是连续域的傅立叶变换~与采样频率无关~而数字频率与模拟频率是T倍的关系~T 是采样周期~所以数字频率会随着采样频率的不同而不同~而模拟频率不会
(3)在卷积定律的验证过程中,如果选用不同的M值,例如选M=50
和M=30,分别做序列的傅氏变换,并求得Y()=
X()H(),k=0,1,……,M-1,所得的结果之间有何差ab
异,为什么,
答:没有差别~M=30和M=50没有差别~只不过M=50的点多一点~有更长的周期延拓。因为他们的信号相同~只是所取点的多少不同~对结果没有本质的影响。将信号的频域函数与系统的频域函数相乘的到的函数与第二步得到的函数相同~从而验证了卷积定理.
五 实验体会
通过这次上机试验~使我更加深入的认识到了信号系统及系统响应~使我学会了信号采样~绘制信号频谱图~了解到利用卷积可以简便的得到输入的输出响应。在编程的过程中遇到很多问题~进行卷积总是运行不出结果。不过做完本次上机实验~对MATLAB有了更深的了解与掌握。总之~相信这使我今后对该课程的研究十分受用~也锻炼了我的实践能力。继续努力:
实验二 应用FFT对信号进行频谱分析 一、实验目的
1.加深对离散信号的DTFT和DFT的及其相互关系的理解。
2.在理论学习的基础上,通过本次实验,加深对快速傅立叶变换
的理解,熟悉FFT算法及其程序的编写。
3.熟悉应用FFT对典型信号进行频谱分析的方法。
4.了解应用FFT进行信号频谱分析过程中可能出现的问题,以便
在实际中正确应用FFT。
二、实验原理与方法
一个连续信号x(t)的频谱可以用他的傅立叶变换表示为:a
=
如果对该信号进行理想采样,可以得到采样序列:x(n)=X(nT) a
同样可以对该序列进行Z变换,其中T为采样周期:X(z)=
jωj当Z=e的时候,我们就得到了序列的傅立叶变换:X(eω)=
其中称为数字频率,它和模拟域频率的关系为:
式中的f是采样频率,上式说明数字频率是模拟频率对采样频s
率f的归一化。同模拟域的情况相似,数字频率代表了序列值变化s
的速率,而序列的傅里叶变换为序列的频谱。序列的傅里叶变换和对应的采样信号频率具有下式的对应关系。
jωX(e)=
即序列的频谱是采样信号频谱的周期延拓。从上式可以看出,只要分析采样序列的频谱,就可以得到相应的连续信号频谱,就可以得到相应的连续信号的频谱。注意:这里的信号必须是带限信号,采样也必须满足Nyquist定理。
在各种信号序列中,有限长序列在数字信号处理中占有很重要的地位。无限长的序列也往往可以用有限长序列来逼近。对于有限长的序列我们可以使用离散傅里叶变换(DFT),这一变换可以很好地反映序列的频域特性,并且容易利用快速算法在计算机上实现当序列的长度是N时,我们定义离散傅里叶变化为:X(k)=DFT[x(n)]=
其中,它的反变换定义为:
x(n)=IDFT[X(k)]=
令Z=,则有:==DFT[x(n)] 可以得到,是Z平面单位圆上幅角为的点,就是将单位圆进行N等分以后第K个点。所以,X(k)是Z变换在单位圆上的等距采样,或者说是序列福利叶变换的等距采样。时域采样在满足Nyquist定理时,就不会发生频率混淆;同样地,在频率域进行采样的时候,只要采样间隔足够小,也不会发生时域序列的混淆。
DFT时对序列傅里叶变换的等距采样,因此可以用于序列的频谱分析。在运用DFT进行频谱分析的时候可以有三种误差:
(1) 混叠现象:在一般情况下,为了保证高于折叠频率的分
量不会出现,在采样之前,先用低通模拟滤波器对信号
进行滤波。
(2) 泄漏现象:泄漏是不能和混淆完全分离的,因为泄漏导
致频谱的扩展,从而造成混淆,为了减小泄漏的影响,
可以选择适当的窗函数是频谱的扩散减到最小。 (3) 栅栏效应:减小栅栏效应的一个方法是在源序列的末端补上一些零值,从而变动DFT的点数。
三、实验内容及步骤
(一) 编制实验用的主程序及相应子程序
1.在试验之前,认真复习DFT和FFT有关的知识,阅读本实验原理与方法和实验附录部分中和本实验有关的子程序,掌握子程序的原理并学习调用方法。
2.编制信号产生子程序及本实验的频谱分析主程序。试验中需要用到的基本信号包括:
(1)高斯序列:
(2)衰减正弦序列:
(3)三角波序列:
(4)反三角序列:
(二)上机实验内容
1.观察高斯序列的时域和频域特性
(1)固定信号x(n)参数p=8,改变q的值,使q分别等于2,4,a
8。观察它们的时域和幅频特性,了解q取不同值的时候,对信号
时域特性和幅频特性的影响。(2)固定q=8,改变P,使P分别等
于8,13,14,观察参数P变化对信号序列时域及幅频特性的影
响。注意p等于多少时,会发生明显的泄漏现象,绘制相应的时
域序列和幅频特性曲线。
MATLAB上机操作如下:
(1)close all
n=0:15;p=8;q=2;x=exp(-1*(n-p).^2/q); subplot(3,1,1);stem(abs(fft(x)),'*') p=8;q=4;x=exp(-1*(n-p).^2/q); subplot(3,1,2);stem(abs(fft(x)),'r*')
p=8;q=8;x=exp(-1*(n-p).^2/q); subplot(3,1,3); stem(abs(fft(x)))
(2)close all
n=0:15;
p=8;q=8;x=exp(-1*(n-p).^2/q);
subplot(3,1,1);stem(abs(fft(x)),'*') p=13;q=8;x=exp(-1*(n-p).^2/q); subplot(3,1,2);
stem(abs(fft(x)),'*')
p=14;q=8;x=exp(-1*(n-p).^2/q);
subplot(3,1,3);
stem(abs(fft(x)),'*')
2.观察衰减正弦序列的时域和幅频特性曲线
(1)令a=0.1,并且f=0.0625,检查谱峰出现的位置是否正确,
注意频谱的形状,绘制幅频特性曲线。(2)改变f=0.4375,再变
化f=0.5625,观察这两种情况下,频谱的形状和谱峰出现的位置,
有无混淆和泄漏现象发生,说明产生现象的原因。
MATLAB上机操作如下:
(1)close all n=0:15;
a=0.1;f=0.0625;x=exp(-a*n).*sin(2*pi*f*n);
subplot(2,1,1);stem(n,x,'*');
subplot(2,1,2);stem(n,abs(fft(x)),'*')
(2)close all n=0:15;
a=0.1;f=0.4375;x=exp(-a*n).*sin(2*pi*f*n);
subplot(2,1,1);stem(n,x,'*');
subplot(2,1,2);stem(n,abs(fft(x)),'*')
3.观察三角波序列和反三角序列的时域和幅频特性
(1)用8点FFT分析信号x(n)和x(n)的幅频特性,观察两者的cd
序列形状和频谱曲线有什么异同,(注意:这时候的x(n)可以看d
作使x(n)经过圆周位移以后得到的)绘制两者的序列和幅频特性c
曲线。(2)在x(n)和x(n)补零,用16点FFT分析这两个信号的cd
幅频特性,观察幅频特性发生了什么变化,两个信号之间的FFT
频谱还有没有相同之处,这些变化说明了什么,
MATLAB上机操作如下:
(1)close all
for i=1:4 x(i)=i;end for i=5:8 x(i)=9-i;end subplot(2,1,1);stem(x,'*');subplot(2,1,2);stem(abs(fft(x
,16)),'*');for i=1:4 x(i)=5-i;end for i=5:8 x(i)=i-4; end subplot(2,1,1);stem(x,'*');
subplot(2,1,2);stem(abs(fft(x,16)),'*');
(2) close all
for i=1:4 x(i)=i;end for i=5:8 x(i)=9-i;end for i=9:16 x(i)=0;end subplot(2,1,1);stem(x,'*');
subplot(2,1,2);stem(abs(fft(x,16)),'*'); for i=1:4 x(i)=5-i; end for i=5:8 x(i)=i-4;end for i=9:16 x(i)=0;end subplot(2,1,1);stem(x,'*');
subplot(2,1,2);stem(abs(fft(x,16)),'*');
四、思考题
1.实验中的信号序列x(n)和x(n),在单位圆上的Z变换频谱| cd
jωjωX(e)|和| X(e)|会相同吗,如果不同,你能说出哪一个低频分量cd
更多一些吗,为什么,
答:不相同,x(n)的低频分量多一些。 c
2.对一个有限长序列进行离散傅里叶变换(DFT),等价于将该序列
周期延拓后进行傅里叶级数展开。因为DFS也只是取其中一个周期计算,所以FFT在一定条件下也可以用以分析周期信号序列。如果正弦信号sin(2πfn),f=0.1,用16点的FFT来做DFS运算,得到的频谱是信号本身的真实谱吗,
答:不是,因为所取的点不能构成一个完整的周期,因而频谱也不是真实谱。
五 实验体会
通过本次实验,使我学会了运用MATLAB中的FFT快速运算简便快捷,为实现离散信号的频域变换了很大的帮助。
实验三 用双线性变换法设计IIR滤波器
一、实验目的
1.了解两种
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
上最常用的变换方法:脉冲响应不变法和双线性变换法。
2.掌握双线性变换法设计IIR滤波器的原理及具体设计方法,熟
悉双线性设计法设计低通、带通和高通IIR滤波器的计算机程
序。
3.观察用双线性变换法设计的滤波器的频域特性,并与脉冲响应
不变法相比较,了解双线性变换法的特点。
4.熟悉用双线性变换法设计数字Butterworth和Chebyshev滤波
器的全过程。
5.了解多项式乘积和多项式乘方运算的计算机编程方法。
二、实验原理与方法
从模拟滤波器设计IIR数字滤波器具有四种方法:微分-差分变换法、脉冲响应不变法、双线性变换法、匹配Z变换法;在工程上常用的是其中两种:脉冲响应不变法、双线性变换法。脉冲响应不变法需要经历如下步骤:由已知系统传输函数H(s)计算系统冲激响应h(t);对h(t)进行等间隔取样得到h(n)=h(nT);由h(n)获得数字滤波器的系统响应H(z)。这种方法非常直观,其算法宗旨是保证所设计的IIR滤波器的脉冲响应和响应模拟滤波器的冲激响应在采样点上完全一致。而双线性变换法的设计准则是使数字滤波器的频率响应与参考模拟滤波器的频率响应相似。
脉冲响应不变法一个重要的特点是频率坐标的变换时线性的,其缺点是有频谱的周期延拓效应,存在频谱混淆的现象。为了克服脉冲响应不变法可能产生的频谱混淆,提出了双线性变换法,他依靠双线性变换式:
其中,s=
建立起s平面和z平面的单值映射关系,数字频域和模拟频域之间的关系:
由上面的关系式可知,当?时,中止在折叠频率处,整个轴单值地对应于单位圆的一周。因此双线性变换法不同于脉冲响应不变法,不存在频谱混淆的问题。从上式还可以看出,两者的频率不是线性关系。这种非线性关系使得通带截止频率、过渡带的边缘频率的相对位置都发生了非线性畸变。这种频率的畸变可以通过预畸来矫正。用双线性变换法设计数字滤波器时,一般总是先将数字滤波器的各临界频率经过上式的频率预畸,求得相应参考模拟滤波器的各临界频率,然后设计参考模拟滤波器的传递函数,最后通过双线性变换式求得数字滤波器的传递函数。这样通过双线性变换,正好将这些频率点映射到我们所需要的位置上。参考模拟滤波器的设计,可以按照一般模拟滤波器的设计方法,利用已经成熟的一整套计算公式和大量的归一化设计表格和曲线,这些公式、表格主要是用于归一化低通原型的。通过原型变换,可以完成实际的低通、带通和高通滤波器的设计。
在用双线性变换法设计滤波器原型参数,从而使得设计更加简化。
在本实验中,我们只涉及Butterworth和Chebyshev两种滤波器的设计,相应的这两种参考模拟原型滤波器的设计公式如下:
Butterworth:
阶数:
传递函数:
有关参数:3db频率:
Chebyshev:
阶数:
传递函数:
有关参数:波纹系数:
综上所述,以Butterworth低通数字滤波器设计为例,可以将双线性变换法设计数字滤波器的步骤归纳如下:
1.确定数字滤波器的性能指标。这些指标包括:通带、阻带临界频率fp、fs;通带内的最大衰减;阻带内的最小衰减;采样周期T。
2.确定相应的数字频率,。 3.计算经过频率预畸的相应参考模拟低通原型的频率
。
4.计算低通原型阶数N:计算3db归一化频率,从而求得低
通原型的传递函数。
5.用上文中所列变换公式,代入,求得数字滤波器传递函数:
6.分析滤波器频域特性,检查其指标是否满足要求。
三、实验内容及步骤
(一) 编制实验用主程序及相应子程序
1.实验前复习数字信号处理课程中滤波器设计有关的知识,认真阅读本实验的原理部分,读懂滤波器相关算法。 2.编制一个双线性变换法设计IIR数字Butterworth和Chebyshev滤波器的通用程序。采样周期、通带和阻带临界频率以及相应的衰减等参数在程序运行时输入;根据这些输入参数,计算阶数N、传递函数;输出分子分母系数;绘出幅频特性曲线,绘制点数为50,(0-π)。
(二) 上机实验内容
1.采样频率为1Hz,设计一个Chebyshev高通数字滤波器其中通带临界频率fp=0.3Hz,通带内衰减小于0.8db(=0.8db),阻带临界频率fs=0.2Hz,阻带内衰减大于20db(=20db)。求这个数字滤波器的传递函数H(z),输出它的幅频特性,观察期通带衰减和阻带衰减是否满足要求。
MATLAB操作如下:
close all
[n,Wn]=buttord(0.3,0.2,0.8,20); [b,a]=butter(n,Wn);freqz(b,a,512,1)
2.采样频率为1Hz,设计一个数字低通滤波器,要求其通带临
界频率fp=0.2Hz,通带内衰减小于1db(=1db),阻带临界频率
fs=0.3Hz,阻带内衰减大于25db(=25db)。求这个数字滤波器
的传递函数H(z),输出它的幅频特性曲线。
MATLAB操作如下:
close all
[n,Wn]=cheb1ord(0.3,0.2,0.8,20);
[b,a]=cheby1(n,1,Wn);freqz(b,a,512,1)
3.设计巴特沃兹带通数字滤波器,其上下边带1db处的通带临
界频率分别为20kHz和30kHz(fp1=20kHz,fp2=30kHz,=1db),
当频率低于15kHz时,衰减要大于40db(fs=15kHz,=40db),
采样周期为10,求这个数字滤波器的传递系数H(z),输出它
的幅频特性曲线,观察其通带衰减和阻带衰减是否满足要求。
MATLAB操作如下:
close all
[n,Wn]=buttord([0.2,0.3],[0.15,0.35],1,40);
[b,a]=butter(n,Wn);freqz(b,a,512,1);
四、思考题
1.双线性变换和脉冲响应相比较,有哪些优点和缺点,为什么,
答:脉冲响应不变法非常直观,其算法宗旨是保证所设计的IIR滤波器的脉冲响应和响应模拟滤波器的冲激响应在采样点上完全一致。而双线性变换法德设计准则则是使数字滤波器的频率响应与参考模拟滤波器的频率响应相似。脉冲响应不变法一个重要的特点是频率坐标的变换是线性的,其缺点就是有频谱周期延拓效应,存在频谱混淆的现象。双线性变换法则不存在频谱混淆的问题。
2.双线性变换时一种非线性变换,在实验中你观察到这种非线性关系了吗,应该怎样从哪种数字滤波器幅频特性曲线中可以观察到
这种非线性关系,
答:观察到了。从Butterworth和Chebyshev数字滤波器的幅频特性曲线可以观察到。
四 实验感想
在此次实验中了解了脉冲响应不变法和双线性变换法的原理以及各自的优缺点,了解了butterworth和Chebyshev滤波器的设计步骤。更是了解到了MATLAB功能十分强大,尤其是在传递函数方面,同时了解butterworth和Chebyshev滤波器函数为设计滤波器带来的便利。
实验四 用窗函数设计FIR滤波器
一、实验目的
1.熟悉FIR滤波器设计的基本方法。
2.掌握用窗函数设计FIR数字滤波器的原理及方法,熟悉相应的计算机高级语言编程。
3.熟悉线性相位FIR滤波器的幅频特性和相位特性。 4.了解各种不同窗函数对滤波器性能的响应。
二、实验原理与方法
(一)FIR滤波器的设计
目前FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不高的时候是比较灵活方便的。它是从时域出发,用一个窗函数截取理想的得到h(n),以有限长序列h(n)近似理想的;如果从频域出发,用理想的在单位圆上等角度取样得到H(k),根据h(k)得到H(z)将逼近理想的,这就是频率取样法。
(二)窗函数设计法
同其它的数字滤波器的设计方法一样,用窗函数设计滤波器也是首先要对滤波器提出性能指标。一般是给定一个理想的频率响应
,使所设计的FIR滤波器的频率响应去逼近所要求的理想的滤波器的相应。窗函数法设计的任务在于寻找一个可
实现(有限长单位脉冲响应)的传递函数。
。我们知道,一个理想的频率响应的傅理去逼近
叶变换
所得到的理想单位脉冲响应往往是一个无限长序列。对
经过适当的加权、截断处理才得到一个所需要的有限长脉冲响应序列。对应不同的加权、截断,就有不同的窗函数。所要寻找的滤波器脉冲响应就等于理想脉冲响应和窗函数的乘积。即
,由此可见,窗函数的性质就决定了滤波器的品质。
以下是几种常用的窗函数:
1.矩形窗:
2.Hanning窗:
3.Hamming窗:
4.Blackman窗:
5.Kaiser窗:
窗函数法设计线性相位FIR滤波器可以按如下步骤进行:
1(确定数字滤波器的性能要求。确定各临界频率{}和滤波器单位脉冲响应长度N。
2.根据性能要求和N值,合理地选择单位脉冲响应h(n)有奇偶对称性,从而确定理想频率响应的幅频特性和相位特性。
3.用傅里叶反变换公式,求得理想单位脉冲响应。
4.选择适当的窗函数W(n)根据式求得所设计的FIR滤波器单位脉冲响应。
5.用傅理叶变换求得其频率响应,分析它的幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述过程,直至得到满意的结果。
三、实验内容及步骤
(一) 编制实验用主程序及相应子程序
1.在实验编程之前,认真复习有关FIR滤波器设计的有关知识,尤其是窗函数法的有关内容,阅读本实验原理与方法,熟悉窗函数及四种线性相位FIR滤波器的特性,掌握窗函数设计滤波器的具体步骤。
2.编制窗函数设计FIR滤波器的主程序及相应子程序
(1)傅里叶反变换数值计算子程序,用于计算设计步骤(3)中的傅里叶反变换,给定,K=0,1…M-1,按照公式求得理想单位脉冲响应,n=0….N-1。
(2)窗函数产生子程序,用于产生几种常见的窗函数序列。本实验中要求产生的窗函数序列有:矩形窗、Hanning窗、Hamming窗、Blackman窗、Kaiser窗。根据给定的长度N,按照公式生成相应的窗函数序列。
(3)主程序,在上述子程序的基础上,设计主程序完成线性相位FIR滤波器的窗函数法设计。其中理想滤波器幅频特性的一半(从
到)区间频率点上的值||,K=0,…,(M/2-1)以及滤波器的长度N可以从数据文件或其他形式输入。||的另外一半(从到区间)的幅频特性和全部相位特性在程序中根据N的奇偶性和幅频特性的要求,在四中滤波器中选择一种,自动产生。
(二) 上机实验内容
(1)用Hanning窗设计一个线性相位带通滤波器,其长度N=15,上下边带宽截止频率分别为,,求h(n),绘制它的幅频和相位特性曲线,观察它的实际3dB和3dB带宽。如果N=45,重复这个设计,观察幅频和相位特性的变化,注意长度N变化对结果的影响。
MATLAB操作如下:
window=hanning(16);b=fir1(15,[0.3 0.5],window);freqz(b,1);
N=45时:
window=hanning(46);b=fir1(15,[0.3 0.5],window);freqz(b,1);
(2)改用矩形窗和Blackman窗,设计步骤(1)中的带通滤波器,
观察并记录窗函数对滤波器幅频和相位特性的影响,比较这三种窗
函数的特点。
矩形窗:clear all
window=boxcar(16);b=fir1(15,[0.3 0.5],window);freqz(b,1);
N=45时:
MATLAB操作如下:
Close all
window=boxcar(46);
b=fir1(45,[0.3 0.5],window);freqz(b,1);
Blackman窗:close all
window=blackman(16); b=fir1(15,[0.3 0.5],window);freqz(b,1);
N=45时:
window=blackman(46);
b=fir1(45,[0.3 0.5],window);freqz(b,1);
(3)用Kaiser窗设计一个专用的线性相位滤波器。N=40,当值分别为4,6,8时,设计相应的滤波器,比较它们的幅频和相位特性,观察并分析值不同的时候对结果有什么影响。
MATLAB操作如下:
window=kaiser(41,4);
b=fir1(40,[0.2 0.4],window);
freqz(b,1);
window=kaiser(41,6);b=fir1(40,[0.2 0.4],window);freqz(b,1);
window=kaiser(41,8);b=fir1(40,[0.2 0.4],window);freqz(b,1);
四、思考题
1.定性的说明本实验设计的FIR滤波器的3dB截止频率在什么位置,它等于理想频率响应的截止频率吗,
答:FIR滤波器的上限频率截止频率一般在0.3左右,而下限截止频率在0.5左右,跟理想频率响应的截止频率差不多。
2.如果没有给定h(n)长度N,而是给定了通带边缘截止频率,阻带临界频率,以及相应的衰减,你能根据这些条件用窗函数法设计线性相位FIR低通滤波器吗,
答:可以根据截止频率和临界频率以及相应的衰减确定N的长度。
3.频率取样方法和窗函数法各有什么特点,简单说明, 频率采样法优点是可以从频域直接处理,适合最优化设计,缺点频率控制点位置受限于频率周上的N个采样点,滤波器的截止频率不易随意控制。窗函数法是从时域出发的,主要优点是简单,使用起来方便。窗口函数大多性能、参数都已有表格、资料可供参考,计算程序简便。