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:
- 1Hz de ancho de banda de transición es 256 veces mayor en términos de frecuencia digital a una velocidad baja frente a la velocidad original. Por lo tanto, cada toque de su filtro es 256 veces más potente.
- La señal en sí está a una velocidad menor, por lo que el filtro solo necesita procesar 1/256 de los datos.
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.