Please note that the recommended version of Scilab is 2026.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 >> |