二重フーリエ変換を実行するための実用的なアプリケーションはありますか?…または時間領域入力の逆フーリエ変換?


11

数学では、関数の二重導関数または二重積分を取ることができます。二重微分モデルを実行すると、オブジェクトの加速度を見つけるなど、実際の状況が現実的な場合が多くあります。

フーリエ変換は、実数または複素数の信号を入力として受け取り、複素数信号を出力として生成するため、その出力を取得してフーリエ変換を2回適用することを妨げるものは何もありません...この?いくつかの複雑な実世界の状況をモデル化するのに役立ちますか?

同じロジックを使用して、元の時間領域入力信号の逆フーリエ変換を妨げるものは何もありません...これはこれまでに役立つでしょうか?なぜですか、なぜそうではありませんか?

回答:


9

「実用的なアプリケーションはありますか?」間違いなくそうです。少なくともコードをチェックし、エラーをバインドします。

「理論的には、理論と実践は一致しますが、実際には一致しません。」だから、数学的には、いや、マットが答えました。(すでに答えたように) F(F(x(t)))=x(t)(潜在的な倍率ま​​で)。ただし、上記の方程式は通常、離散フーリエ変換とその高速アバターであ​​るFFTを介して実装されるため、計算上は便利です。

最初の理由は、フーリエの実装が、自分でコーディングされたか、他の誰かによってコーディングされたか、ライブラリからコーディングされたかに関係なく、データに対して実行する必要があることを確認するという意志から生じます。サンプルの順序、スケーリング係数、入力タイプ(実数、ビット深度)または長さの制限は、FFTのようなフーリエ実装の潜在的なその後のエラーの原因となります。したがって、健全性チェックとして、実装されたバージョンが少なくともおおよそ、理論的なプロパティを継承していることを常にチェックすることは良いことです。見てわかるように、マチュピチュが示すように、実際の入力を正確に逆に回復することはできません。多くの場合、虚数部は正確にゼロではなく、実数部は予期されたものですが、コンピューターの計算不完全であるため、小さな相対誤差の範囲内です(浮動小数点)マシン依存の許容範囲内。これは次の図で確認できます。FFTは、ランダムな32サンプル信号に2回適用され、反転されます。ご覧のとおり、誤差はわずかで、倍精度浮動小数点を使用しています。

データ、その二重反転FFTとエラー

エラーが比較的小さくない場合は、使用するコードに誤りがある可能性があります。

x01e6

xk+1=Re(f(f(f(f(xk)))))
fmax|xkx0|

データ、その4倍FFT、および反復の最大エラー

ご覧のとおり、信号のサイズにより、エラーの大きさの順序が変更されています。さらに、最大誤差は着実に増加します。回の繰り返しの後、それは十分に小さいままです。しかし、 -voxelキューブと数百万回の反復により、このエラーは無視できなくなる可能性があると推測できます。10001000×1000×1000

エラーの境界を定め、その動作を反復にわたって評価することで、そのような動作を検出し、適切なしきい値処理または丸めによって削減することができます。

追加情報:


1
私は本当にこの回答が大好きで、それを受け入れられた回答としてマークしましたが、この質問に来るほとんどの人が探しているのは、マットがリンクで提供した理論的な情報だと思います。すばらしい答えを得るには+1してください。
tjwrona1992

1
私は本当にあなたのコメントに感謝します。ただし、離散フーリエ実装のエラーが重要であることを示すために、適切な数値で回答を更新しました。
Laurent Duval

17

x(t)

時間領域信号に適用された逆フーリエ変換は、周波数が反転したスペクトルを与えるだけです。詳細については、この回答をご覧ください。


4
あなたは再帰的に私の心を吹き飛ばしました。
tjwrona1992

マットを説明しますか。Lは言ったが、私のコードで2Dで?つまり、f(-x、-y)を取得します。
マチュピチュ

@マチュピチュ、そうだね。
tjwrona1992

ははは、私の回答広告を1つ選択できます^^(彼は53Kの担当者がいるので、彼のために差分を作りません)
マチュピチュ

信号を時間反転させるには、ダブルフーリエ変換よりもおそらくもっと簡単な方法があることに気づいた直後です
tjwrona1992

16

フーリエ変換を取りながら、直接あなたにFTせずに実装するためにはるかに安いだろう些細な時間反転を与え続けて2回、そこ再びいくつかの他の操作を適用し、フーリエ変換を取ることによって行われ、ことができる有用なものは、その結果を変換するフーリエ。最もよく知られている例は、自己相関です。これは、信号とそれ自体とのたたみ込みの一種です。そして、畳み込みは、ナイーブに実装されている場合はOn 2)ですが、On・log nのみ))フーリエ変換で迂回する場合。したがって、自己相関は通常、信号をFTして絶対二乗を取り、それをIFTして時間領域に戻すことによって行われます。


