1

fftを実行した後に取得した周波数、振幅、および位相から元の信号を再構築します。

ご挨拶

信号のfftを実行した後に取得した周波数、振幅、および位相から信号を再構築しようとしていますが、fftデータ(周波数、振幅、および位相)を組み合わせて、同様の信号で、パターンが少しずれています。私はそれが私の公式に関係していると思いますが、それは少し間違っているかもしれません。

データを結合するために使用している式は次のとおりです。

amplitude*sin(2*pi*time*frequency+phase)+amplitude*cos(2*pi*time*frequency+phase);

注意:計算が完了する前に振幅と周波数を編集するため、現時点ではIFFTを使用したくありません。

プロットの画像は下にあります。上の信号は元の信号で、下の信号は方程式で作成された信号です。私がmatlabを使用していることを知りたいのですが、問題は方程式にあると思います。 ここに画像の説明を入力してください

tia

4

2 に答える 2

3

IFFTは、次の変換の効率的な実装です。

       N-1
x[n] = SUM X[k] exp(j*2*pi*n*k/N)
       k=0

X[k]FFTの結果(複素振幅)はどこにありx[n]、時間領域のサンプルはどこにありますか。実数のみの入力の場合、これはとの観点cosからsin(または用語cosの観点から)書き直すことができますがphase、通常は複雑な表現に固執する方が簡単です。

[これはかなりベクトル化することができますが、それはあなたに任せます!]

于 2011-06-02T00:38:40.190 に答える
1

方程式に罪とcosの両方の項が必要な理由がわかりません。これでうまくいくはずです...

amplitude*sin(2*pi*time*frequency+phase);

正弦項と余弦項の両方を使用すると、FFTに何か奇妙なことがない限り、スケーリングの問題と位相シフトが発生します。しかし、それがあなたが見た歪みを説明するかどうかはわかりません。これは、使用したFFTブロックサイズに関係している可能性があります。

于 2011-06-01T22:34:00.527 に答える