www999888 发表于 2009-6-7 21:26

求助:matlab做卷积的时候

两个函数卷积的时候,其中一个函数做线性变化,比如,一个三角波函数和一个方形波函数卷积,方波函数的幅值在卷积平移的时候按线性关系变大,问这个卷积怎么做呀?

friendchj 发表于 2009-6-8 16:14

不太明白你的意思,按你所说,把方波改为梯形波不就满足 幅值在卷积平移的时候按线性关系变大,这样让三角波与梯形波做卷积不就可以了吗?

www999888 发表于 2009-6-8 17:34

谢谢主任的答复!我的意思是a=1 2 3 2 1b=1 1 1卷积平移的时候 每移动一次,b发生一次变化->变成2 2 2然后是3 3 3 以此类推。求和相加没有问题,但是要用conv函数如何实现?

[ 本帖最后由 www999888 于 2009-6-8 17:36 编辑 ]

VibrationMaster 发表于 2009-6-8 19:15

cc=cov(a,b)

www999888 发表于 2009-6-8 21:28

状元公,cov是协方差啊?!

而且,那个b是要变化的啊。

friendchj 发表于 2009-6-8 21:49

回复 板凳 www999888 的帖子

建议你用求和相加吧,conv应该没有此功能。
或者
z=conv(,);
re(1)=z(1);
z=conv(,);
re(2)=z(2)
……

[ 本帖最后由 friendchj 于 2009-6-8 22:28 编辑 ]

VibrationMaster 发表于 2009-6-9 07:41

for i=1:N
       b=i*ones(3,1);
       cc(i)=conv(a,b);
end

www999888 发表于 2009-6-9 15:04

谢谢 主任和状元公的答复。
有朋友提出下面的方法
i=1:n
c=i(n:-1:1).*conv(a,b)

我觉得对。您二位看看,行吗?

friendchj 发表于 2009-6-9 15:20

clear
clc
a=;
b=;
n=length(a)+length(b)-1;
re=zeros(1,n);
for i=1:n
    z=conv(a,i*b);
    re(i)=z(i);
end
i=1:n;
re1=i(n:-1:1).*conv(a,b);
re2=i.*conv(a,b);
disp()
%%%%%%%%%%%%%
1   6    18    20    15
5    12    18    10   3
1   6    18    20    15

www999888 发表于 2009-6-10 10:51

弄明白了。谢谢主任!:handshake
页: [1]
查看完整版本: 求助:matlab做卷积的时候