Filtrado de transmisión de audio

9

Dado algo así como 103 puntos de datos ( ), un DFT devolverá 103 valores de frecuencia. Luego, hacer algo como filtrar las frecuencias altas implica establecer los valores de alta frecuencia de la DFT a cero, y hacer la DFT inversa para recuperar 103 puntos de datos que representan la señal original sin las frecuencias altas.N=103

Esto tiene sentido para mí dado los 103 puntos de datos a la vez. Pero, ¿qué pasa con la transmisión de un archivo WAV de audio que es bastante grande (por ejemplo, ). Si uno quisiera filtrar las frecuencias altas, entonces el enfoque que acabo de describir en los datos completos de puntos lógicamente tiene sentido. Pero eso no es razonable cuando se transmite un archivo WAV para su reproducción. ¿Qué se hace para filtrar en alta frecuencia una reproducción de transmisión de un archivo de audio?N=105105 5

usuario782220
fuente

Respuestas:

12

FFT -> coeficientes de puesta a cero -> IFFT no es la forma correcta de hacer el filtrado: el filtro real realizado al hacerlo tiene características pobres.

La forma correcta de filtrar señales es calcular los coeficientes de un filtro digital , un proceso conocido como diseño de filtro y para el cual hay disponible una gran cantidad de herramientas / documentación de software, y aplicarlo a su secuencia de entrada. En resumen, esto consiste en evaluar para cada muestra una combinación lineal de las muestras de entrada pasadas y las muestras de salida pasadas. Dependiendo de los requisitos de su filtro en términos de rechazo / ondulación de la banda de detención, solo podrían ser necesarios unos pocos coeficientes, lo que lo hace mucho más eficiente que FFT. Dado que la única información requerida para calcular una muestra de salida son las pocas muestras pasadas de entrada / salida, no hay ningún problema para aplicarla a la transmisión de audio.

Necesitará usar FFT solo si decide usar filtros FIR, y si sus requisitos de filtro hacen que tengan una cantidad increíblemente grande de coeficientes. En este caso particular, será eficiente aplicar el filtro a bloques sucesivos de sus datos de entrada a través de FFT y superposición-adición .

pichenettes
fuente
8

La mejor manera de aplicar el filtrado del dominio de frecuencia para los flujos de señal es agregar superposición (o los sabores relacionados se superponen guardar o bloquear convolvers, etc.).

Básicamente, toma un cuadro a la vez (digamos 1024 muestras). Ponga a cero la almohadilla hasta el doble de la longitud (2048), realice una FFT, multiplique con la función de transferencia (también rellenada con cero) del filtro, haga una FFT inversa. Guarde las últimas 1024 muestras como superposición para el siguiente fotograma, agregue la superposición del fotograma anterior a las primeras 1024 muestras y esta es su salida. Por cada 1024 muestras de entrada, obtienes 1024 muestras de salida y simplemente repites esto para los siguientes cuadros hasta que se complete la transmisión.

Se requiere todo el negocio con relleno y superposición cero, ya que la multiplicación en el dominio de frecuencia implementa convolución circular y realmente desea convolución lineal en la mayoría de las aplicaciones.

Existen variantes de estos métodos que utilizan diferentes funciones y superposiciones de ventanas, pero todo es el mismo principio: cortarlo en pequeños fragmentos y procesar un fragmento a la vez.

Hilmar
fuente
¿Hay un libro que entra en los detalles de esto?
user782220
@ user782220: dsp.stackexchange.com/questions/427/…
Martin Thompson