当前位置:文档之家› 仿真实验报告

仿真实验报告

实验报告李文海 2014141223024 实验目的:1)熟悉和掌握实现常用信号的产生方法;;2)理解系统的单位冲激响应的概念,LTI 系统的卷积表达式及其物理意义,卷积的计算方法;3)理解典型信号的频谱特征;4)理解系统的频率响应的概念及其物理意义,理解具有不同频率响应特性的滤波器对信号的滤波作用;5)学会利用编程实现卷积以求解系统响应,并绘制相应曲线;6)学会利用编程实现一些典型信号的频谱分析,并绘制相应曲线。

实验内容:1) 编程产生以下三个正弦信号,并画出波形图。

1122312[]cos(2), []cos(2),[][] +[],x n f n x n f n x n x n x n ππ===其中f1=1/8,f2=5/8;用matlab 编程如下:n= [0:15];x1=cos(2*pi*0.125*n);x2=cos(2*pi*0.625*n);x3=x1+x2;figure(1);subplot(3,1,1);stem(n,x1);subplot(3,1,2);stem(n,x2);subplot(3,1,3);stem(n,x3); 运行结果:(由上到下依次是x1,x2,x3)2)编程计算下面卷积:已知h1[n]={0.0031,0.0044, -0.0031, -0.0272,-0.0346,0.0374, 0.1921, 0.32790.3279,0.1921,0.0374,-0.0346,-0.0272,-0.0031, 0.0044,0.0031 },n=0,1, (15)a、当h [n]=h1[n]时,输入分别为x1[n], x2[n]和x3[n]时系统的输出y[n],并画出波形图。

Matlab编程如下:h1=[ 0.0031 0.0044 -0.0031 -0.0272 -0.0346 0.0374 0.1921 0.32790.3279 0.1921 0.0374 -0.0346 -0.0272 -0.0031 0.0044 0.0031];h2=[-0.0238 0.0562 -0.0575 -0.1302 0.5252 -0.6842 -0.3129 5.6197 5.6197 -0.3129 0.6842 0.5252 -0.1302 -0.0575 0.0562 -0.0238];n1=[0:30];y11=conv(x1,h1);y12=conv(x2,h1);y13=conv(x3,h1);figure(2);subplot(3,1,1);stem(n1,y11);subplot(3,1,2);stem(n1,y12);subplot(3,1,3);stem(n1,y13);运行结果:h2[n]= {-0.0238,0.0562,-0.0575,-0.1302,0.5252, -0.6842,-0.3129,5.6197,5.6197,-0.3129,-0.6842,0.5252,-0.1302,-0.0575,0.0562,-0.0238}, n=0,1, (15)b、当h [n]= h2[n]时,输入分别为x1[n], x2[n]和x3[n]时系统的输出y[n],并画出波形图。

