数字信号处理导论实验指导书

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

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

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

资源描述

目录目录.........................................................................................................................................0前言.........................................................................................................................................1实验1用MATLAB产生时域离散信号..................................................................................2实验2离散LSI系统的时域分析............................................................................................9实验3离散LSI系统的频域分析..........................................................................................19实验4DFS、DFT与FFT.......................................................................................................32实验5抽样定理......................................................................................................................50实验6数字滤波器的网络结构..............................................................................................59实验7用MATLAB设计IIR数字滤波器(一).................................................................69实验8用MATLAB设计IIR数字滤波器(二).................................................................78实验9用MATLAB设计IIR数字滤波器(三).................................................................88实验10用MATLAB设计FIR数字滤波器(一)..............................................................97实验11用MATLAB设计FIR数字滤波器(二)............................................................104实验12用MATLAB设计FIR数字滤波器(三)............................................................120附录1MATLAB基础介绍...................................................................................................138附录2信号处理工具箱常用函数介绍..............................................................................1571前言数字信号处理是一门理论和工程实践密切结合的课程。为了加深对教学内容的理解,应在学习理论的同时,加强上机实验,深入理解和消化基本理论,锻炼初学者独立解决问题的能力。本课程实验要求学生运用MATLAB编程完成一些数字信号处理的基本功能。MATLAB是一种强大的分析、计算及可视化工具。它以矩阵运算为基础进行数据处理,将高性能的数值计算和可视化集成在一起,提供了大量的内置函数,因而被广泛应用于科学计算、系统控制以及信息处理等领域。在DSP系统开发中,MATLAB丰富的信号处理工具箱是一种非常有效的辅助设计工具。通常,我们采用MATLAB工具与DSP汇编语言结合起来的方法进行设计。MATLAB主要发挥以下作用:1、提供设计数据。利用MATLAB的科学计算功能,对特定的设计任务进行计算,得出的设计数据(如数字滤波器的系数、数字化的输入信号等)可以提供给DSP系统的程序,供实现DSP系统或进行调试时使用。2、进行模拟仿真。在设计一个实时的DSP系统前,通常先使用MATLAB对算法在DSP上的运行性能进行仿真,仿真结果正确再通过编程将该算法从MATLAB改编成C或DSP汇编语言,在目标DSP上实现。由此可见,学习MATLAB在信号处理方面的知识是非常必要的。用MATLAB开设数字信号处理实验时,学生必须具备电路、信号与系统、数字信号处理及MATLAB语言方面的知识。数字信号处理实验课将为后继的DSP应用、语音处理、现代通信系统等专业课打下基础。本实验讲义依据数字信号处理的基本理论及MATLAB在数字信号处理中的应用选择编排了12个实验。实验内容涉及离散LSI系统的时域及频域分析,离散傅里叶级数及离散傅里叶变换、z变换、抽样定理以及数字滤波器的设计,基本涵盖了本科阶段数字信号处理课程的主要知识点。完全与我校电子、通信专业本科生当前选用的数字信号处理教材同步。希望对学生理解数字信号处理的基本理论、后继专业课的学习以及个人实际动手能力的提高能够提供一定的帮助。另外,本讲义的所有例题程序都经过编者一一验证,所用MATLAB版本为MATLAB7.0。限于编者水平,难免存在一些不足。真诚希望有兴趣的读者提出宝贵建议促进课程发展,共同探秘奇妙的数字信号处理世界。编者2011.122实验1用MATLAB产生时域离散信号一、.实验目的:1、了解常用时域离散信号及其特点。2、掌握用MATLAB产生时域离散信号的方法。二、.实验原理:1、时域离散信号的概念在时间轴的离散点上取值的信号,称为离散时间信号。通常,离散时间信号用x(n)表示,其幅度可以在某一范围内连续取值。由于信号处理设备或装置(如计算机、专用的信号处理芯片等)均以有限位的二进制数来表示信号的幅度,因此,信号的幅度也必须离散化。我们把时间和幅度均取离散值的信号称为时域离散信号或数字信号。在MATLAB语言中,时域离散信号可以通过编写程序直接产生。2、常用时域离散信号的生成1)单位抽样序列单位抽样序列的表示式为01)(n00nn或01)(kn0nkn以下三段程序分别用不同的方法来产生单位抽样序列。例1-1用MATLAB的关系运算式来产生单位抽样序列。n1=-5;n2=5;n0=0;n=n1:n2;x=[n==n0];可以解释为判断语句,结果为真,x=1;否则,x=0;stem(n,x,'filled');axis([n1,n2,0,1.1*max(x)]);xlabel('时间(n)');ylabel('幅度x(n)');title('单位脉冲序列');运行结果如图1-1所示:-5-4-3-2-101234500.20.40.60.81时间(n)幅度x(n)单位脉冲序列图1-13例1-2用zeros函数和抽样点直接赋值来产生单位抽样序列。n1=-5;n2=5;k=0;n=n1:n2;nt=length(n);nk=abs(k-n1)+1;x=zeros(1,nt);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所示-5-4-3-2-101234500.20.40.60.81时间(n)幅度x(n)单位脉冲序列图1-22)单位阶跃序列单位阶跃序列表示式为1()=0un00nn或1(-)=0unk00nn以下三段程序分别用不同的方法来产生单位阶跃序列。例1-4用MATLAB的关系运算式来产生单位阶跃序列。n1=-2;n2=8;n0=0;n=n1:n2;x=[n=n0];stem(n,x,'filled');4axis([n1,n2,0,1.1*max(x)]);xlabel('时间(n)');ylabel('幅度x(n)');title('单位阶跃序列');box运行结果如图1-3所示:-2-101234567800.20.40.60.81时间(n)幅度x(n)单位阶跃序列图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-n0)=0];stem(n,x,'filled');axis([n1,n2,0,1.1*max(x)]);xlabel('时间(n)');ylabel('幅度x(n)');title('移位的单位阶跃序列');box程序运行结果如图1-4所示:-10-8-6-4-2024681000.20.40.60.81时间(n)幅度x(n)移位的单位阶跃序列图1-453)实指数序列实指数序列的表示式为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(2,2,3);stem(na1,x1,'filled');title('实指数序列(a1)');subplot(2,2,2);plot(na2,x2);title('实指数信号(a1)');subplot(2,2,4);stem(na2,x2,'filled');title('实指数序列(a1)');box程序运行结果如图1-5所示:-10-50050010001500实指数信号(a1)-10-50050010001500实指数序列(a1)0510050010001500实指数信号(a1)0510050010001500实指数序列(a1)图1-54)复指数序列复指数序列的表示式为x(n)=e(σ+jω)n当ω=0时,x(n)为实指数序列;当σ=0时,x(n)为虚指数序列,即ejωn=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,2,1);plot(n,real(x));6title('复指数信号的实部');subplot(2,2,3);stem(n,real(x),'filled');title('复指数序列的实部');subplot(

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

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

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

×
保存成功