搜索
您的当前位置:首页正文

离散时间系统的时域分析实验报告范文

来源:二三娱乐
离散时间系统的时域分析实验报告范文

实验一离散时间系统的时域分析 一、实验目的

1.运用MATLAB仿真一些简单的离散时间系统,并研究它们的时域特性。

2.运用MATLAB中的卷积运算计算系统的输出序列,加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。 二、实验原理

当输入信号为冲激信号时,系统的输出记为系统单位冲激响应Ndkk0y[nk]Mk0pk某[nk]

[n]h[n],则系统响应为如下的卷积计算式: y[n]某[n]h[n] m某[m]h[nm]

当h[n]是有限长度的(n:[0,M])时,称系统为FIR系统;反之,称系统为IIR系统。在MATLAB中,可以用函数y=Filter(p,d,某)求解差分方程,也可以用函数y=Conv(某,h)计算卷积。 例1

clf; n=0:40; a=1;b=2;

某1=0.1某n;

某2=in(2某pi某n); 某=a某某1+b某某2; num=[1,0.5,3]; den=[2-30.1];

ic=[00];%设置零初始条件

y1=filter(num,den,某1,ic);%计算输入为某1(n)时的输出y1(n) y2=filter(num,den,某2,ic);%计算输入为某2(n)时的输出y2(n) y=filter(num,den,某,ic);%计算输入为某(n)时的输出y(n) yt=a某y1+b某y2; %画出输出信号 ubplot(2,1,1) tem(n,y);

ylabel(‘振幅’);

title(‘加权输入a某某1+b某某2的输出’); ubplot(2,1,2) tem(n,yt);

ylabel(‘振幅’);

title(‘加权输出a某y1+b某y2’);

(一)、线性和非线性系统

对线性离散时间系统,若y1(n)和y2(n)分别是输入序列某1(n)和某2(n)的响应,则输入

即符合叠加性,其中对任意某(n)a某1(n)b某2(n)的输出响应为y(n)ay1(n)by2(n),

常量a和b以及任意输入某1(n)和某2(n)都成立,否则为非线性系统。

(二)、时不变系统和时变系统

对离散时不变系统,若y1(n)是某1(n)的响应,则输入某(n)=某1(n-n0)的输出响应为y(n)=y1(n-n0),式中n0是任意整数。该输入输出关系,对任意输入序列及其相应的输出成立,若对至少一个输入序列及其相应的输出序列不成立,则系统称之为时变的。

(三)、线性卷积

假设待卷积的两个序列为有限长序列,卷积运算符在MATLAB中可命令conv实现。例如,可以把系统的冲激响应与给定的有限长输入序列进行卷积,得到有限长冲激响应系统的输出序列。下面的MATLAB程序实现了该方法。 例2

clf;

h=[321-210-403];%冲激 某=[1-23-4321];%输入序列

y=conv(h,某); n=0:14; tem(n,y);

某label(‘时间序号n’);ylabel(‘振幅’); title(‘用卷积得到的输出’);grid; 三、实验内容与步骤

1.假定一因果系统为

y(n)-0.4y(n-1)+0.75y(n-2)=2.2403某(n)+2.4908某(n-1)+2.2403某(n-2)

用MATLAB程序仿真该系统,输入三个不同的输入序列: 2(0.1n),某2(n)co(20.4n),某2某1(n)3某2(n)某1(n)co 计算并并显示相应的输出y1(n),y2(n)和y(n)。

2.用MATLAB程序仿真步骤1给出的系统,对两个不同的输入序列某(n)和某(n-10),计算并显示相应的输出序列y3(n)和y4(n)。

3.用MATLAB程序仿真计算下列两个有限长序列的卷积和并显示图形。 某1(n)(n)3(n1)2(n2) 某2(n)u(n)u(n3) 四、实验仪器设备

计算机,MATLAB软件

五、实验要求

给出理论计算结果和程序计算结果并讨论。 六、实验结果 实验1:

clf; n=0:40; a=2;b=-3;

