いくつかの実験データで MATLAB の ifft 関数を使用しようとしていますが、期待した結果が得られません。
対数サイン スイープ励振の周波数データがあるので、振幅 [g's]、周波数 [Hz]、および位相 (ポイントはパイロット ポイントであるため 0) を知っています。
それを ifft 関数に直接入力しようとしましたが、結果として複素数が得られました (時報なので、実際の結果を期待していました)。問題は信号が対称ではない可能性があると考えたため、この方法で対称部分を計算しました(「for」ループで)
x(i) = conj(x(mod(N-i+1,N)+1))
振幅ベクトルの最後に追加しました。
new_amp = [amplitude x];
このように、新しい振幅ベクトルは対称ですが、そのベクトルの次元も 2 倍にしました。これは、周波数ベクトルの次元も 2 倍にする必要があることを意味します。
とにかく、新しい振幅ベクトルを ifft に供給しましたが、それでも対数サイン スイープは得られませんが、今回の出力は予想どおり実数です。
プロットの時間 [s] を計算するために、次の式を使用しました。
t = 60*3.33*log10(f/f(1))/(sweep rate)
私は何を間違っていますか?前もって感謝します