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; %将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)')
演示2代码:
p=0.01;
t1=0:p:4; f1=2*ones(1,length(t1))
t2=0:p:2; f2=ones(1,length(t2)) %f1,f2两个信号的向量表示
[f,t]=sconv(f1,f2,t1,t2,p) %子函数调用
作业题2代码:
t1=0:p:10;
f1=exp(-2*t1);
t2=0:p:5;
f2=ones(1,length(t2));
[f,t]=sconv(f1,f2,t1,t2,p) %子函数调用
新作业题3代码:
t1=0:p:10;
f1=exp(-2*t1);
t2=0:p:5;
f2=ones(1,length(t2));
[f,t]=sconv(f1,f2,t1,t2,p) %子函数调用