数字信号处理实验讲义

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1实验一信号(模拟、数字)的输入输出实验(常见离散信号产生和实现)一、实验目的1.加深对常用离散信号的理解;2.掌握matlab中一些基本函数的建立方法。二、实验原理1.单位抽样序列01)(n00nn在MATLAB中可以利用zeros()函数实现。;1)1();,1(xNzerosx如果)(n在时间轴上延迟了k个单位,得到)(kn即:01)(kn0nkn2.单位阶跃序列01)(nu00nn在MATLAB中可以利用ones()函数实现。x=ones(1,N)3.正弦序列)/2sin()(FsfnAnx在MATLAB中,n=0:N-1;x=A*sin(2*pi*f*n/Fs+fai)4.复指数序列2njernx)(在MATLAB中,n=0:N-1;x=r*exp(j*w*n)5.指数序列nanx)(在MATLAB中,n=0:N-1;x=a.^n三、实验内容实现和图形生成1.五种基本函数的生成程序如下:(1)单位抽样序列方法一:%单位抽样序列和延时的单位抽样序列n=0:10;x1=[1zeros(1,10)];x2=[zeros(1,5)1zeros(1,5)];subplot(1,2,1);stem(n,x1);xlabel('时间序列n');ylabel('振幅');title('单位抽样序列x1');subplot(1,2,2);stem(n,x2);xlabel('时间序列n');ylabel('振幅');title('延时了5的单位抽样序列');3方法二:先在matlab中定义单位抽样序列:function[x,n]=dwxl(n1,n2,n0)n=[n1:n2];x=(n==n0);或:function[x,n]=impseq(n1,n2,n0)n=[n1:n2];x=[(n-n0)==0];在运行命令:[x,n]=dwxl(-5,5,3)stem(n,x);xlabel('n');title('单位抽样序列x');或:[x,n]=impseq(-5,5,3)stem(n,x);xlabel('n');title('单位抽样序列x');(2)单位阶跃序列方法一:n=0:10;u=[ones(1,11)];stem(n,u);xlabel('时间序列n');ylabel('振幅');title('单位阶跃序列');所得的图形如下所示:4方法二;先在matlab中定义单位阶跃序列:function[x,n]=jyxl(n1,n2,n0)n=[n1:n2];x=(n=n0);或:function[x,n]=stepseq(n1,n2,n0)n=[n1:n2];x=[(n-n0)=0];在运行命令:[x,n]=jyxl(-5,5,3)stem(n,x);xlabel('n');title('单位阶跃序列x');或:[x,n]=stepseq(-5,5,3)stem(n,x);xlabel('n');title('单位阶跃序列x');(3)正弦函数n=1:30;x=2*sin(pi*n/6+pi/3);stem(n,x);xlabel('时间序列n');ylabel('振幅');title('正弦函数序列x=2*sin(pi*n/6+pi/3)');5(4)复指数序列n=1:30;x=2*exp(j*3*n);stem(n,x);xlabel('时间序列n');ylabel('振幅');title('复指数序列x=2*exp(j*3*n)');图形如下:(5)指数序列n=1:30;x=1.2.^n;stem(n,x);xlabel('时间序列n');ylabel('振幅');title('指数序列x=1.2.^n');2、绘出信号znenx)(,当6)12/1(jz、6)12/1(jz时、121z、62jz、6jz时的信号实部和虚部图;程序如下:z1=-1/12+j*pi/6;z2=1/12+j*pi/6;z3=1/12;z4=2+j*pi/6;z5=j*pi/6;n=0:20;x1=exp(z1*n);x2=exp(z2*n);x3=exp(z3*n);x4=exp(z4*n);x5=exp(z5*n);subplot(5,2,1);6stem(n,real(x1));xlabel('时间序列n');ylabel('实部');title('复指数z1=-1/12+j*pi/6时序列实部');subplot(5,2,2);stem(n,imag(x1));xlabel('时间序列n');ylabel('虚部');title('复指数z1=-1/12+j*pi/6时序列虚部');subplot(5,2,3);stem(n,real(x2));xlabel('时间序列n');ylabel('实部');title('复指数z2=1/12+j*pi/6时序列实部');subplot(5,2,4);stem(n,imag(x2));xlabel('时间序列n');ylabel('虚部');title('复指数z2=1/12+j*pi/6时序列虚部');subplot(5,2,5);stem(n,real(x3));xlabel('时间序列n');ylabel('实部');title('复指数z3=1/12时序列实部');subplot(5,2,6);stem(n,imag(x3));xlabel('时间序列n');ylabel('虚部');title('复指数z3=1/12时序列虚部');subplot(5,2,7);stem(n,real(x4));xlabel('时间序列n');ylabel('实部');title('复指数z4=2+j*pi/6时序列实部');subplot(5,2,8);stem(n,imag(x4));xlabel('时间序列n');ylabel('虚部');title('复指数z4=2+j*pi/6时序列虚部');subplot(5,2,9);stem(n,real(x5));xlabel('时间序列n');ylabel('实部');title('复指数z5=j*pi/6时序列实部');subplot(5,2,10);stem(n,imag(x5));xlabel('时间序列n');ylabel('虚部');title('复指数z5=j*pi/6时序列虚部');7由上图的实部部分可以看出,Z=pi/6时,序列周期为12。计算序列周期为2*6=12。实验和理论相符。3.绘出信号)1.0*2sin(5.1)(nnx的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期?程序如下:n=0:40;x1=1.5*sin(2*pi*0.1*n);x2=sin(0.9*n);subplot(1,2,1);stem(n,x1);xlabel('时间序列n');ylabel('振幅');title('正弦序列x1=1.5*sin(2*pi*0.1*n)');subplot(1,2,2);stem(n,x2);xlabel('时间序列n');ylabel('振幅');title('正弦序列x2=sin(0.9*n)');运行结果如下:8由上图看出:x1=1.5*sin(2*pi*0.1*n)的周期是10,而x2=sin(0.9*n)是非周期的。理论计算中对第一个,N=2*pi/(0.1*pi)=10,第二个0.9不是pi的倍数,所以不是周期的。因此可以看出,实验结果和理论相符。4.使用帮助功能学习square(方波),sawtooth(锯齿波)和sinc函数,并绘图。(1)方波绘图程序如下:%用squaret=-2*pi:0.001:2*pi;x=square(t);plot(t,x);xlabel('t'),ylabel('x=square(t)');(2)三角波绘图程序如下:%用Sawtootht=-2*pi:0.001:2*pi;y=sawtooth(t);plot(t,y);xlabel('t'),ylabel('y=sawtooth(t);');9(3)sinc函数绘图程序如下:t=-pi:0.001:pi;x=sinc(t);plot(t,x);xlabel('t'),ylabel('sinc(t);');四、问题讨论与总结:1.离散正弦序列的性质:离散正弦序列就是一个连续的正弦信号被一系列冲激函数采样后的结果,原连续正弦函数一定是周期的,但采样后的离散序列却不一定是周期的。对于离散序列x=sin(n*w)来说,只有当2*pi/w是一个有理数时,也就是说当w是pi的倍数时,此离散序列才是周期的。所以在本实验中x1=1.5*sin(2*pi*0.1*n)的周期是10,而x2=sin(0.9*n)是非周期的。因为0.9不是pi的倍数。2.离散复指数序列性质:对于离散复指数函数x=a*exp(z*n),只有当z是纯虚数,且纯虚数的系数是pi的倍数时,才是周期的。其它情况下均不是。这个性质由本次实验中的五个函数的图像可以被证明。10实验二离散系统时域分析一、实验目的1.学习MATLAB语言的编程和调试技巧;2.差分方程的求解;3.掌握笔算离散卷积方法和MATLAB语言实现。二、实验内容时域中,离散时间系统对输入信号或延迟信号进行运算处理,生成具有所需特性的输出信号。本实验通过MATLAB仿真一些简单的离散时间信号和系统,并研究其时域特性。涉及到离散时间信号、离散时间系统、系统性质及线性卷积等知识点。三、实验原理与方法和手段一个离散时间系统,输入信号为x(n),输出信号为y(n),运算关系用T[﹒]表示,则输入与输出的关系可表示为y(n)=T[x(n)]。在《信号与系统》和《数字信号处理》课程中,我们知道描述线性移不变离散时间系统的数学模型是常系数差分方程,它与系统的结构流图之间可以互相推导。迭代解法(也称递推解法)是求解差分方程的最简单也最适用的方法,也是实现数字滤波器的一种基本方法。差分方程通式为:mnxbknyaMmmNkk00x(n)与y(n)分别为系统的激励和响应。MATLAB以函数filter(num,den,x),来计算在给定输入和差分方程系数时求差分方程的数值解。num,den分别为系统方程的系数向量。x是输入序列。线性时不变系统的输入输出关系可通过单位脉冲响应h(n)表示:式中*表示卷积运算。可物理实现的线性时不变系统是稳定的、因果的。这种系统的单位脉冲响00[]()[]()NNkrakynkbrxnr11应是因果的(单边)且绝对可和的,即:h(n)=0,n0;nnh)(。在MATLAB语言中采用conv实现卷积运算即:y=conv(x,h),它默认从n=0开始。四、实验组织运行要求1.学生在进行实验前必须进行充分的预习,熟悉实验内容;2.学生根据实验要求,读懂并理解相应的程序;3.学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理;4.教师在学生实验过程中予以必要的辅导,独立完成实验;5.采用集中授课形式。五、实验条件1.具有WINDOWS98/2000/NT/XP操作系统的计算机一台;2.。MATLAB编程软件。六、实验步骤在“开始--程序”菜单中,找到MATLAB程序,运行启动;进入MATLAB后,首先熟悉界面;在CommandWindow中输入参考程序,并执行;记录运行结果图形,并与笔算结果对照。(MATLAB的使用请参考附录)具体步骤如下:1.已知某一系统方程为:y(n)+3y(n-1)+2y(n-2)=x(n)(1)利用MATLAB计算系统的脉冲响应h(n)并画出波形图,其中n=(-2,10)(2)若x(n)=u(n),利用MATLAB计算系统的零状态响应y(n)并画出波形图。2.设某LSI的单位脉冲响应和h(n)=)()21(nun,(1)判断此系统是否可实现;(2)

1 / 42
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功