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

93 views (last 30 days)
horizon
horizon on 20 Apr 2019
Edited: Yoshio on 22 Apr 2019
以下の両矢印が表す波形の最大振幅の値を求めたいのですが、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

Accepted Answer

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

Sign in to comment.

More Answers (1)

horizon
horizon on 22 Apr 2019
ご回答いただきましてありがとうございます。
Yoshioさんのご回答について、findpeaksを使う場合だとある区間以外も含めて最大振幅を求められるのでしょうか・
findpeaksは、使うことも考えたのですが、サンプルプログラムだけではプラス側とマイナス側のピークを関連づける方法を思いつきませんでした。
また、プラス側のピークとマイナス側のピークが別の場所で見つかった場合、その差をとっても振幅は求められませんよね?
  2 Comments
horizon
horizon on 22 Apr 2019
ご回答いただきましてありがとうございます。
誤って解答欄に書き込んでしまい、申し訳ございません。
採用時はYoshio様のご回答をcheckさせていただきます。

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!