Pertama, saya minta maaf karena saya seorang pengembang perangkat lunak dan sudah lama sekali saya tidak terjun ke matematika murni, jadi pertanyaan saya mungkin tampak bodoh. Saya harap tidak.
Konteksnya adalah pengenalan nada dalam musik.
Jika Anda mengambil not musik, dan menerapkan transformasi Fourier untuk itu, Anda akan memiliki dan jumlah amplitudo tak terbatas untuk frekuensi yang diberikan. Sebagai contoh, jika saya bermain catatan yang mendasar adalah , pada instrumen, setelah Fourier transform, saya akan memiliki harmonik di di F , 2 F , 3 F , ... , n F . Setiap frekuensi akan memiliki amplitudo yang diberikan yang menentukan timbre instrumen (piano, suara, trompet, ... semua mengikuti hukum ini, tetapi Anda akan memiliki amplitudo yang berbeda untuk setiap harmonik)
Sekarang apa yang saya ingin lakukan adalah dari sinyal audio yang diberikan, menemukan . Hanya itu saja. Ini lebih rumit daripada yang tampaknya karena Anda akan selalu memiliki kebisingan latar belakang dan seterusnya ... Lebih jauh lagi, F tidak perlu frekuensi dengan amplitudo tertinggi!
Jadi ide saya untuk menemukan adalah untuk menerapkan DFT (yah sebenarnya FFT untuk kecepatan) dan menemukan frenquency F , sehingga F + 2 F + 3 F + ... + n F adalah maksimal dalam output FFT.
Apakah Anda pikir itu mungkin? Apakah Anda pikir itu mungkin dalam waktu yang sangat singkat (katakanlah <5 milidetik)?
Jawaban:
Apa yang Anda gambarkan sangat mirip dengan metode estimasi pitch Harmonic Product Spectrum, seperti yang tercantum dalam makalah Stanford CCRMA ini .
FFT tidak memberi Anda "jumlah amplitudo yang tak terbatas", tetapi sejumlah terbatas dari nampan hasil tergantung pada panjang FFT.
5 mS hanya 1 periode catatan 200 Hz, dan hanya sebagian kecil dari periode di bawah 200 Hz. Pengenalan nada musik biasanya membutuhkan pendengaran atau analisis beberapa periode dari periodisitas suara bernada. Dan banyak musik menggunakan catatan di bawah G2. Jika Anda memiliki data yang cukup panjang, menghitung estimasi pitch dari data itu mungkin hanya akan mengambil urutan mikrodetik daripada milidetik pada PC modern atau perangkat seluler.
sumber