Perdón por la larga respuesta, pero hacer una buena medición acústica es difícil. Estos son algunos de los pasos involucrados (y en algún momento, realmente llegaremos a la respuesta directa de su pregunta).
Primero, debe asegurarse de que el sistema que está midiendo sea lineal real e invariante en el tiempo (de lo contrario, no puede desconvolucionarse). Esto puede ser complicado en una PC si usa controladores de tarjeta de sonido normales. Estos enrutarán cualquier señal a través del Mezclador de kernel de Windows, que con frecuencia aplica la conversión de la frecuencia de muestreo y extrae los buffers a tiempo de manera no determinista. Recomiendo evitar el mezclador de Kernel.
En segundo lugar, debe determinar la duración del impulso de su sistema. Una buena estimación es el tiempo de reverberación de la sala que está midiendo. Es más conveniente elegir una potencia de 2; para la mayoría de las habitaciones, esto será 16384 o 32768 a una frecuencia de muestreo de 44,1 kHz o 48 kHz.
Tercero, crea una excitación periódica de esa longitud. Esto podría ser un barrido de registro o (mejor) un ruido pseudoaleatorio. El espectro del ruido debe elegirse para que obtenga una relación señal / ruido aproximadamente constante en el rango de frecuencia de interés. Eso depende de la función de transferencia y del espectro de ruido de fondo. Si aún no conoce ninguno de esos, el rosa es un buen comienzo. Llamemos a un período de esta señal x [n].
Cuarto, conecte su sistema para que el canal izquierdo de su D / A entre en el altavoz Y en el canal izquierdo de su A / D. Conecte el micrófono al canal derecho del A / D.
Quinto, comience la excitación (repítala o cree un archivo de onda con muchas repeticiones de su señal de ruido). Controle cuidadosamente todos los niveles: asegúrese de que el A / D se encuentre a unos 10 dB por debajo del recorte. Asegúrese de que el preamplificador de micrófono se encuentre a unos 10 dB por debajo del recorte. Asegúrese de que el amplificador de potencia no esté saturado y que el altavoz no esté sobreamplificado.
Sexto, asegúrese de que la habitación esté lo más silenciosa posible. Cerrar puertas y ventanas. Apague la mayoría de las cosas con un ventilador, incluido cualquier sistema HVAC. Expulsar a todas las demás personas de las instalaciones. Si hay circuitos de tierra, use transformadores de aislamiento y elevadores de tierra según sea necesario. Una buena forma de verificar el ruido es conectar un amplificador de auriculares a la salida del micrófono y escucharlo a través de los auriculares. Cualquier ruido, zumbido u otro artefacto que pueda escuchar también aparecerá en la medición.
Séptimo, hacer la adquisición real. Recoge 12 períodos con la señal de excitación en funcionamiento. Inspeccione visualmente los resultados en busca de algo inusual (espacios, piezas faltantes, abandonos, etc.) Deseche los dos primeros períodos. Calcule el promedio sobre los otros 10. Llamemos al canal izquierdo y [n] (tarjeta de sonido) y al canal derecho m [n] (micrófono).
Octavo, calcule la Transformada de Fourier de y [n]. Esto debería ser bastante plano, sin ceros o áreas de muy baja energía. Este puede no ser el caso, ya que la mayoría de las tarjetas de sonido tienen entradas acopladas a CA, es decir, hay un filtro de paso alto y el valor en CC puede ser muy bajo. Del mismo modo, es probable que también haya un filtro anti aliasing, por lo que nuevamente puede tener poca energía o solo ruido a frecuencias muy altas. Si puede solucionarlo manualmente (agregando una pequeña cantidad de energía de banda ancha), entonces hágalo. Si el espectro es muy plano en el área de frecuencia de interés, simplemente puede reemplazarlo con un impulso unitario debidamente retrasado. Si ninguno de estos funciona, las cosas se complican más.
Noveno: desconvolucionar. Su función de transferencia puede calcularse simplemente como
donde denota la transformada de Fourier. Esta es la división espectral directa sin ningún relleno o ventana cero. Como estamos haciendo una adquisición coherente circular, también estamos haciendo una deconvolución circular.
H( ω ) = I { m ( t ) }Yo { y( t ) }
Yo { }
La ecuación muestra el problema discutido en el paso 8. Estamos dividiendo por un espectro medido. Cualquier ceros o áreas de baja energía o alto ruido en el espectro divisor resultarán en basura en la función de transferencia resultante. Los resultados en las frecuencias "buenas" seguirán estando bien, pero no podría usarlos para, por ejemplo, calcular una respuesta de impulso. Una versión simplificada sería simplemente dividir por la señal de excitación, es decir,
H( ω ) = I { m ( t ) }Yo { x ( t ) }
y elija la excitación para que no haya ceros en el espectro. Sin embargo, esto no le permitirá desconvolucionar la respuesta del sistema D / A y A / D y también perderá cualquier información de retraso absoluto. En muchos casos, esto es realmente aceptable y muchos sistemas de medición comerciales hacen exactamente eso, por lo que depende de su aplicación.
Décimo: verifique que su medida sea buena. Se deben realizar varias pruebas:
- Mida algunas veces y asegúrese de que el resultado sea el mismo.
- Mida con el altavoz silenciado. Esto le dará una buena estimación del espectro de ruido de fondo. Como regla general, necesita al menos una relación señal / ruido de 10 dB en todas las frecuencias de interés.
- Prueba de linealidad: mida con la mitad de la ganancia de excitación y confirme que la función de transferencia resultante es la misma.
- Una prueba de ruido en línea útil es la siguiente: tome sus 10 períodos y promedie 5 veces durante 2 períodos cada uno, luego realice una transformación de Fourier sobre 2 * N muestras. Si su señal está libre de ruido, entonces todos los bins impares deberían ser cero. Puede estimar directamente la relación señal / ruido en cualquier frecuencia como X {2 * N + 1} / X {2 * N}