FAQ
FAMOS
シーケンス / 関数top
└スペクトラムキット&周波数解析関係
ID.p004
Q. スペクトラムキットを使用しない場合のFFT演算シーケンス
A.
;-----------------
;FFTの設定
;-----------------
FFTOption 2 1 ;Window( 0:Rectangular /1:Hamming /2:Hanning /3:Blackman /4:Black
man/Harris /5:Flat-Top )
;Mode( 0:データ低減 /1:データ挿入 )
NumData = 1024 ;データ数
Overrap = 50 ;オーバーラップする率 [%]
RapData = Floor(NumData*(1-Overrap/100) )
;オーバーラップしない部分のデータ数
Delete Overrap
;-----------------
;アベレージ回数の計算
;-----------------
tempNum = Leng?( Data)
temp=1
NumAve=0
While temp<=tempNum-NumData+1
temp=temp+RapData
NumAve=NumAve+1
End
if NumAve=0
NumAve=NumAve+1
End
Delete tempNum
Delete temp
;-----------------
Result = Leng( 0, NumData) ;結果を格納する変数
Delta_F = 1/XDel?( Data)/NumData
Result = XDel( Result, Delta_F)
F1_Count = 1 ;FFT計算回数
F1_Start = 1 ;FFT開始ポイント
While F1_Count <= NumAve
F1_DataCut = CutIndex( Data, F1_Start, F1_Start+NumData-1 )
F1_FFT = Spec( F1_DataCut )
Delete F1_DataCut
Result = Result+F1_FFT.m
F1_Count = F1_Count + 1
F1_Start = F1_Start + RapData
End
Result = Result/(F1_Count-1)
;-----------------
;検証
; スペクトラムキットと比較
;-----------------
Res_Spec = AmpSpectrumPeak_1( Data, 1024, 2, 50, 1)
Delete F1_*
Delete NumData
Delete NumAve
Delete RapData
Delete Delete Delta_F