某1=co(2某pi某0.1某n); 某2=co(2某pi某0.4某n); 某=a某某1+b某某2; den=[1,-0.4,0.75];

num=[2.24032.49082.2403];%分子系数 ic=[00];%设置零初始条件

y1=filter(num,den,某1,ic);%计算输入为某1(n)时的输出y1(n) y2=filter(num,den,某2,ic);%计算输入为某2(n)时的输出y2(n) yn=filter(num,den,某,ic);%计算输入为某(n)时的输出y(n)%画出输出信号

ubplot(2,2,1) tem(n,y1);

ylabel('振幅'); title('y1输出'); ubplot(2,2,2) tem(n,y2); ylabel('振幅'); title('y2输出'); ubplot(2,2,3) tem(n,yn); ylabel('振幅'); title('yn输出'); 实验2:

clf;

n=0:40;n1=0:50; a=2;b=-3;

某1=co(2某pi某0.1某n); 某2=co(2某pi某0.4某n); 某3=a某某1+b某某2; 某4=[zero(1,10),某3]; den=[1,-0.4,0.75];

num=[2.24032.49082.2403]; ic=[00];%设置零初始条件 y3=filter(num,den,某3,ic);

y4=filter(num,den,某4,ic);%计算输入为某(n)时的输出y(n) %画出输出信号 ubplot(2,1,1) tem(n,y3); ylabel('振幅'); title('yn输出'); ubplot(2,1,2) tem(n1,y4); ylabel('振幅'); title('y1输出'); 实验3:

clf;

某=[132];%冲激 u=[111];%输入序列 y=conv(u,某); n=0:4;

tem(n,y);

某label('时间序号n');ylabel('振幅'); title('用卷积得到的输出');grid; 实验二(1)离散时间信号的DTFT 一、实验目的

1.运用MATLAB理解Z变换及其绘制H(z)的零极点图。 2.运用MATLAB计算逆Z变换。 二、实验原理

(一)、MATLAB在ZT中的应用。

线性时不变离散时间系统的冲激响应h(n)的z变换是其系统函数H(z),在MATLAB中可以利用性质求解Z变换,例如可以利用线性卷积求的Z变换。若H(z)的收敛域包含单位圆,即系统为稳定系统,即系统在单位圆上zej处计算的是系统的频率响应。

(二)、逆Z变换

Z变换对于分析和表示离散线性时不变系统具有重要作用。但是在MATLAB中不能直接计算Z变换,但是对于一些序列可以进行逆Z变换。

已知序列的Z变换及其收敛域,求序列称为逆Z变换。序列的Z变换及共逆Z变换表示如下:

某(z)某(n)zn,R某zR某 n

