Saya ingin menggunakan STFT untuk analisis multipitch. Saya menyadari mendeteksi parsial yang ada dalam sinyal hanyalah awal. Masih saya punya masalah dengan itu.
Katakanlah saya memiliki sampel sinyal dengan frekuensi 'CD' 44100Hz
. Dengan jendela 1024
sampel saya mendapatkan resolusi frekuensi bin 22500Hz/512=43Hz
. Ini cukup hanya untuk membedakan nada piano tinggi seperti:
C5 = 523.251Hz
dan C#5 = 554.365
.
Dulu kupikir 1024
jendela itu cukup besar. Tapi mungkin tidak dan biasanya jendela yang lebih besar digunakan untuk mendeteksi parsial?
Dapatkah resolusi frekuensi ditingkatkan dengan metode lain selain meningkatkan ukuran jendela, yang memperburuk resolusi waktu? Saya memikirkan dua metode:
Metode1:
- Membagi sinyal menjadi pita frekuensi dengan bandpassfilters (misalnya
0-11.25Hz
dan11.25-22.5Hz
). - Turunkan band-band yang lebih tinggi sehingga frekuensi tinggi asli sekarang menjadi frekuensi rendah (jadi lakukan untuk band kedua
11.25-22.5Hz -> 0Hz-22.5Hz
) - tidak yakin ini mungkin. - Set tempat sampah yang dihasilkan dengan label yang disesuaikan.
Metode2:
- Gunakan serangkaian filter lowpass dengan batas yang meningkat.
- Lakukan FFT pada peningkatan rentang frekuensi.
- Untuk setiap frekuensi gunakan resolusi sebaik mungkin (nampan dari FFT pertama di mana frekuensi ini dimasukkan).
- Ini akan menyebabkan frekuensi rendah untuk memiliki resolusi yang lebih baik tetapi saya pikir ini ok karena untuk catatan yang lebih tinggi perbedaan frekuensi adalah parutan.
Saya akan berterima kasih atas komentar tentang masalah ini.
Saya juga baca di sini: Bagaimana ukuran jendela, laju sampel memengaruhi estimasi pitch FFT? tentang metode meningkatkan hasil pengambilan puncak. Saya pikir akan mencoba menggunakannya.