畳み込み定理によれば、時間領域の畳み込みは fft 領域の積です。正しいゼロパディングを使用すると、次のように機能します。
% convolution in time domain
a = [1 2 3];
b = [4 5 6];
c = conv(a,b);
a_padded=[a 0 0]; b_padded=[b 0 0];
c_bis=ifft(fft(a_padded).*fft(b_padded));
% we do find c_bis=c
ただし、この定理は逆に機能すると考えられます。時間領域の積は、fft 領域の畳み込みです。この部分がわかりません:
d = a.*b;
D=conv(fft(a_padded),fft(b_padded));
d_bis=ifft(D);
これにより、d_bis の複雑なベクトルが得られます。周波数領域での畳み込みを使用して、時間領域で作成された点ごとの積をどのように逆にすることができますか?