0
votes

I want to estimate the time of arrival of GPR echo signals using Music algorithm in matlab, I am using the duality property of Fourier transform.

I am first applying FFT on the obtained signal and then passing these as parameters to pmusic function, i am still getting the result in frequency domain.?

3
What makes you think that pmusic should return the time of arrival of the echoes? From the documentation of pmusic I can't see anything that suggests this.Assad Ebrahim
DUality property of fourier transformYudi

3 Answers

1
votes

Short Answer: You're using the wrong function here.

As far as I can tell Matlab's pmusic function returns the pseudospectrum of an input signal.

If you click on the pseudospectrum link, you'll see that the pseudospectrum of a signal lives in the frequency domain. In particular, look at the plot:

(from Matlab's documentation: Plotting Pseudospectrum Data)

Notice that the result is in the frequency domain.

Pseudospectrum result

Assuming that by GPR you mean Ground Penetrating Radar, then try radar or sonar echo detection approach to estimate the two way transit time.

0
votes

This can be done and the theory has been published in several papers. See, for example, here:

STAR Channel Estimation in DS-CDMA Systems

That paper describes spatiotemporal estimation (i.e. estimation of both time and direction of arrival), but you can ignore the spatial part and just do temporal estimation if you have a single-antenna receiver.

You probably won't want to use Matlab's pmusic function directly. It's always quicker and easier to write these sorts of functions for yourself, so you know what is actually going on. In the case of MUSIC:

% Get noise subspace (where M is number of signals)
[E, D] = eig(Rxx);
[lambda, idx] = sort(diag(D), 'descend');
E = E(:, idx);
En = E(:,M+1:end);

% [Construct matrix S, whose columns are the vectors to search]

% Calculate MUSIC null spectrum and convert to dB
Z = 10*log10(sum(abs(S'*En).^2, 2));
0
votes

You can use the Phased array system toolbox of MATLAB if you want to estimate the DOA using different algorithms using a single command. Such as for Root MUSIC it is phased.RootMUSICEstimator phased.ESPRITEstimator.

However as Harry mentioned its easy to write your own function, once you define the signal subspace and receive vector, you can directly apply it in the MUSIC function to find its peaks. This is another good reference.

http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=1143830