2014-02-26 43 views
3

我有兩個傳感器分開一段距離,從源接收信號。純粹的信號是一個頻率爲17kHz的正弦波。我想估計兩個傳感器之間的TDOA。我使用的互相關以下是我的代碼使用互相關的時間延遲估計

x1; % signal as recieved by sensor1 
x2; % signal as recieved by sensor2 
len = length(x1); 
nfft = 2^nextpow2(2*len-1); 
X1 = fft(x1); 
X2 = fft(x2); 
X = X1.*conj(X2); 
m = ifft(X); 
r = [m(end-len+1) m(1:len)]; 
[a,i] = max(r); 
td = i - length(r)/2; 

我通過刪除如下17kHz的所有頻率過濾我的信號X1和X2。 我有兩個問題,上面的代碼: 1.傳感器和來源在同一個地方,我得到不同的'td'值在每次。我不知道什麼是錯的。是因爲噪音嗎?如果有的話,請提供解決方案?我已經閱讀了很多論文,並通過了其他關於計算器的問題,所以請用代碼和理論一起回答,而不是僅僅說明理論。 2.'td'的值有時與使用xcorr計算的延遲不匹配。我究竟做錯了什麼?以下是我使用xcorr的td代碼

[xc,lags] = xcorr(x1,x2); 
[m,i] = max(xc); 
td = lags(i); 
+0

TDOA:抵達時間差 – tashuhka

+0

如果您有Communications Toolbox,則可以使用函數finddelay。 – tashuhka

+0

我正在通過代碼使用fft尋找解決方案 – BaluRaman

回答

2

您可能遇到的一個問題是您只使用單一頻率。在f = 17 kHz,估計速度v = 340 m/s(我假設你使用超聲波),波長爲lambda = v/f = 2 cm。這意味着你的長度測量有一個明確範圍的2釐米(對不起,找不到一個好的鏈接,谷歌自己)。這意味着你必須知道你的距離超過2釐米,然後才能使用測量結果來改善距離。

用另一種方式來思考:在兩個完美正弦之間進行互相關時,結果應該是間距等於波長的峯的「梳狀」。如果它們完美地重疊,並且您將一個信號置換一個波長,它們仍然完美地重疊。這意味着你首先必須知道哪些峯是正確的,否則每次純粹由隨機噪聲產生的不同峯值可能是最高的。 在嘗試盲目找到最大值之前,您是否計算了計算的互相關的圖?

這個問題是一樣的干涉,在這裏很容易測量比通過測量相位差的波長小的分辨率小距離的變化,但你不知道的絕對距離主意,因爲你做的不知道絕對的階段。

對此的解決方案實際上很簡單:讓您的源生成更多的頻率。即使使用(帶限)白噪聲,在計算互相關時也應該沒有問題,並且消除了模糊性問題。你應該看到白噪音是一個正弦集合。它們中的每一個的互相關將產生梳子,但具有不同的間距。將所有這些梳子加在一起時,它們只會在一個點上顯着加起來,在你尋找的延遲時間內!

+0

我有點困惑。你能解釋一下解決方案的一部分,你認爲哪裏可以產生多個頻率?比方說,我修改我的來源,source = source + band_limited_noise;現在當我做xcorr的時候,我會梳理出2個牙齒簇,其中一個是噪音(這顆牙齒寬度很低),另一個是我的實際波(這顆牙齒很窄)。這將如何幫助我找到延遲?當我繪製互相關結果(是的,我正在繪製它找到最大值之前繪製它)時,我已經得到了這種曲線 – BaluRaman

+0

我試圖將白噪聲解釋爲它的傅立葉分量的某種總和,但忘記了這一點。無論如何,白噪聲的xcorr是一個單峯,如你所願。理解這個問題的最好方法是在模擬中使用它。只需生成一些白噪聲,一些正弦或組合,然後計算自相關(即兩個延時爲零的信號)並繪製一張圖。您可能會看到正弦的結果會有幾個峯值,而對於白噪聲,它會有一個峯值。 –

+0

好的。我把我的頻率從17k改成了幾個hunderd hz,現在xcorr工作得很好。我怎樣才能使它工作17khz?我閱讀了一些論文,但對我來說太複雜了。你提到了一些關於產生更多頻率的源。你能否詳細說明一下? – BaluRaman

0

應使用白噪聲,最大長度序列或其他非週期性信號作爲使用交叉相關的時間延遲測量的測試信號。這是因爲非週期性信號只有一個互相關峯值,並且不會確定時間延遲。可以使用突發類型的週期性信號來完成這項工作,但SNR降低。如果必須使用連續的週期性信號作爲測試信號,那麼您只能在週期性測試信號的一個週期內測量一個時間延遲。這應該解釋爲什麼在您的情況下,使用較低頻率的正弦波作爲測試信號,而使用較高頻率的正弦波不會。這在這些視頻中得到了證明:https://youtu.be/L6YJqhbsuFY,https://youtu.be/7u1nSD0RlwY