Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

210
Visualizações
El resultado de la función FFT de audio hace que sea casi imposible inspeccionar las frecuencias medias y bajas

Estoy tratando de construir un analizador gráfico de espectro de audio en Linux. Ejecuto una función FFT en cada búfer de muestras/fotogramas PCM alimentados al hardware de audio para poder ver qué frecuencias son las más frecuentes en la salida de audio. Todo funciona, excepto que los resultados de la función FFT solo asignan algunos elementos de matriz (contenedores) a las frecuencias medias y bajas. Entiendo que el audio es logarítmico y la FFT funciona con datos lineales. Pero con tan poca asignación a las frecuencias bajas/medias, no estoy seguro de cómo puedo separar las cosas limpiamente para mostrar gráficamente la distribución de frecuencias. He probado con tamaños de ventana de 256 a 1024 bytes, y aunque las ventanas más grandes dan más resolución en el rango bajo/medio, todavía no es tanta. También estoy aplicando una función de Hann a cada fragmento de datos para suavizar los límites de la ventana.

Por ejemplo, pruebo usando un archivo de audio mono que reproduce tonos a 120, 440, 1000, 5000, 15000 y 20000 Hz. Estos deberían estar distribuidos de manera algo uniforme en todo el espectro al interpretarlos logarítmicamente. Sin embargo, dado que FFTW funciona de forma lineal, con una matriz de 256 elementos o 1024 elementos, solo alrededor del 10% de la matriz de retorno contiene valores de hasta aproximadamente 5 kHz. El resto de la matriz de FFTW contiene frecuencias por encima de 10-15 kHz.

Aquí está más o menos el resultado que busco:

ingrese la descripción de la imagen aquí

Pero esto es lo que realmente estoy recibiendo:

ingrese la descripción de la imagen aquí

Nuevamente, entiendo que esto probablemente funcione según lo diseñado, pero aún necesito una forma de obtener más resolución en la parte inferior y media para poder separar mejor las frecuencias.

¿Qué puedo hacer para que esto funcione?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Lo que está viendo es, de hecho, el resultado esperado de una FFT (Transformada de Fourier). El eje f logarítmico que espera se logra mediante la transformación Constant-Q .

Ahora, la implementación de la transformación Constant-Q no es trivial. La Transformada de Fourier se ha vuelto popular precisamente porque tiene una implementación rápida (la FFT). En la práctica, la transformación de Q constante a menudo se implementa mediante el uso de una FFT y la combinación de múltiples contenedores de alta frecuencia. Esto descarta la resolución en los contenedores superiores; no le da más resolución en los contenedores inferiores.

Para obtener más resolución de frecuencia en los contenedores inferiores de la FFT, simplemente use una ventana más larga. Pero si también desea mantener la resolución de tiempo, deberá usar un tamaño de salto que sea más pequeño que el tamaño de la ventana. En otras palabras, sus ventanas FFT se superpondrán.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda