Clear Filters
Clear Filters

How to normalize a signal for each half cycle?

4 views (last 30 days)
Suuz HMS
Suuz HMS on 21 Feb 2024
Answered: Jonas on 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?

Answers (1)

Jonas
Jonas on 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!