Main Content

fftn

N 次元の高速フーリエ変換

説明

Y = fftn(X) は、高速フーリエ変換アルゴリズムを使用して N 次元配列の多次元フーリエ変換を返します。N 次元変換は、X の各次元に沿って、1 次元変換を計算することと等価です。出力 Y は、X と同じサイズです。

Y = fftn(X,sz) は、変換を行う前にベクトル sz の要素に従って X を切り捨てるか、X の末尾をゼロでパディングします。sz の各要素は、対応する変換次元の長さを定義します。たとえば、X が 5×5×5 の配列の場合、Y = fftn(X,[8 8 8]) は各次元をゼロでパディングして、8×8×8 の変換 Y を行います。

すべて折りたたむ

関数 fftn を使用して、多次元配列の各次元内の 1 次元高速フーリエ変換を計算できます。

3 次元信号 X を作成します。X のサイズは、20×20×20 です。

x = (1:20)';
y = 1:20;
z = reshape(1:20,[1 1 20]);
X = cos(2*pi*0.01*x) + sin(2*pi*0.02*y) + cos(2*pi*0.03*z);

信号の 3 次元フーリエ変換を計算します。これは 20×20×20 配列でもあります。

Y = fftn(X);

X をゼロでパディングして、32×32×32 の変換を計算します。

m = nextpow2(20);
Y = fftn(X,[2^m 2^m 2^m]);
size(Y)
ans = 1×3

    32    32    32

入力引数

すべて折りたたむ

入力配列。行列または多次元配列として指定します。X の型が single である場合、fftn はネイティブ レベルの単精度で計算し、Y の型も single になります。それ以外の場合、Ydouble 型として返されます。

データ型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical
複素数のサポート: あり

変換次元の長さ。正の整数のベクトルとして指定します。sz の要素は、対応する X の次元の変換の長さに相当します。length(sz)ndims(X) 以上でなければなりません。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

詳細

すべて折りたたむ

N 次元フーリエ変換

N 次元配列 X の離散フーリエ変換 Y は次のように定義されます。

Yp1,p2,...,pN=j1=0m11ωm1p1j1j2=0m21ωm2p2j2...jNmN1ωmNpNjNXj1,j2,...,jN.

k = 1,2,...,N の各次元の長さは mk であり、ωmk=e2πi/mk は 1 の複素根です。ここで i は虚数単位です。

拡張機能

バージョン履歴

R2006a より前に導入

参考

| | |