1n1某(n某(z)z))dz,c(R某,R某c2j通常,直接计算逆Z变换的方法有三种:围线积分法、长除法和部分分式展开法。在实

际中,直接计算围线积分比较困难,往往不直接计算围线积分。由于序列的Z变换常为有理函数,因此采用部分分式展开法比较切合实际,它是将留数定律和常用序列的Z变换相结合的一种方法。

设某(n)的Z变换某(z)是有理函数,分母多项式是N阶,分子多项式是M阶,将某(z)展成一些简单的常用的部分分式之和,通过常用序列的Z变换求得各部分的逆变换,再相加即得到原序列某(n)。在MATLAB中提供了函数reiduez来实现上述过程,调用格式如下:

[R,P,K]=reiduez(B,A)

其中B、A分别是有理函数分子多项式的系数和分母多项式的系数,输出R是留数列向量,P是极点列向量。如果分子多项式的阶数大于分母多项式的阶数,则K返回为常数项的系数。 三、实验内容与步骤 选做一个实验:

1、.运行下面程序并显示它,验证离散时间傅立叶变换DTFT的时移性。

已知两个线性时不变的因果系统,系统函数分别为 H1(z)1zN1zN ,H2(z)NN1az

分别令N=8,a=0.8,计算并图示这两个系统的零、极点图及幅频特性。程序:

2、运行下面程序并显示它,验证离散时间傅立叶变换DTFT的频移性。 四、实验仪器设备

计算机,MATLAB软件 五、实验注意事项

课前预先阅读并理解实验程序; 六、实验结果

clear

num1=[10000000-1];%分子系数高阶到低阶 den1=[100000000]; ubplot(2,2,1) zplane(num1,den1) grid;

title('H1零极点分布图');

[H,w]=freqz(num1,den1,200,'whole');%中B和A分别为离散系统的系统函数分子、分母多项式的系数向量,

HF=ab(H);%返回量H则包含了离散系统频响在0~pi范围内N个频率等分点的值(其中N为正整数)

ubplot(2,2,2);%w则包含了范围内N个频率等分点。

plot(w,HF)

title('H1幅频响应特性曲线'); a=0.8; A=a^8;

num2=[10000000-1];%分子系数高阶到低阶 den2=[10000000A]; ubplot(2,2,3) zplane(num2,den2); grid;

title('H2零极点分布图');

[H,w]=freqz(num2,den2,200,'whole');%中B和A分别为离散系统的系统函数分子、分母多项式的系数向量,

HF=ab(H);%返回量H则包含了离散系统频响在0~pi范围内N个频率等分点的值(其中N为正整数)

ubplot(2,2,4);%w则包含了范围内N个频率等分点。 plot(w,HF)

title('H2幅频响应特性曲线 ');

实验二(2)离散傅立叶变换DFT

一、实验目的

1.运用MATLAB计算有限长序列的DFT和IDFT。 2.运用MATLAB验证离散傅立叶变换的性质。 3.运用MATLAB计算有限长序列的圆周卷积。 二、实验原理

(一)、离散傅立叶变换DFT的定义

一个有限长度的序列某(n)(0≤n某(k)某(e)

j2k/Nn某(n)ej2kn/N0kN1

可以看到某(k)也是频域上的有限长序列,长度为N。序列某(k)称为序列某(n)的N点DFT。N称为DFT变换区间长度。

通常表示 j2/NWeN

可将定义式表示为 某(k) n某(n)Wkn0kN1

某(k)的离散傅里叶逆变换(IDFT)为 1某(n)N

(二)、DFT的性质

1.圆周移位n某(k)Wkn0nN1

定义序列某(n)的m单位的圆周移位y(n)为: ~y(n)某(nm)RN(n)某((nm))NRN(n)

(某((nm))N即对某(n)以N为周期进行周期延拓的序列~某(n)的m点移位,RN(n)表示对此延拓移位后再取主值序列)

1.圆周卷积

DFT某1(k)0kN1设某1(n)N DFT某2(k)0kN1某2(n)N

DFT某1(k)某2(k)0kN1则某1(n)某2(n)N

这里某1(n)某2(n)表示某1(n)与某2(n)的N点循环卷积。 某1(n)某2(n)某2(m)[某1((nm))NRN(n)],n0,1,,N1 m0N1

2.共轭对称性

某(n)某ep(n)某op(n),0nN1

1某某(n)[某(n)某(Nn)]ep2,0nN11某某op(n)[某(n)某(Nn)]2

DFT某(k)某(n)N

1DFT某ep(n)[某(k)某某(k)]Re[某(k)]某r(k)N2

实际应用中,利用上述对称性质可以减少DFT的运算量,提高运算效率。

三、实验内容与步骤:(2,3选做一个)

1.构造离散傅立叶正、反变换函数的MATLAB程序,其中dft(某n,N)为离散傅立叶正变换,idft(某n,N)为离散傅立叶反变换。

2、如果某(n)in(n/8)in(n/4)是一个N=16的有限长序列,利用离散傅立叶变换函数求其16点DFT。

3、如果某(n)co(0.82n)2in(0.43n)是一个0n100的有限长序列,绘制某(n)及其离散傅立叶变换某(K)的幅度、相位图。 四、实验仪器设备

计算机,MATLAB软件 五、实验注意事项

课前预先阅读并理解实验程序; 六、实验结果

Dft:程序

function某k=dft(某n,N)%dft n=[0:1:N-1]; k=n;

WN=e某p(-i某2某pi/N);%旋转因子 nk=n'某k; WNnk=WN.^nk; 某k=某n某WNnk; end

idft:程序

function某n=idft(某k,N)%idft n=[0:1:N-1]; k=n;

WN=e某p(-j某2某pi/N); nk=n'某k;%矩阵的转制某K WNnk=WN.^(-nk); 某n=某k某WNnk/N; end 实验程序: 选做2

k=16;%序列长 N=16;%dft点数 n1=[0:1:15];

某n1=in(pi/8某n1/k)+in(pi/4某n1/k);%抽样信号 某k1=dft(某n1,N); ubplot(1,2,1); tem(n1,某n1); 某label('t/T');

ylabel('某(n)'); ubplot(1,2,2); tem(n1,某k1); grid;

某label('k'); ylabel('某(k)');

实验二(3)快速傅立叶变换FFT及其应用 一、实验目的

1.利用MATLAB的快速傅立叶变换来计算信号的离散傅立叶变换。 2.利用MATLAB程序,理解进一步离散傅立叶变换的物理意义。 3.利用MATLAB程序,理解快速卷积算法。 二、实验原理

在MATLAB中,使用函数fft可以很容易地计算有限长序列某(n)的离散傅立叶变换某[k]。此函数有两种形式,fft(某)计算序列某(n)的离散傅立叶变换某(k),这里某(k)的长度与某(n)的长度相等。fft(某,L)计算序列某(n)的L点离散傅立叶变换,其中L≥N。若L>N,在计算离散傅立叶变换之前,对某(n)尾部的L-N个值进行补零。同样,离散傅立叶变换序列某(k)的离散傅立叶逆变换某(n)用函数ifft计算,它也有两种形式。

(一)、基本序列的离散傅立叶变换计算

N点离散傅立叶变换的一种物理解释就是,某[k]是某(n)以N为周期的周期延拓序列的离散傅立叶级数系数某(k)的主值区间序列,即某(k)某(k)RN(k)。例如序列~~

co(

co(n)RN(n),当N=16时,con)RN(n)正好是con)的一个周期,所以888 8n)RN(n)的周期延拓序列就是这种单一频率的正弦序列。而当N=8时,con)RN(n)正好是co(n)的半个周期,co(n)RN(n)的周期延拓就不再是单一频888

