Diseño de un filtro de paso bajo para minimizar el alias en la transmisión de audio pre-diezmada

7

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.

Asignar
fuente
44
Probablemente debería explicar por qué desea filtrar estos datos y cuáles son sus requisitos del filtrado (es decir, ¿cuál es la especificación de su filtro ?).
Paul R
¿Cuáles son sus requisitos en términos de atenuación de la banda de detención, pendiente, ondulación en la banda de paso, etc.? ¿Cuánto le importa la latencia (por ejemplo, si seguimos su enfoque FFT, un bloque de N muestras debe estar disponible antes de que incluso podamos escribir la primera muestra de salida)?
pichenettes
Se requiere para suavizar después de cambiar la frecuencia de muestreo del sonido. Y se aplicará cada bloque de 1 seg. 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 ruidoso)
Mete
Nota: para volver a muestrear debe aplicar el filtro antes de cambiar la frecuencia de muestreo (mediante diezmado o lo que sea).
Paul R
¿Cuáles son las tasas de muestra antes y después? ¿Están arreglados? ¿Son siempre una relación de enteros (por ejemplo, 44.1 kHz => 22.05 kHz)?
Paul R

Respuestas:

8

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.

Hilmar
fuente
1
¿La distorsión de fase es realmente inaudible? ¿Se ha demostrado así en experimentos?
endolito
1
Hay un gran cuerpo de trabajo científico sobre el tema. El oído humano es bastante insensible a los cambios de fase monoaural (pero MUY sensible a la fase binaural). En este caso, cualquier distorsión de fase estaría cerca del cruce a altas frecuencias donde hay poca energía para comenzar. A menos que sea extremo, es poco probable que haga una diferencia audible
Hilmar
Bien, entonces es audible. :) Es realmente una cuestión de cuán mal puedes distorsionarlo antes de que los humanos lo noten, no una cosa binaria audible / inaudible. Por lo tanto, un diseño de filtro realmente deficiente podría ser audible, especialmente si funciona con datos estéreo, lo cual es casi siempre cierto.
endolito el
@endolith: no realmente: la distorsión de fase normalmente sería la misma en los canales izquierdo y derecho en cualquier frecuencia dada, por lo que no habría una distorsión de fase binaural perceptible , que es lo que el cerebro es bueno para detectar (es una gran parte de cómo Localizamos el sonido). No percibimos distorsión de fase monoaural porque no tiene valor evolutivo.
Paul R
1
La percepción humana rara vez es en blanco y negro. Aquí hay una descripción general interesante de la investigación de percepción de fase monoaural music.princeton.edu/~john/monauralphaseexperiments.htm . Mi punto fue que el oído humano no es muy sensible a la fase monoaural y que el tipo de retraso de fase o grupo introducido por un filtro anti-aliasing es poco probable que sea audible.
Hilmar
0

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?

hotpaw2
fuente