How to calculate the RMS for every 441000 values of an acoustic signal of length 13,230,000 using MATLAB?

3 views (last 30 days)
Hello, I have 5 minutes recorded acoustic signal with 13,230,000 data points and I would like to know the root mean square (RMS) of every 441000 values (equivalent to 10 sec). Please, do I need a loop for this? Or is there some easier way to solve this?
Thanks in advance!
Kwaku

Answers (1)

Ameer Hamza
Ameer Hamza on 13 Oct 2020
Edited: Ameer Hamza on 13 Oct 2020
sig; % 13230000x1 signal
sig_part = reshape(sig, 441000, []); % partitioned signal, each column is a partition
rms_sig = rms(sig_part) % if you have signal processing toolbox
If you don't have the signal processing toobox, then replace the last line with
rms_sig = sqrt(mean(sig_part.^2))

Community Treasure Hunt

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

Start Hunting!