How to normalize a signal for each half cycle?

2 ビュー (過去 30 日間)
Suuz HMS
Suuz HMS 2024 年 2 月 21 日
回答済み: Jonas 2024 年 2 月 21 日
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?

回答 (1 件)

Jonas
Jonas 2024 年 2 月 21 日
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