-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AoA Music #3
Comments
All the implemented DoA estimation algorithms work with the spatial correlation matrix, which is quadratic. You can calcaulte the spatial correlation matrix with the use of the corr_matrix_estimate() function from your measured data matrix. You can find more information regarding to the usage of the above functions in the documentation: |
Thanks for the quick response! i played around with the parameters. I found out that d has a huge impact to the results. my averaged results of 0°,45° and 90° with 2 measure processes in 2 different environments each of them with about 30 csi matrices: |
Setting of the proper antenna arangemenet parameters is mandatory for the correct operation. The 'd' parameter specifies the interelement spacing in case of Uniform Linear Array antenna configuration. This parameter is normalized to the wavelength, so if you are working at 2.4GHz, the free space wavelength is 12.5 cm, and if you placed your 3 antennas in a row 6.25 cm apart from each other than you have to set 'd' to 0.5. Also note that you have to calibrate your antenna system, and of course your 3 channel data acquisition system must be coherent. |
What did you mean with calibration ? Thanks for your help! |
Every multichannel receiver hardware has inherent amplitude and phase distortions. This is because the transfer characteritics of the individual receiver channels are different, thus the phase delay information is deteriorated during the reception. |
Since the originally raised problem has resolved, I am considering this issue to be solved. |
I still run into problems when trying to determine the entrance angle. @petotamas
did you mean, that I have to normalize the CSI amplitude before using corr_matrix_estimate() ? Here is a plot of the amplitude of 10 sniffs with 1x3x30 CSI shape All 3 antennas notice the same Signal with nearly the same amplitude. This shows us that the signal receives with theta 0° , isn't it ? Thanks for your help in advance! |
You have nearly identical amplitude on all the channels, but you have to calibrate the phases as well. This is quite crucial to the correct operation. Could you please plot the phases of the subcarriers as well for all the channels? In case the signal of interest is at boresight, you should see no relative phase differences. Another corner case that you can easily use to verify the correct operation is when the incident ange is 60 deg. In this case you should see 90deg relative phase diffs between the channels (ULA, element distance is 0.5 wavelength) |
By the way: I get very different results of MUSIC angles if I change the distance of the capture environment. |
Based on your results I think the phase differences between the channels are reasonably high and it even changes from sub-carrier to sub-carrier. A more informative plot would be to plot the phase differences of the channels only, unwrap the phases and convert it to deg. I have the following ideas to check:
I would highly recommend to generate simulated signals as well so you can test you DSP and the correct operation of the PyArgus library as well. By the way: did you have a hint, why the csi get a kink at the middle? |
Thanks for your great help and support!
You are right there is a phase diff. and it seems to be nearly constant at at fixed distance! But It isn't constant at different distances. And a few times I get some unclean results. I use Interesting is now, if the phase diff is semi constant, how I can be sure that the Phase shift is caused by theta != 0°
my current CSI gather environment is the the Wifi Chip intel 5300 and I am using the LinuxCSI tool by halerin. This makes the Channel state Information (CSI) available. CSI contains the amplitude and phase of the received layer 2 wifi Frame per antenna.
Currently my Tests are outside to minimize reflection and scattering. |
Hay,
i try to implement an AoA with my CSI data from intel5300.
Therefore i tried to use your music implementation.
i have an csi vector with 3 antennas and 30 subcarrier.
If i pass the np.matrix (3,30) through the music function (directionEstimation.py line 317)
i get the error:
But why it should be?
I didn`t found anything at the MUSIC paper saying that it should be quadratic.
Did i misunderstand MUSIC or is there a mistake at the code?
The text was updated successfully, but these errors were encountered: