Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - Русский -
Scilabヘルプ >> Signal Processing > Transforms > fftshift

fftshift

fft出力を再配置し,スペクトルの中心に周波数0を移動する

呼び出し手順

y=fftshift(x [,job])

引数

x

実数または複素数のベクトルまたは行列.

y

実数または複素数のベクトルまたは行列.

job

整数, 選択する次元, または文字列 'all'

説明

xがFFT計算の結果の場合, y= fftshift(x) または y= fftshift(x,"all") は,扱いが容易な形式である,周波数0要素をよりスペクトルの中心に移動します.

x が大きさnのベクトルの場合,y はiベクトル x([n/2+1:n,1:n/2])となります

xmn 列行列の場合, y は行列 x([m/2+1:n,1:m/2],[n/2+1:n,1:n/2])となります.

[x11 x12]                  [x22 x21]
x=[       ]        gives   y=[       ]
[x21 x22]                  [x12 x11]

y= fftshift(x,n)n番目の次元 のみについて配置換えを行ないます.

//信号を作成
t=0:0.1:1000;
x=3*sin(t)+8*sin(3*t)+0.5*sin(5*t)+3*rand(t);
//compute the fft
y=fft(x,-1);

//表示
clf();
subplot(2,1,1);plot2d(abs(y))
subplot(2,1,2);plot2d(fftshift(abs(y)))
//2次元画像を作成
t=0:0.1:30;
x=3*sin(t')*cos(2*t)+8*sin(3*t')*sin(5*t)+..
  0.5*sin(5*t')*sin(5*t)+3*rand(t')*rand(t);
//fftを計算
y=fft(x,-1);

//表示
clf();
xset('colormap',hotcolormap(256))
subplot(2,1,1);Matplot(abs(y))
subplot(2,1,2);Matplot(fftshift(abs(y)))

参照

  • fft — 高速フーリエ変換
  • ifftshift — fftshiftを反転する
Scilab Enterprises
Copyright (c) 2011-2015 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Wed Jun 15 08:35:27 CEST 2016