¿Cómo grabar en .wav desde el micrófono después de aplicar una transformación rápida de Fourier y un filtro de paso alto en él?

StackOverflow https://stackoverflow.com/questions/1640638

  •  08-07-2019
  •  | 
  •  

Pregunta

Recibo información del micrófono y le aplico el fft. Después de eso, puse frecuencias superiores a 1KHz con cero (el filtro de paso alto).

Quiero saber cómo puedo grabar la entrada del micrófono después de pasarla a fft y después de la aplicación del filtro de paso alto.

Estoy trabajando con C #, ¿qué debo hacer? : P

¿Fue útil?

Solución

Después de su FFT y filtro, debe hacer una FFT inversa para que los datos vuelvan al dominio del tiempo. Luego, desea agregar ese conjunto de muestras a su archivo .WAV.

En cuanto a la producción del archivo en sí, el formato está ampliamente documentado (buscar en Google "formato .WAV" debería arrojar más resultados de los que tiene) y es bastante simple. Básicamente es un encabezado simple (llamado "fragmento") que dice que es un archivo .WAV (o en realidad un archivo "RIFF"). Luego hay un "fmt" fragmento que informa sobre el formato de las muestras (bits por muestra, muestras por segundo, número de canales, etc.) Luego hay un " datos " fragmento que contiene las propias muestras.

Como parece que va a hacer esto en tiempo real, mi consejo sería olvidarse de hacer su FFT, filtro e iFFT. Un filtro FIR dará esencialmente los mismos resultados, pero generalmente mucho más rápido. La idea básica del filtro FIR es que, en lugar de convertir sus datos en el dominio de frecuencia, filtrarlos y luego volver a convertirlos en el dominio del tiempo, convierte sus coeficientes del filtro en el dominio del tiempo y los aplica (bastante) directamente a sus datos de entrada. Aquí es donde los DSP se ganan el sustento: casi todos tienen instrucciones de acumulación múltiple, que pueden implementar la mayor parte de un filtro FIR en una sola instrucción. Sin embargo, incluso sin eso, lograr que un filtro FIR se ejecute en tiempo real en un procesador moderno no requiere ningún truco real a menos que esté haciendo un muestreo rápido realmente . En cualquier caso, es mucho más fácil que un FFT / filtro / iFFT funcione a la misma velocidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top