实验三___离散时间系统的时域分析
- 格式:pdf
- 大小:329.96 KB
- 文档页数:6
离散时间信号的时域分析实验报告实验报告:离散时间信号的时域分析一、实验目的本实验旨在通过MATLAB软件,对离散时间信号进行时域分析,包括信号的显示、基本运算(如加法、减法、乘法、反转等)、以及频域变换(如傅里叶变换)等,以加深对离散时间信号处理的基本概念和原理的理解。
二、实验原理离散时间信号是在时间轴上离散分布的信号,其数学表示为离散时间函数。
与连续时间信号不同,离散时间信号只能在特定的时间点取值。
离散时间信号的时域分析是研究信号的基本属性,包括幅度、时间、频率等。
通过时域分析,我们可以对信号进行各种基本运算和变换,以提取有用的信息。
三、实验步骤1.信号生成:首先,我们使用MATLAB生成两组简单的离散时间信号,一组为正弦波,另一组为方波。
我们将这些信号存储在数组中,以便后续分析和显示。
2.信号显示:利用MATLAB的绘图功能,将生成的信号在时域中显示出来。
这样,我们可以直观地观察信号的基本属性,包括幅度和时间关系。
3.基本运算:对生成的信号进行基本运算,包括加法、减法、乘法、反转等。
将这些运算的结果存储在新的数组中,并绘制出运算后的信号波形。
4.傅里叶变换:使用MATLAB的FFT(快速傅里叶变换)函数,将信号从时域变换到频域。
我们可以得到信号的频谱,进而分析信号的频率属性。
5.结果分析:对上述步骤得到的结果进行分析,包括比较基本运算前后的信号波形变化,以及傅里叶变换前后的频谱差异等。
四、实验结果1.信号显示:通过绘制图形,我们观察到正弦波和方波在时域中的波形特点。
正弦波呈现周期性的波形,方波则呈现明显的阶跃特性。
2.基本运算:通过对比基本运算前后的信号波形图,我们可以观察到信号经过加法、减法、乘法、反转等运算后,其波形发生相应的变化。
例如,两个信号相加后,其幅度和时间与原信号不同。
反转信号则使得波形在时间轴上反向。
3.傅里叶变换:通过FFT变换,我们将时域中的正弦波和方波转换到频域。
正弦波的频谱显示其频率为单一的直流分量,方波的频谱则显示其主要频率分量是直流分量和若干奇数倍的谐波分量。
实验2 离散LSI 系统的时域分析一、.实验目的:1、加深对离散系统的差分方程、单位脉冲响应、单位阶跃响应和卷积分析方法的理解。
2、初步了解用MA TLAB 语言进行离散时间系统时域分析的基本方法。
3、掌握求解离散时间系统的单位脉冲响应、单位阶跃响应、线性卷积以及差分方程的程序的编写方法,了解常用子函数的调用格式。
二、实验原理:1、离散LSI 系统的响应与激励由离散时间系统的时域分析方法可知,一个离散LSI 系统的响应与激励可以用如下框图表示:其输入、输出关系可用以下差分方程描述:[][]NMkk k k ay n k b x n m ==-=-∑∑2、用函数impz 和dstep 求解离散系统的单位脉冲响应和单位阶跃响应。
例2-1 已知描述某因果系统的差分方程为6y(n)+2y(n-2)=x(n)+3x(n-1)+3x(n-2)+x(n-3) 满足初始条件y(-1)=0,x(-1)=0,求系统的单位脉冲响应和单位阶跃响应。
解: 将y(n)项的系数a 0进行归一化,得到y(n)+1/3y(n-2)=1/6x(n)+1/2x(n-1)+1/2x(n-2)+1/6x(n-3)分析上式可知,这是一个3阶系统,列出其b k 和a k 系数: a 0=1, a ,1=0, a ,2=1/3, a ,3=0 b 0=1/6,b ,1=1/2, b ,2=1/2, b ,3=1/6程序清单如下: a=[1,0,1/3,0]; b=[1/6,1/2,1/2,1/6]; N=32; n=0:N-1; hn=impz(b,a,n); gn=dstep(b,a,n);subplot(1,2,1);stem(n,hn,'k');课程名称 数字信号处理 实验成绩 指导教师 ***实 验 报 告院系 班级学号 姓名 日期title('系统的单位序列响应'); ylabel('h(n)');xlabel('n');axis([0,N,1.1*min(hn),1.1*max(hn)]); subplot(1,2,2);stem(n,gn,'k'); title('系统的单位阶跃响应'); ylabel('g(n)');xlabel('n');axis([0,N,1.1*min(gn),1.1*max(gn)]); 程序运行结果如图2-1所示:102030系统的单位序列响应h (n )n1020300.20.30.40.50.60.70.80.911.11.2系统的单位阶跃响应g (n )n图2-13、用函数filtic 和filter 求解离散系统的单位序列响应和单位阶跃响应。
信号、系统与信号处理实验报告实验一、离散时间系统的时域特性分析姓名:学号:班级:专业:一.实验目的线性时不变(LTI)离散时间系统在时域中可以通过常系数线性差分方程来描述,冲激响应列可以刻画时域特性。
本次实验通过使用MATLAB函数研究离散时间系统的时域特性,以加深对离散时间系统的差分方程、冲激响应和系统的线性和时不变性的理解。
二.基本原理一个离散时间系统是将输入序列变换成输出序列的一种运算。
离散时间系统中最重要、最常用的是“线性时不变系统”。
1.线性系统满足叠加原理的系统称为线性系统,即若某一输入是由N个信号的加权和组成的,则输出就是系统对这几个信号中每一个输入的响应的加权和。
即那么当且仅当系统同时满足和时,系统是线性的。
在证明一个系统是线性系统时,必须证明此系统同时满足可加性和比例性,而且信号以及任何比例系数都可以是复数。
2.时不变系统系统的运算关系在整个运算过程中不随时间(也即序列的先后)而变化,这种系统称为时不变系统(或称移不变系统)。
若输入的输出为,则将输入序列移动任意位后,其输出序列除了跟着位移外,数值应该保持不变,即则满足以上关系的系统称为时不变系统。
3.常系数线性差分方程线性时不变离散系统的输入、输出关系可用以下常系数线性差分方程描述:当输入为单位冲激序列时,输出即为系统的单位冲激响应。
当时,是有限长度的,称系统为有限长单位冲激响应(FIR)系统;反之,则称系统为无限长单位冲激响应(IIR)系统。
三.实验内容及实验结果1.实验内容考虑如下差分方程描述的两个离散时间系统:系统1:系统2:输入:(1)编程求上述两个系统的输出,并画出系统的输入与输出波形。
(2)编程求上述两个系统的冲激响应序列,并画出波形。
(3)若系统的初始状态为零,判断系统2是否为时不变的?是否为线性的?2.实验结果(1)编程求上述两个系统的输出和冲激响应序列,并画出系统的输入、输出与冲激响应波形。
clf;n=0:300;x=cos((20*pi*n)/256)+cos((200*pi*n)/256);num1=[0.5 0.27 0.77];den1=[1];num2=[0.45 0.5 0.45];den2=[1 -0.53 0.46];y1=filter(num1,den1,x);y2=filter(num2,den2,x);subplot(3,1,1);stem(n,x);xlabel('时间信号');ylabel('信号幅度');title('输入信号');subplot(3,1,2);stem(y1);xlabel('时间信号n');ylabel('信号幅度');title('输出信号');subplot(3,1,3);stem(y2);xlabel('时间序号n ');ylabel('信号幅度');title('冲激响应序列');(2)N=40;num1=[0.5 0.27 0.77];den1=[1];num2=[0.45 0.5 0.45];den2=[1 -0.53 0.46];y1=impz(num1,den1,N);y2=impz(num2,den2,N);subplot(2,1,1);stem(y1);xlabel('时间信号n ');ylabel('信号幅度');title('³冲激响应');subplot(2,1,2);stem(y2);xlabel('时间信号n ');ylabel('信号幅度');title('³冲激响应');1.应用叠加原理验证系统2是否为线性系统:clear allclcn = 0 : 1 : 299;x1 = cos(20 * pi * n / 256);x2 = cos(200 * pi * n / 256);x = x1 + x2;num = [0.45 0.5 0.45];den = [1 -0.53 0.46];y1 = filter(num, den, x1);y2 = filter(num, den, x2);y= filter(num, den, x);yt = y1 + y2;figuresubplot(2, 1, 1);stem(n, y, 'g');xlabel('时间信号n');ylabel('信号幅度');axis([0 100 -2 2]);grid;subplot(2, 1, 2);stem(n, yt, 'r');xlabel('时间信号n');ylabel('信号幅度');axis([0 100 -2 2]);grid;2.应用时延差值来判断系统2是否为时不变系统。
第1篇一、实验目的1. 理解时域离散信号的基本概念和特性。
2. 掌握时域离散信号的表示方法。
3. 熟悉常用时域离散信号的产生方法。
4. 掌握时域离散信号的基本运算方法。
5. 通过MATLAB软件进行时域离散信号的仿真分析。
二、实验原理时域离散信号是指在时间轴上取离散值的一类信号。
这类信号在时间上不连续,但在数值上可以取到任意值。
时域离散信号在数字信号处理领域有着广泛的应用,如通信、图像处理、语音处理等。
时域离散信号的基本表示方法有:1. 序列表示法:用数学符号表示离散信号,如 \( x[n] \) 表示离散时间信号。
2. 图形表示法:用图形表示离散信号,如用折线图表示序列。
3. 时域波形图表示法:用波形图表示离散信号,如用MATLAB软件生成的波形图。
常用时域离散信号的产生方法包括:1. 单位阶跃信号:表示信号在某个时刻发生突变。
2. 单位冲激信号:表示信号在某个时刻发生瞬时脉冲。
3. 正弦信号:表示信号在时间上呈现正弦波形。
4. 矩形脉冲信号:表示信号在时间上呈现矩形波形。
时域离散信号的基本运算方法包括:1. 加法:将两个离散信号相加。
2. 乘法:将两个离散信号相乘。
3. 卷积:将一个离散信号与另一个离散信号的移位序列进行乘法运算。
4. 反褶:将离散信号沿时间轴翻转。
三、实验内容1. 实验一:时域离散信号的表示方法(1)使用序列表示法表示以下信号:- 单位阶跃信号:\( u[n] \)- 单位冲激信号:\( \delta[n] \)- 正弦信号:\( \sin(2\pi f_0 n) \)- 矩形脉冲信号:\( \text{rect}(n) \)(2)使用图形表示法绘制以上信号。
2. 实验二:时域离散信号的产生方法(1)使用MATLAB软件生成以下信号:- 单位阶跃信号- 单位冲激信号- 正弦信号(频率为1Hz)- 矩形脉冲信号(宽度为2)(2)观察并分析信号的波形。
3. 实验三:时域离散信号的基本运算(1)使用MATLAB软件对以下信号进行加法运算:- \( u[n] \)- \( \sin(2\pi f_0 n) \)(2)使用MATLAB软件对以下信号进行乘法运算:- \( u[n] \)- \( \sin(2\pi f_0 n) \)(3)使用MATLAB软件对以下信号进行卷积运算:- \( u[n] \)- \( \sin(2\pi f_0 n) \)(4)使用MATLAB软件对以下信号进行反褶运算:- \( u[n] \)4. 实验四:时域离散信号的仿真分析(1)使用MATLAB软件对以下系统进行时域分析:- 系统函数:\( H(z) = \frac{1}{1 - 0.5z^{-1}} \)(2)观察并分析系统的单位冲激响应。
实验三连续时间LTI系统的时域分析实验报告一、实验目的通过实验三的设计和实现,达到如下目的:1、了解连续时间LTI(线性时不变)系统的性质和概念;2、在时域内对连续时间LTI系统进行分析和研究;3、通过实验的设计和实现,了解连续时间LTI系统的传递函数、共轭-对称性质、单位冲激响应等重要性质。
二、实验原理在常见的线性连续时间系统中,我们知道采用差分方程的形式可以很好地表示出该系统的性质和特点。
但是,在本实验中,我们可以采用微分方程的形式来进行相关的研究。
设系统的输入为 x(t),输出为 y(t),系统的微分方程为:其中,a0、a1、…、an、b0、b1、…、bm为系统的系数,diff^n(x(t))和diff^m(y(t))分别是输入信号和输出信号对时间t的n阶和m阶导数,也可以记为x^(n)(t)和y^(m)(t)。
系统的单位冲激响应函数 h(t)=dy/dx| x(t)=δ(t),则有:其中,h^(i)(t)表示h(t)的第i阶导数定义系统的传递函数为:H(s)=Y(s)/X(s)在时域内,系统的输出y(t)可以表示为:其中,Laplace^-1[·]函数表示Laplace逆变换,即进行s域到t域的转化。
三、实验步骤1、在Simulink中,构建连续时间LTI系统模型,其中系统的微分方程为:y(t)=0.1*x(t)-y(t)+10*dx/dt2、对系统进行单位冲激响应测试,绘制出系统的单位冲激响应函数h(t);4、在S函数中实现系统单位冲激响应函数h(t)的微分方程,并使用ODE45框图绘制出系统单位冲激响应函数h(t)在t=0~10s之间的图像;6、利用数据记录栏,记录系统在不同的参数下的变化曲线、阶跃响应函数u(t)和单位冲激响应函数h(t)的变化规律。
四、实验数据分析1、单位冲激响应测试那么,当输入信号为单位冲激函数δ(t)时,根据系统的微分方程,可以得知输出信号的形式为:即单位冲激响应函数h(t)为一个包含了单位冲激函数δ(t)在内的导数项序列。
离散时间信号与系统的时域分析实验报告报告⼆:⼀、设计题⽬1.绘制信号)()(1k k f δ=和)2()(2-=k k f δ的波形2.绘制直流信号)()(1k k f ε=和)2(2-=k f ε的波形3绘制信号)()(6k G k f =的波形⼆实验⽬的1.掌握⽤MATLAB 绘制离散时间信号(序列)波形图的基本原理。
2.掌握⽤MATLAB 绘制典型的离散时间信号(序列)。
3.通过对离散信号波形的绘制与观察,加深理解离散信号的基本特性。
三、设计原理离散时间信号(也称为离放序列)是指在时间上的取值是离散的,只在⼀些离放的瞬间才有定义的,⽽在其他时间没有定义,简称离放信号(也称为离散序列) 序列的离散时间间隔是等间隔(均匀)的,取时间间隔为T.以f(kT)表⽰该离散序列,k 为整数(k=0,±1.±2,...)。
为了简便,取T=1.则f(kT)简记为f(k), k 表⽰各函数值在序列中出现的序号。
序列f(k)的数学表达式可以写成闭合形式,也可逐⼀列出f(k)的值。
通常,把对应某序号K0的序列值称为序列的第K0个样点的“样点值”。
四、设计的过程及仿真1clear all; close all; clc;k1=-4;k2=4;k=k1:k2;n1=0;n2=2;f1=[(k-n1)==0];f2=[(k-n2)==0];subplot(1,2,1)stem(k,f1,'fill','-k','linewidth',2);xlabel('k');ylabel('f_1(k)');title('δ(k)')axis([k1,k2,-0.1,1.1]);subplot(1,2,2)stem(k,f2,'filled','-k','linewidth',2);ylabel('f_2(k)');title('δ(k-2)')axis([k1,k2,-0.1,1.1]);程序运⾏后,仿真绘制的结果如图所⽰:2c lear all; close all; clc;k1=-2;k2=8;k=k1:k2;n1=0;n2=2; %阶跃序列开始出现的位置f1=[(k-n1)>=0]; f2=[(k-n2)>=0];subplot(1,2,1)stem(k,f1,'fill','-k','linewidth',2);xlabel('k');ylabel('f_1(k)');title('ε(k)')axis([k1,k2+0.2,-0.1,1.1])subplot(1,2,2)stem(k,f2,'filled','-k','linewidth',2);xlabel('k');ylabel('f_2(k)');title('ε(k-2)')axis([k1,k2+0.2,-0.1,1.1]);程序运⾏后,仿真绘制的结果如图所⽰:3clear all; close all; clc;k1=-2;k2=7;k=k1:k2; %建⽴时间序列n1=0;n2=6; f1=[(k-n1)>=0];f2=[(k-n2)>=0];f=f1-f2;stem(k,f,'fill','-k','linewidth',2);xlabel('k');ylabel('f(k)');title('G_6(k)')axis([k1,k2,-0.1,1.1]);程序运⾏后,仿真绘制的结果如图所⽰:五、设计的结论及收获实现了⽤matlab绘制离散时间信号, 通过对离散信号波形的绘制与观察,加深理解离散信号的基本特性。
离散时间信号的时域分析实验报告实验名称:离散时间信号的时域分析⼀、实验⽬的1.学会⽤MATLAB在时域中产⽣⼀些基本的离散时间信号,并对这些信号进⾏⼀些基本的运算。
2.熟悉MATLAB中产⽣信号和绘制信号的基本命令。
⼆、实验内容1.在载波信号xH[n]和调制信号xL[n]采⽤不同频率、不同调制指数m的情况下,运⾏程序P1.6,以产⽣振幅调制信号y[n]。
2.编写matlab程序,以产⽣图1.1和图1.2所⽰的⽅波和锯齿波序列,并将序列绘制出来。
三、主要算法与程序1.n=0:100;m=0.6;fH=0.2;fL=0.02;xH=sin(2*pi*fH*n);xL=sin(2*pi*fL*n);y=(1+m*xL).*xH;stem(n,y);grid;xlabel('时间序列');ylabel('振幅');通过改变m,fH和fL来产⽣不同情况下的振幅调制信号。
2.画出图⼆:n=0:1:30;y=3*square(n*pi/5,60);stem(n,y),grid onaxis([0,30,-4,4]);xlabel('时间序号n');ylabel('振幅');为画出图三,将占空⽐由图⼆的60改为30。
画出图四:n=0:1:50;y=2*sawtooth(n*pi/10,1);stem(n,y),grid onaxis([0,50,-2,2]);xlabel('时间序号n');ylabel('振幅');为画出图五,将图四中从-1到1的范围由1改为0.5。
四、实验结果与分析图⼀确定了数值:m=0.6,fH=0.2,fL=0.02,绘出图像。
图⼆图三图四图五五、实验⼩结通过这次实验,我熟悉MATLAB中产⽣信号和绘制信号的基本命令,学会⽤MATLAB在时域中产⽣⼀些基本的离散时间信号,并对这些信号进⾏⼀些基本的运算。
信号与系统实验报告一、信号的时域基本运算1.连续时间信号的时域基本运算两实验之一实验分析:输出信号值就等于两输入信号相加(乘)。
由于b=2,故平移量为2时,实际是右移1,符合平移性质。
两实验之二心得体会:时域中的基本运算具有连续性,当输入信号为连续时,输出信号也为连续。
平移,伸缩变化都会导致输出结果相对应的平移伸缩。
2.离散时间信号的时域基本运算两实验之一实验分析:输出信号的值是对应输入信号在每个n值所对应的运算值,当进行拉伸变化后,n值数量不会变,但范围会拉伸所输入的拉伸系数。
两实验之二心得体会:离散时间信号可以看做对连续时间信号的采样,而得到的输出信号值,也可以看成是连续信号所得之后的采样值。
二、连续信号卷积与系统的时域分析1.连续信号卷积积分两实验之一实验分析:当两相互卷积函数为冲激函数时,所卷积得到的也是一个冲激函数,且该函数的冲激t值为函数x,函数y冲激t值之和。
两实验之二心得体会:连续卷积函数每个t值所对应的卷积和可以看成其中一个在k值取得的函数与另外一个函数相乘得到的一个分量函数,并一直移动k值直至最后,最后累和出来的最终函数便是所得到的卷积函数。
3.RC电路时域积分两实验之一实验分析:全响应结果正好等于零状态响应与零输入响应之和。
两实验之二心得体会:具体学习了零状态,零输入,全响应过程的状态及变化,与之前所学的电路知识联系在一起了。
三、离散信号卷积与系统的时域分析1.离散信号卷积求和两实验之一实验分析:输出结果的n值是输入结果的k号与另一个n-k的累和两实验之二心得体会:直观地观察到卷积和的产生,可以看成连续卷积的采样形式,从这个方面去想,更能深入地理解卷积以及采样的知识。
2.离散差分方程求解两实验之一实验分析:其零状态响应序列为0 0 4 5 7.5,零输入响应序列为2 4 5 5.5 5.75,全状态响应序列为2 4 9 10.5 13.25,即全状态=零输入+零状态。
两实验之二心得体会:求差分方程时,可以根据全状态响应是由零输入输入以及零状态相加所得,分开来求,同时也加深了自己对差分方程的求解问题的理解。
实验三 离散时间系统的时域分析1.实验目的(1)理解离散时间信号的系统及其特性。
(2)对简单的离散时间系统进行分析,研究其时域特性。
(3)利用MATLAB 对离散时间系统进行仿真,观察结果,理解其时域特性。
2.实验原理离散时间系统,主要是用于处理离散时间信号的系统,即是将输入信号映射成的输出的某种运算,系统的框图如图所示:][n x ][n y Discrete-timesystme(1)线性系统线性系统就是满足叠加原理的系统。
如果对于一个离散系统输入信号为12(),()x n x n 时,输出信号分别为12(),()y n y n ,即:1122()[()]()[()]y n T x n y n T x n ==。
而且当该系统的输入信号为12()()ax n bx n +时,其中a,b 为任意常数,输出为121212[()()][()][()]()()T ax n bx n aT x n bT x n ay n by n +=+=+,则该系统就是一个线性离散时间系统。
(2)时不变系统如果系统的响应与激励加于系统的时刻无关,则该系统是时不变系统。
对于一个离散时间系统,若输入()x n ,产生输出为()y n ,则输入为()x n k -,产生输出为()y n k -,即:若()[()]y n T x n =,则[()]()T x n k y n k -=-。
通常我们研究的是线性时不变离散系统。
3.实验内容及其步骤(1)复习离散时间系统的主要性质,掌握其原理和意义。
(2)一个简单的非线性离散时间系统的仿真 参考:% Generate a sinusoidal input signalclf; n = 0:200; x = cos(2*pi*0.05*n); % Compute the output signal x1 = [x 0 0]; % x1[n] = x[n+1] x2 = [0 x 0]; % x2[n] = x[n] x3 = [0 0 x];% x3[n] = x[n-1]y = x2.*x2-x1.*x3; y = y(2:202); % Plot the input and output signalssubplot(2,1,1) plot(n, x)xlabel('Time index n'); ylabel('Amplitude'); title('Input Signal')subplot(2,1,2) plot(n,y)xlabel('Time index n'); ylabel('Amplitude');title('Output signal');(3)线性与非线性系统的仿真参考:% Generate the input sequencesclf; 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;num = [2.2403 2.4908 2.2403];den = [1 -0.4 0.75];ic = [0 0]; % Set zero initial conditionsy1 = filter(num,den,x1,ic); % Compute the output y1[n]y2 = filter(num,den,x2,ic); % Compute the output y2[n]y = filter(num,den,x,ic); % Compute the output y[n]yt = a*y1 + b*y2; d = y - yt; % Compute the difference output d[n] % Plot the outputs and the difference signalsubplot(3,1,1) stem(n,y); ylabel('Amplitude');title('Output Due to Weighted Input: a \cdot x_{1}[n] + b \cdot x_{2}[n]');subplot(3,1,2) stem(n,yt); ylabel('Amplitude');title('Weighted Output: a \cdot y_{1}[n] + b \cdot y_{2}[n]');subplot(3,1,3) stem(n,d); xlabel('Time index n'); ylabel('Amplitude');title('Difference Signal');(4)时不变与时变系统的仿真参考:% Generate the input sequencesclf; n = 0:40; D = 10; a = 3.0; b = -2;x = a*cos(2*pi*0.1*n) + b*cos(2*pi*0.4*n);xd = [zeros(1,D) x]; num = [2.2403 2.4908 2.2403]; den = [1 -0.4 0.75];ic = [0 0]; % Set initial conditions% Compute the output y[n]y = filter(num,den,x,ic);% Compute the output yd[n]yd = filter(num,den,xd,ic);% Compute the difference output d[n]d = y - yd(1+D:41+D);% Plot the outputssubplot(3,1,1) stem(n,y); ylabel('Amplitude'); title('Output y[n]'); grid;subplot(3,1,2) stem(n,yd(1:41)); ylabel('Amplitude');title(['Output due to Delayed Input x[n - ', num2str(D),']']); grid;subplot(3,1,3) stem(n,d); xlabel('Time index n'); ylabel('Amplitude');title('Difference Signal'); grid;4.实验用MATLAB函数介绍在实验过程中,MATLAB函数命令plot, figure, stem, subplot, axis, grid on, xlabel, ylabel, title, clc等在不同的情况下具体表述也有所不同,应该在实验中仔细体会其不同的含义。
实验三 离散时间系统的时域分析
1.实验目的
(1)理解离散时间信号的系统及其特性。
(2)对简单的离散时间系统进行分析,研究其时域特性。
(3)利用MATLAB对离散时间系统进行仿真,观察结果,理解其时域特性。
2.实验原理
离散时间系统,主要是用于处理离散时间信号的系统,即是将输入信号映射成的输出的某种运算,系统的框图如图所示:
(1)线性系统
线性系统就是满足叠加原理的系统。
如果对于一个离散系统输入信号为时,输出信号分别为,即:。
而且当该系统的输入信号为时,其中a,b为任意常数,输出为,则该系统就是一个线性离散时间系统。
(2)时不变系统
如果系统的响应与激励加于系统的时刻无关,则该系统是时不变系统。
对于一个离散时间系统,若输入,产生输出为,则输入为,产生输出为,即:
若,则。
通常我们研究的是线性时不变离散系统。
3.实验内容及其步骤
(1)复习离散时间系统的主要性质,掌握其原理和意义。
(2)一个简单的非线性离散时间系统的仿真
系统方程为:
x = cos(2*pi*0.05*n);
x1[n] = x[n+1]
x2[n] = x[n]
x3[n] = x[n-1]
y = x2.*x2-x1.*x3;
或者:y=x*x- x[n+1]* x[n-1] 是非线性。
参考:% Generate a sinusoidal input signal
clf; n = 0:200; x = cos(2*pi*0.05*n);
% Compute the output signal
x1 = [x 0 0]; % x1[n] = x[n+1]
x2 = [0 x 0]; % x2[n] = x[n]
x3 = [0 0 x]; % x3[n] = x[n-1]
y = x2.*x2-x1.*x3; y = y(2:202);
% Plot the input and output signals
subplot(2,1,1) plot(n, x)
xlabel('Time index n'); ylabel('Amplitude');
title('Input Signal')
subplot(2,1,2) plot(n,y)
xlabel('Time index n'); ylabel('Amplitude');
title('Output signal');
(3)线性与非线性系统的仿真
x1 = cos(2*pi*0.1*n);
x2 = cos(2*pi*0.4*n); a*y1 + b*y2
y = a*x1 + b*x2; 该系统是线性系统。
X1输出是y1,X2输出是y2时,yt = a*y1 + b*y2;;
d = y – yt=a*x1 + b*x2-a*y1 + b*y2 是非线性。
已知系统的传输函数为:,利用cos(2*pi*0.1*n)和cos(2*pi*0.4*n)验证系统的非线性。
参考:% Generate the input sequences
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;
num = [2.2403 2.4908 2.2403];
den = [1 -0.4 0.75];
ic = [0 0]; % Set zero initial conditions
y1 = filter(num,den,x1,ic); % Compute the output y1[n]
y2 = filter(num,den,x2,ic); % Compute the output y2[n]
y = filter(num,den,x,ic); % Compute the output y[n]
yt = a*y1 + b*y2;
d = y - yt; % Comput
e the difference output d[n]
% Plot the outputs and the difference signal
subplot(3,1,1)
stem(n,y); %x = a*x1 + b*x2;的输出
ylabel('Amplitude');
title('Output Due to Weighted Input: a \cdot x_{1}[n] + b \cdot x_{2}[n]');
subplot(3,1,2)
stem(n,yt); ylabel('Amplitude');
title('Weighted Output: a \cdot y_{1}[n] + b \cdot y_{2}[n]');
subplot(3,1,3)
stem(n,d); xlabel('Time index n'); ylabel('Amplitude');
title('Difference Signal');
(4)时不变与时变系统的仿真
x = a*cos(2*pi*0.1*n) + b*cos(2*pi*0.4*n);
输出是y = filter(num,den,x,ic); 直接型输出信号
当输入时移10个单位(xd = [zeros(1,D) x];)时候,输出也时
移10个单位(yd = filter(num,den,xd,ic);)
当输入信号相减x-xd=x-x(n-10)时,输出d = y – yd=y-y(n-
10)在区间[11,40]
已知系统的传输函数为:,利用cos(2*pi*0.1*n)和
cos(2*pi*0.4*n)验证系统的时不变性。
参考:% Generate the input sequences
clf; n = 0:40; D = 10; a = 3.0; b = -2;
x = a*cos(2*pi*0.1*n) + b*cos(2*pi*0.4*n);
xd = [zeros(1,D) x]; num = [2.2403 2.4908 2.2403]; den = [1 -0.4 0.75];
ic = [0 0]; % Set initial conditions
% Compute the output y[n]
y = filter(num,den,x,ic); 直接型输出信号
% Compute the output yd[n]
yd = filter(num,den,xd,ic); 当输入信号时移10个单位,的输出也时移,线性。
% Compute the difference output d[n]
d = y - yd(1+D:41+D);
% Plot the outputs
subplot(3,1,1) stem(n,y); ylabel('Amplitude'); title('Output
y[n]'); grid;
subplot(3,1,2) stem(n,yd(1:41)); ylabel('Amplitude');
title(['Output due to Delayed Input x[n - ', num2str(D),']']); grid;
subplot(3,1,3) stem(n,d); xlabel('Time index n'); ylabel('Amplitude');
title('Difference Signal'); grid;
4.实验用MATLAB函数介绍
在实验过程中,MATLAB函数命令plot, figure, stem, subplot, axis, grid on, xlabel, ylabel, title, clc等在不同的情况下具体表述也有所不同,应该在实验中仔细体会其不同的含义。
5.思考题
(1)离散时间系统有何特点。
(2)总结实验过程中所得到的结论,并能进行分析处理。
(3)对实验过程中所涉及的问题进行分析,试编写和修改相应的程序,得出最终正确的结果和波形图,并对实验报告进行整理分析。
(4)通过MATLAB仿真,研究离散时间系统差分方程
y(n)=x(n)+0.8x(n-1)的线性性质;系统差分方程对输入的时移性质。
6.实验报告要求:
(1)明确实验目的以及实验的原理。
(2)通过实验内容分析离散时间信号的性质。
(3)完成思考题的内容,对实验结果及其波形图进行分析对比,总
结主要结论。