Main Content

Transformación De Walsh-Hadamard para Análisis Espectral y Compresión de Señales ECG

Utilice una señal de electrocardiograma (ECG) para ilustrar el trabajo con la transformación Walsh-Hadamard. Las señales de ECG suelen ser muy grandes y deben almacenarse para su análisis y recuperación en un momento futuro. Las transformaciones Walsh-Hadamard son particularmente adecuadas para esta aplicación porque proporcionan compresión y, por lo tanto, requieren menos espacio de almacenamiento. También proporcionan una reconstrucción rápida de la señal.

Comience con una señal ECG. Replicarlo para crear una señal más larga e insertar algún ruido aleatorio adicional.

xe = ecg(512); xr = repmat(xe,1,8); x = xr + 0.1.*randn(1,length(xr));

Transforma la señal usando la rápida transformación Walsh-Hadamard. Trazar 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 parte de la energía de la señal está en los valores de secuencia ción inferiores, por debajo de aproximadamente 1100. Almacene sólo los primeros 1024 coeficientes (de 4096). Trate de reconstruir la señal con precisión a partir de sólo 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 cerca del original, pero se ha comprimido a un cuarto del tamaño. Almacenar más coeficientes es un equilibrio entre el aumento de la resolución y el aumento del ruido, mientras que el almacenamiento de menos coeficientes puede causar la pérdida de picos.

Consulte también

|