【memo】エクセル 正弦波の振幅を取得し表にする方法
やりたいこと
- 正弦波の波形データ(CSV)をエクセルに読み込み
- ピーク値(max/min)を取得し
- 各周期の振幅値と時間区間を取得し
- 表にする
元のデータの形式
必要な作業
- 波形のノイズをなくし、ピーク検知をできるようにする(移動平均)
- 全データの中からmax/minのピーク値を取得する。
- 基本的な考え方としては、微分値の正/負の変化の中心をピーク値として定義する。
- 最大値の取り方は、
- AND(Fn>=Fn-1,Fn>Fn+1,Fn>0)
- 最小値の取り方は、
- AND(Fn<=Fn-1,Fn<Fn+1,Fn<0)
- 条件を満たす場合は、fnの対象セルに表示、それ以外は空欄を入れる.
- IF(OR(AND(Fn>=Fn-1,Fn>Fn+1,Fn>0),AND(Fn<=Fn-1,Fn<Fn+1,Fn<0)),Fn,"")
- 各ピーク値は数点取れる場合があるので、フィルタリング処理を行う。
- 対象セルの前後10セルを検索。max or min値を取得。対象セルと比較し、最大or最小値であれば、表示、それ以外は空欄とする。
- =IF(MAX(Kn-10:Kn+10)<=Kn,Kn,"")
- 各周期のピーク値-時間値 を取得し表にする。
- ピーク値数値のあるセルのみを取得し、上詰めで並べたたい。もしくは空白を削除し並べたい。
できたこと どうしたらよいかわからない事
- 各周期のピーク値-時間値 を取得し表にする事が自動化できなかった。どうしたら良いのか?
参考サイト
2016-02-23