Diseño de filtro de audio de paso bajo

2

Quiero que mi proyecto Arduino escuche la música ambiental y sincronice la salida de su espectáculo de luces al ritmo.

Parece que hacer la detección de BPM correctamente es extremadamente difícil en el software, pero si tu música es Lo suficientemente doofy en la naturaleza y usas un poco de hardware que puedes engañar y salirse con la suya.

Por lo tanto, mi plan es conectar un mic / opamp breakout board a un simple filtro de paso bajo pasivo de primer orden y muestrea la entrada en una interrupción cada 5 ms o menos. Audacity me dice que el ritmo de un bajo es de alrededor de 15 ms de largo, por lo que cada 5 ms debería ser suficiente para asegurarse de que no, er, "señorita un latido ".

Si mi muestra de paso bajo está por encima de un umbral de volumen, registraré el tiempo desde el último tiempo, realizaré algún tipo de cálculo de promedio ponderado en las últimas muestras y eso me permitirá predecir cuántos ms hasta el próximo ritmo (algunos trucos de software podrían ser necesarios para dar cuenta de las caídas de bajos y breakbeats .)

En primer lugar, ¿tengo aproximadamente la idea correcta?

En segundo lugar, ¿puede alguien decirme qué valores de orden de magnitud necesitaré para la resistencia y el condensador? Me imagino que quiero que mi frecuencia de corte sea de 500-1000Hz. También reúno la resistencia del resto de los recuentos de mi circuito, pero no estoy seguro de dónde medir esa resistencia. Un poco de complicidad con esta herramienta me da respuestas que parecen razonables (500Hz = 330Ω / 1uF) pero no No sé lo suficiente como para saber realmente.

Un ejemplo de esquema que muestre dónde mido la resistencia del circuito existente y dónde va el filtro de paso bajo en el contexto del resto sería extremadamente útil.

    
pregunta Robert Atkins

4 respuestas

5

Una parte justa del contenido espectral de la mayoría de la música está por debajo de 500-1000 Hz, y con una caída del filtro de primer orden bastante débil de 6 dB / octava, su forma de onda no se verá afectada. Se requeriría un filtro de orden mucho más alto, preferiblemente a un corte mucho más bajo (440 Hz es el concierto A, los aciertos de bajos deberían ser mucho debajo de eso), con detección de envolvente (un diodo y una tapa). / p>

Como no te importa la fidelidad real del audio, un filtro pasivo debería ser suficiente, aunque el orden requerido puede reducir significativamente tu amplitud y la resolución efectiva.

Addendum:

Solo para reiterar las preocupaciones de los demás, el principal problema de solo filtrar el audio de esta manera es que si tiene un golpe muy fuerte (por ejemplo, un choque de platillos), todavía pasará por su LPF (filtro de paso bajo) y le dará picos. para que puedas interpretar mal. Otro problema sería la incapacidad de hacer frente a un amplio rango dinámico (la música se vuelve más suave y más fuerte); aunque es posible que pueda agregar algún umbral variable.

Como ha indicado correctamente, este enfoque funcionará mejor con Techno, pero aún así podría no ser muy bueno.

    
respondido por el Nick T
2

No me gusta enlazar a wikipedia para obtener respuestas, pero aquí hay una buena explicación: enlace en Electronic-pass filtros

Aunque tengo algunas preocupaciones con su plan. Un filtro de primer orden le dará una caída de −6 dB por octava. Esto significa que si establece su frecuencia de corte en 500Hz, solo tendrá una caída de 6db por 1khz. En la música hay muchas cosas que suceden en la frecuencia sub 5khz que todavía estarás pasando por una cantidad decente. El filtrado digital (cálculo del promedio ponderado) que está realizando puede ayudarlo, pero no está seguro.

Puede obtener una mejor respuesta de frecuencia yendo a un filtro de orden superior. De cualquier manera, creo que será mucho más feliz con un filtro de paso bajo opamp. También puedes mirar en un filtro digital, no hay nada que temer.

    
respondido por el Kellenjb
0

estuvo de acuerdo con la sustancia de la música que ocurre por encima del rango base, así que, ¿por qué no enviar dos señales, ejecutar lpf en una y luego ejecutar una compuerta dura en la otra? De esa forma capturarás tanto los sonidos rítmicos como los graves. :)

    
respondido por el matti d pearson
0

Si espera recuperar una forma de onda de 200 Hz (en el bajo), necesita muestrear MINIMAMENTE a 400 Hz para el caso ideal, pero 450 Hz sería mejor. Si su filtro no es bueno (y probablemente no lo sea), tendrá un alias que dañará sus algoritmos de detección.

NECESITA que su frecuencia de muestreo sea al menos el doble de la frecuencia de corte de su filtro para evitar el aliasing. Cuanto más crudo sea el filtro, más rápido de ese ideal matemático necesitarás muestrear. Con un filtro IDEAL de pared de ladrillo de 500Hz, necesita muestrear a intervalos de 1 ms.

    
respondido por el Scott Seidman

Lea otras preguntas en las etiquetas