Matlab编程如下:y21=conv(x1,h2);y22=conv(x2,h2);y23=conv(x3,h2);figure(3);subplot(3,1,1);stem(n1,y21);subplot(3,1,2);stem(n1,y22);subplot(3,1,3);stem(n1,y23);运行结果:3)编程实现以下信号的频谱分析:a、输入信号x1[n], x2[n] 和x3[n]的频谱,并画出频谱图;Matlab编程如下:k=-60:60;w=(pi/30)*k;X1=x1*(exp(-j*pi/30)).^(n'*k);X2=x2*(exp(-j*pi/30)).^(n'*k);X3=x3*(exp(-j*pi/30)).^(n'*k);figure(4);subplot(3,1,1);plot(w,abs(X1));subplot(3,1,2);plot(w,abs(X2));subplot(3,1,3);plot(w,abs(X3));运行结果:b、冲激响应h [n]=h1[n]时h [n]的频谱,三种输入信号下输出y[n]的频谱,并画出h [n]和输出信号的频谱图;Matlab编程如下:H1=h1*(exp(-j*pi/30)).^(n'*k);Y11=y11*(exp(-j*pi/30)).^(n1'*k);Y12=y12*(exp(-j*pi/30)).^(n1'*k);Y13=y13*(exp(-j*pi/30)).^(n1'*k);figure(5);subplot(4,1,1);plot(w,abs(H1));subplot(4,1,2);plot(w,abs(Y11));subplot(4,1,3);plot(w,abs(Y12));subplot(4,1,4);plot(w,abs(Y13));运行结果:c、冲激响应h [n]= h2[n]时h [n的频谱,三种输入信号下输出y[n]的频谱,并画出h [n]和输出信号的频谱图。

Matlab编程如下:H2=h2*(exp(-j*pi/30)).^(n'*k);Y21=y21*(exp(-j*pi/30)).^(n1'*k);Y22=y22*(exp(-j*pi/30)).^(n1'*k);Y23=y23*(exp(-j*pi/30)).^(n1'*k);figure(6);subplot(4,1,1);plot(w,abs(H2));subplot(4,1,2);plot(w,abs(Y21));subplot(4,1,3);plot(w,abs(Y22));subplot(4,1,4);plot(w,abs(Y23));运行结果:4)根据输入信号、h [n]和输出信号的频谱,验证输出信号的频谱与输入信号、h [n]的频谱关系(或卷积性质),即是否满足(e )(e )(e )j j j Y X H ωωω= 。

Matlab 编程如下:figure(7);W11=X1.*H1;W12=X2.*H1;W13=X3.*H1;subplot(3,1,1);plot(w,abs(W11));subplot(3,1,2);plot(w,abs(W12));subplot(3,1,3);plot(w,abs(W13));运行结果:figure(8);W21=X1.*H2;W22=X2.*H2;W23=X3.*H2;subplot(3,1,1);plot(w,abs(W21));subplot(3,1,2);plot(w,abs(W22));subplot(3,1,3);plot(w,abs(W23));运行结果:5)分析以上各种情况下,输出信号及频谱不同原因:输入信号x[n]不同,或者系统的单位冲击响应h[n]不同,都将导致输出信号y[n]的不同。

不同的信号经过傅里叶变换得到的频谱X(exp(jw)),H(exp(jw)),Y(exp(jw))不相同。

实验分析:1)、编程输出正弦信号x1,x2,x3,计算卷积并画出波形y11,y12,y13;y21,y22,y23可以直接调用matlab软件内部函数cos,conv等实现。

其中进行结果输出时,尤其注意变量范围的设定。

2)对信号进行傅里叶变换求其频谱时,可以通过函数关系式X=x*(exp(-j*pi/30)).^(n'*k)实现。

其中k的取值应满足使w的范围包含[-pi,pi]。

3)、进行验证时,通过Y(exp(jw))=X(exp(jw))H(exp(jw))得到的输出信号频谱,与对输出信号y(n)直接求频谱,两个结果基本吻合,从而证明了卷积性质成立。

(上图中figure7与figure5对应,figure8与figure6对应)。

对频谱X(exp(jw))与频谱Y(exp(jw))求乘积时,通过语句Y=X.*H 实现。

实验心得体会:通过这次仿真实验,我对LTI系统对离散时间信号的响应有了更直观的感受。

单位冲激信号可以作为一种基本信号,系统对任意信号的响应可以通过对输入信号与单位冲激信号响应作卷积求得。

由卷积性质,两个信号在时域上的卷积可以转换为在频域上的乘积。

由时域到频域的转换,通过傅里叶变换实现。

这为我们处理信号提供了一个有效的方法。

仿真实验将理论知识通过直观的图形展示出来,有力印证了理论的正确性,也增添了学习的趣味。

在进行实验的过程中,也遭遇了一些难题。

通过查阅相关工具书籍,与同学进行交流讨论,最终难题也被逐个克服。

在解决困难的过程中,对工具的使用也在日渐熟悉,知识视野也有了扩大。

同时,也充分意识到自己知识的局限,以后还有很多要学习的东西。

相关主题