《数字信号处理实验活动方案》由会员分享,可在线阅读,更多相关《数字信号处理实验活动方案(98页珍藏版)》请在金锄头文库上搜索。
1、 前 言数字信号处理是一门理论和工程实践密切结合的课程。为了加深对教学内容的理解,应在学习理论的同时,加强上机实验,深入理解和消化基本理论,锻炼初学者独立解决问题的能力。本课程实验要求学生运用MATLAB编程完成一些数字信号处理的基本功能。 MATLAB是一高效的工程计算语言,它将计算、可视化和编程等功能集于一个易于使用的环境。在MATLAB环境中描述问题计编制求解问题的程序时,用户可以按照符合人们科学思维的方式和数学表达习惯的语言形式来书写程序。MATLAB广泛应用于工业,电子,医疗和建筑等众多领域。其典型应用主要包括以下几个方面:数学计算;算法开发;数据采集;系统建模和仿真;数据分析和可视
2、化科学和工程绘图;应用软件开发(包括用户界面)。 ; 实验1 用MATLAB产生时域离散信号一、.实验目的:1、了解常用时域离散信号及其特点2、掌握用MATLAB产生时域离散信号的方法二、.实验原理:1、时域离散信号的概念在时间轴的离散点上取值的信号,称为离散时间信号。通常,离散时间信号用x(n)表示,其幅度可以在某一范围内连续取值。由于信号处理设备或装置(如计算机、专用的信号处理芯片等)均以有限位的二进制数来表示信号的幅度,因此,信号的幅度也必须离散化。我们把时间和幅度均取离散值的信号称为时域离散信号或数字信号。在MATLAB语言中,时域离散信号可以通过编写程序直接产生。2、常用时域离散信号
3、的生成1) 单位抽样序列单位抽样序列的表示式为 或 以下三段程序分别用不同的方法来产生单位抽样序列。例1-1 用MATLAB的关系运算式来产生单位抽样序列。n1= -5;n2=5;n0=0;n=n1:n2;x=n=n0;stem(n,x,filled);axis(n1,n2,0,1.1*max(x); xlabel(时间(n);ylabel(幅度x(n);title(单位脉冲序列); 运行结果如图1-1所示:图1-1例1-2 用zeros函数和抽样点直接赋值来产生单位抽样序列。n1=-5;n2=5;k=0;n=n1:n2;nt=length(n);(取参数的长度)nk=abs(k-n1)+1;
4、取绝对值x=zeros(1,nt);(行、列)(zeros生成零矩阵)x(nk)=1;绘图部分的程序及作图结果与例1-1相同。例1-3 生成移位的单位脉冲序列。 n1=-5;n2=5;n0=2;n=n1:n2;x=(n-n0)=0;stem(n,x,filled);axis(n1,n2,0,1.1*max(x);xlabel(时间(n);ylabel(幅度x(n);title(单位脉冲序列); 运行结果如图1-2所示图1-22) 单位阶跃序列 单位阶跃序列表示式为 或 以下三段程序分别用不同的方法来产生单位阶跃序列。例1-4用MATLAB的关系运算式来产生单位阶跃序列。n1=-2;n2=8;n
5、0=0;n=n1:n2;x=n=n0;stem(n,x,filled);axis(n1,n2,0,1.1*max(x);xlabel(时间(n);ylabel(幅度x(n);title(单位阶跃序列);box运行结果如图1-3所示:图1-3例1-5 用zeros和ones函数来产生单位阶跃序列。n1=-2;n2=8;k=0;n=n1:n2;nt=length(n);nk=abs(k-n1)+1;x=zeros(1,nk-1),ones(1,nt-nk+1);绘图部分的程序及作图结果与例1-4相同。.例1-6生成移位的单位阶跃序列。n1=-10;n2=10;n0=4;n=n1:n2;x=(n-n
6、0)=0;stem(n,x,filled);axis(n1,n2,0,1.1*max(x);xlabel(时间(n);ylabel(幅度x(n);title(移位的单位阶跃序列);box程序运行结果如图1-4所示:图1-43) 实指数序列实指数序列的表示式为 x(n)=an 其中a为实数例1-7 编写产生a=1/2和a=2的实指数连续信号和离散序列的程序n1=-10;n2=10;a1=0.5;a2=2;na1=n1:0;x1=a1.na1;na2=0:n2;x2=a2.na2;subplot(2,2,1);plot(na1,x1);(图形窗口)title(实指数信号(a1));subplot(
7、2,2,3);stem(na1,x1,filled);title(实指数序列(a1));subplot(2,2,4);stem(na2,x2,filled);title(实指数序列(a1));box程序运行结果如图1-5所示:图1-54)复指数序列复指数序列的表示式为 x(n)=e(+j)n当=0时,x(n)为实指数序列;当=0时,x(n)为虚指数序列,即ejn=cos(n)+jsin(n)其实部为余弦序列,虚部为正弦序列。例1-8 编写程序产生=-0.1,=0.6的复指数连续信号与离散序列。n1=30;a=-0.1;w=0.6;n=0:n1;x=exp(a+j*w)*n);subplot(2
8、,2,1);plot(n,real(x);title(复指数信号的实部);subplot(2,2,3);stem(n,real(x),filled);title(复指数序列的实部);subplot(2,2,2);plot(n,imag(x);title(复指数信号的虚部);subplot(2,2,4);stem(n,imag(x),filled);title(复指数序列的虚部);box程序运行结果如图1-6所示图1-65)正(余)弦序列正(余)弦序列的表示式为 x(n)=Umsin(0n+)例1-9 已知一时域周期性正弦信号的频率为1Hz,振幅值为1V。编写程序在图形窗口上显示两个周期的信号波
9、形,并对该信号的一个周期进行32点采样获得离散信号。f=1;Um=1;nt=2;N=32;T=1/f;dt=T/N;n=0:nt*N-1;tn=n*dt;x=Um*sin(2*f*pi*tn);subplot(2,1,1);plot(tn,x);axis(0,nt*T,1.1*min(x),1.1*max(x);ylabel(x(t);subplot(2,1,2);stem(tn,x);axis(0,nt*T,1.1*min(x),1.1*max(x);ylabel(x(n);box程序运行结果如图1-7所示图1-76)矩形波序列MATLAB提供有专门函数square用于产生矩形波。其调用格式
10、如下:x=square(t) :类似于sin(t),产生周期为2,幅值为1的方波。x=square(t,duty):产生指定周期的矩形波,其中duty用于指定占空比。将square的参数t换成n,且n取整数,则可以获得矩形序列。例1-10 一个周期性矩形信号频率为5kHz,信号幅度在02V之间,占空比为0.25,。编写程序生成该信号,要求在图形窗口上显示2个周期的信号波形;对信号的一个周期进行16点采样获得离散信号。f=5000;nt=2;N=16;T=1/f;dt=T/N;n=0:nt*N-1;tn=n*dt;x=square(2*f*pi*tn,25)+1;subplot(2,1,1);p
11、lot(tn,x);axis(0,nt*T,1.1*min(x),1.1*max(x);ylabel(x(t);subplot(2,1,2);stem(tn,x);axis(0,nt*T,1.1*min(x),1.1*max(x);ylabel(x(n);box程序运行结果如图1-8所示;三、.实验内容:1、阅读并上机验证实验原理部分的例题程序,理解每一条语句的含义。改变例题中的有关参数(如信号的频率、周期、幅度、显示时间的取值范围、采样点数等),观察对信号波形的影响。2、编写程序,产生以下离散序列:(1)f(n)=(n) (-3n4)(2)f(n)=u(n) (-5n5)(3)f(n)= e
12、(0.1+j1.6)n (0n16)(4)f(n)=3sin(n/4) (0n20)3、一个连续的周期性方波信号频率为200Hz,信号幅度在-1+1V之间,要求在图形窗口上显示其两个周期的波形。以4kHz的频率对连续信号进行采样,编写程序生成连续信号和其采样获得的离散信号波形。四、.实验预习:1、预先阅读附录部分的MATLAB基础介绍,认真阅读实验原理,明确本次实验任务,读懂例题程序,了解实验方法。 2、根据实验内容预先编写实验程序。3、预习思考题:产生单位脉冲序列和单位阶跃序列各有几种方法?如何使用?五、实验报告1、列写调试通过的实验程序,打印实验程序产生的曲线图形。2、思考题:通过例题程序
13、,你发现采样频率Fs、采样点数N、采样时间间隔dt在程序编写中有怎样的联系?使用时需注意什么问题?实验2 离散LSI系统的时域分析一、.实验目的:1、加深对离散系统的差分方程、单位脉冲响应、单位阶跃响应和卷积分析方法的理解。2、初步了解用MATLAB语言进行离散时间系统时域分析的基本方法。3、掌握求解离散时间系统的单位脉冲响应、单位阶跃响应、线性卷积以及差分方程的程序的编写方法,了解常用子函数的调用格式二、实验原理:1、离散LSI系统的响应与激励由离散时间系统的时域分析方法可知,一个离散LSI系统的响应与激励可以用如下框图表示:其输入、输出关系可用以下差分方程描述:2、用函数impz和dste
14、p求解离散系统的单位脉冲响应和单位阶跃响应。例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)项的系数a0进行归一化,得到y(n)+1/3y(n-2)=1/6x(n)+1/2x(n-1)+1/2x(n-2)+1/6x(n-3)分析上式可知,这是一个3阶系统,列出其bk和ak系数: a0=1, a,1=0, a,2=1/3, a,3=0 b0=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;