数字信号处理实验报告书
- 格式:docx
- 大小:4.33 MB
- 文档页数:30
数字信号处理实验报告书班级:姓名:学号:联系方式:2019年12月实验一 离散时间信号产生,图形显示及文件读存实验1.实验目的1、熟悉常用的MATLAB 命令,掌握离散时间信号的时域表示方法;2、掌握用MATLAB 描绘二维图像的方法;3、掌握用MATLAB 存读文件的方法。
2.实验原理及实验内容1、实验原理序列的表示方法有列举法、解析法和图形法,相应的用MATLAB 也可以用以下几种表示方法,具体介绍如下: (1)列举法在MATLAB 中,用一个列向量来表示一个有限长序列,由于一个列向量并不包含位置信息,因此需要用表示位置的n 和表示量值的x 两个向量来表示任意一个序列,如:例1.1:n=[-3,-2,-1,0,1,2,3,4]; x=[2 5 1 2 0 3 -1 4];如果不对向量的位置进行定义,则MATLAB 默认该序列的起始位置为n=0。
由于内存有限,MATLAB 不能表示一个无限序列。
(2)解析法对于有解析表达式的确定信号,首先定义序列的范围即n 的值,然后直接写出该序列的表达式,如:例1.2:实现实指数序列()(0.5),010nx n n =≤≤的MATLAB 程序为: n=0:10; x=(0.5).^n; (3)图形法在MATLAB 中用图形法表示一个序列,是在前两种表示方法的基础上将序列的各个量值描绘出来,即首先对序列进行定义,然后用相应的画图语句画图,如:例1.3:绘制在1中用列举法表示的序列的图形,则在向量定义之后加如下绘图语句:stem(n,x);MATLAB 中数据格式主要有二进制格式和ASCII 码格式,使用函数完成数据存取功能。
2、实验内容(1)产生一个单位抽样序列(),18n n δ-≤≤和一个有延迟的单位抽样序列(5),18n n δ--≤≤,并在同一界面绘制其序列图形。
(2)产生一个向前时移3个时刻的单位阶跃序列:(3)u n +,其中55n -≤≤,绘制其序列的图形。
(3)产生一个复指数序列:35,3030j ne n -≤≤,绘制其序列的图形,绘制其实部、虚部、幅度和相位波形。
(4)将数据文件保存为.dat 文件和ASCII 码相应文件 3.实验程序及实验结果1-1>> n = [-1:8];>> x = [zeros(1,1),1,zeros(1,8)]; >> stem(n,x)>> axis([-5,10,0,2]); >>>> n = [-1:8];>> x = [zeros(1,6),1,zeros(1,3)]; >> stem(n,x)>> axis([-5,10,0,2]);>>1-2>> n = [-5:5];>> x = [zeros(1,2),ones(1,9)]; >> stem(n,x)>>1-3n0 = -30;n2 = 30;n = n0:n2;x = 5*exp(3j*n);figure(1)subplot(411)stem(n,real(x),'filled');axis([-30,30,min(real(x))-1,1.2*max(real(x))]) title('复指数序列')ylabel('实部');grid;subplot(412)stem(n,imag(x),'filled');axis([-30,30,min(imag(x))-1,1.2*max(imag(x))]) ylabel('虚部');xlabel('n');grid;subplot(413)stem(n,abs(x),'filled');axis([-30,30,min(abs(x))-1,1.2*max(abs(x))]) ylabel('振幅');xlabel('n');grid;subplot(414)stem(n,angle(x),'filled');axis([-30,30,min(angle(x))-1,1.2*max(angle(x))]) ylabel('相位');xlabel('n');grid;4.心得体会很久没用MATLAB了,不会新建脚本,在编辑器中写代码而在命令行窗口编辑代码,造成了很多不必要的麻烦。
而后请教同学打开了编辑器。
编写代码方便了许多。
通过实验一,我学会了离散时间信号产生,图形显示及文件读存,在课本以及网上找类似的代码“临摹”,不仅有助于我学习使用MATLAB产生抽样序列和复指数序列的方法,更培养了我独立自学的能力。
实验二 离散信号的卷积和实验1.实验目的1、掌握两个离散信号卷积和的计算方法和编程技术;2、掌握用MATLAB 描绘二维图像的方法。
2.实验原理及实验内容1、卷积和的原理两个离散序列x(n)与y(n)的卷积和f(n)定义为:()()*()()()m f n x n y n x m y n m ∞=-∞==-∑由于通常信号处理中所碰到的都是有始信号或有限时间信号,因此在实际计算卷积和时,求和是在有限范围内进行的。
计算过程中上下限的选取和所得结果的分布区间取决于参与卷积的两个序列,下面将分别进行讨论: 两个从n=0开始的序列()()()x n x n u n =和()()()y n y n u n =的卷积:()()()()()[()()]()m m f n x m u m y n m u n m x m y n m u n ∞∞=-∞==--=-∑∑(1)上式右边因子u(n)表示卷积和的结果也是一个从n = 0开始的序列。
从n=n1开始的序列1()()()x n x n u n n =-和从n=n2开始的序列2()()()y n y n u n n =-的卷积和,其中n1和n2为任意整数。
211212()()()()()[()()]()m n n m n f n x m u m n y n m u n m n x m y n m u n n n ∞=-∞-==----=---∑∑ (2)上式右边因子u(n-n1-n2)表示卷积和是一个从n=n1+n2开始的序列。
从n=n1开始的长度为N1的加窗序列1()()()N x n x n w n =和从n=n2开始的长度为N2的加窗序列2()()()N y n y n w n =的卷积和,其中111111()0N n n n N w n otherwise≤≤+-⎧=⎨⎩222211()0N n n n N w n otherwise ≤≤+-⎧=⎨⎩则12()()()()()N N m f n x m wm y n m w n m ∞=-∞=--∑ (3)所得卷积和也是一个加窗序列,从n = n1+ n2开始,长度为N1+ N2-1。
MATLAB 提供了一个内部函数conv(x,h)用来计算两个有限长度序列的卷积,该函数得到的卷积结果默认从n=0开始,因此当参与卷积的两个序列的起始位置不是n=0时,则由该函数得到的计算结果将出现错误,此时需要重新定义结果的位置向量。
由以上卷积运算的原理可知,两有限长序列卷积后仍为有限长序列,长度为两序列长度之和减1,结果的起始位置为两序列起始位置之和,截止位置为两序列截止位置之和。
据此,可以得到卷积结果的位置向量。
2、实验内容已知某系统的单位取样响应为()()()[]88.0--=n u n u n h n,试用MATLAB 求当激励信号为)4()()(--=n u n u n x 时,系统的零状态响应。
系统的零状态响应是激励与系统的单位取样响应的卷积。
3.实验程序及实验结果subplot(311) n=-2:8;y1=[zeros(1,2),ones(1,9)]; y2=[zeros(1,6),ones(1,5)]; x=y1-y2; stem(n,x)axis([-2,8,0,2]); subplot(312) n=-2:8;y1=[zeros(1,2),ones(1,9)]; y3=[zeros(1,10),ones(1,1)]; h=(0.8).^n.*(y1-y3); stem(n,h)axis([-2,8,0,2]);subplot(313)z=conv(x,h);plot(z);4.心得体会通过这次实验,我领会到了严谨治学,一丝不苟的态度,在科学研究中的重要性,有时科学研究会是极其枯燥的,可能是复杂的数学演算,或是一次次重复的实验,但不论是什么,我们都要抱以认真务实的态度对待科学,绝不可草草了事,我们现在是站在巨人的肩膀上学习,要抓重点,抓主线,把最本质的东西弄懂,弄通。
比如傅立叶变换,才能在学习心知识的时候多思考,多总结发现内在规律才能有创造性的思考问题。
实验三吉布斯现象实验1.实验目的1、理解吉布斯现象的定义;2、掌握矩形波信号及傅里叶级数的表示方法;3、观察信号对比效果图,进一步认识吉布斯现象。
2.实验原理及实验内容1、吉布斯现象介绍将具有不连续点的周期函数(如矩形脉冲)进行傅立叶级数展开后,选取有限项进行合成。
当选取的项数越多,在所合成的波形中出现的峰起越靠近原信号的不连续点。
当选取的项数很大时,该峰起值趋于一个常数,大约等于总跳变值的9%。
2、实验内容(1)生成一个周期为T,幅值为F,占空比为50%的矩形波信号;【注】MATLAB中可能用到的函数:方波生成函数square( )。
一般形式为“y=A*square(B*t+C)”,其中A是方波信号的幅值,B是方波的角频率,C是方波的初相。
(2)求矩形波信号的傅里叶展开式;(3)用plot函数绘制傅里叶级数展开式,观察求和项数变化对矩形波合成情况的影响。
3.实验程序及实验结果t=-2:0.01:2;T=[15 25 51 101];for k=1:length(T)a=0;for n=1:2:T(k)b=exp(1i*n*pi*t)/n;a=a+b;endy=2*a/(1j*pi);x=0.5*square(pi*t);figure;p=plot(t,real(y),t,x);axis([-2,2,-0.8,0.8]);set(gca,'XTick',-2:1:2)set(gca,'YTick',-2:1:2)set(gca,'XTicklabel',{'-2','-1','0','1','2'})set(gca,'YTicklabel',{'-0.8','-0.4','0','0.4','0.8'})xlabel('自变量')ylabel('函数值')titlemsg=sprintf('吉布斯现象N=%d的合成波形',T(k));title(titlemsg)text(0,0.5,'\leftarrow方波函数','HorizontalAlignment','left') set(gcf,'Color','w')end4.心得体会通过此次课程设计,我对设计所用到的软件MATLAB有了更加深刻地了解,MATLAB不管在数值计算方面的功能很强大,而且其图形仿真功能更能满足各个领域的需要,因此我们以后更要经常运用MATLAB软件,使其成为自己不可或缺的工具。