Necesito aplicar un filtro de paso bajo a los archivos PCM. Existen varios métodos, como los filtros FIR, los filtros IIR (butterworth-chebyshev ...), pero me parece que aplicar la transformación Fast Fourier y eliminar las frecuencias más altas es la forma más cercana a un filtro ideal.
¿Cuál es el método de filtrado más rápido y cercano al ideal?
Se requiere para suavizar antes de cambiar la frecuencia de muestreo del sonido. (Fcutoff = Fs / 2) Y se aplicará cada bloque de 1 segundo. datos. El requisito principal es que, después de cambiar la frecuencia de muestreo, la nueva calidad de audio debe estar lo más cerca posible de la calidad de audio original. (No es ruidoso)
Gracias.
Respuestas:
La mejor opción de filtro depende de los requisitos específicos de su aplicación. Hay dos opciones básicas: FIR e IIR. IIR será mucho más eficiente, sin embargo, dará como resultado distorsiones de fase. Las distorsiones de fase son completamente inaudibles (a menos que sea un caso atípico extraño) pero claramente medibles. Por lo tanto, depende de si puedes tolerar esto o no.
En cualquier caso, debe decidir qué tan cerca debe llegar a la nueva frecuencia Nyquist y cuánto ruido de alias puede tolerar. Un ejemplo típico sería que desea que la banda de paso se extienda al 90% de la nueva frecuencia de Nyquist y que desea que sus productos de alias estén por debajo de -80dB. Según estas especificaciones, puede diseñar el filtro adecuado. Otras consideraciones incluyen la cantidad de fluctuación de banda de paso que puede aceptar y si tiene alguna restricción sobre el retraso y / o la latencia máxima del grupo.
Aquí hay un ejemplo: supongamos que desea reducir la muestra de 44.1 kHz a 32 kHz y la nueva frecuencia Nyquist es de 16 kHz. El 90% de Nyquist (14400 Hz), con una ondulación de banda de paso de 0.1dB y 80 dB de atenuación a 16 kHz se podría hacer con un filtro elíptico de noveno orden.
Como nibot ha señalado, poner a cero los contenedores FFT es una mala elección para un filtro de paso bajo, ya que el paso bajo resultante tiene lóbulos laterales muy grandes y el rechazo de alias será bastante pobre. También requeriría una implementación adecuada de un algoritmo overlap-add o overlap-save para manejar una señal continua.
fuente
No existe un simple "mejor" o "ideal". Solo hay compensaciones que se ajustan mejor a sus requisitos o prioridades específicas (y, por lo tanto, son una combinación peor para los demás).
En el caso del antisolapamiento, los requisitos pueden incluir ondulación máxima, ancho de transición, linealidad de fase, tolerancia para pre-timbre, latencia máxima, ciclo de cómputo o requisitos o limitaciones de energía, limitaciones de memoria, frecuencias de muesca específicas, etc.
Poner a cero los contenedores FFT es excelente para proporcionar transiciones empinadas y muescas agudas, y una de las peores soluciones posibles para cumplir con cualquier especificación de ondulación de banda de parada (además puede sonar en la banda de paso). ¿Qué deseas?
fuente