Skip to content
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

CSI amplitudes for distance estimation (RBPi 4) #93

Closed
salomoneli opened this issue Jun 16, 2020 · 5 comments
Closed

CSI amplitudes for distance estimation (RBPi 4) #93

salomoneli opened this issue Jun 16, 2020 · 5 comments

Comments

@salomoneli
Copy link

Hi, I am currently implementing a simple distance estimation approach that uses the CSI amplitudes (i.e. the amplitude values for each subcarrier of one WiFi packet). I'm using the Nexmon CSI Extractor on a Raspberry Pi 4 to collect the CSI. As a transmitter I use another Raspberry Pi 4 that is sending WiFi frames using ping. The goal is to estimate the distance between these two Raspberry Pis.

The CSI collection works fine, but I'm facing two problems regarding the results:
1.) Ideally, the CSI amplitudes of several WiFi packets should stay constant over time at a certain distance. Of course this is not the case in real environments, but the CSI amplitudes of several WiFi packets, at the same distance, are too unstable.
2.) The CSI amplitude values should decrease with an increasing distance between the two devices. But in my case the average of the CSI amplitude at a distance of 2m and 20m are almost equal.

I already tried several changes in the experimental setup, but nothing changed so far.

So my questions are:
1.) Is anyone else facing a similar problem with unstable CSI values (amplitude and/or phase)?
2.) Has anyone already successfully implemented distance estimation using the Nexmon CSI Extractor and Raspberry Pis (or other Hardware) and maybe has a hint?

Thanks in advance!

@mzakharo
Copy link
Contributor

CSI waveform, obtained by nexmon, goes through AGC first, destroying most 'distance' information with it. To recover it, I have seen some researchers combine CSI measurement with RSSI.
Even at a stable physical distance, AGC will cause the CSI waveform to change, as the receiver tries to compensate for external blockers/interference/environment changes.

@salomoneli
Copy link
Author

Thank you so much for this hint!
Do you know if it is possible to get the gain that was applied for each packet?

@wyhpolyu2020
Copy link

Dear Salomoneli, it seems that the csi tool works well on your raspberry pi B4. I am using this device too. I met a problem. When I execute the command pkill wpa_supplicant and ifconfig wlan0 up. I lost the wifi connection. So, my laptop cannot ping my raspberry 4 and when I collect the csi packet, it shows that 0 packet was collect. Would you mind give me some ideas? I really need your help.
Many thanks. Email- [email protected]

@fatihoezdemir
Copy link

Hello @mzakharo ,
do you know how to get the RSSI for each packet for compensating these effects ?

@salomoneli
Copy link
Author

salomoneli commented Jul 1, 2020

@mzakharo has written a patch that allows to get the RSSI together with CSI data.

Here's the link to the commit: 7e3f9f7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants