我有兩個傳感器分開一段距離,從源接收信號。純粹的信號是一個頻率爲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);
TDOA:抵達時間差 – tashuhka
如果您有Communications Toolbox,則可以使用函數finddelay。 – tashuhka
我正在通過代碼使用fft尋找解決方案 – BaluRaman