Pregunta

Como en este ejemplo Cómo a la información de frecuencia extracto de un flujo de audio de entrada (usando PortAudio)? siento curiosidad por PortAudio y numpy ...

No estoy 100% seguro de FFT, ¿cómo puedo pasar numpy un trozo y volver tres valores de -1,0 a 1,0 para bajos, medios y agudos?

No me importa si esto sólo por un canal que puedo dar sentido a la parte de audio de esto, es la matemática que nadan frente a mí cuando miro a ellos:)

¿Fue útil?

Solución

En realidad, sería no utilizar una transformada de Fourier para hacer esto.

La división de cualquier señal de audio de graves, medios y agudos generalmente se realiza utilizando filtros. A filtro es un dispositivo de procesamiento de señales que atenúa ciertos intervalos de frecuencia. Los filtros se pueden construir digitalmente o eléctricamente. Por ejemplo, se utilizan en los sistemas de filtro de cruce en altavoces.

Para obtener la parte de bajo de baja frecuencia que usaría un filtro de paso bajo. -Filtros de paso bajo filtro de salida de alta frecuencia. También se les llama 'de corte alto' filtros.
Para obtener la parte media de frecuencia media que usaría un filtro de paso de banda. Band-pass filtros Filtrar a cabo tanto bajo y altas frecuencias. También se les llama 'acampanados filtros.
Para llegar a la parte de agudos de alta frecuencia que usaría un filtro de paso alto. De paso alto filtra filtrar las frecuencias bajas. También se llaman filtros de corte bajo ''.

En realidad, también se puede utilizar solamente el filtro de paso alto y de paso bajo. Si se restan las dos señales filtradas de la señal original, el resultado sería una señal filtrada de paso de banda. Esto le ahorra un filtro.

Cada filtro tendrá una frecuencia umbral. La frecuencia umbral es de una frecuencia especial, de la que el filtro debe comenzar filtrado. Dependiendo del orden del filtro, la señal será atenuado por 6 dB / oct (primera orden), 12 dB / oct (segundo orden), 18 dB / oct (tercera orden), etc. Para su aplicación, un diseño de segundo orden es probablemente muy bien.
Tenga en cuenta que los filtros en desorden general, con su señal en algunos aspectos y cuanto mayor sea el orden, el más audible esto se puede conseguir. Por cierto, esto es física pura y verdadera para todas las señales de procesamiento que incluyen transformadas de Fourier.

El uso de estos tres filtros se (puede ser) equivale a realizar una transformada de Fourier con sólo tres puntos espectrales.

Otros consejos

El Fourier Transform , mencionado en la respuesta seleccionada para la pregunta SO apuntar a, le da el "espectro" - una gran colección de valores que dan la intensidad del sonido en cada uno de varios rangos / rebanadas de frecuencias (expresado, por ejemplo, en Hertz)

¿Cómo traducir (por ejemplo) un millar de intensidades (uno por cada porción de 10 Hertz del espectro, por ejemplo) en sólo tres números, como se desee, es, por supuesto, una cuestión bastante heurística - por ejemplo, usted podría decidir que gamas de frecuencias corresponden a "bajo" y "agudos", con todo en-entre ser "medio", y calculan las intensidades medias en cada uno. Por si sirve de algo, creo que una convención común para el "bajo" es de hasta 250 Hz, por 6KHz "agudos" y por encima (en el medio de ser el "rango medio"), por ejemplo, cfr esta página - pero es más bien una convención arbitraria, por lo que, "escoger su veneno" ! -)

Una vez que tenga el relativa niveles que querrá normalizarlos con respecto a la otra y escalar de manera apropiada a la mentira en su rango deseado (presumiblemente en una escala logarítmica, ya que de obras de audición cómo humanos ; -).

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