I have a matrix of Channel State Information (CSI) that is obtained from a WiFi card (using Linux CSI tool with intel 5300).

I try to use musicdoa() function in Matlab to estimate the direction of arrival of the paths of signals received by the receiver in a wireless link. However the result is completely random angle with which is constant with small variations.

Am I missing something with handling the data, is the covariance matrix CSI*CSI'?

This is what I wrote:

CSI = import_csi('sample_data/csi_out_3.dat');
time = size(CSI, 3);
locations = zeros(time, 1);

A = mean(CSI,3);
A_abs = abs(A);
A_abs_inv = 1/sum(A_abs(:));

for i = 1: time
    CSI_multi = CSI(:,:,i).*conj(CSI(:,:,i));
    Random_phase = A_abs_inv.*sum(CSI_multi,'all');
    Bm = (1/Random_phase)*CSI(:,:,i) - A;
    Rq = Bm*Bm';
    R = spsmooth(Rq,1);
    [doas,spec,specang] = musicdoa(R,1);
    locations(i,:) = doas;

plot(locations, '-k')
ylabel('angle \theta/degree')
xlabel('packet # (time)')
title('DOA estimation based on MUSIC algorithm as a function of time')
grid on

Something's a bit confusing here - "direction of arrival" assumes there's one direction of arrival. Still, you have a frequency-selective channel – your OFDM subcarriers' channel aren't identical – so, there's no single "direction of arrival" and you averaging the carrier's coefficients doesn't change that.

You can do one direction of arrival per subcarrier, and that should beautifully demonstrate the richness of your multipath environment.

This is not a signal processing problem – you're using OFDM, exactly because there's more than one path from transmitter to your receiver, so you'll see that!

  • $\begingroup$ Thank you for your help, when we simulate data using certain angles for our directions our arrival, and run them through the code, we get spectrum peaks at our simulated angles. why is that that running real data through the code fails to do the same? We are not after a single direction but rather all of them. how would we go about using one direction per subcarrier? $\endgroup$
    – Ofer
    Jun 29 at 16:03
  • $\begingroup$ becasue, as I said, the real world has more than one angle of arrival, otherwise OFDM wouldn't be necessary. $\endgroup$ Jun 29 at 16:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.