Tengo una matriz de dobles de 1 por 10000 almacenada en un archivo llamado "fecg.mat". La matriz representa la magnitud de una señal FECG grabada.
Lo he trazado contra el tiempo (de 0 a 9999):
Para eliminar la línea de base, me pregunto si puedo usar un filtro de paso alto. ¿Cómo diseño un filtro adecuado?
PD El procesamiento de señales no es mi campo de estudio. No tengo idea de cómo filtrar una señal de dominio de tiempo discreta.
Respuestas:
La forma más fácil de eliminar la línea de base es eliminar el promedio:
En realidad, el promedio es el primer coeficiente de la transformada de Fourier, por lo que en realidad es un filtrado muy agudo: está eliminando el coeficiente DC.
Si desea un filtrado más clásico, verifique las funciones como
butter
y amigos, que sintetizarán un filtro IIR, luego usefilter
para filtrar su señal.Matlab también incluye una herramienta de diseño de filtros.
fuente
MATLAB tiene una herramienta de diseño de filtros llamada fdatool. Ejecute fdatool en MATLAB, le ofrece una GUI visual, en la que puede cambiar los parámetros del filtro. Elija un filtro de paso alto desde allí y elija una frecuencia cut0ff. cuando esté satisfecho con la forma del filtro, expórtelo al espacio de trabajo de MATLAB. Digamos que su nombre de filtro es myFilter y su nombre de señal es mySignal. Luego, para filtrar la señal en MATLAB, escriba: filterSignal = conv (mySignal, myFilter).
fuente
Si conoce el contenido de frecuencia de la señal deseada, puede pasar un poco por debajo de esa frecuencia. Digamos que solo le interesa la señal por encima de 2 Hz y su frecuencia de muestreo es de 100 Hz, entonces puede hacer esto de la siguiente manera:
Este es un ejemplo específico que utiliza un paso alto de mantequilla de tercer orden.
fuente
Qué filtro usar realmente depende de la aplicación específica. - ¡Un filtro demasiado áspero podría eliminar la información que está buscando!
El algoritmo Pan-Tompkins ampliamente utilizado (para la detección de QRS) especifica un filtro para la eliminación de la línea base en los datos de ECG. Pero es difícil determinar si este filtro es adecuado para su aplicación a partir de la información limitada que proporcionó. Por favor, elabore una respuesta más precisa.
fuente
LPF
como Castilho dijo. pero la línea de base que obtuve se retrasó. Para hacer coincidir la línea de base y la señal original para restarlas, ¿debería cambiar una de ellas o hay una mejor manera?Te sugiero que uses un filtro adaptativo para eliminar el ruido de referencia de 50Hz. un filtro adaptativo lms estaría bien:
fuente