最大値前後の平均値の算出について
8 views (last 30 days)
Show older comments
現在,以下の手順で筋電図の波形解析をしています.
➀欠損値の補完
②フィルター処理
➂Root mean square
➃最大値の確認
⑤最大値前後0.5秒の平均値を算出
➀-➃まではできたのですが,⑤でどのようにして最大値前後を範囲指定して平均するのかわかりません.
初歩的な質問で申し訳ありませんが,ご回答いただけますと幸いです.よろしくお願いします.
0 Comments
Accepted Answer
Kenta
on 27 May 2020
最大値はmaxという関数で出せます。また、その前後ということなので、
[maxvalue, index]=max(A);
という風にかくと、Aのあるインデックス(場所のようなもの)も同時に得られるので、そのインデックスから0.5秒前後分まで取り出し、最終的にmean関数で平均を出せます。
たとえば、Aの1ステップが0.1秒だと、
[maxvalue, index]=max(A);
B=A(index-2:index+2);
mean(B)
のようにかけます。ただ、お持ちのデータにあわせて適宜変更する必要があります。
2 Comments
Kenta
on 28 May 2020
ご返信ありがとうございます。役に立ったようでうれしいです。
findpeaks関数を使って、ピークを検出すれば良いと思います。
2番目に大きな値と単にすると、最大のピークのすぐ横の値(山の少し左右の点)が検出されてしまってうまく行かないと思います。
ピークを取るために移動平均にしたり、適宜パラメータを調整したりする必要はあるかと思いますが、基本的にはfindpeak関数で大丈夫と思います。また問題があれば、ご質問ください。よろしくお願いいたします。
More Answers (0)
See Also
Categories
Find more on 記述統計 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!