Estoy calculando FFT a partir de la entrada de micrófono. Noto que las frecuencias más bajas siempre parecen tener más potencia (mayor dB) que las frecuencias más altas.
- Corté los datos en marcos de 24576 bytes (4096 * 6).
- Aplicar ventana de Hamming:
input[i] *= (0.54d - 0.46d*(double) Math.Cos((2d*Math.PI*i)/fs));
- Ejecútelo a través de FFTW
Process1D()
. - Convertir de números complejos:
output[i] = 10.0 * Math.Log10((fout[i * 2] * fout[i * 2]) + (fout[i * 2 + 1] * fout[i * 2 + 1]));
- Promedio de 6 valores para obtener una FFT completa de 4096 bytes.
- Pinte una imagen bonita (colores asignados a una paleta).
El promedio (punto 5) se realiza para reducir el ruido FFT.
Como la imagen muestra tanto con sonido como con micrófono apagado, hay más energía (y más ruido) en las frecuencias más bajas. Esto indica que es más que solo un problema de micrófono / sub.
Mis preguntas:
1. ¿Se espera esto? ¿Por qué?
2. ¿Alguna forma estándar de arreglar esto? Casi parece un poco de magia Math.Tan () podría elevarlo a donde pertenece.
Mi objetivo es poder identificar las 5 frecuencias principales sin que las frecuencias bajas ganen por defecto.