离散时间信的DTFT试验报告
实验一实验一 离散时间系统的时域分析离散时间系统的时域分析 一、实验目的 1. 运用 MATLAB 仿真一些简单的离散时间系统,并研究它们的时域特性。 2. 运用 MATLAB 中的卷积运算计算系统的输出序列,加深对离散系统的 差分方程、冲激响应和卷积分析方法的理解。 二、实验原理 离散时间系统其输入、输出关系可用以下差分方程描述: N d k k0 y[nk] M k0 p k x[nk] 当输入信号为冲激信号时,系统的输出记为系统单位冲激响应 [n] h[n],则系统响应为如下的卷积计算式: y[n]x[n]h[n] m x[m]h[nm] 当 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= *n; x2=sin(2*pi*n); x=a*x1+b*x2; num=[1, ,3]; den=[2 -3 ]; ic=[0 0]; %设置零初始条件 y1=filter(num,den,x1,ic); %计算输入为 x1(n)时的输出 y1(n) y2=filter(num,den,x2,ic); %计算输入为 x2(n)时的输出 y2(n) y=filter(num,den,x,ic); %计算输入为 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’); (一)、线性和非线性系统 对线性离散时间系统,若y 1 (n)和y 2 (n)分别是输入序列x 1 (n)和x 2 (n)的 响应,则输入x(n) ax 1 (n) bx 2 (n)的输出响应为y(n) ay 1 (n)by 2 (n),即符 合叠加性,其中对任意常量 a 和 b 以及任意输入x 1 (n)和x 2 (n)都成立,否 则为非线性系统。 (二)、时不变系统和时变系统 对离散时不变系统,若y 1 (n)是x 1 (n)的响应,则输入 x(n)=x1(n-n0)的 输出响应为 y(n)=y1(n-n0),式中 n0 是任意整数。该输入输出关系,对任 意输入序列及其相应的输出成立,若对至少一个输入序列及其相应的输出 序列不成立,则系统称之为时变的。 (三)、线性卷积 假设待卷积的两个序列为有限长序列,卷积运算符在 MATLAB 中可 命 令 conv 实现。例如,可以把系统的冲激响应与给定的有限长输入序列进 行卷积,得到有限长冲激响应系统的输出序列。下面的 MATLAB 程序实现 了该方法。 例 2 clf; h=[3 2 1 -2 1 0 -4 0 3];%冲激 x=[1 -2 3 -4 3 2 1 ]; %输入序列 y=conv(h,x); n=0:14; stem(n,y); xlabel(‘时间序号 n’);ylabel(‘振幅’); title(‘用卷积得到的输出’);grid; 三、实验内容与步骤 1. 假定一因果系统为 y(n)(n-1)+(n-2)=(n)+(n-1)+(n-2) 用 MATLAB 程序仿真该系统,输入三个不同的输入序列: x 1 (n) cos(20.1n),x 2 (n) cos(20.4n),x 2x 1 (n) 3x 2 (n) 计算并并显示相应的输出y 1 (n),y 2 (n)和y(n)。 2. 用 MATLAB 程序仿真步骤 1 给出的系统,对两个不同的输入序列 x(n) 和 x(n-10),计算并显示相应的输出序列 y3(n)和 y4(n)。 3.用 MATLAB 程序仿真计算下列两个有限长序列的卷积和并显示图形。 x 1 (n) (n)3(n 1) 2(n 2) x 2 (n) u(n)u(n 3) 四、实验仪器设备 计算机,MATLAB 软件 五、实验要求 给出理论计算结果和程序计算结果并讨论。 六、实验结果 实验 1: clf; n=0:40; a=2;b=-3; x1= cos(2*pi**n); x2=cos(2*pi**n); x=a*x1+b*x2; den=[1, ,]; num =[ ];%分子系数 ic=[0 0]; %设置零初始条件 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)%画出输出 信号 subplot(2,2,1) stem(n,y1); ylabel( 振幅 ); title( y1 输出 ); subplot(2,2,2) stem(n,y2); ylabel( 振幅 ); title( y2 输出 ); subplot(2,2,3) stem(n,yn); ylabel( 振幅 ); title( yn 输出 ); 实验 2: clf; n=0:40;n1=0:50; a=2;b=-3; x1= cos(2*pi**n); x2=cos(2*pi**n); x3=a*x1+b*x2; x4=[zeros(1,10), x3]; den=[1, ,]; num=[ ]; ic=[0 0]; %设置零初始条件 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 输出 ); 实验 3: clf; x=[1 3 2];%冲激 u=[1 1 1]; %输入序列 y=conv(u,x); n=0:4; stem(n,y); xlabel( 时间序号 n );ylabel( 振幅 ); title( 用卷积得到的输出 );grid; 实验二(实验二(1 1)) 离散时间信号的离散时间信号的 DTFTDTFT 一、实验目的 1. 运用 MATLAB 理解 Z 变换及其绘制 H(z)的零极点图。 2. 运用 MATLAB 计算逆 Z 变换。 二、实验原理 (一) 、MATLAB 在 ZT 中的应用。 线性时不变离散时间系统的冲激响应 h(n)的 z 变换是其系统函数 H(z), 在 MATLAB 中可以利用性质求解 Z 变换,例如可以利用线性卷积求 的 Z 变换。若H(