Multiple delays using cross correlation

2 ビュー (過去 30 日間)
Sravantej
Sravantej 2011 年 12 月 19 日
I want to find multiple delays between two signals using xcorr in matlab. I'm getting the single delay when i use the following code [x,lag]=xcorr(r1,r2); [m,i]=max(abs(x)); delay=lag(i); But the problem is i'm not getting correct output, when there are multiple delays. Can anyone help me to find multiple delays between two signals
  2 件のコメント
Wayne King
Wayne King 2011 年 12 月 19 日
You are using max() so you are getting a single value. When you say multiple delays, are you trying to account for echoes?
Can you say something more specific about your signals.
Sravantej
Sravantej 2012 年 1 月 2 日
hi wayne, i'm generating the multiple delayed signal by summing signals that are delayed by different delays and now i need to find all those delays

サインインしてコメントする。

回答 (1 件)

Honglei Chen
Honglei Chen 2012 年 1 月 3 日
Once you get the result of xcorr, you can use findpeaks to locate multiple peaks.
[x,lag] = xcorr(r1,r2);
[pks, locs] = findpeaks(x);
delay = lag(locs);
For options in findpeaks, see the doc
doc findpeaks
HTH

カテゴリ

Help Center および File ExchangeCorrelation and Convolution についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by