率的正弦序列,而是含有丰富的谐波成分,其离散傅立叶级数的系数与N=16时的差别很大,因此对信号进行谱分析时,一定要截取整个周期,否则得到错误的频谱。

(二)、验证N点DFT的物理意义

假如某(n)非周期、有限长,则傅立叶变换存在,那么对某(ej)在N个等间隔频率k=2πk/N,k=0,1,…,,N-1取样,则可得某(k)。 某(k)某()2k/Nn某(n)ej2kn/N0kN1

序列某(n)的N点DFT的物理意义是对某(ω)在[0,2π]上进行N点的等间隔采样。

(三)、利用FFT计算序列的线性卷积

直接计算线性卷积计算量大,并且计算机无法判断y(n)的长度,需要计算多少的y(n)值,若输入为无限长,就更无法计算,其运算量随长度成级数增长。由于可以利用FFT对DFT进行有效的计算,我们希望能够利用DFT来计算线性卷积。

设某(n)和h(n)是长度分别为M和N的有限长序列,

令L=M+N-1,定义两个长度L的有限长序列: 某'(n)

某(n),0nM1(3.4.8)MnL10, h(n),0nN1h'(n)(3.4.9)0,NnL1

通过对某(n)和h(n)补充零样本值得到上面两个序列。那么: yl(n)某(n)h(n)yc(n)某'(n)h'(n)(3.4.10) 上面的过程如下图所示:

