ドキュメンテーションヘルプ センター
最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
逆フーリエ高速変換
X = ifft(Y)
X = ifft(Y,n)
X = ifft(Y,n,dim)
X = ifft(___,symflag)
例
X = ifft(Y) は、高速フーリエ変換アルゴリズムを使用して Y の逆離散フーリエ変換を計算します。X のサイズは Y と同じです。
Y
X
Y がベクトルの場合、ifft(Y) はそのベクトルの逆変換を返します。
ifft(Y)
Y が行列の場合、ifft(Y) は行列の各列の逆変換を返します。
Y が多次元配列の場合、ifft(Y) は、サイズが 1 ではない最初の次元に沿った値をベクトルとして扱い、各ベクトルの逆変換を返します。
X = ifft(Y,n) は、長さが n になるように Y の末尾をゼロでパディングして、Y の n 点の逆フーリエ変換を返します。
n
X = ifft(Y,n,dim) は、次元 dim に沿った逆フーリエ変換を返します。たとえば、Y が行列の場合、ifft(Y,n,2) は、各行の n 点の逆変換を返します。
dim
ifft(Y,n,2)
X = ifft(___,symflag) は Y の対称性を指定します。たとえば、ifft(Y,'symmetric') は Y を共役対称として扱います。
symflag
ifft(Y,'symmetric')
すべて折りたたむ
フーリエ変換とその逆変換は、時間と空間でサンプリングされたデータと周波数でサンプリングされたデータを変換します。
ベクトルを作成してそのフーリエ変換を計算します。
X = [1 2 3 4 5]; Y = fft(X)
Y = 1×5 complex 15.0000 + 0.0000i -2.5000 + 3.4410i -2.5000 + 0.8123i -2.5000 - 0.8123i -2.5000 - 3.4410i
Y の逆変換を計算します。これは元のベクトル X と同じです。
ans = 1×5 1 2 3 4 5
関数 ifft により変換のサイズを制御できます。
ifft
3 行 5 列の乱数行列を作成し、各行の 8 点の逆フーリエ変換を計算します。結果の各行の長さは 8 です。
Y = rand(3,5); n = 8; X = ifft(Y,n,2); size(X)
ans = 1×2 3 8
ほぼ共役対称のベクトルの場合、'symmetric' オプションを指定することで逆フーリエ変換をより高速で計算できます。これにより出力も確実に実数になります。計算によって丸め誤差が生じると、ほぼ共役対称のデータが発生する可能性があります。
'symmetric'
ほぼ共役対称のベクトル Y を作成し、逆フーリエ変換を計算します。その場合、'symmetric' オプションを指定する逆変換を計算し、ほぼゼロの虚数部を削除します。
Y = [1 2:4+eps(4) 4:-1:2]
Y = 1×7 1.0000 2.0000 3.0000 4.0000 4.0000 3.0000 2.0000
X = 1×7 complex 2.7143 + 0.0000i -0.7213 + 0.0000i -0.0440 - 0.0000i -0.0919 + 0.0000i -0.0919 - 0.0000i -0.0440 + 0.0000i -0.7213 - 0.0000i
Xsym = ifft(Y,'symmetric')
Xsym = 1×7 2.7143 -0.7213 -0.0440 -0.0919 -0.0919 -0.0440 -0.7213
入力配列。ベクトル、行列、または多次元配列として指定します。Y の型が single である場合、ifft はネイティブ レベルの単精度で計算し、X の型も single になります。それ以外の場合、X は double 型として返されます。
single
double
データ型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical 複素数のサポート: あり
int8
int16
int32
uint8
uint16
uint32
logical
[]
逆変換の長さ。[]、または非負の整数スカラーとして指定します。変換の長さを Y の長さより大きく指定し、Y をゼロでパディングすることにより、ifft のパフォーマンスを改善できます。長さは通常 2 のべき乗、または小さい素数の積として指定します。n が信号の長さ未満である場合、ifft は n 番目の要素から後の残りの信号値を無視し、切り捨て後の結果を返します。n が 0 の場合、ifft は空の行列を返します。
データ型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical
演算の対象の次元。正の整数のスカラーとして指定します。既定では、dim はサイズが 1 でない最初の配列次元です。たとえば、行列 Y を考えます。
ifft(Y,[],1) は各列の逆フーリエ変換を返します。
ifft(Y,[],1)
ifft(Y,[],2) は各行の逆フーリエ変換を返します。
ifft(Y,[],2)
'nonsymmetric'
対称性のタイプ。'nonsymmetric' または 'symmetric' として指定します。丸め誤差により Y が厳密には共役対称ではない場合、ifft(Y,'symmetric') は Y が共役対称であるかのように扱います。共役対称性の詳細については、アルゴリズムを参照してください。
Y = fft(X) はフーリエ変換、X = ifft(Y) は逆フーリエ変換の実装です。長さ n の X および Y の変換は、次式で定義されます。
Y = fft(X)
Y(k)=∑j=1nX(j) Wn(j−1)(k−1)X(j)=1n∑k=1nY(k) Wn−(j−1)(k−1),
ここで、
Wn=e(−2πi)/n
は 1 の n 乗根の 1 つです。
関数 ifft は Y のベクトルが共役対称であるかどうかをテストします。ベクトル v は conj(v([1,end:-1:2])) と等しい場合に共役対称です。Y のベクトルが共役対称である場合、逆変換の計算がより高速になり、出力は実数になります。
v
conj(v([1,end:-1:2]))
使用上の注意事項および制限事項:
出力は複素数です。
対称性のタイプ 'symmetric' はサポートされていません。
可変サイズ データに関連した制限については、ツールボックス関数のコード生成に対する可変サイズの制限 (MATLAB Coder)を参照してください。
MEX 出力の場合、MATLAB® Coder™ は MATLAB が FFT アルゴリズムに使用するライブラリを使用します。スタンドアロン C/C++ コードの場合、コード ジェネレーターは既定で、FFT ライブラリの呼び出しを生成する代わりに FFT アルゴリズムのコードを生成します。特定のインストールされた FFTW ライブラリの呼び出しを生成するには、FFT ライブラリ コールバック クラスを指定します。FFT ライブラリ コールバック クラスの詳細については、coder.fftw.StandaloneFFTW3Interface (MATLAB Coder) を参照してください。
coder.fftw.StandaloneFFTW3Interface
MATLAB Function ブロックのシミュレーションの場合、シミュレーション ソフトウェアは MATLAB が FFT アルゴリズムに使用するライブラリを使用します。C/C++ コード生成の場合、コード ジェネレーターは既定で、FFT ライブラリの呼び出しを生成する代わりに FFT アルゴリズム用のコードを生成します。特定のインストールされた FFTW ライブラリの呼び出しを生成するには、FFT ライブラリ コールバック クラスを指定します。FFT ライブラリ コールバック クラスの詳細については、coder.fftw.StandaloneFFTW3Interface (MATLAB Coder) を参照してください。
コード置換ライブラリ (CRL) を使用して、Neon 拡張を含む ARM® Cortex®-A Processors で実行される最適化されたコードを生成できます。最適化されたコードを生成するには、Embedded Coder® Support Package for ARM Cortex-A Processors (Embedded Coder Support Package for ARM Cortex-A Processors) をインストールしなければなりません。ARM Cortex-A で生成されたコードは Ne10 ライブラリを使用します。詳細については、Ne10 Conditions for MATLAB Functions to Support ARM Cortex-A Processors (Embedded Coder Support Package for ARM Cortex-A Processors) を参照してください。
コード置換ライブラリ (CRL) を使用して、ARM Cortex-M Processors で実行される最適化されたコードを生成できます。最適化されたコードを生成するには、Embedded Coder Support Package for ARM Cortex-M Processors (Embedded Coder Support Package for ARM Cortex-M Processors) をインストールしなければなりません。ARM Cortex-M で生成されたコードでは、CMSIS ライブラリを使用します。詳細については、CMSIS Conditions for MATLAB Functions to Support ARM Cortex-M Processors (Embedded Coder Support Package for ARM Cortex-M Processors) を参照してください。
symflag が 'symmetric' の場合を除き、出力は必ず複素数になります。これは虚数部がすべて 0 であっても同様です。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
fft | fftw | ifft2 | ifftn | ifftshift
fft
fftw
ifft2
ifftn
ifftshift
この例の変更されたバージョンがシステム上にあります。代わりにこのバージョンを開きますか?
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office