(2).反折
连续信号的反折,是指将信号以纵坐标为轴反折,即将信号f(t)中的自变量t换为-t。实现如下:
y=subs(f,t,-t); ezplot(y) (3).尺度变换
连续信号的尺度变换,是指将信号的横坐标进行展宽或压缩变换,即将信号f(t)中的自变量t换为at,当a>1时,信号f(at)以原点为基准,沿横轴压缩到原来的1/a;当0
y=subs(f,t,*t); ezplot(y) (4).倒相
连续信号的倒相是指将信号f(t)以横轴为对称轴对折得到-f(t)。实现如下: y=-f; ezplot(y)
对于以上的命令,可在画图命令之后加入坐标轴的调整的命令(即加入axis( )命令),以使画出的图形更清晰、直观。
4.连续信号的卷积
用MATLAB实现连续信号f1(t)与f1(t)卷积的过程如下:
1.将连续信号f1(t)与f1(t)以时间间隔Δ进行取样,得到离散序列f1(kΔ)与f1(kΔ);
2.构造与f1(kΔ)和f1(kΔ)相对应的时间向量k1和k2(注意,此时时间序号向量k1和k2的元素不再是整数,而是取样时间间隔Δ的整数倍的时间间隔点);
3.调用conv( )函数计算卷积积分f(t)的近似向量f(nΔ); 4.构造f(nΔ)对应的时间向量k。
根据以上步骤我们自己可以比较容易写出求连续信号卷积的函数程序sconv( ),该函数实现的功能为:在计算连续信号的卷积的同时绘出信号及卷积结果的波形,程序如下:
function [f,k]=sconv(f1,f2,k1,k2,p) %计算连续信号卷积积分f(t)=f1(t)*f2(t) %f: 卷积积分f(t)对应的非零样值向量
26
%k: f(t)的对应时间向量 ?: f1(t)的非零样值向量 ò: f2(t)的非零样值向量 %k1: f1(t)的对应时间向量 %k2: f2(t)的对应时间向量 %p: 取样时间间隔
f=conv(f1,f2); %计算需要序列f1与f2的卷积和f f=f*p; %将f进行采样
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)时域波形图 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)的时域波形 title('f(t)=f1(t)*f2(t)') xlabel('t') ylabel('f(t)')
给定下面两个连续信号,我们调用sconv( )函数来求两连续信号的卷积。 f1(t)=2[U(t)-U(t-4)] f2(t)=U(t)-U(t-2) MATLAB命令如下: p=0.01;
27
k1=0:p:4; f1=2*ones(1,length(k1))
k2=0:p:2; f2=ones(1,length(k2)) ?,f2两个信号的向量表示 [f,k]=sconv(f1,f2,k1,k2,p) %子函数调用 运行程序,绘制卷积结果波形如图3.4所示。
图3.4 连续时间信号的卷积
为了能比较熟练的运用MATLAB计算卷积,我们可以将我们比较熟悉的信号都带入到上面的程序中去,当然也可以自己描述一些信号来求其卷积。
四、实验设备:
计算机 MATLAB软件
五、实验的预习:
1、认真阅读教科书中有关卷积的这部分内容,了解其原理和计算方法。 2、了解MATLAB的相关知识,包括它的功能,简单的函数用法等等。
六、实验内容及具体步骤:
1.在老师提示和引导下用 MATLAB 来表示常见信号
打开电脑,双击桌面上的matlab7.0的快捷方式,进入到MATLAB界面,然后进入编辑界面【file】-【new】,或者直接点击新建空白页按钮,可以看到出现一个命名为untitled的编辑窗口,这就是我们的程序输入窗口。我们先做准备工作,敲入一些简单的信号并输出,了解一下它的功能。
28
常见连续信号的表示:阶跃信号 门信号 正弦信号 指数信号等等 常见离散序列的表示:随机离散序列 单位阶跃序列 正弦序列 离散时间指数序列
将描述各个信号的函数键入以后,保存到MATLAB根目录下的work文件夹中,并按照各个信号的性质进行命名。然后对各个函数运行一下,看是否和实际的函数一致。编译程序【debug】-【run】,或者直接按F5就可以进行。程序不大,编译很快就会完成,成功的编译会出现名为figure的窗口,可以看到信号的波形。
2.针对一些信号做一下时域变换
时域变换主要是在时域范围内对信号进行信号的平移、反折、倒相以及信号的尺度变换。
1)、移位
y=subs(f,t,t-t0); ezplot(y)
2)、反折
y=subs(f,t,-t); ezplot(y)
3)、尺度变换 y=subs(f,t,a*t) ezplot(y)
4)、倒相 y=-f
ezplot(y)
给定一个信号,对此信号做以上这些时域变换操作,将写好的程序保存到根目录work文件夹中,然后对程序进行编译运行,编译成功后,观察图形窗口中显示的波形与原来信号的波形之间的关系。
对信号做时域的变换可以增加学生对MATLAB的认识,也可以巩固对信号的表示。同时我们也可以用这些变换来表示一些复杂的信号。
3.利用MATLAB计算两个信号的卷积
在MATLAB中我们采用它自带的函数conv( )来对信号进行卷积 1)求连续信号的卷积
打开一个空白编辑窗口,先将要卷积的两个信号表示出来,然后将两个信号带入到conv( )函数中,再敲入画图命令plot( )函数。把写好的程序存入MATLAB根目录下的work文件夹中,按F5进行编译运行,编译成功后可以观察波形窗
29
口的输出波形,记录下来。
为了能更加深大家的印象,可以换不同的信号来做卷积运算。只需要把信号表示部分做更改就可以了。做上面一样的操作,观察记录波形。
同样,我们可以把计算卷积和画图的操作写成一个函数sconv,而使用时只需表示信号,再调用此函数就可以了。
波形要观察和记录的内容: 1、波形在幅度上的变化; 2、波形在时域范围内的变化; 4.验证信号卷积特性:
卷积的特性有:交换律、结合律、分配律。这里主要验证它的结合律和分配律。
1)、验证结合律[x(n)*h1(n)]*h2(n)?x(n)*[h1(n)*h2(n)]
要验证结合律,我们要把其中两个信号先进行卷积,再与第三个信号相卷积。将写好的程序保存,编译运行,将得到的信号保存下来。
将刚刚用过的三个信号调换位置,重复上面的操作。将程序保存,编译运行。可以看到所得信号与上面保存的信号是一样的。说明卷积满足结合律。
2)、验证分配律x(n)*[h1(n)?h2(n)]?x(n)*h1(n)?x(n)h2(n)
要验证分配律,我们先把两个信号相加,表示出来,然后与第三个信号相卷积。写好程序,保存,编译运行。
再把这两个信号分别与第三个信号进行卷积,然后再把两个信号叠加。保存程序,编译运行。
观察比较前后两个程序的输出。输出一致,说明卷积满足分配律。 建议:将实验中的程序保存,而且把输出波形都以图片.jpg的格式保存下来,我们可以方便的比较实验的结果 (如在验证卷积特性时,等式左右两边的波形图应该是一样的),在实验报告中也会用到。
七、思考题
1、某系统的冲激响应为h(t)?e?tU(t),系统的激励为x(t)?2*sin试编程求出该系统的零状态响应,并绘出响应波形。
?t2U(t),
30
2、实验中没有用连续信号来验证卷积的性质,试仿照离散序列的程序写出用连续信号验证卷积结合律特性的程序,并用简单信号来证明程序正确性。
八、实验报告要求:
(1)简述实验目的记实验原理。
(2)按照实验步骤上的实验过程,把重要的程序和实验结果都记录下来。 (3)总结实验中的主要结论。
31