どうすれば最大振幅値を求められますか?

조회 수: 10 (최근 30일)
horizon
horizon 2019년 4월 20일
편집: Yoshio 2019년 4월 22일
以下の両矢印が表す波形の最大振幅の値を求めたいのですが、MATLABではどのようにすればいいのですか。
maxamp.png
以下のようにして、信号の包絡線を求めることはできていますが、最大振幅を求める方法を知りたいです。
t = 0:1/1000:3;
q1 = sin(2*pi*7*t).*exp(-t/2);
q2 = chirp(t,30,2,5).*exp(-(2*t-3).^2)+2;
q = [q1;q2]';
plot(t,q)
a3 = gca;
a3.XTick = sort([-3000:1000:3000 lagDiff]);
envelope(q,300)
envelop.png

채택된 답변

Yoshio
Yoshio 2019년 4월 21일
편집: Yoshio 2019년 4월 21일
こちらのfindpeaksを使ってみてはどうでしょうか。
最初はプラス側、次にマイナス側を見つけて、それらのピーク位置を関連づけられれば(同じ近傍波形とみなせるならば)、両側最大振幅の値が求められると思います。
また、単純にこの区間の系列波形の最大値と最小値の差で良ければ、maxminの差を取れば良いかと思います。
  댓글 수: 4
Akira Agata
Akira Agata 2019년 4월 22일
はい。horizon様のご理解のとおり、この2つの値はそれぞれq1とq2の両側最大振幅になります。
horizon
horizon 2019년 4월 22일
ありがとうございました。

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

추가 답변 (1개)

horizon
horizon 2019년 4월 22일
ご回答いただきましてありがとうございます。
Yoshioさんのご回答について、findpeaksを使う場合だとある区間以外も含めて最大振幅を求められるのでしょうか・
findpeaksは、使うことも考えたのですが、サンプルプログラムだけではプラス側とマイナス側のピークを関連づける方法を思いつきませんでした。
また、プラス側のピークとマイナス側のピークが別の場所で見つかった場合、その差をとっても振幅は求められませんよね?
  댓글 수: 2
Yoshio
Yoshio 2019년 4월 22일
편집: Yoshio 2019년 4월 22일
こちらに関連する解析例があります。
今の場合
[Ppks,Plocs] = findpeaks(data)でプラス側のピーク値とその場所が求められるので、-data側にも行い、
[Mpks,Mlocs] = findpeaks(-data)
を得ます。
このPlocsとMlocsを使うと可能かと思います。ただし、これはhorizon さんが両側最大振幅をどう定義したいか、に寄ります。最大ピークと最小ピークを結ぶ波形が連続していること、とか、ピーク位置の差がXXサンプル以内等です。これをプログラム化する必要がありますので、horizon さんが分析したい信号に関する知識が必要です。
「プラス側のピークとマイナス側のピークが別の場所で見つかった場合、その差をとっても振幅は求められませんよね?」
これも、両側最大振幅をどう定義したいかに寄ると思います。
horizon
horizon 2019년 4월 22일
ご回答いただきましてありがとうございます。
誤って解答欄に書き込んでしまい、申し訳ございません。
採用時はYoshio様のご回答をcheckさせていただきます。

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

카테고리

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

제품


릴리스

R2017b

Community Treasure Hunt

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

Start Hunting!