离散时间系统的时域分析实验报告.docx
- 文档编号:11513738
- 上传时间:2023-03-02
- 格式:DOCX
- 页数:26
- 大小:270.24KB
离散时间系统的时域分析实验报告.docx
《离散时间系统的时域分析实验报告.docx》由会员分享,可在线阅读,更多相关《离散时间系统的时域分析实验报告.docx(26页珍藏版)》请在冰豆网上搜索。
离散时间系统的时域分析实验报告
Forpersonaluseonlyinstudyandresearch;notfor
commercialuse
蒆实验一离散时间系统的时域分析
蒄一、实验目的
艿1.运用MATLAB仿真一些简单的离散时间系统,并研究它们的时域特性。
袇2.运用MATLAB中的卷积运算计算系统的输出序列,加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。
薆二、实验原理
薁离散时间系统其输入、输出关系可用以下差分方程描述:
羁当输入信号为冲激信号时,系统的输出记为系统单位冲激响应
薆、;[n]—;h[n],则系统响应为如下的卷积计算式:
蚆当h[n]是有限长度的(n:
[0,M])时,称系统为FIR系统;反之,称系统为IIR系统。
在MATLAB中,可以用函数y=Filter(p,d,x)求解差分方程,也可以用函数y=Conv(x,h)计算卷积。
羂例1
莈clf;
蚈n=0:
40;
螆a=1;b=2;
莂x1=0.1*n;
膀x2=sin(2*pi*n);
莇x=a*x1+b*x2;
祎num=[1,0.5,3];
螃den=[2-30.1];
薈ic=[00];%设置零初始条件
膆y1=filter(num,den,x1,ic);%
羆y2=filter(num,den,x2,ic);%
膄y=filter(num,den,x,ic);%
计算输入为x1(n)时的输出y1(n)
计算输入为x2(n)时的输出y2(n)
计算输入为x(n)时的输出y(n)
芀yt=a*y1+b*y2;
腿%画出输出信号
羅subplot(2,1,1)
芁stem(n,y);
肂ylabel('振幅');
羈title('加权输入a*x1+b*x2的输出');
肅subplot(2,1,2)
蚂stem(n,yt);
蒀ylabel('振幅');
螇title('加权输出a*y1+b*y2');
膅
(一)、线性和非线性系统
肃对线性离散时间系统,若yNn)和y2(n)分别是输入序列X!
(n)和x2(n)的响应,则输
入x(n)二ax,n)•bx2(n)的输出响应为y(n)=ay!
(n)•by?
(n),即符合叠加性,其中对任
意常量a和b以及任意输入xdn)和x2(n)都成立,否则为非线性系统。
膂(—二)、时不变系统和时变系统
薆对离散时不变系统,若yjn)是x,n)的响应,则输入x(n)=x1(n-nO)的输出响应为
y(n)=y1(n-n0),式中nO是任意整数。
该输入输出关系,对任意输入序列及其相应的输出成
立,若对至少一个输入序列及其相应的输出序列不成立,则系统称之为时变的。
芅(三)、线性卷积
蒄假设待卷积的两个序列为有限长序列,卷积运算符在MATLAB^可命令conv实现。
例如,可以把系统的冲激响应与给定的有限长输入序列进行卷积,得到有限长冲激响应系统
的输出序列。
下面的MATLAB^序实现了该方法。
虿例2
蕿
elf;
莅
h=[321-2
10-403];%
冲激
蚀
x=[1-23-4
321];%
输入序列
莁
y=conv(h,x);
莇
n=0:
14;
蒅
stem(n,y);
肁
xlabel(
时间序号n);ylabel(
'振幅’
衿
title(
'用卷积得到的输出’);
grid;
肆三、实验内容与步骤
薅1.假定一因果系统为
蒂y(n)-0.4y(n-1)+0.75y(n-2)=2.2403x(n)+2.4908x(n-1)+2.2403x(n-2)
薁用MATLAB程序仿真该系统,输入三个不同的输入序列:
腿x1(n)=。
0即0.1n)x2(n)=cos(2兀0.4n)x=2x,n)—3x2(n)
袃2.用MATLAB程序仿真步骤1给出的系统,对两个不同的输入序列x(n)和x(n-10),计
算并显示相应的输出序列y3(n)和y4(n)。
罿3.用MATLAB程序仿真计算下列两个有限长序列的卷积和并显示图形。
袈四、实验仪器设备
蚄计算机,MATLAB^件
芄五、实验要求
蚁给出理论计算结果和程序计算结果并讨论。
蚇六、实验结果
螄实验1:
莁clf;
腿n=0:
40;
蒆a=2;b=-3;
袄x1=cos(2*pi*0.1*n);
螂x2=cos(2*pi*0.4*n);
袁x=a*x1+b*x2;
葿den=[1,-0.4,0.75];
羄num=[2.24032.49082.2403];%分子系数
膃ic=[00];%设置零初始条件
莈y1=filter(num,den,x1,ic);%计算输入为x1(n)时的输出y1(n)
芈y2=filter(num,den,x2,ic);%计算输入为x2(n)时的输出y2(n)
肄yn=filter(num,den,x,ic);%计算输入为x(n)时的输出y(n)%画出输出信号
wsubpof(22二)-lsCDmpy」)八邇y_abe_(-^昴-)八遷E_e(yl鸯圧)翻subpof(222) 爵subpof(223)^sCDmpyn)八端y_abe_(-^昴-)- y爺圧 出E_e(yn鸯圧-= 潯料煤2 ac-f八 驚nup4arMU0ul0八 琳auNbuo? Wxv-Hcos(2*pi*0」*n)八 *X2ucos(2*pi*0.4*n)八 晡X3ua*xl+b*x2八 淞x4HNeros? 10)yX3"mdenuu一O.4O.75K wnumH_2.24032.49082.2403" 荿ic=[O0];%设置零初始条件 薃y3=filter(num,den,x3,ic); 蒁y4=filter(num,den,x4,ic);%计算输入为x(n)时的输出y(n) 薀%画出输出信号 膈subplot(2,1,1) 蚃stem(n,y3); 袂ylabel('振幅'); 节title('yn输出'); 羇subplot(2,1,2) 羇stem(n1,y4); 芃ylabel('振幅'); 蝿title('y1输出'); JJ? q9 Q G e 6® A jaS I y帝刖出 201111— 40 □5W152025303540 I|111|LI|lI ¥甲? TTT5ci-3. ,A •< 1 r%a 466 b” 111111 屮输出 ^0iiiiiiiiiI ”g111111111 05101520253C354045SO yT输出 -20■O- 罿实验3: 肇clf; 蚃x=[132];%冲激 蒁u=[111];%输入序列 螈y=conv(u,x); 腿n=0: 4; 肄stem(n,y); 衿xlabel('时间序号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)的收敛域包含单位圆,即系统为稳定系统,即系统在单位圆上z处计算的是系统的频率响应。 艿(二八逆Z变换 莆Z变换对于分析和表示离散线性时不变系统具有重要作用。 但是在MATLAB中不能直 接计算Z变换,但是对于一些序列可以进行逆Z变换。 肃已知序列的Z变换及其收敛域,求序列称为逆Z变换。 序列的Z变换及共逆Z变换 表示如下: 螁通常,直接计算逆Z变换的方法有三种: 围线积分法、长除法和部分分式展开法。 在实际中,直接计算围线积分比较困难,往往不直接计算围线积分。 由于序列的Z变换常为有 理函数,因此采用部分分式展开法比较切合实际,它是将留数定律和常用序列的Z变换相 结合的一种方法。 肇设x(n)的Z变换X(z)是有理函数,分母多项式是N阶,分子多项式是M阶,将X(z)展成一些简单的常用的部分分式之和,通过常用序列的Z变换求得各部分的逆变换,再相加 即得到原序列x(n)。 在MATLAB中提供了函数residuez来实现上述过程,调用格式如下: 蒆[R,P,K]=residuez(B,A) 蒄其中B、A分别是有理函数分子多项式的系数和分母多项式的系数,输出R是留数列向量, P是极点列向量。 如果分子多项式的阶数大于分母多项式的阶数,则K返回为常数项的系数。 艿三、实验内容与步骤 袇选做一个实验: 薆1、•运行下面程序并显示它,验证离散时间傅立叶变换DTFT的时移性。 薁已知两个线性时不变的因果系统,系统函数分别为 1_z小 Hi⑵亠厂,")=1^ 薆分别令N=8,a=0.8,计算并图示这两个系统的零、极点图及幅频特性。 蚆程序: 羂2、运行下面程序并显示它,验证离散时间傅立叶变换DTFT的频移性。 莈四、实验仪器设备蚈计算机,MATLAB^件 螆五、实验注意事项 莂课前预先阅读并理解实验程序; 膀六、实验结果莇clear 分子系数高阶到低阶 祎num仁[10000000-1];%螃den1=[100000000]; 薈subplot(2,2,1) 膆zplane(num1,den1) 羆grid; 膄title('H1零极点分布图'); 芀[H,w]=freqz(num1,den1,200,'whole');%中B和A分别为离散系统的系统函数分子、分 母多项式的系数向量, 腿HF=abs(H);% N个频率等分点的值(其中N为正整数) 羅subplot(2,2,2);%w 芁plot(w,HF) 肂title('H1幅频响应特性曲线'); 羈a=0.8; 肅A=aA8; 蚂num2=[10000000-1];% 蒀den2=[10000000A]; 螇subplot(2,2,3) 膅zplane(num2,den2); 肃grid; 膂title('H2零极点分布图'); 薆[H,w]=freqz(num2,den2,200,'whole');% 母多项式的系数向量, 芅HF=abs(H);% N个频率等分点的值(其中N为正整数) 蒄subplot(2,2,4);%w 虿plot(w,HF) 返回量H则包含了离散系统频响在O~pi范围内 则包含了范围内N个频率等分点。 分子系数高阶到低阶 中B和A分别为离散系统的系统函数分子、分 返回量H则包含了离散系统频响在O~pi范围内 则包含了范围内N个频率等分点。 蕿title('H2幅频响应特性曲线'); 莅实验二 (2)离散傅立叶变换DFT 蚀一、实验目的莁1.运用MATLAB计算有限长序列的DFT和IDFT。 莇2.运用MATLAB验证离散傅立叶变换的性质。 蒅3.运用MATLAB计算有限长序列的圆周卷积。 肁二、实验原理 衿 (一)、离散傅立叶变换DFT的定义 肆一个有限长度的序列x(n)(OW*N-1),它的DFTX(k)可以通过在3轴(0••: : : 2二)上对X(eb)均匀采样得到 薅可以看到X(k)也是频域上的有限长序列,长度为N。 序列X(k)称为序列x(n)的N点DFT。 N称为DFT变换区间长度。 蒂通常表示 薁可将定义式表示为 腿X(k)的离散傅里叶逆变换(IDFT)为 薅(二八DFT的性质 袃1.圆周移位 罿定义序列x(n)的m单位的圆周移位y(n)为: 袈(x((n'm))N即对x(n)以N为周期进行周期延拓的序列~(n)的m点移位,Rn(n)表示对 芄设x^n),DFT>X,(k)0^k」N-1 N (i)IoIV |鬲+空)I fl 「hi』亦亦恤 蚇这里x1(n)Mx2(n)表示x1(n)与x2(n)的N点循环卷积。 3. 4.螄共轭对称性 莁实际应用中,利用上述对称性质可以减少DFT的运算量,提高运算效率。 腿三、实验内容与步骤: (2,3选做一个) 蒆1.构造离散傅立叶正、反变换函数的MATLAB程序,其中dft(xn,N)为离散傅立叶正变 换,idft(xn,N)为离散傅立叶反变换。 袄2、如果x(n)二sin(n二/8)sin(n二/4)是一个N=16的有限长序列,利用离散傅立叶变换 函数求其16点DFT。 螂3、如果x(n)=cos(0.82二n)•2sin(0.43二n)是一个0_n_100的有限长序列,绘制x(n)及其离散傅立叶变换X(K)的幅度、相位图。 袁四、实验仪器设备 葿计算机,MATLAB^件 羄五、实验注意事项 膃课前预先阅读并理解实验程序; 莈六、实验结果 芈Dft: 程序 肄functionxk=dft(xn,N)%dft 薄n=[0: 1: N-1]; 肀k=n; 羆WN=exp(-i*2*pi/N);%旋转因子 肄nk=n'*k; 羄WNnk=WN.Ank; 蒈xk=xn*WNnk; 聿end 膄idft: 程序 賺functionxn=idft(xk,N)%idft 芀n=[0: 1: N-1]; 螈k=n; 芄WN=exp(-j*2*pi/N); 薂nk=n'*k;%矩阵的转制*K 羂WNnk=WN.A(-nk); 薇xn=xk*WNnk/N; 莃end 羃实验程序: 聿选做2 肅k=16;%序列长 膂N=16;%dft点数肃n仁[0: 1: 15]; 抽样信号 螁xn1=sin(pi/8*n1/k)+sin(pi/4*n1/k);% 肇xk1=dft(xn1,N); 艿xlabel('t/T'); 袇ylabel('x(n)'); 莂subplot(1,2,2); 薁stem(n1,xk1); 羁grid; 薆xlabel('k'); 蚆ylabel('x(k)'); 羂实验二(3)快速傅立叶变换FFT及其应用 葿一、实验目的 虿1.利用MATLAB的快速傅立叶变换来计算信号的离散傅立叶变换。 螆2.利用MATLAB程序,理解进一步离散傅立叶变换的物理意义。 莃3.禾U用MATLAB程序,理解快速卷积算法。 膀二、实验原理 蒈在MATLAB中,使用函数fft可以很容易地计算有限长序列x(n)的离散傅立叶变换X[k]。 此函数有两种形式,fft(x)计算序列x(n)的离散傅立叶变换X(k),这里X(k)的长度与x(n)的长度相等。 fft(x,L)计算序列x(n)的L点离散傅立叶变换,其中L>N。 若L>N,在计算离散傅立叶变换之前,对x(n)尾部的L-N个值进行补零。 同样,离散傅立叶变换序列X(k)的 离散傅立叶逆变换x(n)用函数ifft计算,它也有两种形式。 祎 (一)、基本序列的离散傅立叶变换计算 螃N点离散傅立叶变换的一种物理解释就是,X[k]是x(n)以N为周期的周期延拓序列的 离散傅立叶级数系数X(k)的主值区间序列,即X(k)=X(k)RN(k)。 例如序列 cos(—n)RN(n)的周期延拓序列就是这种单一频率的正弦序列。 而当N=8时, cos(—n)RN(n)正好是cos(—n)的半个周期,cos(—n)RN(n)的周期延拓就不再是单一频 888 率的正弦序列,而是含有丰富的谐波成分,其离散傅立叶级数的系数与N=16时的差别很大, 因此对信号进行谱分析时,一定要截取整个周期,否则得到错误的频谱。 薈(二八验证N点DFT的物理意义 膆假如x(n)非周期、有限长,则傅立叶变换存在,那么对X(e「)在N个等间隔频率 •■k=2n/N,k=0,1,…,,N-1取样,则可得X(k)。 羆序列x(n)的N点DFT的物理意义是对X(3)在[0,2n]上进行N点的等间隔采样。 袀(三)、利用FFT计算序列的线性卷积 芀直接计算线性卷积计算量大,并且计算机无法判断y(n)的长度,需要计算多少的y(n)值,若输入为无限长,就更无法计算,其运算量随长度成级数增长。 由于可以利用FFT对 DFT进行有效的计算,我们希望能够利用DFT来计算线性卷积。 羅设x(n)和h(n)是长度分别为M和N的有限长序列, 羆令L=M+N-1,定义两个长度L的有限长序列: (3.4.10) yl(n)=x(n)h(n)=y「n)=x'(n).h'(n) 蚂上面的过程如下图所示: 蒀计算线性卷积也可以直接调用函数con来计算,因为MATLAB中的计时比较粗糙,所以 只有M和N较大的时候,才能比较两种方法的执行时间快慢。 螇三、实验内容与步骤(选做一个) jUn 膅1.对复正弦序列x(n)=e8Rn(n),利用MATLAB程序求当N=16和N=8时的离散傅立叶变换,并显示其图形。 —e*一 膃2.已知x(n)=R4(n),X(co)=,绘制相应的幅频和相频曲线,并计算N=8和 1-ew N=16时的DFT。 羈四、实验仪器设备 薆计算机,MATLAB^件 芅五、实验注意事项 芀课前预先阅读并理解实验程序; 蚀六、实验结果 芅k仁16;%序列长 莅2=16;%dft点数 蚁n1=[0: 1: 15]; 肇xn仁exp(j*pi/8*n1/k1);%抽样信号 莈xk1=dft(xn1,N1); 蒅subplot(2,2,1); 肂stem(n1,xn1); 衿xlabel('t/T'); 肆ylabel('x(n)'); 薅subplot(2,2,2); 蒂stem(n1,xk1); 芇grid; 袅xlabel('k'); 薅ylabel('x(k)'); 袃k2=8;%序列长 罿N2=8;%dft点数 袈n2=[0: 1: 7]; 蚅xn2=exp(j*pi/8*n2/k2);%抽样信号 羀xk2=dft(xn2,N2); 蚁subplot(2,2,3); 蚇stem(n2,xn2); 螄xlabel('t/T'); 莁ylabel('x(n)'); 腿subplot(2,2,4); 蒆stem(n2,xk2); 袄grid; 螂xlabel('k'); 袁ylabel('x(k)'); 膅实验三基于MATLAB的IIR数字滤波器设计 羄一、实验目的 荿2.熟悉与IIR数字滤波器设计有关的MATLAB函数。 芈3.学会通过MATLAB,利用脉冲响应不变法和双线性变换法设计IIR数字滤波器,加深 对数字滤波器的常用指标和设计过程的理解。 肄二、实验原理 膄最小阻带衰减: _沁=-20log10(: .)[dB]。 螁 (二)、IIR数字滤波器设计 蒈目前,设计IIR数字滤波器的通用方法是先设计相应的低通滤波器,然后再通过双线性变 换法和频率变换得到所需要的数字滤波器。 模拟滤波器从功能上分有低通、高通、带通及带 阻四种,从类型上分有巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器以及贝塞尔滤波器等。 螅1、利用模拟滤波器设计IIR数字低通滤波器的步骤。 膄 (1)确定数字低通滤波器的技术指标: 通带截止频率3p、通带衰减ap、阻带截止频率3s、 阻带衰减aSo 賺 (2)将数字低通滤波器的技术指标转换成模拟低通滤波器的技术指标。 芀脉冲响应不变法: •"订 袈双线性变换法: .121\ tan() T2 芄(3)按照模拟低通滤波器的技术指标设计模拟低通滤波器。 薂(4)将模拟滤波器Ha(s),从s平面转换到z平面,得到数字低通滤波器系统函数H(z)。 蚈2、下面给出与IIR数字滤波器设计有关的MATLAB文件。 薇 (1)buttord.m 莄用来确定数字低通或模拟低通滤波器的阶次,其调用格式分别是 羃a.[N,Wn]=buttord(Wp,Ws,Rp,Rs) 莀b.[N,Wn]=buttord(Wp,Ws,Rp,Rs,'' 莆格式a对应数字滤波器,式中Wp,Ws分别是通带和阻带的截止频率,实际上它们是归 一化频率,其值在0-1之间,1对应n(即对n的归一化)。 Rp,Rs分别是通带和阻带衰减,单位为dB。 N是求出的相应低通滤波器的阶次,Wn是求出的3dB频率。 蒃格式b对应模拟滤波器,式中各个变量的含义和格式a相同,但Wp,Ws及Wn是模拟 角频率,单位为rad/s。 肀 (2)buttap.m 袈用来设计模拟低通原型(归一化)滤波器Ha(p),其调用的格式为 膅[z,p,k]=buttap(N) 薃N是欲设计的低通原型(归一化)滤波器的阶次,乙p和k分别是设计出Ha(p)的极点、 零点及增益。 蒁(3)lp2lp.m 薀将模拟低通原型(归一化)滤波器Ha(p)转换为实际的低通滤波器Ha(s)。 (去归一化), 其调用格式为: 膈[B,A]=lp2lp(b,a,Wn) 蚃b,a分别是模拟低通原型滤波器Ha(p)的分子、分母多项式的系数向量,其中B,A是去 归一化后Ha(s)的分子、分母多项式的系数向量,Wn为截止频率。 袂(4)bilinear.m 肇实现双线性变换,即由模拟滤波器Ha(s)得到数字滤波器H(z)。 其调用格式是: [Bz,Az]=bilinear(B,A,Fs) 羇B,A是去归一化后Ha(s)的分子、分母多项式的系数向量,Bz,Az是H(z)的分子、分 母多项式的系数向量,Fs是抽样频率。 螃(4)impinvar.m [Bz,Az]=impinvar(B,A,Fs) 螀B,A是去归一化后Ha(s)的分子、分母多项式的系数向量,Bz,A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散 时间 系统 时域 分析 实验 报告