How to obtain time of arrival using MUSIC algorithm

I have a 1-d vector sampled at particular time interval, I want to caluclate the time of arrival between two overlapping echos present in the signal, how to obtain them using Music/ high resolution algorithm.

 Accepted Answer

UDBHAV JOSHI,
1.what is the length of the signal ( >7000 ?) ?
2.Did you try ordinary operations : autocorrelation, histogram, PSD, derivative ?
3. Take a look at the spectrum , and see .
concerning the Music algo , what i think is that you need at least 2 targets so you have one source that you need its time of arrival.
So that size(X)=[2 d] and d is the number of snapshots :
R=X*X'/d; % The cross correlation matrix
[U,S,V]=svd( R ); % the Noise and Signal sub matrices
Signal=U(:,1);
noise=U(:,2);
then you scan the time from t0 to t_final :
for t=t0:step:tf
A=exp(j*2*pi*t*F*..... % steering vector
Spec=1./A'*noise*noise'*A';
end
then you plot the Spec vector whose peaks are the TOA,
Warn : this is first suggestion based on DOA, so we wait for better answer

2 Comments

By F in steering vector it means sampling frequency or the frequency spacing
F is the frequency of the signal itself, whether it is scalar or vector, the sampling frequency is already included in the time "t", F_sampling=1/step.
and of course F_sampling > 2* Max(F) .

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!