我试图通过傅里叶变换对其自身进行卷积,对其求平方,然后进行逆傅立叶变换。我意识到有一个conv()函数但我宁愿在频域中为未来的更复杂的问题做这件事。我的问题是,当我这样做时,它不会产生预期的三角函数。我正在使用的代码如下:
clc
clear all
x=-5:.01:5;
y=rectangularPulse(x);
Y=fft(y);
H=Y.^2;
h=ifft(H);
plot(x,h)
答案 0 :(得分:2)
您需要使用zeropad以确保卷积是线性的。目前您正在执行循环卷积。尝试这样的事情:
y = ones(100,1);
N = length(y);
Nfft = 2*length(y) - 1;
Y=fft(y,Nfft);
H=Y.^2;
h=ifft(H);
plot(h);