%% Parámetros de simulación
freq = 200; % Frecuencia de muestreo [Hz]
t = 0:1/freq:5; % 5 segundos de señal
th = 150; % Umbral para detección [°/s]
% -------------------------------------------------------------------------
% Generación de una señal sintética tipo carrera
% -------------------------------------------------------------------------
% Señal oscilatoria con picos que simulan el swing del pie
gyr_ml = 200 * sin(2*pi*2*t) + 50*randn(size(t)); % eje mediolateral
gyr_fr = 100 * sin(2*pi*2*t + pi/4); % eje frontal (para pronación)
% Introducir pequeñas variaciones para simular ciclos reales
gyr_ml = gyr_ml .* (1 + 0.1*sin(0.5*pi*t));
% gyr - vector con la velocidad de giro en el eje mediolateral
% th - velocidad mínima a alcanzar para detectar eventos. Aconsejado 150
% frecuencia - frecuencia de muestreo.
% gyrx - vector con la velocidad de giro en el eje antero-posterior
[ic, fc, max_s, min_s, mvp, mp] = eventos_pie_carrera(gyr_ml, th, freq, gyr_fr);
% IC : muestra en las que se ha detectado el contacto inicial con el suelo
% FC : muestra en las que se ha detectado el final del contacto con el suelo
% Pronation Velocity (MPV)
% ==================== REPRESENTACIÓN DE EVENTOS ====================
plot(t, gyr_ml, 'k', 'LineWidth', 1.2, 'DisplayName', 'Velocidad angular mediolateral')
if ~isempty(ic), plot(t(ic), gyr_ml(ic), 'go', 'MarkerFaceColor','b', 'DisplayName','IC (FS)'); end
if ~isempty(fc), plot(t(fc), gyr_ml(fc), 'ro', 'MarkerFaceColor','g', 'DisplayName','FC (TO)'); end
if ~isempty(max_s),plot(t(max_s),gyr_ml(max_s),'b^', 'MarkerFaceColor','#ff4d00', 'DisplayName','Max Swing'); end
if ~isempty(min_s),plot(t(min_s),gyr_ml(min_s),'cv', 'MarkerFaceColor','#ff69b4', 'DisplayName','Min Swing'); end
if ~isempty(mvp), plot(t(mvp), gyr_ml(mvp), 'ms', 'MarkerFaceColor','black', 'DisplayName','MVP (Máx. vel. pronación)'); end
Array indices must be positive integers or logical values.
if ~isempty(mp), plot(t(mp), gyr_ml(mp), 'kd', 'MarkerFaceColor','black', 'DisplayName','MP (Máx. pronación)'); end
% Configuración del gráfico
ylabel('Velocidad angular mediolateral [°/s]')
title('Detección automática de eventos del pie durante la carrera')
legend('show', 'Location','northoutside', 'Orientation','horizontal')