필터 지우기
필터 지우기

I want to calculate the moving rms of accelerometer data.

조회 수: 113 (최근 30일)
Daniel Du Toit
Daniel Du Toit 2023년 6월 30일
댓글: Star Strider 2023년 6월 30일
Hi
I am working on a project where I get accelerometer data with a vector containing the acceleration (1019970 samples) and another vector containg the time corresponding to the acceleration vector. The sampling time is 1.6667e-04. I want to calculate the moving rms of this signal according to the signal. The formulas I have are for the integral notation and for the discrete time notation as seen below.
How would I implement this in matlab to obtain the moving rms for the acceleration vector (without using simulink).

채택된 답변

Star Strider
Star Strider 2023년 6월 30일
Try something like this —
Fs = 5000;
T = 100;
t = linspace(0, T*Fs, T*Fs-1)/Fs;
s = sin(2*pi*t*25);
xrms = @(s, n) sqrt(movmean(s.^2, n)); % Calculate RMS Function, 'n': Window Of Consecutive Data
figure
plot(t, s, 'DisplayName','Signal')
hold on
plot(t, xrms(s,100), 'DisplayName','RMS(Signal)')
hold off
grid
legend('Location', 'best')
xlim([0 1])
The ‘xrms’ function produces the expected result of for the RMS value of a sine signal (after a short initial transient) over 100 data points (in this example).
.
  댓글 수: 7
Star Strider
Star Strider 2023년 6월 30일
As always, my pleasure!

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Signal Generation and Preprocessing에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by