信号与系统卷积计算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
卷积计算
说明:连续时间信号卷积及MATLAB 实现
连续时间信号f 1(t)和f 2(t)的卷积积分定义为:
τττd )t (f )(f )t (f *)t (f )t (f 21-==⎰∞
∞-用MATLAB 实现卷积积分的过程如下:
1)将连续信号f 1(t)和f 2(t)以时间间隔△进行取样,得到离散序列f 1(k△)和f 2(k△);
2)构造与f 1(k△)和f 2(k△)相对应的时间向量k1和k2;
3)调用conv()函数计算卷积积分f(t)的近似向量f(n △);
4)构造f(n △)对应的时间向量k 。
下面是利用MATLAB 实现连续信号卷积的通用函数sconv(),该程序在计算出卷积积分的数值近似的同时,还绘出f(t)的时域波形图。
建立如下的m 文件:
function [f,k]=sconv (f1,f2,k1,k2,p)
%计算连续信号卷积积分f(t)=f1(t)*f2(t)
%f :卷积积分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 非零样值的时间向量
%在第一个子图画图f1(t)的波形
subplot(2,2,1);plot(k1,f1);title(‘f1(t)’);xlabel(‘t’);ylabel(‘f1(t)’);
%在第二个子图画图f2(t)的波形
subplot(2,2,2);plot(k2,f2);title(‘f2(t)’);xlabel(‘t’);ylabel(‘f2(t)’);
%画卷积f(t)的波形
subplot(2,2,3);plot(k,f);
%将第三个子图的横坐标范围扩为原来的2.5倍
h=get(gca,’position’);
h(3)=2.5*h(3);
set(gca,’position’,h);title(‘f(t)=f1(t)*f2(t)’);xlabel(‘t’);ylabel(‘f (t)’);
例1:1()t t-1f t εε=()-(),21()()t t-22
f t R t εε=*【()-()】,利用matlab 绘出其卷积波形。
调用函数heaviside 如下:
主函数:
例2:试求下列图片的卷积波形12()()
f t f t
p=0.01;
k1=-0.5:p:1;
f1=ones(1,length(k1));
k2=0:p:2;
f2=0.5*k2;
[f,k]=sconv(f1,f2,k1,k2,p)。