收藏 分享(赏)

matlab 作业.doc

上传人:buyk185 文档编号:5550541 上传时间:2019-03-07 格式:DOC 页数:34 大小:2.02MB
下载 相关 举报
matlab 作业.doc_第1页
第1页 / 共34页
matlab 作业.doc_第2页
第2页 / 共34页
matlab 作业.doc_第3页
第3页 / 共34页
matlab 作业.doc_第4页
第4页 / 共34页
matlab 作业.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、实验一 产生信号波形的仿真实验一、实验目的:熟悉 MATLAB 软件的使用,并学会信号的表示和以及用 MATLAB来产生信号并实现信号的可视化。 二、实验内容: 对信号进行时域分析,首先需要将信号随时间变化的规律用二维曲线表示出来。对于简单信号可以通过手工绘制其波形,但对于复杂的信号,手工绘制信号波形显得十分困难,且难以绘制精确的曲线。 用MATLAB软件的信号处理工具箱(Signal Processing Toolbox)来产生并表示信号。一种是用向量来表示信号,另一种则是用符合运算的方法来表示信号。用适当的MATLAB语句表示信号后,可以利用MATLAB的绘图命令绘制出直观的信号波形。产生

2、以下信号波形 3sin(x)、5exp(-x)、sin(x)/x、12abs(x)/a、sqrt(a*x) 1、如下图所示为 3sin(x)的信号波形 :2、如下图所示为 5exp(-x)的信号波形 :3、如下图所示为 sin(x)/x 的信号波形 :4、如下图所示为 12abs(x)/3 的信号波形 :5、如下图所示为 sqrt(5*x)的信号波形 :实验二 连续时间信号卷积及MATLAB实现 一、实验目的:熟悉使用MATLAB软件来分析连续时间信号的卷积积分运算并用图形可视化相关结果。 二、实验内容: 1卷积积分 卷积积分在信号与线形系统分析中具有非常重要的意义,是信号与系统分析的基本方法

3、之一。 连续时间信号f 1(t)和f 2(t)的卷积积分(简称为卷积)f(t)定义为: 由此可得到两个与卷积相关的重要结论,即是: (1) ,即连续信号可分解为一系列幅度由 决定的冲激信号及其平移信号之和; (2)线形时不变连续系统,设其输入信号为 ,单位响应为 ,其零状态响应为 ,则有: 。 可见,连续信号卷积的计算对我们进行连续信号与系统的分析具有重要的意义。 用MATLAB实现连续信号 与 卷积的过程如下: (1)将连续信号 与 以时间间隔进行取样,得到离散序列 和 ; (2)构造 与 相对应的时间向量 和 ;(3)调用conv()函数计算卷积积分 的近似向量 ; (4)构造 对应的时间

4、向量k。 下面即是利用MATLAB实现连续时间卷积的通用函数sconv(),该程序在计算出卷积积分的数值近似的同时,还绘出 的时域波形图。需要注意的是,程序中是如何构造 的对应时间向量k的?另外,程序在绘制 波形图时采用的是plot命令而不是stem命令。 function f,k=sconv(f1,f2,k1,k2,p) %计算连续信号卷积积分f(t)=f1(t)*f2(t) 12()()dtft()()ftft ()ft()ft()ht()yt()ytfh1()ft2()ft 1()fk1ft()fk1()f2()fk1k2()ft()fn ()fn()ft()ft ()ft% f: 卷积

5、积分f(t)对应的非零样值向量 % k:f(t)的对应时间向量 % f1: f1(t)非零样值向量 % f2: f2(t)的非零样值向量 % k1: f1(t)的对应时间向量 % k2: f2(t)的对应时间向量 % p:取样时间间隔 f=conv(f1,f2); %计算序列f1与f2的卷积和f f=f*p; k0=k1(1)+k2(1); %计算序列f非零样值的起点位置 k3=length(f1)+length(f2)-2; %计算卷积和f的非零样值的宽度 k=k0:p:k3*p; %确定卷积和f非零样值的时间向量 subplot(2,2,1) plot(k1,f1) %在子图1绘f1(t)