2
また、そこにあるケプストラムは、逆フーリエ変換の対数のフーリエ変換。周期的な信号を検出するために使用できます。
Olli Niemitalo

12

II(x,y)=zxy

https://ch.mathworks.com/help/matlab/ref/fft2.html

これを試して:

x=imread('cameraman.tif');
X=fft2(fft2(x));
imagesc(abs(X));

と比較してください:

x=imread('cameraman.tif');
X= ifft2(fft2(x));
imagesc(abs(X));

むしろそのように。2回目にifft2ではなく、fft2を時間に適用しました。これは@Matt L.が言ったことを示していると思います:

"フーリエ変換を2回行うことは、時間反転と同等です"、

ifft()で-iが正ではなく負になっているため、画像が反転していることがわかります。

ここに画像の説明を入力してください

また、1D信号(例:一時的)に対しても行いました。

ここに画像の説明を入力してください


2Dフーリエ変換などがあることは承知していますが、これは、入力信号を取得してアルゴリズムを実行し、その実行の出力を取得して再度実行することと同じではありません。
tjwrona1992

1
フーリエ変換は分離可能です。
マチュピチュ

私の質問は、2Dフーリエ変換にも当てはまります。理論的には、2D入力信号を取り、2Dフーリエ変換を適用し、次に2D出力信号を取り、それを入力として使用して、2Dフーリエ変換を再度適用できます。
tjwrona1992

以下を実行するとどうなるかをMatlabで確認してください。私は答えを更新しました
マチュピチュ

1
絶対値の代わりに実部を使用することをお勧めします
Laurent Duval

6

2番目の質問に答えるために、デジタル通信では現在、携帯電話でIFFTを時間領域信号に適用することをうまく利用する手法があります。 OFDMは、送信機でデータの時間領域シーケンスにIFFTを適用し、受信機でFFTを使用してそれを逆にします。文献ではIFFT-> FFTの使用を好んでいますが、どちらが先に来るかは実際には違いはありません。

OFDM送信機の図

ここでの主な利点は、レフトアラウンドアバウトの回答に大きく関連しています。マルチパスフェージングと呼ばれる歪みの種類があり、密集した都市部の携帯電話はその多くを処理する必要があります。マルチパスフェージングを係数が未知のたたみ込みとしてモデル化するのが好きです。イベントのチェーンはIFFT-> Transmit-> Apply multipath-> Receive-> FFTのように見えるため、マルチパスフェージングは​​FFTを通過し、不明な値を持つ単純なポイントごとの乗算になります。これらの値は、たたみ込み係数よりも予測と修正がはるかに簡単です。

この効果により、周波数チャネル全体を取り出す(または「ヌル」にする)可能性があるマルチパス/フェージングに対する信号の耐性が向上します。 この記事では、

このようなマルチパス伝搬は、わずかに異なる時間に到着する信号の2つのコピーの相殺的干渉により、受信した無線信号の周波数通過帯域に深いスペクトルヌルを作成する可能性があります。OFDMのヌルは、1つ以上のサブキャリアを取り出すことができます。シングルキャリアQAMの同じヌルは、その瞬間の特定のデータパターンに応じて、連続して隣接するシンボルのバーストをドロップする可能性があります。極端な場合には、信号収集が失われる可能性さえあります。次に、FECの能力に達して、元のデータシーケンスを回復します。


これはすごく面白いです!ありがとう!:)
tjwrona1992

1

この情報はユーザー「Birdwes」によって提供されましたが、彼はそれを自分で投稿する十分な評判がなかったため、関連性があり有用であると思われるため、ここに投稿します。

「私はこのフォーラムにコメントを追加するのに十分なポイントがないので、ここでそれを行っています。Accord.MathHilbert Transformのソースコードを見て、これが実行可能なオプションになる理由を確認してください:https: //github.com/primaryobjects/Accord.NET/blob/master/Sources/Accord.Math/Transforms/HilbertTransform.cs

実際の使用には、SSB送信機の構築、またはほとんどすべての変調計画が含まれます。IQ変調を調べると、-90度の位相シフトが関連する理由がわかります。三角法の原理の積。例:https : //user.eng.umd.edu/~tretter/commlab/c6713slides/ch7.pdf

ヒルベルト変換は、負の成分をゼロにするFFT間の中間ステップを使用します。それを乱用して、他の周波数を除外することもできます。」

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.