필터 지우기
필터 지우기

最大値前後の平均値の算出について

조회 수: 8 (최근 30일)
R
R 2020년 5월 27일
댓글: Kenta 2020년 5월 28일
現在,以下の手順で筋電図の波形解析をしています.
➀欠損値の補完
②フィルター処理
➂Root mean square
➃最大値の確認
⑤最大値前後0.5秒の平均値を算出
➀-➃まではできたのですが,⑤でどのようにして最大値前後を範囲指定して平均するのかわかりません.
初歩的な質問で申し訳ありませんが,ご回答いただけますと幸いです.よろしくお願いします.

채택된 답변

Kenta
Kenta 2020년 5월 27일
最大値は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
R
R 2020년 5월 28일
ご回答ありがとうございます.
大変わかりやすく分析が進んでいきそうです.
ちなみに,波形に山が複数存在し,それぞれの山における平均値を算出したい場合は,2番目に大きい値,3番目に大きい値という風に定義していけばよいですか...?
Kenta
Kenta 2020년 5월 28일
ご返信ありがとうございます。役に立ったようでうれしいです。
複数の山が存在するときは、https://jp.mathworks.com/help/signal/ref/findpeaks.html こちらにある、
findpeaks関数を使って、ピークを検出すれば良いと思います。
2番目に大きな値と単にすると、最大のピークのすぐ横の値(山の少し左右の点)が検出されてしまってうまく行かないと思います。
ピークを取るために移動平均にしたり、適宜パラメータを調整したりする必要はあるかと思いますが、基本的にはfindpeak関数で大丈夫と思います。また問題があれば、ご質問ください。よろしくお願いいたします。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 記述統計에 대해 자세히 알아보기

제품


릴리스

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!