FAQ

FAMOS

シーケンス / 関数top

シーケンス / 関数

ID.s039

Q. 間欠的な振動波形を波形毎に切り出してFFTしたい


下図のように間欠的に振動が発生します。このデータをFFTすると、振動の途中でウィンドウを切り出してしまい上手くデータ処理されません。 各振動波形を切り出してからFFTできますか?

A.


以下のシーケンスでは各振動波形を切り出して、最後にFFT処理を行っています。

;ドリフト成分を除去します

_temp1 = FiltHP(data, 0, 0, 8, 1)
_temp2 = ExpoRMS(_temp1, 0.02, 0.02)
_temp3 = SearchLevel(_temp2, 2, 1, 0, 0, 0, 0, 1)

;ここではSearchLevelでどのような処理をするのでしょうか?
;----------------------------------------------------
;各振動波形を分離するための座標を取得しています。
;結果を確認したければ、_temp2を表示させ、その上に_temp3を重ね書きしてください
;その後で_temp3のスタイルを丸などに変更すると結果を確認できます。

_temp4 = Leng(0,1024)
show _temp4

; Leng(0,1024)では波形が”0”になっています。どういう事でしょうか?
;なぜShowにて表示するのでしょうか?
;----------------------------------------------------
;計算途中を表示するために長さ1024の空の波形を作っています。

_temp6 = Leng(0,0)

; Leng(0,0)では波形が”0”になっています。どういう事でしょうか?
;----------------------------------------------------
;後のループで値を代入するために_temp6というダミー波形を作成しました。

_i=1
while _i<Leng?(_temp3)
_temp5 = Cut(_temp1, _temp3[_i].X-0.1, _temp3[_i+1].X-0.1)
_temp4 = Leng(_temp5, 1024)

_temp6 = Join(_temp6, _temp4)

_i=_i+1
end

;これらの行でどのような処理をされているのでしょうか?
;----------------------------------------------------
;SearchLevelで検出した各振動波形毎にデータを切り出し、
;そのデータ長さを1024点に拡張して、再構成しています。

Result = AmpSpectrumRMS_1(_temp6, 1024, 0, 0, 1)


製品詳細はこちら

<< シーケンス / 関数に関するFAQ一覧へ戻る