dhalperi / linux-80211n-csitool-supplementary

802.11n CSI Tool based on iwlwifi and Linux-2.6
http://dhalperi.github.com/linux-80211n-csitool/
195 stars 129 forks source link

CSI for 1x3 SIMO link #319

Open DiDomenicoSimone opened 7 years ago

DiDomenicoSimone commented 7 years ago

Hello everyone, I am using CSI tool to collect CSI data from the Intel NIC 5300. My setup consists of a single antenna (single stream) Access Point and an Intel NIC 5300 equipped with 3 antennas. Collecting the data I noticed that some captured packets have a CSI matrix of size 1x3x30, others have 1x2x30 and others 1x1x30. This happens only using a single antenna AP or a multiple antenna AP forced to work with a single spatial stream.

Any ideas? Any suggestions?.

Thanks a lot in advance. Simone

DneprovV commented 7 years ago

I also have the same problem. Here is the plot of Nrx value for all csi_trace[ ] cells. nrx Matlab also shows me warning: WARN ONCE: Found CSI (../../csi.dat) with Nrx=2 and invalid perm=[3 1 2]

So I wonder if Intel 5300 is in power-saving mode or smth alike, or am I doing something wrong?

DiDomenicoSimone commented 7 years ago

Hi @DneprovV, during my experiments I manually disabled all the settings that can change the number of RX antennas, like the power saving feature. By doing a campaign of experiments I noticed that with the same Access Point and the same receiver the number of RX antennas can change with the tested environment. There can be 3 possible kind of reasons for disabling some of the receive antennas:

I excluded the crosstalk because in that case I should have ever had the same number of antennas regardless of the environment.

I excluded the RSSI imbalance because I put some debug prints in to the iwlwifi driver and chacked that the RSSI difference between the antennas was not greater than the threshold (50 dB, If I remember correctly).

At last, I think with reasonable probability that the variability in the of receive antennas is due to the spatial diversity and therefore due to the frequency selectivity of the sensed environment and the distance between antennas. You can experience this effect if you try to increase the distance between antennas or move to a larger environment (hopefully more selective).

Simone

junsujang commented 7 years ago

In #57 some people mention kernel version as one of the possible reasons for such behavior. Have you looked into this possibility as well?

DneprovV commented 7 years ago

Hello, @junsujang. Thanks for pointing on that problem, but it seems it's not my case. I'm using kubuntu-14.04.3-desktop-amd64. Can't tell you kernel version, I'm away from my work computer. But anyways, I desided to use 2 Intel WiFi 5300 as transmitter and receiver with injection mode. As far as I can say (I'm not very experienced in wireless communications), it works well. I get CSI matrix with size I expect to get.

junsujang commented 7 years ago

Hi, @DneprovV Thanks for getting back to me. So do you have any idea as to how your original issue of varying number of antennas got resolved? You mention that you have decided to use injection mode for both Tx and Rx; do you mean calling setup_injection.sh (Tx) and setup_monitor_csi.sh (Rx)? How did you set things up initially?

I really appreciate your reply comments.

DneprovV commented 7 years ago

Well, at my fisrt message of this thread my setup was like this: commercial AP as TX and Intel 5300 as RX. So, my hypothesis is that I couldn't manage TX rate and commercial AP choose rate and modulation scheme on it's own. That's why I decided using 2 Intel 5300. So I just made instructions in README file in injection folder of *supplementary project. Also original scripts setup_injection.sh (Tx) and setup_monitor_csi.sh (Rx) didnt work on my computer well, so I found some modification here http://m.blog.csdn.net/u012840636/article/details/53894510. There is just some sleep 1 addition to original scripts, but it works for me.