0

我试图通过进行傅里叶变换,对其进行平方,然后进行傅里叶逆变换,将矩形脉冲与其自身进行卷积。我意识到有一个 conv() 函数,但我更愿意在频域中执行它以应对未来更复杂的问题。我的问题是,当我这样做时,它不会像预期的那样产生三角函数。我正在使用的代码如下:

clc

clear all

x=-5:.01:5;

y=rectangularPulse(x);

Y=fft(y);

H=Y.^2;

h=ifft(H);

plot(x,h)
4

1 回答 1

2

您需要进行零填充以确保卷积是线性的。目前您正在执行循环卷积。尝试这样的事情:

y = ones(100,1);    
N = length(y);
Nfft = 2*length(y) - 1;

Y=fft(y,Nfft);
H=Y.^2;
h=ifft(H);
plot(h);
于 2014-10-23T23:00:56.750 回答