Jika saya memiliki sinyal yang waktunya terbatas, katakanlah sinusoid yang hanya berlangsung selama detik, dan saya mengambil FFT dari sinyal itu, saya melihat respons frekuensi. Dalam contoh ini akan menjadi lonjakan pada frekuensi utama sinusoid.
Sekarang, katakan saya mengambil sinyal waktu yang sama dan tunda dengan konstanta waktu lalu ambil FFT, bagaimana hal berubah? Apakah FFT dapat mewakili penundaan waktu itu?
Saya menyadari bahwa waktu tunda mewakili perubahan dalam domain frekuensi, tetapi saya mengalami kesulitan menentukan apa artinya sebenarnya .
Secara praktis, apakah domain frekuensi tempat yang tepat untuk menentukan waktu tunda antara berbagai sinyal?
fft
fourier-transform
delay
gallamine
sumber
sumber
Jawaban:
The diskrit transformasi Fourier (DFT) , umumnya dilaksanakan oleh Fast Fourier Transform (FFT) , peta urutan terbatas-panjang diskrit sampel waktu-domain ke urutan yang sama-panjang sampel frekuensi-domain. Sampel dalam domain frekuensi berada dalam bilangan kompleks umum; mereka mewakili koefisien yang dapat digunakan dalam jumlah tertimbang dari fungsi eksponensial kompleks dalam domain waktu untuk merekonstruksi sinyal domain waktu asli.
Bilangan kompleks ini mewakili amplitudo dan fase yang dikaitkan dengan setiap fungsi eksponensial. Dengan demikian, setiap angka dalam urutan output FFT dapat diartikan sebagai:
Anda dapat menafsirkan ini sebagai berikut: jika Anda ingin merekonstruksi x [n], sinyal yang Anda mulai, Anda dapat mengambil banyak fungsi eksponensial yang kompleks , bobot masing-masing dengan , dan jumlahkan. Hasilnya persis sama (dalam ketelitian numerik) hingga . Ini hanya definisi berbasis kata dari DFT terbalik.X[k]=Akejϕej2πnkN,k=0,1,…,N−1 x[n]X[k]=Akejϕk x[n]
Jadi, ketika berbicara dengan pertanyaan Anda, berbagai rasa dari transformasi Fourier memiliki properti yang menunda domain waktu memetakan ke pergeseran fase dalam domain frekuensi. Untuk DFT, properti ini adalah:
x [ n - D ]
Yaitu, jika Anda menunda sinyal input Anda dengan sampel , maka setiap nilai kompleks dalam FFT sinyal dikalikan dengan konstanta . Adalah umum bagi orang-orang untuk tidak menyadari bahwa output DFT / FFT adalah nilai-nilai kompleks, karena mereka sering divisualisasikan sebagai besaran saja (atau kadang-kadang sebagai besaran dan fase).D e−j2πkDN
Sunting: Saya ingin menunjukkan bahwa ada beberapa kehalusan pada aturan ini untuk DFT karena keterbatasan cakupan waktu. Secara khusus, pergeseran sinyal Anda harus melingkar agar hubungan dapat ditahan; yaitu, ketika Anda menunda oleh sampel , Anda perlu membungkus sampel terakhir yang berada di ujung ke depan sinyal yang tertunda. Ini tidak akan benar-benar cocok dengan apa yang akan Anda lihat dalam situasi nyata di mana sinyal tidak dimulai sampai setelah awal aperture DFT (dan didahului oleh nol, misalnya). Anda selalu dapat menyiasati hal ini dengan menambahkan nol sinyal asli sehingga saat Anda menunda olehD D x [ n ] x [ n ] Dx[n] D D x[n] x[n] D sampel, Anda hanya membungkus nol ke depan. Hubungan ini hanya berlaku untuk DFT karena terbatas pada waktunya; itu tidak berlaku untuk transformasi Fourier klasik atau transformasi Fourier diskrit-waktu .
sumber
Gallamine,
Ini berarti bahwa akan ada offset fase dalam vektor FFT Anda. Ketika Anda FFT sinyal (nyata) Anda, jawaban Anda akan kompleks, sehingga Anda akan memiliki bagian nyata, dan imajiner. Jika Anda mengambil fase mereka, (inverse_tangent (imag / real)), ini akan menampilkan semua fase frekuensi. Cara fase mereka berbeda dari jika Anda tidak memiliki penundaan terkait langsung dengan penundaan yang Anda miliki dalam waktu.
(Di matlab Anda juga bisa mendapatkan fase hanya dengan "angle (fft_result)").
Omong-omong jika Anda melakukan korelasi sinyal Anda dengan penundaan dan tanpa penundaan dan memilih puncaknya, Anda bisa mendapatkan penundaan dengan cara itu. Dalam freq-domain itu mengurangi semua fase sinyal Anda tanpa penundaan, dari semua sinyal dengan penundaan, dan mengambil rata-rata.
sumber
sumber