在Matlab中重新调整卷积

时间:2016-06-26 10:57:47

标签: matlab convolution

我试图在数学上计算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=1e3N=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来解决问题。 (但我不确定这在数学上是否有效。)

0 个答案:

没有答案