6、时域波形图 title(f1(t) xlabel(t) ylabel(f1(t) subplot(2,2,2) plot(k2,f2) %在子图2绘f2(t)时波形图 title(f2(t) xlabel(t) ylabel(f2(t) subplot(2,2,3) plot(k,f); %画卷积f(t)的时域波形 h=get(gca,position); h(3)=2.5*h(3); set(gca,position,h) %将第三个子图的横坐标范围扩为原来的2.5倍 title(f(t)=f1(t)*f2(t) xlabel(t) ylabel(f(t)三、实验部分: 1已知两连续时间信号

7、如下图所示,试用MATLAB求 f(t)=f1(t)*f2(t),并绘出 f(t) 的时域波形图。(设定取样时间间隔为p) 参考程序:p=0.01;k1=0:p:2;f1=0.5*k1;k2=k1;f2=f1;f=conv(f1,f2); %f1f2ff=f*p;k0=k1(1)+k2(1); %fk3=length(f1)+length(f2)-2; %fk=k0:p:k3*p; %fsubplot(2,2,1)plot(k1,f1) %1f1(t)title(f1(t)xlabel(t)ylabel(f1(t)subplot(2,2,2)plot(k2,f2) %2f2(t)title(f

8、2(t)xlabel(t)ylabel(f2(t)subplot(2,2,3)plot(k,f); %-f(t)h=get(gca,position);h(3)=2.5*h(3);set(gca,position,h) %-2.5title(f(t)=f1(t)*f2(t)xlabel(t)ylabel(f(t)A、如下图所示当P=0.5时的波形:B、如下图所示当P=0.1时的波形:C、如下图所示当P=0.05时的波形:D、如下图所示当P=0.01时的波形:2已知两连续时间信号如下图所示,试用MATLAB求f(t)=f1(t)*f2(t),并绘出f(t)的时域波形图。(设定取样时间间隔为p)

9、参考程序: p=1.5; k1=0:p:2 f1=2*ones(1,length(k1) k2=0:p:4 f2=ones(1,length(k2) f=conv(f1,f2); %f1f2ff=f*p;k0=k1(1)+k2(1); %fk3=length(f1)+length(f2)-2; %fk=k0:p:k3*p; %fsubplot(2,2,1)plot(k1,f1) %1f1(t)title(f1(t)xlabel(t)ylabel(f1(t)subplot(2,2,2)plot(k2,f2) %2f2(t)title(f2(t)xlabel(t)ylabel(f2(t)subpl

10、ot(2,2,3)plot(k,f); %-f(t)h=get(gca,position);h(3)=2.5*h(3);set(gca,position,h) %-2.5title(f(t)=f1(t)*f2(t)xlabel(t)ylabel(f(t)A、如下图所示当 P=0.5 时的波形:B、如下图所示当 P=0.1 时的波形:C、如下图所示当 P=0.05 时的波形:D、如下图所示当 P=0.8 时的波形:E、如下图所示当 P=0.9 时的波形:F、如下图所示当 P=1 时的波形:实验三 系统时域特性的仿真分析实验一、实验目的:通过使用 MATLAB 仿真软件对 LTI 系统的时域特性进

11、行仿真分析对系统的冲激响应和零状态响应等有更深入的理解和掌握。 二、连续系统的冲激响应、阶跃响应及 MATLAB 实现 对于 LTI 连续系统,求解系统的冲激响应 h(t)和阶跃响应 g(t)对我们进行连续系统的分析具有非常重要的意义。MATLAB 为用户提供了专门用于求连续系统冲激响应和阶跃响应并绘制其时域波形的函数 impulse()和 step() 。 在调用 impulse()和 step()函数时,我们需要用向量来对连续系统进行分析。 设描述连续系统的微分方程为: 00NMi ji jaytaxt则我们可用向量 a 和 b 来表示该系统,即: a=aN,a N-1,a 1,a 0 b

12、=bN,b N-1,b 1,b 0 注意,向量 a 和 b 的元素一定要以微分方程中时间求导的降幂次序来排列,且缺项要用 0 来补齐。例如,对微分方程 , 32yttytftf则表示该系统的对应向量应为 a=1 3 2,b=1 0 1。 1 impulse()函数 函数 impulse()将绘出由向量 a 和 b 表示的连续系统在指定时间范围内的冲激响应 h(t)的时域波形图,并能求出指定时间范围内冲激响应的数值解。impulse()函数有如下几种调用格式: (1) impulse(b,a):该调用格式以默认方式绘出向量a和b定义的连续系统的冲激响应的时 域波形。例如描述连续系统的微分方程为,

13、运行如下MATLAB命令: 5632yttytftfta=1 5 6; b=3 2; impulse(b,a); 则绘出系统的冲激响应波形,如图 1 所示。 如图 1 连续系统的冲激响应 1 (2) impulse(b,a,t):绘出系统在0t时间范围内冲激响应的时域波形。对上例,若运行命令impulse(b,a,10),则绘出系统在010秒范围内冲激响应的时域波形,如图2所示 如图 2 连续系统的冲激响应 2 (3) impulse(b,a,t1:p:t2):绘出在t1t2时间范围内,且以时间间隔p均匀取样的冲激响应波形。对上例,若运行命令impulse(b,a,1:0.1:2),则绘出12

14、秒内,每隔0.1秒取样的冲激响应的时域波形,如图3所示 如图 3 连续系统的冲激响应 3 (4) y=impulse(b,a,t1:p:t2):不绘出波形,而是求出系统冲激响应的数值解。对上例,若运行命令y=impulse(b,a,0:0.2:2),则运行结果为: y = 3.0000 1.1604 0.3110 -0.0477 -0.1726 -0.1928 -0.1716 -0.1383 -0.1054 -0.0777 -0.0559 2 step()函数:可绘出连续系统的阶跃响应g(t)在指定时间范围的时域波形并能求出其数值解,和impulse()函数一样,也有四种调用格式。 三、 实验

15、内容: 已知描述某连续系统的微分方程为: 28yttytft(1) 绘出该系统在 030 秒范围内,并以时间间隔 0.01 秒取样的冲激响应和阶跃响应的时域波形;下图为该系统在 030 秒范围内,并以时间间隔 0.01 秒取样的冲激响应a=2 1 8;b=0 0 1;impulse(b,a,0:0.01:30)下图为该系统在 030 秒范围内,并以时间间隔 0.01 秒取样的阶跃响应a=2 1 8;b=0 0 1;step(b,a,0:0.01:30)(2)求出系统在 030 秒范围内,并以时间间隔 0.01 秒取样的冲激响应和阶跃响应的数值解。a=2 1 8;b=0 0 1;y=impuls

16、e(b,a,0:0.01:30)a=2 1 8;b=0 0 1;y=step(b,a,0:0.01:30)实验四 连续时间信号的频域特性仿真实验 一、用 MATLAB 函数实现连续信号的频域分析 MATLAB 的 Symbolic Math Toolbox 提供了能直接求解傅立叶变换及其逆变换的函数 fourier( )和 ifourier( )。 (1) Fourier变换函数fourier( )调用格式 F=fourier(f)是符号函数 f 的 Fourier 变换,默认返回是关于 的函数。如果 f=f(),则 fourier 函数返回关于 t 的函数。 F=fourier(f,v)返回

17、函数 F 是关于符号对象 的函数,而不是默认的 。 jvxvfedF=fourier(f,u,v)对关于 u 的函数 f 进行变换,返回函数 F 是关于 v的函数。 jvuFvfed(2) Fourier 逆变换 ifourier( )调用格式 f=ifourier(F)是函数 F 的 Fourier 逆变换,默认的独立变量是 ,默认返回是关于 x 的函数。如果 f=f(),则 fourier 函数返回关于 t 的函数。 f=ifourier(F,u)返回函数 f 是 u 的函数,而不是默认的 x 的函数。 f=ifourier(F,v,u)对关于 v 的函数 F 进行变换,返回关于 u 的函

18、数。注意:在调用函数 fourier( )和 ifourier( )之前,需用 syms 命令对所用到的变量进行说明,即要将这些变量说明成符号变量。 采用 fourier( )和 ifourier()得到的返回函数,仍然是符号表达式。如需对返回的函数作图,则应用 ezplot()绘图命令而不是用plot()命令。如果返回函数中含有诸如狄拉克函数 (t)等的项,则用 ezplot()也无法作图。 二、应用举例: 例1 试绘出连续时间信号 的时域波形及相应的幅频特性图。21tfteu参考MATLAB语言代码如下: clear; syms t; x=1/2*exp(-2*t)*sym(Heavisi

19、de(t); subplot(1,2,1); ezplot(x); F=fourier(x); subplot(1,2,2); ezplot(abs(F); 程序绘制的信号时域波形及幅频特性图为:注:Heaviside(t)函数即为单位阶跃函数 (t)。在调用 Heaviside(t)函数之前一定要在你的当前工作目录下创建该函数。创建 Heaviside(t)函数方法如下: function f=Heaviside(t) f=(t0); 且以 Heaviside.m 文件名保存。例 2 若某信号的傅立叶变换, 试绘出该信号的时域波形和响应图。24Fjw参考 MATLAB 语言代码如下: cle

20、ar; syms t w; F=4/(4+w2); subplot(1,2,1); ezplot(F); f=ifourier(F,t); subplot(1,2,2); ezplot(f); 程序绘制的信号时域波形及幅频特性图为:三、 实验内容: 1、已知某一连续时间信号为 ,试绘出它的时域波形及相应的频2tfe谱图。如下图为它的时域波形及相应的频谱图: syms t; x=exp(-2*abs(t); subplot(1,2,1); ezplot(x); F=fourier(x); Subplot(1,2,2); ezplot(abs(F);二、用 fft 函数对信号进行频谱分析 要求产生

21、一个时间从 0 到 250ms 的,含有噪声的,频率为 50Hz 和 120Hz 的时域信号,噪声的标准差为 2。离散信号的时间间隔为 2ms。 则 MATLAB 程序如下: t=0:0.001:0.25;x=sin(2*pi*50*t)+sin(2*pi*120*t);y=x+2*randn(size(t);plot(y(1:50);title(Noisy time domain signal);在绘制出的时域波形中我们很难辨认出信号中所含的频率成分,因此有必要进一步做频谱分析。 MATLAB 程序如下: Y=fft(y,256); pyy=Y.*conj(Y)/256; f=1000/25

22、6*(0:127); plot(f,pyy(1:128); title(power spectral density); 为了改变显示区域,可使用如下语句, plot(f(1:50),pyy(1:50);实验五 信号的幅度调制及 MATLAB 实现一、实验目的:熟悉使用MATLAB软件来分析信号的调制问题并可视化相关结果,同时分析和对比有关结果。 二、实验内容:用 MATLAB 实现本例的参考程序如下:Fs=1000; Fc=400; N=1000; n=0:N-2; t=n/Fs; x=sin(2*pi*50*t); subplot(221) plot(t,x); xlabel(t(s);

23、ylabel(x); title(); axis(0 0.1 -1 1) Nfft=1024; window=hamming(512); noverlap=256; dflag=none; Pxx,f=psd(x,Nfft,Fs,window,noverlap,dflag); subplot(222) plot(f,Pxx) xlabel(Hz); ylabel(X); title() grid y=modulate(x,Fc,Fs,am); subplot(223) plot(t,y) xlabel(t(s); ylabel(y); axis(0 0.1 -1 1) title() Pxx,

24、f=psd(y,1024,Fs,window,noverlap,dflag); subplot(224) plot(f,Pxx) xlabel(Hz); ylabel(Y); title(); grid 程序运行结果为:用 MATLAB 实现本例的参考程序如下:R=0.005;t=-1.2:R:1.2; f=1*sym(Heaviside(t+1)-Heaviside(t-1); f1=f.*cos(10*pi*t);W1=40; N=1000; k=-N:N; W=k*W1/N; F=f*exp(-j*t*W)*R; F=real(F); F1=f1*exp(-j*t*W)*R; F1=re

25、al(F1); subplot(2,2,1) ezplot(t,f); xlabel(t); ylabel(f(t); subplot(2,2,2); plot(t,f1); xlabel(t); ylabel(f1(t)=f(t)*cos(10*pi*t); subplot(2,2,3); plot(W,F); xlabel(w); ylabel(F(jw); subplot(2,2,4); plot(W,F1); xlabel(w); ylabel(F1(jw); 程序运行结果为 实验六 用 MATLAB 分析拉普拉斯变换及其曲面 一、实验目的:熟悉使用 MATLAB 软件来分析拉普拉斯变

26、换,并用三维的曲面图来可视化拉氏变换结果。 二、实验内容: 拉普拉斯变换是分析连续时间信号的有效手段,对于当 t时信号幅度不衰减或增长的时间信号,其傅立叶变换不存在,但我们可以用拉普拉斯变换来分析它们。 连续时间信号()ft 的拉普拉斯变换定义为: stFsfed其中 ,若以 为横坐标(实轴) ,j 为纵坐标(虚轴) ,复变sj量 s 就构成了一个复平面,称为 s 平面。 显然,是复变量 s 的复函数,为了便于理解和分析 随 s 的变化规律,我们可以将写成: jsFe其中 为复信号 的模,而 为 的相角。 s Fs1用 MATLAB 绘制拉普拉斯变换的曲面图 从三维几何空间的角度来看, 和 对

27、应着复平面的两个曲面,如s果我们能绘出它们的三维曲面图,我们就可以直观地分析连续信号的拉普拉斯变换 随复变量 s 的变化。 Fs上述过程我们可以利用 MATLAB 的三维绘图功能来实现。现在考虑如何用MATLAB 来绘制 s 平面的有限区域上连续时间信号 的拉普拉斯变换 的ftFs曲面图,我们以单位阶跃信号 为例来说明实现过程。 ut我们知道,对单位阶跃信号 ,其拉普拉斯变换为 。ft1s首先,我们用两个向量来确定绘制曲面图的 s 平面的横、纵坐标的范围。例如,我们可定义绘制曲面图的横坐标范围向量 x1 和纵坐标范围向量 y1 分别为: x1=-0.2:0.03:0.2; y1=-0.2:0.

28、03:0.2; 然后再调用 meshgrid()函数来产生矩阵 S,并用该矩阵来表示绘制曲面图的复平面区域,对应的 MATLAB 命令如下: x,y=meshgrid(x1,y1); s=x+i*y; 上述命令产生的矩阵 S 包含了复平面-0.20.2、-0.2j0.2 范围内以间 隔 0.03 取样的所有样点。 最后我们再计算出信号拉普拉斯变换在复平面的这些样点上的值,即可用函数 mesh()来绘出其曲面图,对应命令为: fs=abs(1./s); %计算拉氏变换在复平面上的样点值 mesh(x,y,fs); %绘制的氏变换曲面图 surf(x,y,fs); title(单位阶跃信号拉氏变换

29、曲面图); colormap(hsv); axis(-0.2,0.2,-0.2,0.2,0,60); rotate3d; 执行上述命令后,绘制的单位阶跃信号拉普拉斯变换曲面图为 【练习内容】: 已知连续时间信号 ,求出该信号的拉普拉斯变换,并用sinfttuMATLAB 绘制拉普拉斯变换的曲面图。 实现此功能的 MATLAB 参考程序为: %- clf; a=-0.5:0.08:0.5; b=-1.99:0.08:1.99; a,b=meshgrid(a,b); d=ones(size(a); c=a+i*b; % c=c.*c; c=c+d; c=1./c; c=abs(c); %- mesh(a,b,c); %surf(a,b,c); axis(-0.5,0.5,-2,2,0,15); title(-); colormap(hsv); 执行上述命令后,绘制的单位阶跃信号拉普拉斯变换曲面图为:2由拉普拉斯曲面图观察频域与复频域的关系 我们知道,若信号 的傅立叶变换存在,则其拉普拉斯变换 与傅ft Fs立叶变换 存在如下关系: FjsjjF也即在信号拉普拉斯变换 中令 0,就可得到信号的傅立叶变换。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 职业教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报