Supongamos que tengo una señal de audio muestreada a Hz, y me gustaría diseñar un filtro de paso bajo que aísle todo por debajo de ~ Hz. En el mundo digital, este es un filtro de paso bajo con la banda de paso en . Además, la banda de transición también debe ser razonable. La construcción de un filtro FIR para esto puede tener muchos toques que a la larga afectan la precisión. Un filtro IIR tampoco es ideal porque el audio sufre por una respuesta de fase no lineal en los filtros, por lo que, a menos que la señal se filtre, luego se invierta y se filtre nuevamente, no es realmente una opción.
¿Podría una transformada wavelet ser mejor en esto que el filtrado regular de una vez?
Respuestas:
Si está optimizando el tiempo de ingeniería y se encuentra en una plataforma que admite bien grandes FFT (es decir, no es un punto fijo), entonces tome el consejo de hotpaw2 y use una convolución rápida . Funcionará mucho mejor que una implementación FIR ingenua y debería ser relativamente fácil de implementar.
Por otro lado, si tiene algo de tiempo para gastar en esto para obtener la mejor implementación o está en una plataforma de punto fijo, debe usar una estructura multirrate hacia abajo, hacia arriba y hacia abajo. Pero es un poco más complicado hacer todo bien.
Tengo acceso a implementaciones confiables y altamente optimizadas de herramientas de filtrado de convolución rápida y multirate. La convolución rápida tarda aproximadamente 3 veces más para obtener un rendimiento de señal equivalente en comparación con la estructura multirate. Además, eso es incluso en una plataforma de punto flotante. La brecha se ampliaría considerablemente en un punto fijo dsp.
En términos generales:
Conversión descendente:
Use 8 etapas de media banda, filtros diezmado por 2 para transformar su señal de 48 kHz en una señal de 187.5 Hz. La primera etapa de este muestreo descendente puede tener una banda de transición muy amplia, lo que permite que la energía se alias siempre que no se vuelva a alias en el rango inferior a 60 Hz. A medida que avanzan las etapas, el número de tomas debe aumentar, pero se aplicarán a tasas de muestreo progresivamente más bajas, por lo que el costo total de cada etapa sigue siendo pequeño.
Filtración:
Realice su filtrado ajustado alrededor de los 60 Hz bw para mantener la energía que eventualmente querrá restar. Hay una doble ventaja en hacer un filtrado ajustado a una velocidad baja:
Conversión ascendente:
Esencialmente, este es el reverso de las etapas de diezmado. Cada una de las 8 etapas del interpolador duplica la velocidad estimando la muestra que va entre muestras de entrada consecutivas. La banda de transición se ensancha a medida que aumenta la frecuencia de muestreo.
Sustraer:
Reste su señal filtrada de paso bajo de velocidad completa de la señal original. Si ha ajustado correctamente todos los retrasos del grupo, la estructura general será un filtro de paso alto con un ancho de banda de transición estrecho.
fuente
Pruebe un filtro de convolución de adición / guardado superpuesto con el FFT / IFFT más largo que se ajuste a sus restricciones de latencia y rendimiento computacional. Puede diseñar filtros FIR extremadamente largos cuando utilice este método con FFT aún más largos.
Si puede FFT toda la canción, o todo su archivo de señal de audio, en un FFT + IFFT muy largo (hay algoritmos FFT especiales para vectores largos que no caben en dcache o RAM), no necesitará hacer nada se superpone el proceso de agregar / guardar, y puede obtener una banda de transición muy estrecha.
fuente
Claramente hay dos opciones: FIR y IIR. Como ya se dijo, FIR requiere una respuesta de impulso MUY larga (1000s de tomas) y es costoso en términos de memoria, MIPS y latencia con superposición de agregar / guardar siendo la opción más eficiente. Sin embargo, la latencia puede ser un problema real. Si desea usar eso como un paso alto para un subwoofer de cine en casa, la latencia será tan alta que perderá la sincronización de los labios con el video.
IIR es varios órdenes de magnitud menos costoso y, por lo tanto, se usa con frecuencia. De hecho, tiene una respuesta de fase no plana, pero en muchos casos esto no es un problema o puede solucionarse. Por ejemplo, si necesita un filtro de paso alto para proteger los controladores en una caja de graves, la respuesta de fase no es muy importante ya que la respuesta general de fase del sistema está dominada por el controlador, el gabinete y la acústica en la sala. El filtro solo juega un papel menor aquí. En muchos casos, también necesita mantener la fase "relativa", no la fase absoluta. Digamos que desea aplicar el paso alto en la señal A pero no en la señal B, simplemente puede poner un paso total coincidente en la señal B para que la fase relativa de A y B permanezca igual. La latencia general y la demora grupal de este enfoque es aún mucho menor que la del método FIR.
fuente