¿Qué está haciendo esta sinc en mi salida de filtro LP convertida en HP?


10

Estoy tratando de filtrar HP una señal filtrándola LP y restando la salida del filtro original. Para obtener la señal filtrada por LP, filtré hacia atrás y hacia adelante usando un filtro Butterworth de tercer orden para una señal de 16,000 muestras. La frecuencia de corte fue de 0,5 Hz a 250 Hz. No se utilizó ninguna ventana.

En el primer 85% de las muestras, la salida de este método parece superponerse completamente con la señal filtrada por HP. Sin embargo, al final de la salida, hay un fenómeno similar a la sinc.

  • ¿Qué lo causa?
  • ¿Qué podría cambiar para que este método sea factible?

Aquí están las dos señales superpuestas. El azul se filtra con HP, y el rojo se obtiene por sustracción.

Señales HP y orig-LP

Aquí está la diferencia absoluta por muestra. Nunca son exactamente iguales; La diferencia mínima es 8e-12. El 87% de los valores están por debajo de 0.01.

diferencia entre los dos métodos

(Si hay una mejor manera de obtener un filtro HP de de un filtro LP , me encantaría aprenderlo).H(z)


¿Puedes incluir el código MATLAB que estás usando para generar las parcelas? Los datos no son importantes; simplemente podría simularlo con muestras aleatorias si es necesario.
Jason R

Respuestas:


0

Methinks @ hotpaw2 está en el camino correcto. Supongo que filtfilt no está manejando las condiciones iniciales para el filtro inverso del todo bien. Parece un problema realmente difícil: no creo que pueda culpar a Mathworks por equivocarse ...

La solución me parece bastante fácil: rellene con cero el final de su señal hasta que desaparezca la sinc y elimine el relleno (¡ahora distinto de cero!) Después del filtro.


0

Está haciendo un filtro hacia adelante y hacia atrás para uno, y un filtro solo hacia adelante para el otro. Por lo tanto, los dos filtros se comportarán de manera diferente en uno o ambos bordes.

Si su señal es muy estacionaria y exactamente periódica en la longitud de la ventana de datos, puede intentar ajustar los datos de forma circular e iniciar los filtros al inicio por sus longitudes de respuesta al impulso.


Lo siento si no fui lo suficientemente claro. La señal con la que estoy comparando (azul) también se filtra hacia adelante y hacia atrás ( filtfilty butter(3,0.5/250,high)). La señal es de un ECG que no puedo esperar que sea exactamente periódica.
Andreas

¿Estoy malinterpretando algo? No puedo entender el voto positivo ya que el primer párrafo está claramente equivocado.
Andreas
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.