Ya, banyak orang telah mengerjakan analisis frekuensi waktu.
Pendekatan "mengiris data saya menjadi potongan, melakukan FFT pada setiap potongan" adalah ide yang bagus. Menerapkan "fungsi jendela" pada setiap chunk, tepat sebelum melakukan FFT, membantu menghindari banyak artefak. Membiarkan potongan tumpang tindih juga membantu. Setelah perubahan itu , Anda berakhir dengan transformasi Gabor , yang tampaknya menjadi transformasi Fourier waktu singkat (STFT) yang paling populer.
Seperti yang telah Anda tunjukkan, dan seperti yang ditunjukkan artikel Wikipedia, semua teknik transformasi Fourier jangka pendek memiliki tradeoff:
- ketika Anda memotong deret waktu menjadi bagian-bagian yang sangat pendek, Anda mendapatkan informasi waktu yang sangat tepat kapan tepatnya nada mulai dan berhenti, tetapi informasi frekuensinya sangat kabur.
- Ketika Anda memotong deret waktu menjadi bagian-bagian yang sangat panjang, Anda mendapatkan informasi frekuensi yang sangat tepat untuk frekuensi nada yang tepat, tetapi waktu yang tepat mulai dan berhenti itu buram.
Ini adalah masalah yang terkenal, tetapi sayangnya, tidak hanya tidak diselesaikan, sudah terbukti bahwa ketidakpastian antara keduanya tidak dapat dihindari - batas Gabor, batas Heisenberg-Gabor, prinsip ketidakpastian , dll.
Jika saya jadi Anda, saya akan mulai dengan salah satu dari banyak perpustakaan untuk menghitung transformasi Gabor, dan bereksperimen dengan memotong deret waktu menjadi berbagai panjang. Ada kesempatan baik cukup Anda akan beruntung dan Anda akan berakhir dengan beberapa panjang yang memberikan memadai lokalisasi waktu dan memadai diskriminasi frekuensi.
Jika itu tidak bekerja untuk aplikasi ini, maka saya akan pindah ke pendekatan lain untuk representasi waktu-frekuensi dan analisis waktu-frekuensi - transformasi wavelet, transformasi chirplet , pecahan Fourier transform (FRFT), dll
EDIT: Beberapa kode sumber untuk menghasilkan spektrogram / plot air terjun dari data audio:
Gambar untuk Spectrogram berjalan dalam arah terbalik dari utilitas di atas.