Saya menghitung FFT dari input mikrofon. Saya perhatikan bahwa frekuensi yang lebih rendah tampaknya selalu memiliki kekuatan lebih (dB lebih tinggi) daripada frekuensi yang lebih tinggi.
- Saya memotong data menjadi bingkai 24576 byte (4096 * 6).
- Terapkan jendela Hamming:
input[i] *= (0.54d - 0.46d*(double) Math.Cos((2d*Math.PI*i)/fs));
- Jalankan melalui FFTW
Process1D()
. - Konversi dari bilangan kompleks:
output[i] = 10.0 * Math.Log10((fout[i * 2] * fout[i * 2]) + (fout[i * 2 + 1] * fout[i * 2 + 1]));
- Rata-rata 6 nilai untuk mendapatkan FFT lengkap 4096 byte.
- Lukis gambar cantik (warna dipetakan ke palet).
Rata-rata (hal 5) dilakukan untuk menurunkan noise FFT.
Saat gambar menunjukkan baik dengan suara maupun dengan mikrofon mati, ada lebih banyak energi (dan lebih banyak suara) dalam frekuensi yang lebih rendah. Ini menunjukkan lebih dari sekedar masalah mik / sub.
Pertanyaan saya:
1. Apakah ini diharapkan? Mengapa?
2. Adakah cara standar untuk memperbaikinya? Hampir terlihat seperti matematika. Sihir () dapat mengangkatnya ke tempatnya.
Tujuan saya adalah untuk dapat mengidentifikasi 5 frekuensi teratas tanpa frekuensi yang lebih rendah menang secara default.