フィルターのクリア

envelope rms implementation review

19 ビュー (過去 30 日間)
Gideon Kogan
Gideon Kogan 2020 年 9 月 24 日
編集済み: Chunru 2021 年 11 月 8 日
I am trying to implement the moving RMS by Matlab.
x = randn(50, 1);
xRMS = sqrt(movmean(x.^2, 21));
xRMSref = envelope(x, 21, 'rms');
plot(xRMSref,'DisplayName','xRMSref');hold on;plot(xRMS,'DisplayName','xRMS');hold off;
legend()
Why my estimation differs from Matlab's? What actually implemented by Matlab? The algorithm description is not delailed and movrms function is locked...
  1 件のコメント
Nim Pim
Nim Pim 2021 年 11 月 8 日
Hi. I too found that moving RMS function of dsp tool box not giving the correct values. I tried it on a small data set and the manually calculated values were different. So confusing....

サインインしてコメントする。

回答 (1 件)

Chunru
Chunru 2021 年 11 月 8 日
編集済み: Chunru 2021 年 11 月 8 日
"envelope" removes the mean first before doing movrms and it restore the mean offset in the end.
If you nake sure the signal is 0-mean, then the results would be quite same.
x = randn(50, 1);
x = x -mean(x);
xRMS = sqrt(movmean(x.^2, 21));
xRMSref = envelope(x, 21, 'rms');
plot(xRMSref,'DisplayName','xRMSref');
hold on;
plot(xRMS,'DisplayName','xRMS');hold off;
legend()

カテゴリ

Help Center および File ExchangeMultirate Signal Processing についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by