Do I need to use repmat to plot the RMS at every point in a signal?
1 view (last 30 days)
Show older comments
Can you please tell me how to plot the RMS at every point in the signal. I think I might need to use the repmat function to do it but I'm not sure.
clear all;
Array=csvread('Pencilbreak-63dB.csv');
col1 = Array(:, 1);
col2 = Array(:, 2);
plot(col1, col2)
end
7 Comments
dpb
on 18 Feb 2014
The file is of little help/interest...as we're telling you, you'll have to choose a sampling window based on the response time of your system you need.
There are several (actually a veritable plethora) of submissions on File Exchange--do a search for "moving rms".
Answers (1)
Chad Greene
on 18 Feb 2014
The rms of a single point is not terribly interesting. There are many ways to do what you're trying to do, but you could take a "moving rms", which would be the rms of a small segment of the signal. To center a 101-point rms of your signal (below call it signal ) about point n, you could do
signalrms = NaN(size(signal)); % preallocates the array
for n = 51:length(signal)-51
signalrms(n) = rms(signal(n-50:n+50));
end
2 Comments
Chad Greene
on 18 Feb 2014
Yes, we can assume column 1 represents time and column 2 is your signal. In the code above, indices of each value are given by n. That's about as much as I can tell you without actually doing your homework for you.
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!