《数字信号处理》
实验指导书
目 录
实验一 离散时间信号与系统的傅立叶分析…………………………………………1 实验二 时域采样定理…………………………………………………………………4 实验三 实验四 实验五 实验六
用DFT(FFT)对时域离散信号进行频谱分析……………………………7 用DFT(FFT)对连续信号进行频谱分析…………………………………10 IIR数字滤波器设计…………………………………………………………13 FIR数字滤波器设计…………………………………………………………18
《数字信号处理》实验指导书 莆田学院电信系
实验一:离散时间信号与系统的傅立叶分析 学时安排:2学时
实验类别:验证性 实验要求:必做
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 一、教学目的和任务
用傅立叶变换对离散时间信号和系统进行频域分析。
二、实验原理介绍
对信号进行频域分析就是对信号进行傅立叶变换。对系统进行频域分析即对它的单位脉冲响应进行傅立叶变换,得到系统的传输函数;也可以由差分方程经过傅立叶变换直接求它的传输函数;传输函数代表的就是系统的频率响应特性。但传输函数是的连续函数,计算机只能计算出有限个离散频率点的传输函数值,因此得到传输函数以后,应该在0~2之间取许多点,计算这些点的传输函数的值,并取它们的包络,该包络才是需要的频率特性。当然,点数取得多一些,该包络才能接近真正的频率特性。
注意:非周期信号的频率特性是的连续函数,而周期信号的频率特性是离散谱,它们的计算公式不一样,响应的波形也不一样。
三、实验仪器及设备
计算机、MATLAB软件。
四、实验内容和步骤
1.已知系统用下面差分方程描述:
y(n)x(n)ay(n1)
试在a0.95和a0.5两种情况下用傅立叶变换分析系统的频率特性。要求写出系统的传输函数,并打印 H(ej)~ 曲线。
2.已知两系统分别用下面差分方程描述:
y1(n)x(n)x(n1) y2(n)x(n)x(n1)
试分别写出它们的传输函数,并分别打印 H(ej)~ 曲线。
3.已知信号x(n)R3(n),试分析它的频域特性,要求打印 X(ej)~ 曲线。
(n),试分析它的频率特性,并4.假设x(n)(n),将x(n)以2为周期进行延拓,得到x画出它的幅频特性。
下面对实验用的MATLAB函数进行介绍。 1.abs
1
《数字信号处理》实验指导书 莆田学院电信系
功能:求绝对值(复数的模)。
y=abs(x):计算实数x的绝对值。当x为复数时得到x的模(幅度值)。 当x为向量时,计算其每个元素的模,返回模向量y。 2.angle 功能:求相角。
Ph=angle(x):计算复向量x的相角(rad)。Ph值介于 -和 +之间。 3.freqz
功能:计算数字滤波器H(z)的频率响应。
H=freqz(B,A,w):计算由向量w指定的数字频率点上数字器H(z)的频率响应H(ejw),结果存于H向量中。向量B和A分别为数字滤波器系统函数H(z)的分子和分母多项式系数。
[H,w]=freqz(B,A,M,’whole’):计算出M个频率点上的频率响应,存放在H向量中,M个频率点存放在向量w中。freqz函数自动将这M个频点均匀设置在频率范围 [0,2]上。缺省whole时,M个频点均匀设置在频率范围 [0,]上。
调用参数B和A与系统函数的关系由下式给出:
H(z)B(z)A(z)B(1)B(2)z11B(M)zA(N)z(N1)(N1)B(M1)zA(N1)zMNA(1)A(2)z
缺省W和M时,freqz自动选取512个频率点计算。不带输出向量的freqz函数将自动绘出幅频和相频曲线。其他几种调用格式可用命令help查阅。
freqz函数用于计算模拟滤波器的频率响应函数,详细功能及调用格式用help命令查看。 例如:八阶梳状滤波器系统函数为:
H(z)B(z)1z8
用下面的简单程序绘出H(z)的幅频与相频特性曲线如图1所示。
% example for freqz B=[1 0 0 0 0 0 0 0 -1]; A=1; freqz(B,A)
10Magnitude (dB)0-10-20-3000.10.20.30.40.50.60.70.8Normalized Frequency ( rad/sample)0.91100Phase (degrees)500-50-10000.10.20.30.40.50.60.70.8Normalized Frequency ( rad/sample)0.91
图1 八阶梳状滤波器幅度和相位曲线
五、注意事项和要求
2
《数字信号处理》实验指导书 莆田学院电信系
实验报告要求:
(1)严格按照学院的《学生实验报告》格式和内容要求书写;实验报告原理及思考题回答等内容只能手写,图件和程序可以打印并粘贴在报告上;实验报告内容不得雷同,否则一律做零分处理。
(2)简述实验原理及目的;对各实验内容进行理论分析和推导;分析各实验内容,并和理论分析推导结果进行对比。
(3)对于每一项实验内容要求有MATLAB仿真结果图及整理好经过运行并证明是正确的程序,并且加上关键的注释。
(4)回答思考题。
(5)总结实验所得主要结论。
六、作业及预习要求
思考题:
(1)对各实验内容进行理论分析和推导。
(2)分析各实验内容,并和理论分析推导结果进行对比。 预习要求:
用DFT(FFT)对时域离散信号进行频谱分析。
七、参考书目
《数字信号处理》(第二版),丁玉美、高西全,西安电子科技大学出版社,2001年。
《MATLAB在数字信号处理中的应用》,薛年喜,清华大学出版社,2003年。
3
《数字信号处理》实验指导书 莆田学院电信系
实验二:时域采样定理 学时安排:2学时
实验类别:验证性 实验要求:选做
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 一、教学目的和任务
熟悉并加深采样定理的理解,了解采样信号的频谱和模拟信号频谱之间的关系。
二、实验原理介绍
模拟信号经过理想采样,形成采样信号。采样信号的频谱和模拟信号频谱之间的关系如下:
ˆ(j)1XaTmXa(j(ms))
此式告诉我们,采样信号的频谱是由模拟信号的频谱按照采样角频率周期性的延拓形成的,由此得到结论:采样频率必须大于模拟信号最高频率的两倍以上,才不会引起频率混叠。但用此式在计算机上进行计算不大方便,下面我们将导出另外一个公式,以便在计算机上进行实验。
对模拟信号xa(t)进行理想采样的公式如下式:
ˆa(t)xa(t)xn(tnT) (1)
对上式进行傅立叶变换,得到:
ˆ(j)Xaˆa(t)ejtdt x [xa(t)n(tnT)]ejtdt
将上式的积分号和求和号交换次序,得到:
ˆ(j)Xanxa(t)(tnT)ejtdt (2)
在上式的积分号内,只有当t=nT时,才有非零值,因此:
ˆ(j) Xanxa(nT)ejnT
式中,xa(nT)在数值上等于由采样得到的时域离散信号x(n),如果再将T代入,得到:
ˆ(j)Xanx(n)ejn (3)
4
《数字信号处理》实验指导书 莆田学院电信系
上式的右边就是序列的傅立叶变换X(ej),即:
ˆ(j)X(ej)XaT (4)
上式说明采样信号的傅立叶变换可用相应的序列的傅立叶变换得到,只要将自变量用
T代替即可。
ˆ(j)是将模拟信号的频谱按照采样角频率为周这里有个问题要解释,采样信号的频谱Xa期,进行周期延拓形成的,而序列的傅立叶变换是以2为周期,这里是否一致?答案是肯定的。因为按照公式T2f/fs,当ffs时,2,因此序列的傅立叶变换以2为周ˆ(j)的折叠频率,如果产期,转换到模拟域就是以采样频率fs为周期。另外,ffs/2是Xa生频率混叠,就是在该处附近发生,在数字域中,就是附近易产生频率混叠。
有了以上的公式和概念,就可以用计算机研究对模拟信号的采样定理。
三、实验仪器及设备
计算机、MATLAB软件。
四、实验内容和步骤
1.给定模拟信号如下:
xa(t)Aeatsin(0t)u(t)
rad/s,将这些参数代入式中,对
假设式中A444.128,502,0502xa(t)进行傅立叶变换,得到Xa(j),并可画出它的幅频特性Xa(jf)~f;根据该曲线可以
选择采样频率。
2.按照选定的采样频率对模拟信号进行采样,得到时域离散信号x(n):
x(n)xa(nT)AeanTsin(0nT)u(nT)
这里给定采样频率如下:
fs=1 kHz、300 Hz、200 Hz。分别用这些采样频率形成时域离散信号,按顺序分别用x1(n)、
x2(n)、x3(n)表示。选择观测时间Tp50ms。
3.计算x(n)的傅立叶变换X(ejj):
ni1X(e)FT[x(n)]n0AeanTisin(0nTi)ejn (5)
式中,i1,2,3,分别对应三种采样频率的情况
5
《数字信号处理》实验指导书 莆田学院电信系
111s,T2s,T3s。采样点数以下式计算: T11000300200niTpTi (6)
式中, 是连续变量。为用计算机进行数值计算,改用下式计算:
X(ejkni1)DFT[x(n)]Mn0AeanTsin(0nTi)ejkn (7)
式中,k式。
2MTLAB函数fft计算(7)k,k=0,1,2,3,…,M-1;M=64。可以调用MA
4.打印三种采样频率的幅度曲线X(ej)~k,k=0,1,2,3,…,M-1;M=64。
k下面对实验用MATLAB函数进行介绍: 1.fft
功能:一维快速傅立叶变换(FFT)。
Xk=fft(xn,N):采用FFT算法计算序列向量xn的N点DFT。缺省N时,fft 函数自动按xn的长度计算xn的DFT。当N为2的整数次幂时,fft按基2算法计算,否则用混合基算法。
2.ifft
功能:一维快速逆傅立叶变换(IFFT)。 调用格式:与fft相同。
五、注意事项和要求
与试验一《离散时间信号与系统的傅立叶分析》中注意事项和要求相同。
六、作业及预习要求
1.简述实验原理。
2.针对三种采样频率情况,进行分析讨论。 3.写出主要结论。
七、参考书目
《数字信号处理》(第二版),丁玉美、高西全,西安电子科技大学出版社,2001年。 《MATLAB在数字信号处理中的应用》,薛年喜,清华大学出版社,2003年。
6
《数字信号处理》实验指导书 莆田学院电信系
实验三:用DFT(FFT)对时域离散信号进行频谱分析 学时安排:2学时
实验类别:验证性 实验要求:必做
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 一、教学目的和任务
1. 进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法, 所以
FFT的运算结果必然满足DFT的基本性质)。
2.掌握DFT(FFT)对时域离散信号进行频谱分析的方法。
二、实验原理介绍
1、DFT和FFT原理:
长度为N的序列x(n)的离散傅立叶变换为X(k):
N1X(k)x(n)Wn0nkN,k0,....,N1
首先按n的奇偶把时间序列x(n)分解为两个长为N/2点的序列:
x1(n)x(2r) r=0,1,...,N/2-1 x2(n)x(2r1) r=0,1,...,N/2-1
则x(n)的DFT为X(k)
N1X(k)2Nn0N/21x(n)WNx(2r)Wx1(r)Wj2N/2knN/212krNr0N/21r0N/21x(2r1)WN2krk(2r1)r02krNr0x2(r)WNWNk
由于W2krNej2KrekrWN/2,故有:
N/21krN/21X(k)r0x1(r)WkkrN/2WkNr0x2(r)WN/2k0,1,...,N/21
krX1(k)WNX2(k)其中X1(k) 和X2(k)分别为x1(n) 和x2(n)的N/2点DFT。因为X1(k) 和X2(k)均是以N/2为周期的,且WNkN/2WN。因此可将N点DFT X(k)分解为下面的形式:
kkX(k)X1(k)WNX2(k) X(k
k=0,1,...,N/2-1
N2)X1(k)WNX2(k) k=0,1,...,N/2-1
7
k《数字信号处理》实验指导书 莆田学院电信系
通过上面的推导可以看出,N点的DFT可以分解为两个N/2点的DFT,每个N/2点的DFT又可以分解为两个N/4点的DFT。依此类推,当N为2的整数次幂时(N2M),由于每分解一次
降低一阶幂次,所以通过M次的分解,最后全部成为一系列2点DFT运算。以上就是按时间抽取的快速傅立叶变换(FFT)算法。
序列X(k)的离散傅立叶反变换为:
x(n)1NN1k0X(k)WNnk,-1
n0,....,N1
-1
离散傅立叶反变换与正变换的区别在于WN变为WN,并多了一个1/N的运算。因为WN和WN
对于推导按时间抽取的快速傅立叶变换算法并无实质性区别,因此可将FFT和快速傅立叶反变换(IFFT)算法合并在同一个程序中。 2、MATLAB中计算DFT(FFT)的函数
函数fft用来求序列的DFT,调用格式为:[Xk]=fft(x,N) 其中x 为有限长序列,N为序列x的长度,Xk为序列xn的DFT。
函数ifft用来求IDFT,调用格式为:[x]=ifft(Xk,N) 其中,Xk为有限长序列,N为序列
Xk的长度,x为序列Xk的IDFT。 三、实验仪器及设备
计算机、MATLAB软件。
四、实验内容和步骤
(1) 复习DFT的定义、 性质和用DFT作谱分析的有关内容。 (2) 用MATLAB编制程序产生以下典型信号供谱分析用:
x1(n)R4(n)n1,x2(n)8n04nx3(n)n30x4(n)cos0n34n70n34n7
4nnx5(n)100.8 (0n8)(3)分别以变换区间N=8,16,32对x1(n)R4(n)进行DFT(FFT),画出相应的幅频特性曲
线;
(4)分别以变换区间N=8,16对x2(n)、x3(n)分别进行DFT(FFT),画出相应的幅频特性曲
8
《数字信号处理》实验指导书 莆田学院电信系
线;
(5)分别以变换区间N=4,8,16,对x4(n)进行DFT(FFT),画出相应的幅频特性曲线; (6)① 将x5(n)分解成xep(n)和xop(n),分别作出xep(n)和xop(n)的时域曲线;
② 分别画出DFT[xep(n)]、DFT[xop(n)]、Re[X(k)]、Im[X(k)]相应的幅频特性曲线; (7) 按以上实验内容要求, 上机实验, 并写出实验报告。
五、注意事项和要求
与试验一《离散时间信号与系统的傅立叶分析》中注意事项和要求相同。
六、作业及预习要求
1.思考题:
(1)用实验内容中的(3)分析DFT的变换区间对频域分析的作用,并说明DFT的物理意
义?
(2)对于实验内容(4),分析当N=8时两个信号的幅频特性为什么一样?而N=16时又不
一样?
(3)实验内容(6)的图说明了DFT的什么重要特性? 2.预习DFT(FFT)对连续信号进行频谱分析的方法。
七、参考书目
《数字信号处理》(第二版),丁玉美、高西全,西安电子科技大学出版社,2001年。
《MATLAB在数字信号处理中的应用》,薛年喜,清华大学出版社,2003年。
9
《数字信号处理》实验指导书 莆田学院电信系
实验四:用DFT(FFT)对连续信号进行频谱分析 学时安排:2学时
实验类别:验证性 实验要求:选做
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 一、教学目的和任务
1. 掌握用DFT(FFT)对模拟信号进行谱分析的方法,理解可能出现的分析误差及其原因,
以便在实际中正确应用FFT。
2.熟悉应用FFT实现两个序列的线性卷积的方法。
二、实验原理介绍
1.用DFT(FFT)对连续信号进行频谱分析
用DFT(FFT)对模拟信号做谱分析是一种近似的谱分析。首先一般的模拟信号(周期信号除外)的频谱是连续谱,而用FFT做谱分析得到的是数字谱,因此应该取FFT的点数多一些,用它的包络作为模拟信号的近似谱。另外,如果模拟信号不是严格的带限信号,会因为频谱混叠现象引起谱分析的误差,这种情况下可以预先将模拟信号进行预滤,或者尽量将采样频率取高一些。最后要注意一般的模拟信号是无限长的,分析时要截断,截断的长度与对模拟信号进行频谱分析的分辨率有关。如果要进行谱分析的模拟信号是周期信号,最好选择观测时间是信号周期的整数倍,如果不知道信号的周期,要尽量选择观测时间长一些,以减少截断效应的影响。
在运用DFT(FFT)对模拟信号进行谱分析的过程中主要可能产生以下三种误差: (1) 混叠现象
对模拟信号进行谱分析时首先要对其采样,当采样速率不满足Nyquist定理时,就会发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原模拟信号的频谱。
避免混叠现象的唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须对频谱的性质有所了解,在一般情况下,为了保证高于折叠频率的分量不会出现,在采样前,先用低通模拟滤波器对信号进行滤波。
(2) 截断效应
实际中我们往往用截短的序列来近似很长的甚至是无限长的序列,这样可以使用较短的DFT来对信号进行频谱分析,这种截短等价于给原信号序列乘以一个矩形窗函数,也相当于在频域将信号的频谱和矩形窗函数的频谱卷积,所得的频谱是原序列频谱的扩展。
泄漏不能与混叠完全分开,因为泄漏导致频谱的扩展,从而造成混叠。为了减少泄漏的影响,可以选择适当的窗函数使频谱的扩散减至最小。
(3) 栅栏效应
DFT是对单位圆上Z变换的均匀采样,所以它不可能将频谱视为一个连续函数,就一定意义上看,用DFT来观察频谱就好像通过一个栅栏来观看一个图景一样,只能在离散点上看到真实的频谱,这样就有可能发生一些频谱的峰点或谷点被“尖桩的栅栏”所拦住,不能被我们观察到。
10
《数字信号处理》实验指导书 莆田学院电信系
减小栅栏效应的一个方法就是借助于在原序列的末端填补一些零值,从而变动DFT的点数,这一方法实际上是人为地改变了对真实频谱采样的点数和位置,相当于搬动了每一根“尖桩栅栏”的位置,从而使得频谱的峰点或谷点暴露出来。
2.用FFT计算线性卷积
用FFT可以实现两个序列的圆周卷积。在一定的条件下,可以使圆周卷积等于线性卷积。一般情况,设两个序列的长度分别为N1和N2,要使圆周卷积等于线性卷积的充要条件是FFT的长度N(N≥N1+N2 ) 对于长度不足N的两个序列,分别将他们补零延长到N。当两个序列中有一个序列比较长的时候,我们可以采用分段卷积的方法。有两种方法:
重叠相加法:将长序列分成与短序列相仿的片段,分别用FFT对它们作线性卷积,再将分段卷积各段重叠的部分相加构成总的卷积输出。
重叠保留法:这种方法在长序列分段时,段与段之间保留有互相重叠的部分,在构成总的卷积输出时只需将各段线性卷积部分直接连接起来,省掉了输出段的直接相加。
3.MATLAB中计算DFT(FFT)的函数
用函数U=fft(u,N)和u=ifft(U,N)计算N点序列的DFT正、反变换。
三、实验仪器及设备
计算机、MATLAB软件。
四、实验内容和步骤
(1) 复习用DFT(FFT)对连续信号进行频谱分析的误差问题 以及用DFT(FFT)进行线性卷积的
方法 。
(2) 用MATLAB编制程序产生以下实验信号:
x1(t)R(t) =1.5msx2(t)sin(2ft/8) 频率f自己选择 x3(t)cos8tcos16tcos20t(3)分别对以上三种模拟信号选择采样频率和采样点数:
<1> 对x1(t)R(t) ,选择采样频率fs=4k、8k、16k Hz,采样点数用fs计算。 <2> 对x2(t)sin(2ft/8),频率f自己选择,采样频率fs4f,观测时间
Tp0.5T,T,2T采样点数用Tfs计算。
<3> 对x3(t)cos8tcos16tcos20t,选择采样频率fs64HZ,采样点数分
别为16、32、64。分别将它们转换成序列,顺序用x1(n)、x2(n)、x3(n)表示,再分别将它们进行FFT(如果采样点数不满足2的整数幂,可以通过序列尾部加零满足)并画出各自的幅频特性曲线。
(4)利用DFT的方式计算下面两序列的线性卷积:
11
《数字信号处理》实验指导书 莆田学院电信系
x(n)1,2,1,1,2,1,1,2(n0)五、注意事项和要求
,
h(n)0,1,3,2,0。 (n0)与试验一《离散时间信号与系统的傅立叶分析》中注意事项和要求相同。
六、作业及预习要求
1.思考题:
(1)根据实验中三种不同信号的频谱图,说明参数的变化对信号频谱产生哪些影响? (2)基2 FFT相对于DFT在运算速度上有什么改进? 2.预习IIR数字滤波器设计。
七、参考书目
《数字信号处理》(第二版),丁玉美、高西全,西安电子科技大学出版社,2001年。
《MATLAB在数字信号处理中的应用》,薛年喜,清华大学出版社,2003年。
12
《数字信号处理》实验指导书 莆田学院电信系
实验五:IIR数字滤波器设计 学时安排:2学时
实验类别:验证性 实验要求:必做
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 一、教学目的和任务
1.熟悉用双线性变换法设计IIR数字滤波器的原理和方法; 2.了解用脉冲响应不变法设计IIR数字滤波器的原理和方法;
3.掌握双线性变换及脉冲响应不变法设计的滤波器的频域特性,了解双线性变换法及脉冲响应不变法的特点;
4.掌握数字滤波器的计算机仿真方法。
二、实验原理介绍
IIR数字滤波器的系统函数为z1的有理分式:
NbH(z)k0Nkz1
k1ak1z1设计IIR滤波器的系统函数,就是要确定H(z)的阶数N及分子分母多项式的系数ak和bk,使其H(ej)H(z)zej满足指定的频率特性。
由于模拟滤波器的设计有许多简单而严谨的设计公式和大量的图表可以利用,因此IIR滤波器设计的方法之一是:先设计一个合适的模拟滤波器,然后将模拟滤波器通过适当的变换转换成满足给定指标的数字滤波器。
1、Butterworth模拟低通滤波器
幅度平方函数: Ha(j)211c2N
其中,N为滤波器的阶数,c为通带截止频率。
13
《数字信号处理》实验指导书 莆田学院电信系
2.Chebyshev模拟低通滤波器
幅度平方函数:Ha(j)2211CN(2c )
3、脉冲响应不变法原理
用数字滤波器的单位脉冲响应序列h(n)逼近模拟滤波器的冲激响应ha(t),让h(n)正好等于
ha(t)的采样值,即:h(n)ha(nT)
其中,T为采样间隔。
如果以Ha(s)和H(z)分别表示ha(t)的拉氏变换及h(n)的Z变换,则:
ˆ(s)1HaT2Hsjk aTkH(z)zesT
14
《数字信号处理》实验指导书 莆田学院电信系
4、双线性变换法原理
双线性变换法是通过两次映射采用非线性频率压缩的方法,将整个频率轴上的频率范围压缩到 ±π/T之间,再用zesT转换到z平面上,从而使数字滤波器的频率响应与模拟滤波器的频率响应相似。
5、设计IIR数字滤波器的步骤
1)确定数字滤波器的通带频率、阻带频率,通带最大衰减和阻带最小衰减。 2)计算对应的模拟低通滤波器的频率。
3)确定模拟低通滤波器的阶数N和3dB截止频率c。 4)模拟低通滤波器的系统函数H(s)。
5)由H(s)经过反归一化、脉冲响应不变法和双线性变换法确定数字低通滤波器的系统函数H(z)。
6)设计其它形式的滤波器时,由模拟低通到所需类型滤波器的频率域变换直接得到。 6*、MATLAB中用于IIR数字滤波器设计的函数 1) 滤波器的特性分析
① Freqz函数:求解数字滤波器的频率响应
[h,w]=freqz(b,a,n):返回数字滤波器的n点复频率响应,输入参数b和a分别是滤波器系数的分子和分母向量;输出参数h是复频率响应,w是频率点。输入参数n默认是512。
Freqz(b,a,…):没有输出参数,直接在当前窗口中绘制频率响应的幅频响应和相频响应。 ② Freqs函数:求解模拟滤波器的频率响应
[h,w]=freqz(b,a,n):返回模拟滤波器的n点复频率响应,输入参数b和a分别是滤波器系数的分子和分母向量;输出参数h是复频率响应,w是频率点。输入参数n默认是512。
③ Abs、angle函数:分别用于从复频域响应数据中提取幅值信息和相位信息 ④ Zplane函数:绘制系统的零极点图
zplane(z,p):以单位圆为基准;z为系统的零点向量,图中用o表示;p为系统的极点向量,图中用x表示。
zplane(b,a):输入参数为系统传递函数的分子向量和分母向量。
15
《数字信号处理》实验指导书 莆田学院电信系
2) 确定滤波器最小阶数 函数 函数功能 估计Butterworth滤波器阶数 [n,wn]=Buttord(wp,ws,rp,rs) 型滤波器阶数 [n,wn]=Cheb1ord(wp,ws,rp,rs) 估计ChebyshevⅠ型滤波器阶数 [n,wn]=Cheb2ord(wp,ws,rp,rs) 估计ChebyshevⅡ
[n,wn]=Ellipord(wp,ws,rp,rs) 估计椭圆滤波器阶数 wp:归一化的通带截止频率; ws:归一化的阻带截止频率 rp:通带最大衰减量; rs:阻带最小衰减量 n:返回符合要求的滤波器阶数;
wn:返回滤波器的截止频率
3) 模拟低通滤波器的设计 函数 [z,p,k]=Buttap(n) [z,p,k]=Cheb1ap(n,rp) [z,p,k]=Cheb2ord(n,rs) [z,p,k]=Ellipap(n,rp,rs) [b,a]=Butter(n,wn,’s’) [b,a]=Cheby1(n,rp,wn,’s’) [b,a]=Cheby2(n,rp,wn,’s’) [b,a]=Ellip(n,rp,rs,wn,’s’)
4) 模拟滤波器的离散化
① Impinvar函数:模拟滤波器变换成数字滤波器的脉冲响应不变法
[bz,az]=impinvar(b,a,fs):将模拟滤波器(b,a)变换成数字滤波器(bz,az);输入参数fs是对模拟滤波器频率响应的采样,默认为1。
② bilinear函数:模拟滤波器转换为数字滤波器的双线性变换法 [zd,pd,kd]=bilinear(z,p,k,fs):将采样零极点模型表达的模拟滤波器转换为数字滤波器。列向量zd为零点向量,列向量pd为极点向量,kd为系统增益,fs是指定的采样频率。
[numd,dend]=bilinear(num,den,fs):将采用传递函数模型表达的模拟滤波器转换为数字滤波器。
[ad,bd,cd,dd]=bilinear(a,b,c,d,fs):将采用状态空间模型表达的模拟滤波器转换为数字滤波器。 5) 直接设计IIR数字滤波器 函数 [b,a]=Butter(n,wn) [b,a]=Cheby1(n,r,wn) [b,a]=Cheby2(n,r,wn) [b,a]=Ellip(n,rp,rs,wn) 函数功能 设计巴特沃斯滤波器 设计切比雪夫Ⅰ型滤波器,r指定通带内波纹大小 设计切比雪夫Ⅱ型滤波器,r指定通带内波纹大小 设计椭圆滤波器,rp指定通带内波纹最大衰减,rs指定通带内波纹的最小衰减 函数功能 返回Butterworth滤波器的零点、极点、增益 返回ChebyshevⅠ型滤波器的零点、极点、增益 返回ChebyshevⅡ型滤波器的零点、极点、增益 返回椭圆滤波器的零点、极点、增益 返回Butterworth滤波器的分子分母多项式的系数 返回ChebyshevⅠ型滤波器的分子分母多项式的系数 返回ChebyshevⅡ型滤波器的分子分母多项式的系数 返回椭圆滤波器的分子分母多项式的系数 wn:数字滤波器的截止频率;当wn是一个二元向量[w1,w2]时,返回一个2n阶的带通滤波器,通带为w1≤ ω ≤w2 。
返回滤波器的分子分母多项式的系数,b为分子系数向量、a为分母系数向量(降幂排列)。
三、实验仪器及设备
计算机、MATLAB软件。
16
《数字信号处理》实验指导书 莆田学院电信系
四、实验内容和步骤
1、实验内容
分别用脉冲响应不变法、双线性变换法及直接调用MATLAB设计函数设计一个Butterworth
低通滤波器。设计指标参数为:在通带内频率低于0.2时,最大衰减小于1dB;在阻带内0.3,频率区间上,最小衰减大于15dB。 2、实验步骤
1)复习有关Butterworth模拟滤波器设计和用脉冲响应不变法、双线性变换法设计IIR数字滤波器的内容。
2)按照实验内容编写滤波器仿真程序,完成滤波器的设计。
3)分别观察所设计数字滤波器的幅频特性曲线,检查是否满足要求,比较这两种方法的优缺点,并完成实验报告。
五、注意事项和要求
与试验一《离散时间信号与系统的傅立叶分析》中注意事项和要求相同。
六、作业及预习要求
思考题:
用双线性变换法设计数字滤波器过程中,变换公式s21zT1z11中T的取值,对设计结果
有无影响?为什么?
七、参考书目
《数字信号处理》(第二版),丁玉美、高西全,西安电子科技大学出版社,2001年。
《MATLAB在数字信号处理中的应用》,薛年喜,清华大学出版社,2003年。
17
《数字信号处理》实验指导书 莆田学院电信系
实验六:FIR数字滤波器的设计 学时安排:2学时
实验类别:设计性 实验要求:必做
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 一、教学目的和任务
1.掌握用窗函数法设计FIR 数字滤波器的原理和方法。 2.熟悉线性相位数字滤波器的特性。 3.了解各种窗函数对滤波特性的影响。 4.掌握对输入信号滤波的方法。
二、实验原理介绍
1.线性相位FIR DF的特性
FIR数字滤波器相对于IIR数字滤波器的最大优点是能够做到严格线性相位。当FIR滤波器具有严格的线性相位时,系统的单位脉冲响应h(n)满足下述条件:
h(n)h(N1n)
针对单位脉冲响应h(n)满足奇对称或偶对称,FIR滤波器的h(n)长度为奇数或偶数,线性相位FIR滤波器的幅频特性共分成四种情况:
18
《数字信号处理》实验指导书 莆田学院电信系
2.窗函数法设计FIR滤波器原理
设欲设计的滤波器的理想频率响应为Hd(e是一对傅式变换,因此有
j),单位脉冲响应为hd(n),hd(n)与Hd(ej)Hd(ej)12nhd(n)ejn
hd(n)Hd(ejj)ejnd
根据给定的Hd(e)求得的hd(n)一般是无限长的且是非因果的。为了得到一个因果的有
限长的滤波器h(n),最直接的方法是截断hd(n),或者说用一个窗口函数w(n)对hd(n)进行加窗处理:
h(n)hd(n)w(n)
h(n)成为实际设计FIR滤波器的单位脉冲响应,其频率响应为H(eN1j)为:
H(ej)h(n)en0jn
其中N为窗口w(n)的长度。窗口函数的形状和窗口长度N决定了窗函数法设计出的FIR滤波器的性能。
3.窗函数法设计线性相位FIR滤波器步骤
1)数字滤波器的性能要求:临界频率{ωk}、滤波器单位脉冲响应长度N;
2)根据性能要求,合理选择单位脉冲响应h(n)的奇偶对称性,从而确定理想频率响应
Hd(e
j)的幅频特性和相频特性;
19
《数字信号处理》实验指导书 莆田学院电信系
3)求理想单位脉冲响应hd(n)。在实际计算中,可对Hd(ej)按M(M远大于N)点等距离采样,并对其求IDFT得hM(n),用hM(n)代替hd(n);
4)选择适当的窗函数w(n),根据h(n)hd(n)w(n)求所需设计的FIR滤波器单位脉冲响应; 5)求H(ej),分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述设计过程,以得到满意的结果。 4.常见的窗函数
j窗函数的傅式变换W(ej)的主瓣决定了H(ej)过渡带宽。W(e)的旁瓣大小和多少决定
了H(ej)在通带和阻带范围内波动幅度,常用的几种窗函数有:
5.MATLAB中用于FIR滤波器设计的函数 1)MATLAB提供的窗函数 函数 Boxcar(N) Triang(N) Hanning(N) Hamming(N) Blackman(N) Kaiser(N,beta)
2)窗函数法设计FIR滤波器
①fir1函数:设计具有标准频率响应的FIR滤波器
B=fir1(n,wn):返回所设计的n阶低通FIR滤波器。b为滤波器的系数,wn为截止频率; B=fir1(n,wn,’high’):设计一个n阶高通的FIR数字滤波器; B=fir1(n,wn,’low’):设计一个n阶低通的FIR数字滤波器;
B=fir1(n,wn,’bandpass’):设计一个n阶带通的FIR数字滤波器;
B=fir1(n,wn,’stop’):设计一个n阶带阻的FIR数字滤波器;
B=fir1(n,wn,win):输入参数win用来指定所使用的窗函数的类型,默认为hamming窗; ②fir2函数:设计具有任意频率响应的FIR滤波器
B=fir2(n,f,a):设计一个n阶的FIR滤波器,其幅频响应向量由输入参数f和a来指定,其中f为频率点向量;
③kaiserord函数:估计采用凯塞窗设计的FIR滤波器的参数
20
函数功能 返回N点矩形窗函数 返回N点三角窗函数 返回N点汉宁窗函数 返回N点海明窗函数 返回N点布莱克曼窗函数 返回给定beta值时N点凯塞窗函数 《数字信号处理》实验指导书 莆田学院电信系
[n,wn,beta,type]=kaiserord(f,a,dev,fs):得到当采用凯塞窗设计FIR滤波器时所需要的有关凯塞窗的参数,包括阶数n、归一化截止频率wn、凯塞窗控制旁瓣的参数beta,以及传递给函数fir1用于指定滤波器类型的type。输入f是频带边缘频率向量;a是由f指定的各个频带上的幅值向量;dev指定各个通带或阻带上的最大输出误差。
三、实验仪器及设备
计算机
四、实验内容和步骤
1、实验内容
1)用升余弦窗设计一线性相位低通FIR数字滤波器,截止频率c4窗口长度N=15,rad。
33。要求在两种窗口长度情况下,分别求出h(n),打印出相应的幅频特性及相频特性曲线,观察3dB带宽和20dB带宽。总结窗口长度N对滤波特性的影响。
设计低通FIR数字滤波器时,一般以理想低通滤波特性为逼近函数Hd(ej),即:
Hd(ejjae)0ccj 其中:a1ccjajnN12dsinc(na)
hd(n)12Hd(e)ejn2ee(na)
2)n=33,c/4,用四种窗函数设计线性相位低通滤波器。绘制相应的幅频特性曲线,
观察3dB和20dB带宽以及阻带最小衰减,比较四种窗函数对滤波器特性的影响。 2.实验步骤
1)复习用窗函数法设计FIR数字滤波器一节内容, 阅读本实验原理, 掌握设计步骤
2)编写程序
① 编写能产生矩型窗、升余弦窗、改进升余弦窗和二阶升余弦窗的窗函数子程序。 ② 编写主程序。参考主程序框图如下图所示:
开始读入窗口长度N计算hd(n)调用窗函数子程序求w(n)计算h(n) = hd(n)w(n)调用子程序(函数)计算H(k) = DFT[h(n)]调用绘图子程序(函数)绘制H(k)幅度相位曲线结束
其中幅度特性要求用dB表示。
21
《数字信号处理》实验指导书 莆田学院电信系
五、注意事项和要求
实验报告要求:
1、严格按照学院的《学生实验报告》格式和内容要求书写,实验报告除程序和图件外只能手写,不能打印;实验报告内容不得雷同,否则,一律为零分。 2、简述实验目的和原理。
3、整理好经过运行并证明是正确的程序并且加上关键的注释,附上仿真图形。
4、按照实验步骤和要求,比较各种情况下的滤波性能,说明窗口长度N和窗函数类型对滤波特性的影响。
5、总结用窗函数法设计FIR滤波器的主要特点。
六、作业及预习要求
思考题:
如果没有给定h(n)的长度N,而是给定了通带边缘截止频率ωc和阻带临界频率ωp,以及相应的衰减,你能根据这些条件用窗函数法设计线性相位FIR低通滤波器吗?
七、参考书目
《数字信号处理》(第二版),丁玉美、高西全,西安电子科技大学出版社,2001年。
《MATLAB在数字信号处理中的应用》,薛年喜,清华大学出版社,2003年。
22
因篇幅问题不能全部显示,请点此查看更多更全内容