Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
fft
高速フーリエ変換
ifft
高速フーリエ逆変換
呼び出し手順
x=fft(a ,-1) or x=fft(a) x=fft(a,1) or x=ifft(a) x=fft(a,-1,dim,incr) x=fft(a,1,dim,incr)
パラメータ
- x
実数または複素数ベクトル. 実数または複素数行列 (2次元 fft)
- a
実数または複素数ベクトル, 行列または多次元配列.
- dim
整数
- incr
整数
説明
- 短縮構文
- 直接
x=fft(a,-1)
またはx=fft(a)
は離散変換を 出力します.- 単一変量
If
a
が単一変量のベクトルの場合, 次のように直接FFTが計算されます:x(k)=sum over m from 1 to n of a(m)*exp(-2i*pi*(m-1)*(k-1)/n)
kが1からnまで変わる場合 (n=ベクトル
a
の大きさ).(
-1
引数は指数の符号を示しており, "逆"ではありません),- 多変量
a
が行列または多次元配列の場合, 多変量直接FFTが実行されます.
- 逆
a=fft(x,1)
またはa=ifft(x)
は1/n
で正規化された逆変換を実行します.- 単一変量
a
がベクトルの場合,単一変量逆FFTが実行されます.- 多変量
a
が行列または多次元配列の場合, 多変量逆FFTが実行されます.
- 多次元FFTの長い構文
x=fft(a,-1,dim,incr)
により多次元FFTを実行できます.a が
j1,j2,..,jp
により陰に添え字付けされた 実数または複素数ベクトルa(j1,j2,..,jp)
の場合, 以下のようにp回fft
をコールすることによりp変量FFT が得られます. ここで,a(j1,j2,..,jp)
において,j1
は1:dim(1),
次,j2
は1:dim(2),...
次と定義しています.incrk=1; x=a; for k=1:p x=fft(x ,-1,dim(k),incrk) incrk=incrk*dim(k) end
ただし,
dimk
はカレントの被積分変数の次元,incrk
は連続するa
のjk
要素の増分です.特に,
a
がm行n列行列の場合,x=fft(a,-1)
は以下の2つの式と等価です:a1=fft(a,-1,m,1)
およびx=fft(a1,-1,n,m)
.
例
//Comparison with explicit formula //---------------------------------- a=[1;2;3];n=size(a,'*'); norm(1/n*exp(2*%i*%pi*(0:n-1)'.*.(0:n-1)/n)*a -fft(a,1)) norm(exp(-2*%i*%pi*(0:n-1)'.*.(0:n-1)/n)*a -fft(a,-1)) //Frequency components of a signal //---------------------------------- // build a noides signal sampled at 1000hz containing to pure frequencies // at 50 and 70 Hz sample_rate=1000; t = 0:1/sample_rate:0.6; N=size(t,'*'); //number of samples s=sin(2*%pi*50*t)+sin(2*%pi*70*t+%pi/4)+grand(1,N,'nor',0,1); y=fft(s); //the fft response is symmetric we retain only the first N/2 points f=sample_rate*(0:(N/2))/N; //associated frequency vector n=size(f,'*') clf() plot2d(f,abs(y(1:n)))
参照
- corr — 相関 , 共分散
Report an issue | ||
<< dst | transforms | hank >> |