備忘録からはじめる 3日坊主 脱出ブログ

日記3日坊主を脱出する、あしあとを記しています。

【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