基于Matlab的离散时间系统分析
- 格式:pdf
- 大小:528.34 KB
- 文档页数:3
科技信息SCIENCE&TECHNOLOGYINFORMATION2013年第1期时域离散系统的定义为:设时域离散系统的输入为x (n ),经过规定的运算,系统的输出序列用y (n )表示,设运算关系用T [·]表示,输出,输出与输入之间关系用y (n )=T [x (n )](1)在时域离散系统中,分析系统线性、时变性、因果性、稳定性,对于研究系统特征有很大作用。
1系统“线性性”分析系统的输入、输出之间满足线性叠加原理的系统称为线性系统。
判断方法:设x 1(n )和x 2(n )分别作为系统的输入序列,其输出y 1(n )=T [x 1(n )],y 2(n )=T [x 2(n )],那么线性系统一定满足T [x 1(n )+x 2(n )]=y 1(n )+y 2(n ),T [ax 1(n )]=a y 1(n ),T [bx 2(n )]=b y 2(n ),a 、b 为常数。
例1:证明y (n )=2n +3所代表的系统是非线性系统证明:y 1(n )=T [sin (n )]=2sin (n )+3y 2(n )=T[cos (n )]=2cos(n)+3y (n )=T[sin (n )+cos (n )]=2[sin (n )+cos (n )]+3y (n )≠y 1(n )+y 2(n )因此有定义可知,该系统不是线性系统。
用matlab 分析如下先编写函数function y=f(n)y=2*n+3n=0:10subplot(3,1,1)y1=f(cos(n))+f(sin(n))stem(n ,y1)xlabel('n')ylabel('y1')subplot(3,1,2)y2=f(cos(n)+sin(n))stem(n ,y2)xlabel('n')ylabel('y2')subplot(3,1,3)y3=(f(cos(n))+f(sin(n)))-f(cos(n)+sin(n))stem(n ,y3)xlabel('n')ylabel('y3')图1离散系统“线性”性由图可知:由第三条误差曲线可知,不是线性系统。
离散时间信号的时域分析实验报告实验报告:离散时间信号的时域分析一、实验目的本实验旨在通过MATLAB软件,对离散时间信号进行时域分析,包括信号的显示、基本运算(如加法、减法、乘法、反转等)、以及频域变换(如傅里叶变换)等,以加深对离散时间信号处理的基本概念和原理的理解。
二、实验原理离散时间信号是在时间轴上离散分布的信号,其数学表示为离散时间函数。
与连续时间信号不同,离散时间信号只能在特定的时间点取值。
离散时间信号的时域分析是研究信号的基本属性,包括幅度、时间、频率等。
通过时域分析,我们可以对信号进行各种基本运算和变换,以提取有用的信息。
三、实验步骤1.信号生成:首先,我们使用MATLAB生成两组简单的离散时间信号,一组为正弦波,另一组为方波。
我们将这些信号存储在数组中,以便后续分析和显示。
2.信号显示:利用MATLAB的绘图功能,将生成的信号在时域中显示出来。
这样,我们可以直观地观察信号的基本属性,包括幅度和时间关系。
3.基本运算:对生成的信号进行基本运算,包括加法、减法、乘法、反转等。
将这些运算的结果存储在新的数组中,并绘制出运算后的信号波形。
4.傅里叶变换:使用MATLAB的FFT(快速傅里叶变换)函数,将信号从时域变换到频域。
我们可以得到信号的频谱,进而分析信号的频率属性。
5.结果分析:对上述步骤得到的结果进行分析,包括比较基本运算前后的信号波形变化,以及傅里叶变换前后的频谱差异等。
四、实验结果1.信号显示:通过绘制图形,我们观察到正弦波和方波在时域中的波形特点。
正弦波呈现周期性的波形,方波则呈现明显的阶跃特性。
2.基本运算:通过对比基本运算前后的信号波形图,我们可以观察到信号经过加法、减法、乘法、反转等运算后,其波形发生相应的变化。
例如,两个信号相加后,其幅度和时间与原信号不同。
反转信号则使得波形在时间轴上反向。
3.傅里叶变换:通过FFT变换,我们将时域中的正弦波和方波转换到频域。
正弦波的频谱显示其频率为单一的直流分量,方波的频谱则显示其主要频率分量是直流分量和若干奇数倍的谐波分量。
课程设计任务书题目:基于MATLAB 的离散系统的Z 域分析课题要求:利用MATLAB 强大的图形处理功能,符号运算功能和数值计算功能,实现离散系统的Z 域分析仿镇波形。
课题内容:一.用MATLAB 绘制离散系统极零图,根据极零图分布观察系统单位响应的时域特性并分析系统的稳定性。
将极零图与h(k)对照起来画,看两者之间的关系。
至少以六个例子说明。
二. 用MATLAB 实现离散系统的频率特性分析1. 以二个实例分别代表低通,高通滤波器,绘出极零图,幅频特性,相频特性。
2. 用MATLAB 绘出梳状滤波器极零图与幅频特性FIR 型N z z H -=1)(IIR 型NN Nza z z H ----=11)(设N=8,a=0.8,0.9,0.98 三. 用MATLAB 实现巴特沃兹滤波器分析1. 用MATLAB 绘制巴特沃兹滤波器频率特性曲线(w c ,n 作为参数变化)2. 用MATLAB 绘制巴特沃兹滤波器的极零点分布图(w c ,n 作为参数变化)将两种图对照起来看极点分布与频率特性之间的关系。
时间安排:学习MATLAB 语言的概况 第1天 学习MATLAB 语言的基本知识 第2、3天 学习MATLAB 语言的应用环境,调试命令,绘图能力 第4、5天 课程设计 第6-9天 答辩 第10天指导教师签名: 2013年 月 日系主任(或责任教师)签名: 2013年 月 日目录1 离散系统的Z域分析 (3)1.1 z变换 (3)1.2 利用MATLAB的符号运算实现z变换 (3)1.3离散系统的系统函数及因果稳定的系统应满足的条件 (3)2离散系统零极点图及零极点分析 (4)2.1离散系统零极点 (4)2.2零极点的绘制 (5)3 MATLAB实现离散系统的频率特性分析 (11)3.1低通滤波器 (11)3.2高通滤波器 (12)3.3梳状滤波器的特性分析 (13)4 MATLAB实现巴特沃兹滤波器分析 (17)5 总结体会 (19)6参考文献 (19)1离散系统的Z 域分析 1.1 z 变换z 变换是离散信号与系统分析的重要方法和工具。
离散时间信号处理与matlab仿真概述及解释说明1. 引言1.1 概述离散时间信号处理是指对离散时间信号进行分析、处理和转换的过程。
离散时间信号处理在许多领域中都起着重要作用,例如通信系统、音频处理、图像处理等。
通过对离散时间信号进行采样和量化,我们可以将连续时间信号转换为离散时间信号,并对其进行数字化处理。
随着计算机技术的发展,MATLAB成为了一种强大的工具,被广泛应用于离散时间信号处理。
MATLAB提供了丰富的函数和工具箱以及易于使用的界面,使离散时间信号处理变得更加简单和高效。
1.2 文章结构本文将按以下结构来介绍离散时间信号处理与MATLAB仿真:- 第2部分: 离散时间信号处理概述。
在这一部分中,我们将介绍信号和系统的基础知识,并比较离散时间信号与连续时间信号之间的差异。
此外,我们还将探讨离散时间信号处理在各个应用领域中的应用案例。
- 第3部分: MATLAB在离散时间信号处理中的应用。
这一部分将重点介绍MATLAB工具箱的使用方法,并提供离散时间信号处理算法在MATLAB中的实现方式。
同时,我们将通过一些具体案例来演示MATLAB在离散时间信号处理中的应用。
- 第4部分: 离散时间信号处理的常见问题和挑战。
在这部分中,我们将探讨采样频率选择与混叠效应、数字滤波器设计与优化原理以及非线性失真和量化误差分析等离散时间信号处理中常见的问题和挑战。
- 最后,我们将在第5部分总结本文,并对离散时间信号处理与MATLAB仿真的重要性进行回顾和总结,同时展望未来离散时间信号处理方法研究的发展方向。
1.3 目的本文目的是为读者提供一个全面且详细的概述,使其了解离散时间信号处理以及MATLAB仿真在该领域中的应用。
希望通过阅读本文,读者能够加深对离散时间信号处理基础知识的理解,并掌握使用MATLAB进行仿真和实现离散时间信号处理算法的方法。
此外,本文还旨在引起读者对离散时间信号处理领域中常见问题和挑战的关注,并对相关研究方向进行思考。
如何在Matlab中进行离散系统设计离散系统设计在工程领域中扮演着重要的角色。
离散系统指的是使用一系列离散时间点进行操作和观测的系统。
而Matlab作为一种强大的数学软件,提供了丰富的工具和函数来进行离散系统设计。
本文将介绍如何使用Matlab进行离散系统设计,并提供一些实际案例来帮助读者理解和应用这些概念。
一、离散系统和离散系统设计概述离散系统是指系统的状态和输出在离散时间点上进行操作和观测,与连续系统相对应。
离散系统设计的目标是通过对系统进行建模、分析和控制,以实现所需的性能指标。
离散系统设计的基本步骤包括系统建模、性能分析和控制器设计。
系统建模是指将实际系统抽象为数学模型,以方便进行分析和设计。
性能分析是评估系统在不同工况下的性能表现,如稳定性、响应速度等。
控制器设计是根据性能要求设计出合适的控制器,使得系统能够满足需求。
二、Matlab中的离散系统建模在Matlab中,可以使用多种方法进行离散系统的建模。
最常用的方法是差分方程法和状态空间法。
差分方程法是将系统的输入输出关系表示为差分方程的形式,而状态空间法则是使用状态向量和状态方程来描述系统的动态行为。
在使用差分方程法进行建模时,可以使用Matlab中的函数tf或zpk来创建传递函数模型。
传递函数模型是用来描述系统输入和输出之间的关系的一种数学表达式。
例如,通过以下代码可以创建一个二阶传递函数模型:```matlabnum = [1, 0.5];den = [1, -0.6, 0.08];sys = tf(num, den, 1);```在使用状态空间法进行建模时,可以使用Matlab中的函数ss来创建状态空间模型。
状态空间模型是使用状态向量和状态方程来描述系统的动态行为的一种数学表达式。
例如,通过以下代码可以创建一个二阶状态空间模型:```matlabA = [0, 1; -0.08, 0.6];B = [0; 1];C = [1, 0.5];D = 0;sys = ss(A, B, C, D, 1);```三、离散系统性能分析离散系统的性能分析是评估系统在不同工况下的性能表现,如稳定性、响应速度等。
实验七 离散系统分析的MATLAB 实现一、实验目的1、掌握利用MATLAB 绘制系统零极点图的方法;2、掌握离散时间系统的零极点分析方法;3、学习离散系统响应的MATLAB 求解方法;4、掌握用MATALB 实现离散系统频率特性分析的方法;5、深刻理解离散系统的系统函数零极点对系统频响的影响,可以根据 零极点知识设计简单的滤波器。
二、基本原理(一)离散系统零极点线性时不变离散系统可用线性常系数差分方程描述,即()()N Miji j a y n i b x n j ==-=-∑∑ (1)其中()y k 为系统的输出序列,()x k 为输入序列。
将式(1)两边进行Z 变换,00()()()()()Mjjj Nii i b zY z B z H z X z A z a z-=-====∑∑ (2) 将式(2)因式分解后有:11()()()Mjj Nii z q H z Cz p ==-=-∏∏ (3)其中C 为常数,(1,2,,)j q j M =L 为()H z 的M 个零点,(1,2,,)i p i N =L 为()H z 的N 个极点。
系统函数()H z 的零极点分布完全决定了系统的特性,若某系统函数的零极点已知,则系统函数便可确定下来。
因此,系统函数的零极点分布对离散系统特性的分析具有非常重要意义。
(二)离散系统零极点图及零极点分析 1、零极点图的绘制设离散系统的系统函数为()()()B z H z A z =则系统的零极点可用MATLAB 的多项式求根函数roots()来实现,调用格式为:p=roots(A) 其中A 为待求根多项式的系数构成的行矩阵,返回向量p 则是包含多项式所有根的列向量。
如多项式为231()48B z z z =++,则求该多项式根的MATLAB 命令为为:A=[1 3/4 1/8]; P=roots(A) 运行结果为: P =-0.5000 -0.2500需注意的是,在求系统函数零极点时,系统函数可能有两种形式:一种是分子、分母多项式均按z 的降幂次序排列;另一种是分子、分母多项式均按1z -的升幂次序排列。
实验七 离散系统分析的MATLAB 实现一、实验目的1、掌握利用MATLAB 绘制系统零极点图的方法;2、掌握离散时间系统的零极点分析方法;3、学习离散系统响应的MATLAB 求解方法;4、掌握用MATALB 实现离散系统频率特性分析的方法;5、深刻理解离散系统的系统函数零极点对系统频响的影响,可以根据 零极点知识设计简单的滤波器。
二、基本原理(一)离散系统零极点线性时不变离散系统可用线性常系数差分方程描述,即()()N Miji j a y n i b x n j ==-=-∑∑ (1)其中()y k 为系统的输出序列,()x k 为输入序列。
将式(1)两边进行Z 变换,00()()()()()Mjjj Nii i b zY z B z H z X z A z a z-=-====∑∑ (2) 将式(2)因式分解后有:11()()()Mjj Nii z q H z Cz p ==-=-∏∏ (3)其中C 为常数,(1,2,,)j q j M =为()H z 的M 个零点,(1,2,,)i p i N =为()H z 的N 个极点。
系统函数()H z 的零极点分布完全决定了系统的特性,若某系统函数的零极点已知,则系统函数便可确定下来。
因此,系统函数的零极点分布对离散系统特性的分析具有非常重要意义。
(二)离散系统零极点图及零极点分析 1、零极点图的绘制设离散系统的系统函数为()()()B z H z A z =则系统的零极点可用MATLAB 的多项式求根函数roots()来实现,调用格式为:p=roots(A) 其中A 为待求根多项式的系数构成的行矩阵,返回向量p 则是包含多项式所有根的列向量。
如多项式为231()48B z z z =++,则求该多项式根的MATLAB 命令为为:A=[1 3/4 1/8]; P=roots(A) 运行结果为: P =-0.5000 -0.2500需注意的是,在求系统函数零极点时,系统函数可能有两种形式:一种是分子、分母多项式均按z 的降幂次序排列;另一种是分子、分母多项式均按1z -的升幂次序排列。
离散时间信号与系统[实验目的]1.了解信号处理的基本操作2.熟悉一些常用的序列及其应用[实验原理]我们所接触的信号大多为连续信号,为使之便于处理,往往要对其进行采样,对信号抽样并保证其能完全恢复,对抽样频率有一定的限制。
基本的离散序列的定义如下:1.单位采样序列2.单位阶跃序列3.实指数序列,;a为实数4.复数指数序列,5.正余弦序列,6.周期序列,[实验内容]1.用MATLAB实现函数impseq(n0,n1,n2),使函数实现,。
函数定义:function [x,n]=impseq(n0,n1,n2)if (n1>n2||n0>n2||n0<n1)error('parameter error');end;if (n1<=n2)for n=1:n2-n1+1if (n==n0)x(1,n)=n1-1+n;x(2,n)=1;end;x(1,n)=n1-1+n;x(2,n)=0;end;x(2,n0-n1+1)=1;end;运行结果:impseq(3,1,9)ans =6 7 8 9 10 11 12 13 140 0 0 0 1 0 0 0 0注:上面一行为自变量n,下面一行为函数值,以下运行结果为两行的,都与此题同,不在表明。
2.用MATLAB实现函数stepseq(n0,n1,n2),使函数实现u(n-n0),。
函数定义:function [x,n]=stepseq(n0,n1,n2)if (n0>n2||n0<n1||n1>n2)error('parameter error');end;for n=1:n2-n1+1if (n+n1-1<n0)x(1,n)=n1+n-1;x(2,n)=0;elsex(1,n)=n1+n-1;x(2,n)=1;end;end;运行结果:Stepseq(4,2,10)ans =2 3 4 5 6 7 8 9 100 0 1 1 1 1 1 1 1 注:与上同,上面一行是自变量,下面一行是函数值。
实验一基于MATLAB语言的线性离散系统的Z变换分析法一、实验目的1. 学习并掌握 Matlab 语言离散时间系统模型建立方法;2.学习离散传递函数的留数分析与编程实现的方法;3.学习并掌握脉冲和阶跃响应的编程方法;4.理解与分析离散传递函数不同极点的时间响应特点。
二、实验工具1. MATLAB 软件(6.5 以上版本);2. 每人计算机一台。
三、实验内容1. 在Matlab语言平台上,通过给定的离散时间系统差分方程,理解课程中Z变换定义,掌握信号与线性系统模型之间Z传递函数的几种形式表示方法;2. 学习语言编程中的Z变换传递函数如何计算与显示相应的离散点序列的操作与实现的方法,深刻理解课程中Z变换的逆变换;3. 通过编程,掌握传递函数的极点与留数的计算方法,加深理解G(z)/z 的分式方法实现过程;4. 通过系统的脉冲响应编程实现,理解输出响应的离散点序列的本质,即逆变换的实现过程;5. 通过编程分析,理解系统的Z传递函数等于单位脉冲响应的Z变换,并完成响应的脉冲离散序列点的计算;6. 通过程序设计,理解课程中脉冲传递函数极点对系统动态行为的影响,如单独极点、复极点对响应的影响。
四、实验步骤1.创建系统How to create digital system g Four examples are as follows:numg=[0.1 0.03 -0.07];deng=[1 -2.7 2.42 -0.72];g=tf(numg,deng,-1)get(g);[nn dd]=tfdata(g,'v')[zz,pp,kk]=zpkdata(g,'v')Unite circle region with distrbuting zeros points and poles points hold onpzmap(g), hold offaxis equal运行结果:2.转换为零极点标准形式Convert from tf(z-function) to zpk(z-function) Part C exercise form gg=zpk(g)[zz,pp,kk tts]=zpkdata(gg,'v')[z,p k,ts]=zpkdata(g,'v')运行结果:3.四个例子Four examples are as follows:Part A exerciseeg1mun=[1.25 -1.25,0.30];eg1den=[1 -1.05 0.80 -0.10];eg1=tf(eg1mun,eg1den,-1);eg1zpk=zpk(eg1);[zz1,pp1,kk1,tts1]=zpkdata(eg1zpk,'v');Part B exerciseeg2mun=[0.84 -0.062 -0.156 0.058];eg2den=[1 -1.03 0.22 0.094 0.05];eg2=tf(eg2mun,eg2den,-1);eg2zpk=zpk(eg2);[zz2,pp2,kk2,tts2]=zpkdata(eg2zpk,'v');Part C exercisezz3=[-0.2 0.4];pp3=[0.6 0.5+0.75i 0.5-0.75i 0.3];kk3=150;tts3=-1;eg3zpk=zpk(zz3,pp3,kk3,tts3);eg3=tf(eg3zpk);Part D exercisezz4=[-0.3 0.4+0.2i 0.4-0.2i];pp4=[-0.6 -0.3,0.5 0.6];kk4=5;tts4=-1;eg4zpk=zpk(zz4,pp4,kk4,tts4);eg4=tf(eg4zpk);4.留数法Residue method and impluse response numg=[2 -2.2 0.65];deng=[1 -0.6728 0.0463 0.4860]; [rGoz, pGoz,other]=residue(numg,[deng 0]) [mag_pGoz,theta_pGoz] =xy2p(pGoz)[mag-rGoz,theta-rGoz]=xy2p(rGoz)G=tf(numg,deng,-1)impulse(G)[y,k]=impulse(G);stem(k,y,'filled');impulse(G)运行结果:5.复杂极点响应When transfer function is G(Z) with complex ,t=t*ts;pole of z=e^(+-j*30*pi/3) and z=-0.5,as well as its gain value is unit step signal,its collecting cycle is 0.5 second,how to analyze its response.gcfts=0.3;num=[1 0.5];den=conv([1 -exp(i*pi/3)],[1 -exp(-i*pi/3)]);g1=tf(num,den,ts)[y,k]=impulse(g1,20);stem(k,y,'filled'),grid运行结果:6.重极点响应How to analyze response with repeating poles dtime=[0:90];y(k+2)-1.8y(k+1)+0.81y(k)=3u(k+1)-1.2u(k) yi=impulse(gstep,dtime)gcfnum=[3 -1.2];den=[1 -1.8 0.81];[rGoz, pGoz,other]=residue(num,[den 0])t=0:60;y=rGoz(2,1).*(t.*(pGoz(2,1).^(t-1)))+rGoz(1,1).*(pGoz(1,1).^(t)) y1=zeros(1,61);y1(1,1)=rGoz(3,1);y=y+y1;t=ts*t;stem(t,y,'filled'),gridSpecial example about difference real pole tosystem response[rGoz,pGoz,other]=residue(num,[den,0])num1=[rGoz(1) 0];den1=[1 -pGoz(1)]gg1=tf(num1,den1,ts)[y,t]=impulse(gg1,50)stem(t,y,'filled'),grid运行结果:7.阶跃响应numg=[2 -2.2 0.56];deng=[1 -0.6728 0.0463 0.4860];g=tf(numg,deng,1);numgstep=[numg 0];dengstep=conv(deng,[1 -1]);gstep=tf(numgstep,dengstep,1)dtime=[0:90];yi=impulse(gstep,dtime)subplot(2,1,1)stem(dtime,yi,'filled')ys=step(g,dtime);subplot(2,1,2)stem(dtime,ys,'filled')dcgain(g)ys_ss=ys(end)ys_ss=ys(max(dtime))运行结果:Example 1: Analysis of subsection input function subplot(1,1,1)num=[2 -2.2 0.56];den=[1 -0.6728 0.0463 0.4860];ts=0.2;g=tf(num,den,ts);dtime=[0:ts:8]';u=2.0*ones(size(dtime));ii=find(dtime>=2.0); u(ii)=0.5;y=lsim(g,u,dtime);stem(dtime,y,'filled'),gridhold onplot(dtime,u,'o')hold offtext(2.3,-1.8,'output')text(1.6,2.3,'input')运行结果:五、实验思考1、根据实验结果,分析离散传递函数不同极点的时间响应特点。
武汉工程大学数字信号处理实验报告二专业班级:14级通信03班学生姓名:秦重双学号:1404201114实验时间:2017年5月3日实验地点:4B315指导老师: 杨述斌实验一离散时间信号的分析实验一、实验目的①认识常用的各种信号,理解其数学表达式和波形表示。
②掌握在计算机中生成及绘制数值信号波形的方法。
③掌握序列的简单运算及计算机实现与作用。
④理解离散时间傅里叶变换、Z变换及它们的性质和信号的频域特性。
二、实验设备计算机,MATLAB语言环境。
三、实验基础理论1、序列的相关概念离散时间信号用一个称为样本的数字序列来表示。
一般用{x[n]}表示,其中自变量n的取值范围是﹣∞到﹢∞之间的整数。
为了表示方便,序列通常直接用x[n]表示。
离散时间信号可以是一个有限长序列,也可以是一个无限长序列。
有限长(也称为有限时宽)序列仅定义在有限的时间间隔中:﹣∞≤N1 ≤N2 ≤+∝。
有限长序列的长度或时宽为N=N1 -N2+1。
满足x[n+kN]=x[n](对于所有n)的序列称为周期为N的周期序列,其中N取任意正整数;k取任意整数;2、常见序列常见序列有单位取样值信号、单位阶跃序列、矩形序列、斜变序列、单边指数序列、正弦序列、复指数序列等。
3、序列的基本运算序列的基本运算有加法、乘法、倒置(反转)、移位、尺度变换、卷积等。
4、离散傅里叶变换的相关概念5、Z变换的相关概念四.实验内容与步骤1、知识准备认真复习以上基础理论,理解本实验所用到的实验原理。
2、离散时间信号(序列)的产生利用MATLAB语言编程和绘制单位样值信号、单位阶跃序列、指数序列、正弦序列及随机离散信号的波形,以加深对离散信号时域表示的理解。
①单位取样值信号Matlab程序x=0;y=1;stem(x,y);title('单位样值’);axis([—2,2,0,1]);②单位阶跃序列Matlab程序n0=0;n1=—5;n2=5;n=[n1:n2];x=[(n—n0)>=0];stem(n,x);xlabel('n');ylabel(’x(n)’);title(’单位阶跃序列’);③指数序列、正弦序列Matlab程序n=[0:10];x=(1/3)。
离散时间信号与系统实验的matlab实现离散时间信号与系统[实验⽬的]1.了解信号处理的基本操作2.熟悉⼀些常⽤的序列及其应⽤[实验原理]我们所接触的信号⼤多为连续信号,为使之便于处理,往往要对其进⾏采样,对信号抽样并保证其能完全恢复,对抽样频率有⼀定的限制。
基本的离散序列的定义如下:1.单位采样序列2.单位阶跃序列3.实指数序列,;a为实数4.复数指数序列,6.周期序列,[实验内容]1.⽤MATLAB实现函数impseq(n0,n1,n2),使函数实现,。
函数定义:function [x,n]=impseq(n0,n1,n2)if (n1>n2||n0>n2||n0error('parameter error');end;if (n1<=n2)for n=1:n2-n1+1if (n==n0)x(1,n)=n1-1+n;x(2,n)=1;end;x(1,n)=n1-1+n;x(2,n)=0;end;x(2,n0-n1+1)=1;end;运⾏结果:impseq(3,1,9)ans =6 7 8 9 10 11 12 13 140 0 0 0 1 0 0 0 02.⽤MATLAB实现函数stepseq(n0,n1,n2),使函数实现u(n-n0),。
函数定义:function [x,n]=stepseq(n0,n1,n2)if (n0>n2||n0n2)error('parameter error');end;for n=1:n2-n1+1if (n+n1-1x(1,n)=n1+n-1;x(2,n)=0;elsex(1,n)=n1+n-1;x(2,n)=1;end;end;运⾏结果:Stepseq(4,2,10)ans =2 3 4 5 6 7 8 9 100 0 1 1 1 1 1 1 1 注:与上同,上⾯⼀⾏是⾃变量,下⾯⼀⾏是函数值。
3.⽤MATLAB实现下列序列a.b.c.d. 将c中的扩展为,周期数为4函数定义:%函数实现序列function [x,n]=f1()for n=1:9%实现序列函数function f2()for k=1:10x=exp((2+3*j).*k);disp(x);end;%实现序列的函数function f3()for k=0:10x=3*cos(0.1*pi*k+pi/3)+2*sin(0.5*pi*k);disp(x);end;%实现序列d中要求的函数function f4(n)while (1)n=n-11;if (n<0)break;end;end;n=n+11;disp(n);for k=0:10x(1,k+1)=3*cos(0.1*pi*k+pi/3)+2*sin(0.5*pi*k); end; n=n+1;disp(x(1,n));A:产⽣运⾏结果:f13.00004.00005.00006.00007.0000 0.9000 0.8100 0.7290 0.6561 0.5905 0.5314 0.47838.0000 9.00000.4305 0.3874B产⽣运⾏结果:f2-7.3151 + 1.0427i 52.4235 -15.2556i -3.6758e+002 +1.6626e+002i2.5155e+003 -1.5995e+003i -1.6733e+004 +1.4324e+004i1.0747e+005 -1.2223e+005i -6.5870e+005 +1.0062e+006i3.7693e+006 -8.0471e+006i -1.9182e+007 +6.2796e+007i7.4837e+007 -4.7936e+008iC、产⽣x(n)=3cos(0.1πn+π/3)+2sin(0.5πn) 0<=n<=10运⾏结果:f31.50002.6237 -0.3136 -3.2202 -2.0074 -0.5981 -2.9344-4.9836 -2.7406 -0.2294 -1.50004.MATLAB中可⽤算术运算符“+”实现信号相加,但和的长度必须相等。
实验报告31.实验内容给定离散时间系统y(n)=x(n)+x(n-1)+0.9y(n-1)-0.81y(n-2)1)求系统函数,调用zplane,画出系统的零极图;2)调用freqz,画出系统的幅度响应和相位响应3)系统输入信号为x(n)=sin(n*pi/3)+5cos(n*pi) (0≤n ≤49),用四种方法计算系统的输出y(n)a. 用差分方程递推b. 调用conv函数c. 调用filter函数d. 利用DFT计算观察结果,判断四种方法得到的结果是否一致?如果使得上述方法结果一致,编程时有关参数应该怎样选取?2、编程原理、思路和公式1)调用zplane和freqz可以分别求出零级图,幅频响应和相频响应。
2)差分方程递推要写出for循环以及变量赋初值。
3)conv——用单位抽样响应和xn的卷积可以求出yn4)filter——用filter(b,a,xn)可以求出yn5)DFT----用时域和频域的转换可以求出yn3、程序脚本,并注释子函数DFTfunction Xk=DFT(xn,N)n=[0:1:N-1];k=[0:1:N-1];WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk;%求xn的DFT变换子函数DTFTfunction xn=IDFT(Xk,N)n=[0:1:N-1];k=[0:1:N-1];WN=exp(-j*2*pi/N);nk=-n'*k;WNnk=WN.^nk;xn=Xk*WNnk/N;%求IDFT主函数clear all;close all;a=[1,-0.9,0.81];b=[1,1];zr=roots(b)%零点pk=roots(a)%极点g=b(1)/a(1)%增益zplane(b,a)%绘制零级图fs=1000;[h,f]=freqz(b,a,256,fs);%求单位抽样响应mag=abs(h);ph=angle(h);ph=ph*180/pi;figure;subplot(2,1,1);plot(f,mag);grid on;xlabel('freqency Hz');ylabel('magnitude');%绘制幅频特性图subplot(2,1,2);plot(f,ph);grid on;xlabel('freqency Hz');ylabel('phase');%绘制相频特性图clear all;close all;a=[1,-0.9,0.81];b=[1,1];N=50;n=0:N-1;xn=sin(n*pi/3)+5*cos(n*pi) ;xn1=[xn zeros(1,50)];%给xn补零,成一百个点。
实验1 离散信号与系统时域分析的Matlab实现一、实验目的1.掌握用Matlab表示常用离散信号的方法;2.掌握用Matlab求解离散系统的单位取样响应与零状态响应;3.掌握用Matlab实现离散信号卷积的方法;二、实验原理与内容1. Matlab基本操作打开Matlab 6.5,只保留命令窗口(Command Window),点击文本编辑窗口(M-file)创建、编辑M程序。
图1命令窗口在文本编辑窗口输入指令程序。
当输入完整程序后,点击DEBUG→RUN运行程序,或用键盘F5键直接运行。
另外,也可点击窗口快捷运行程序键。
图2文本编辑窗口编辑完成一个程序后,第一次运行或另存为时,需要保存M程序,保存的路径为命令窗口所示的当前目录路径(Current Directory),该路径可自行设置。
图3当前目录路径注意:M 文件在命名时有一定规则,错误命名时会使M 文件不能正常运行。
(1)M 文件名首字符不能是数字或下划线。
(2)M 文件名不能与Matlab 的内部函数名相同(3)M 文件名中不能有空格,不能含有中文。
一般应采用英文或拼音对M 文件命名。
2.离散信号的Matlab 表示表示离散时间信号x(n)需要两个行向量,一个是表示序号n=[ ],一个是表示相应函数值x=[ ],画图指令是stem 。
(1)正、余弦序列正、余弦序列为MATLAB 内部函数,可直接调用,文件名为sin 和cos 。
例1-1 画出()sin()4x n n π=的波形。
打开文本编辑窗口,输入波形程序:n=0:40;xn=sin(pi*n/4);stem(n,xn,'.')title('sin(pi*n/4)')运行,输出波形如下图4。
图4 ()x n 的波形图对于0cos()n ωϕ+或0sin()n ωϕ+,当2/πω是整数或有理数时,才是周期信号。
练习:(1)把上述程序中第三行分别改为stem(n,xn)、stem(n,xn,'*') 、stem(n,xn,' filled ') 后依次运行,看输出波形有何变化。