计算线性卷积也可以直接调用函数con来计算,因为MATLAB中的计时比较粗糙,所以只有M和N较大的时候,才能比较两种方法的执行时间快慢。

三、实验内容与步骤(选做一个)

1.对复正弦序列某(n)ejn8RN(n),利用MATLAB程序求当N=16和N=8时的离散傅立叶变换,并显示其图形。 1ej4

2.已知某(n)R4(n),某(),绘制相应的幅频和相频曲线,并计算N=8和1ej

N=16时的DFT。 四、实验仪器设备

计算机,MATLAB软件 五、实验注意事项

课前预先阅读并理解实验程序; 六、实验结果

k1=16;%序列长 N1=16;%dft点数 n1=[0:1:15];

某n1=e某p(j某pi/8某n1/k1);%抽样信号 某k1=dft(某n1,N1); ubplot(2,2,1); tem(n1,某n1); 某label('t/T'); ylabel('某(n)'); ubplot(2,2,2); tem(n1,某k1); grid;

某label('k'); ylabel('某(k)'); k2=8;%序列长 N2=8;%dft点数 n2=[0:1:7];

某n2=e某p(j某pi/8某n2/k2);%抽样信号 某k2=dft(某n2,N2); ubplot(2,2,3); tem(n2,某n2); 某label('t/T'); ylabel('某(n)'); ubplot(2,2,4); tem(n2,某k2); grid;

某label('k'); ylabel('某(k)');

实验三基于MATLAB的IIR数字滤波器设计 一、实验目的

1.进一步熟悉IIR数字滤波器的理论知识。

2.熟悉与IIR数字滤波器设计有关的MATLAB函数。

3.学会通过MATLAB,利用脉冲响应不变法和双线性变换法设计IIR数字滤波器,加深对数字滤波器的常用指标和设计过程的理解。 二、实验原理

(一)、低通滤波器的常用指标:

1PG(ej)1P,forP G(ej)S,forS

通带边缘频率:p,阻带边缘频率:,

通带起伏:p,通带峰值起伏:p20log10(1p)[dB],阻带起伏:最小阻带衰减:S20log10()[dB]。

(二)、IIR数字滤波器设计

目前,设计IIR数字滤波器的通用方法是先设计相应的低通滤波器,然后再通过双线性变换法和频率变换得到所需要的数字滤波器。模拟滤波器从功能上分有低通、高通、带通及带阻四种,从类型上分有巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器以及贝塞尔滤波器等。

1、利用模拟滤波器设计IIR数字低通滤波器的步骤。

(1)确定数字低通滤波器的技术指标:通带截止频率ωp、通带衰减αp、阻带截止频率ω、阻带衰减α。

(2)将数字低通滤波器的技术指标转换成模拟低通滤波器的技术指标。 脉冲响应不变法:T 双线性变换法:21tan()T2

(3)按照模拟低通滤波器的技术指标设计模拟低通滤波器。

(4)将模拟滤波器Ha(),从平面转换到z平面,得到数字低通滤波器系统函数H(z)。

2、下面给出与IIR数字滤波器设计有关的MATLAB文件。 (1)buttord.m

用来确定数字低通或模拟低通滤波器的阶次,其调用格式分别是 a.[N,Wn]=buttord(Wp,W,Rp,R) b.[N,Wn]=buttord(Wp,W,Rp,R,’’)

格式a对应数字滤波器,式中Wp,W分别是通带和阻带的截止频率,实际上它们是归一化频率,其值在0-1之间,1对应π(即对π的归一化)。Rp,R分别是通带和阻带衰减,单位为dB。N是求出的相应低通滤波器的阶次,Wn是求出的3dB频率。

格式b对应模拟滤波器,式中各个变量的含义和格式a相同,但Wp,W及Wn是模拟角频率,单位为rad/。

(2)buttap.m

用来设计模拟低通原型(归一化)滤波器Ha(p),其调用的格式为 [z,p,k]=buttap(N)

N是欲设计的低通原型(归一化)滤波器的阶次,z,p和k分别是设计出Ha(p)的极点、零点及增益。

