How to normalize a signal for each half cycle?

2 Ansichten (letzte 30 Tage)
Suuz HMS
Suuz HMS am 21 Feb. 2024
Beantwortet: Jonas am 21 Feb. 2024
I am analyzing the movement of rowers, and I have a sinuoidal signal of the velocity of the handle movement that needs to be normalized for each half cycle. The normalization has to be done, because in rowing, the drive (forward movement) and recovery (backward movement) are not equal in duration. Start and end of each half cycle has to be based on the minima and maxima of the signal (so not by finding zeros). The size of the signal is 7501x1 double.
At first we normalized the signal by multiplying it by the inverse of the signal's frequency, but now we have to normalize it for each half cycle. How do I do this?

Antworten (1)

Jonas
Jonas am 21 Feb. 2024
you could normalize by using a moving max window with size a bit bigger than half of one cycle:
f=10;
fs=100;
t=0:1/fs:2;
s=sin(2*pi*f*t);
s=s.*[linspace(1,2,100) linspace(2,1,101)];
plot(t,s);
s=s./movmax(abs(s),fs/f/2*1.1);
hold on;
plot(t,s)

Community Treasure Hunt

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

Start Hunting!

Translated by