どうすれば最大振幅値を求められますか?
29 次查看(过去 30 天)
显示 更早的评论
以下の両矢印が表す波形の最大振幅の値を求めたいのですが、MATLABではどのようにすればいいのですか。
![maxamp.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/215028/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](https://www.mathworks.com/matlabcentral/answers/uploaded_files/215029/envelop.png)
0 个评论
更多回答(1 个)
horizon
2019-4-22
2 个评论
Yoshio
2019-4-22
编辑:Yoshio
2019-4-22
こちらに関連する解析例があります。
今の場合
[Ppks,Plocs] = findpeaks(data)でプラス側のピーク値とその場所が求められるので、-data側にも行い、
[Mpks,Mlocs] = findpeaks(-data)
を得ます。
このPlocsとMlocsを使うと可能かと思います。ただし、これはhorizon さんが両側最大振幅をどう定義したいか、に寄ります。最大ピークと最小ピークを結ぶ波形が連続していること、とか、ピーク位置の差がXXサンプル以内等です。これをプログラム化する必要がありますので、horizon さんが分析したい信号に関する知識が必要です。
「プラス側のピークとマイナス側のピークが別の場所で見つかった場合、その差をとっても振幅は求められませんよね?」
これも、両側最大振幅をどう定義したいかに寄ると思います。
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 マルチレート信号処理 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!