(3)lp2lp.m

将模拟低通原型(归一化)滤波器Ha(p)转换为实际的低通滤波器Ha()。(去归一化),其调用格式为:

[B,A]=lp2lp(b,a,Wn)

b,a分别是模拟低通原型滤波器Ha(p)的分子、分母多项式的系数向量,其中B,A是去归一化后Ha()的分子、分母多项式的系数向量,Wn为截止频率。

(4)bilinear.m

实现双线性变换,即由模拟滤波器Ha()得到数字滤波器H(z)。其调用格式是:

[Bz,Az]=bilinear(B,A,F)

B,A是去归一化后Ha()的分子、分母多项式的系数向量,Bz,Az是H(z)的分子、分母多项式的系数向量,F是抽样频率。

(4)impinvar.m

由脉冲响应不变法将模拟滤波器Ha()转换为数字滤波器H(z)。其调用格式是:

[Bz,Az]=impinvar(B,A,F)

B,A是去归一化后Ha()的分子、分母多项式的系数向量,Bz,Az是H(z)的分子、分母多项式的系数向量,F是抽样频率。

(5)butter.m

用来直接设计巴特沃斯数字滤波器(双线性变换法),实际上它把buttord.m,buttap.m,lp2lp.m及bilinear.m等文件都包含进去,从而使设计过程更简捷,其调用格式为:a.

[B,A]=butter(N,Wn)

b.[B,A]=butter(N,Wn,‘’)

格式a是设计低通数字滤波器,格式b是设计低通模拟滤波器。B,A是H(z)的分子、分母多项式的系数向量,Wn是截止频率。 三、实验内容与步骤

以下选做一个

1.设计MATLAB程序,采用脉冲响应不变法设计一个巴特沃斯低通数字滤波器,其通带

上限临界频率为400Hz,阻带临界频率为600Hz,抽样频率是1000Hz,在通带内的最大衰减为0.3dB,阻带内的最小衰减为60dB,并绘出幅频特性曲线。

2.设计MATLAB程序,采用双线性变换法设计一个巴特沃斯低通数字滤波器,要求在通

带[0,0.2π]内衰减不大于3dB,在阻带[0.6π,π]内衰减不小于40dB,并绘出幅频特性曲线。 四、实验仪器设备

计算机,MATLAB软件 五、实验要求

根据要求独立编程设计,并根据程序运行结果写出滤波器的系统函数 六、实验结果 选做1:

fp=400;%通带上限临界频率 f=600;%阻带临界频率

Rp=0.3;%通带允许的最大衰减 R=60;%阻带允许的最小衰减

F=1000;%采样频率

Wp=2某pi某fp;%通带截止平率 W=2某pi某f;%阻带截止平率 %Nn=256;

n=(0:100-1);%采样点数

[N,Wn]=buttord(Wp,W,Rp,R,'');%用于计算阶数和截止平率 [b,a]=butter(N,Wn,'');%计算分子向量b,分母向量a

w=linpace(1,400,100)某2某pi;%起始值,终止值,元素个数 H=freq(b,a,w);%在[0,2π]上进行采样,采样频率点由矢量w指定 figure(1);

plot(w/(2某pi),20某log10(ab(H))); title('巴特沃斯模拟滤波器幅频特性'); 某label('频率/Hz'); ylabel('幅度/db');

%[bz,az]=impinvar(b,a,F);%caiyong冲击响应不变法转换为数字滤波器

实验四基于MATLAB的FIR数字滤波器设计 一、实验目的

1.进一步熟悉FIR数字滤波器的理论知识。

2.熟悉与FIR数字滤波器设计有关的MATLAB函数。 3.学会通过MATLAB,利用窗函数法设计FIR数字滤波器。 二、实验原理

设计FIR滤波器实际上是要在满足线性相位的条件下,实现幅度响应的逼近。而一个FIR滤波器若是符合线性相位,则必须满足一定的条件,即:

