我试图在数学上计算Matlab中的多个卷积并重新调整结果。因为我使用Matlab conv
进行离散卷积,所以我需要将卷积除以所取的时间步数N
:
N = 1e3;
% N = 1e5;
t = linspace(-10,10,N);
x = t.*exp(-t.^2);
y = exp(-4*t.^2).*cos(t);
z = (t-2)./((t-2).^2+3^2);
w = exp(-3*t.^2).*exp(2i*t);
u = conv(x,y,'same')/N;
% u = conv(conv(conv(x,y,'same')/N,z,'same')/N,w,'same')/N;
plot(t,u)
我的结果u
似乎在有一个卷积(我使用N=1e3
和N=1e5
时间步测试时)正确缩放 - 但是当我尝试不止一个卷积,N
缩放似乎不对。
如果我将t
范围更改为linspace(-20,20,N)
,u
的高度似乎也会发生变化。
我做错了什么?如何正确地将此结果归一化u
?
修改:如果我们将u = conv(conv(conv(x,y/sum(y),'same'),z/sum(z),'same'),w/sum(w),'same');
等其中一项功能规范化,则可以通过改变时间步长N
来解决问题。 (但我不确定这在数学上是否有效。)