matlab求卷积

matlab求卷积,第1张

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)

f=f*p

k0=k1(1)+k2(1)

k3=length(f1)+length(f2)-2

k=k0:p:k0+k3*p

subplot(2,2,1)

plot(k1,f1)

title('f1(t)')

xlabel('t')

ylabel('f1(t)')

subplot(2,2,2)

plot(k2,f2)

title('f2(t)')

subplot(2,2,3)

plot(k,f)

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)')

这个程序可以实现任何情况的卷积

我有卷积的源程序:

function [f,k]=conv_m(f1,k1,f2,k2)

%计算连续信号卷积积分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:取样时间间隔

p=input('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)时域波形图

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)')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12485331.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存