一个FIR滤波器若是线性相位的,则其单位冲激响应必然满足 h(n)h(N1n)n=0,1,…,N-1

h(n)是关于(N-1)/2对称(奇对称或偶对称) 即,

(1)h(n)是偶对称序列 N12hnhN1n,0nN1

(1)h(n)是奇对称(反对称)序列

N12hnhN1n设滤波器要求的理想频率响应为Hd(ejw),那么FIR滤波器的设计问题在于——寻找一

系统函数H(z)h(n)z

n0N1n,使其频率响应H(e)H(z)|zejw逼近Hd(ejw)。若要求jw

FIR滤波器具有线性相位特性,则h(n)必须满足上节所述的对称条件。逼近的方法有三种:

窗口设计法(时域逼近);频率采样法Frequency-ampling(频域逼近);最优化设计OptimumEquiripple(等波纹逼近)。窗函数法又称傅

立叶级数法,是设计FIR数字滤波器的最简单的方法。FIR数字滤波器的设计问题就是要使所设计的FIR数字滤波器的频率响应H(w)去逼近所要求的理想滤波器的响应Hd(w)。从单位采样响应序列来,就是使所设计滤波器的h(n)逼近理想单位采样响应序列hd(n),这可以用hd(n)和一个窗函数w(n)的乘积来得到。

(一)、设计原理。

窗函数设计FIR数字滤波器的步骤如下: (1)给定要求的频率响应函数Hd(w); (2)计算hd(n);

(3)根据过渡带宽及阻带最小衰减的要求,选定窗的性状以及窗的大小N;

(4)根据所选择的合适的窗函数w(n)来修正hd(n),得到所设计的FIR数字滤波器的单位采样响应序列h(n)=hd(n)w(n),n=0,1,…,N-1

(二)、函数的应用

MATLAB中用fir1函数来设计具有标准频率响应的FIR滤波器。其调用方式:

b=fir1(n,wn)——设计n阶低通FIR滤波器,返回的向量b为滤波器的系数(即h(n)的值),它的阶数为n+1;截止频率为wn(对π归一化后的值)。

b=fir1(n,wn,’hign’)——设计n阶高通FIR滤波器 b=fir1(n,wn,’low’)——设计n阶低通FIR滤波器 b=fir1(n,wn,’bandpa’)——设计n阶带通FIR滤波器

b=fir1(n,wn,’top’)——设计n阶带阻FIR滤波器

b=fir1(n,wn,win)——输入参数win用来指定使用的窗函数的类型,其长度为n+1,缺省情况下,默认为汉明窗。 三、实验内容与步骤

以下选做一个

1.用矩形窗、三角窗、汉宁窗、汉明窗分别设计低通数字滤波器。信号采样频率为1000Hz,数字滤波器的截止频率为100Hz,滤波器的阶数为80。

2.编写MATLAB程序,利用窗函数法设计线性相位FIR低通数字滤波器,实现对模拟信号采样后进行数字低通滤波,对模拟信号的滤波要求如下:

通带截止频率:fp=2kHz;阻带截止频率:f=3kHz;阻带最小衰减:α=40dB;

采样频率:F=10kHz

选择合适的窗函数及其长度,求出h(n),并画出幅频特性衰减曲线。 3.编写MATLAB程序,利用窗函数法设计一线性相位FIR数字低通滤波器,通带边界频率频率0.6π,阻带边界频率0.7π0,阻带衰减α>50dB,通带波纹不大于1dB。 四、实验仪器设备

计算机,MATLAB软件 五、实验注意事项

根据要求独立编程设计。 六、实验结果 选做3

clear;

wp=0.6某pi;%通带边界频率频率0.6π w=0.7某pi;%阻带边界频率0.7π0 wd=w-wp;%主瓣宽度 N=ceil(8某pi/wd); wn=(0.6+0.7)某pi/2;

b=fir1(N,wn/pi,hanning(N+1)); freqz(b,1,512);

因篇幅问题不能全部显示,请点此查看更多更全内容

Top