Ecualizador digital continuo de dominio de frecuencia

Estoy ante un caso real de aplicación DSP. Tengo conocimientos básicos de filtrado digital y temas de telecomunicaciones.

La entrada de mi "caja negra" es una señal de audio digital (por ejemplo, un archivo WAV común, estéreo 44100 Hz, 16 bits). Necesito desarrollar un ecualizador digital y crear las muestras de audio de salida.

El cálculo tiene que hacerse en tiempo real, es decir, con una transmisión en vivo. Soy consciente de que significa que tengo que definir un búfer lo suficientemente grande como para alimentar los filtros.

El enfoque básico es crear varios filtros digitales de paso de banda para cambiar la ganancia de las frecuencias en cada banda. Debido a que las bandas solicitadas son muchas (> 16), voy a trabajar en el dominio de la frecuencia.

Mi pensamiento:

  1. convertir la señal en el dominio de la frecuencia (DFT)
  2. definir una forma de la respuesta deseada
  3. procesar las muestras de entrada con esta forma
  4. volver al dominio del tiempo para recuperar las muestras de audio reales

Preguntas:

  1. ¿Cuál es el nombre técnico de este método?
  2. ¿Crees que este enfoque es mejor (*) que usar muchos filtros de banda de paso empinados?

(*) mejor aquí no es solo una opinión: hablo de complejidad de código, latencia y precisión

debe usar FFT, no DFT, FFT tiene una implementación rápida cuando la longitud de su muestra es igual a 2 norte . A veces. es mejor multiplicar con ventanas en el dominio de la frecuencia, cambiar una muestra puede generar un zumbido en la señal de tiempo
Puede ser más sencillo convertir la respuesta de frecuencia deseada en una respuesta de dominio de tiempo (respuesta de impulso) usando una DFT inversa y luego procesar el audio con el filtro FIR resultante. Este filtro será bastante largo para una buena precisión, por lo que una limitación sería cuánta latencia y/o cambio de fase puede tolerar.
@DaveTweed en el escenario de caso de uso principal, la latencia puede ser bastante larga, incluso 500 ms o más. Es bueno tener otros escenarios en los que la latencia debe mantenerse por debajo de 250 ms con una compensación en la precisión de la respuesta de frecuencia.

Respuestas (1)

Su pregunta es más adecuada para el intercambio de pila de procesamiento de señales, y esta es quizás la respuesta que está buscando. Sin embargo, los problemas básicos son:

  • Las FFT/DFT son filtros; sin embargo, (1) su respuesta de frecuencia no es ideal ya que se superponen entre sí en el dominio continuo, (2) no están espaciados de la manera que mejor se adapte a nuestra respuesta auditiva, lo que lleva a un procesamiento derrochador, y (3) son circunvoluciones circulares que pueden conducir a discontinuidades de muestra a muestra.

  • Lo que está buscando es un banco de filtros ortogonales eficiente que esté espaciado logarítmicamente en el dominio de la frecuencia. Existen varios enfoques para estos.

  • Una transformada wavelet apropiada podría ser más eficiente, ya que se introduce diezmado en cada paso que pasa por alto la resolución de intervalo fijo de las FFT.

  • En particular, la transformada Q constante invertible se diseñó teniendo en cuenta estos problemas.

Aunque no estoy muy familiarizado con él, puedo idear una metodología que podría servir para su propósito basada en el enfoque de wavelet.

  1. Diseñe un filtro que extraiga la mitad superior del dominio de frecuencia en el orden deseado.
  2. Divida el dominio en dos secciones ortogonales aplicando el filtro y restando la salida del filtro de la entrada.
  3. Guarde el componente superior para su procesamiento. Este es el coeficiente de detalle.
  4. Diezmar el componente de frecuencia más baja tirando la mitad de las muestras. Este es el coeficiente de aproximación.
  5. Vuelva a aplicar el filtro a la mitad diezmada.
  6. Repita el proceso, dividiendo sucesivamente el espectro en bandas separadas logarítmicamente.
  7. Aplique la escala deseada.
  8. Muestree sucesivamente (que incluye filtrado de paso bajo) cada banda baja y agréguela a su banda alta correspondiente para reconstruir la señal filtrada.
  9. Como los coeficientes de detalle también tienen una banda limitada, estos también se pueden diezmar y procesar de la misma manera para proporcionar una resolución de frecuencia más alta.

Tenga en cuenta que cada banda inferior requiere el doble de muestras para procesar, por lo que esta es una instancia de la característica de filtrado de velocidad variable de las transformadas wavelet. Sin embargo, la tasa de muestreo total permanece constante debido al submuestreo intermedio.

Hay algunos problemas de fase que deberían abordarse y que darían lugar a limitaciones prácticas en los filtros. Wikipedia trata extensamente sobre la Transformada Wavelet Discreta.

¿ Estás hablando de filtros de espejo en cuadratura ?
Probablemente. El término suena muy familiar como anterior a las transformadas wavelet, pero no he seguido de cerca este campo en décadas. Así que no soy totalmente consciente de cómo evolucionó esa terminología.