Transformada de Walsh-Hadamard para análisis del espectro y compresión de señales de ECG
Utilice una señal de electrocardiograma (ECG) para ilustrar cómo se trabaja con la transformada de Walsh-Hadamard. Las señales de ECG suelen ser muy grandes y deben almacenarse para su análisis y recuperación en el futuro. Las transformadas de Walsh-Hadamard son especialmente adecuadas para esta aplicación, ya que proporcionan compresión y, por ello, requieren menos espacio de almacenamiento. También permiten una reconstrucción rápida de la señal.
Empiece con una señal de ECG. Replíquela para crear una señal más larga e introduzca un poco de ruido aleatorio adicional.
xe = ecg(512); xr = repmat(xe,1,8); x = xr + 0.1.*randn(1,length(xr));
Transforme la señal utilizando la transformada rápida de Walsh-Hadamard. Represente la señal original y la señal transformada.
y = fwht(x); subplot(2,1,1) plot(x) xlabel('Sample index') ylabel('Amplitude') title('ECG Signal') subplot(2,1,2) plot(abs(y)) xlabel('Sequency index') ylabel('Magnitude') title('WHT Coefficients')
La gráfica muestra que la mayoría de la energía de la señal está en los valores de secuencia menores, aproximadamente por debajo de 1100. Almacene solo los primeros 1024 coeficientes (de 4096). Intente reconstruir la señal con precisión a partir únicamente de estos coeficientes almacenados.
y(1025:length(x)) = 0; xHat = ifwht(y); figure plot(x) hold on plot(xHat) xlabel('Sample Index') ylabel('ECG Signal Amplitude') legend('Original','Reconstructed')
La señal reproducida está muy próxima a la original, pero se ha comprimido hasta ocupar un cuarto del tamaño. El almacenamiento de más coeficientes es un tradeoff entre más resolución y más ruido, mientras que el almacenamiento de menos coeficientes puede provocar la pérdida de picos.