0
Matlabで逆FFTを実行しようとしていますが、逆関数が正しく機能しないようです。ここに私のコードです:inverse fft matlabが動作しない
data = [-0.0005
-0.0004
-0.0003
-0.0002
-0.0001
-0.0000
0.0001
0.0001
0.0001
0.0002
0.0002
0.0002
0.0002
0.0002
0.0002
0.0002
0.0002
0.0002
0.0003
0.0004
0.0005
0.0006
0.0007
0.0009
0.0010
0.0011
0.0011
0.0012
0.0011
0.0011
0.0011
0.0010 ];
%plot data
figure(1)
plot(data)
%FFT
N = 100;
X = fft(data, N);
F = [-N/2:N/2-1]/N;
F = F/0.0125;
X = fftshift(X);
figure(2)
plot(F, abs(X))
%inverse FFT
y = ifft(X);
figure(3)
plot(F,y)
図1と3は同一でなければなりませんが、決してそうではありません。私はfft
の絶対値のifft
を取らないようにしました。だから間違っているのは私には分かりません。
を逆変換を取ることにスペクトル「アンシフト」する必要があります。私の 'N'が大きすぎると、値は0に設定されます。どうして、' N'をすべて渡さないのですか? – BillyJean
デフォルトでは、 'N'はシグナルの長さです。あなたの 'N 'があなたのシグナルの長さよりも大きいものなら、それはゼロパディングされます。 – Suever
デフォルト値を使用することをお勧めしますか、それとも手動で修正する方が良いですか? – BillyJean