[ath9k-devel] ath9k: spectral scan -vs- channel state information
Adrian Chadd <[email protected]>
| Newsgroups | org.ath9k.lists.ath9k-devel |
|---|---|
| Message-ID | <CAJ-Vmok8gWJM1HkS7waV_eo4rkCTwgVt-a=odUcvU0B5sikv+A@mail.gmail.com> |
On 13 April 2016 at 01:40, Dan <[email protected]> wrote: > Adrian Chadd <adrian <at> freebsd.org> writes: > >> >> On 12 April 2016 at 15:05, Dan <aidan <at> plezica.com> wrote: >> > Hi >> > >> > I am having some trouble understanding the difference between >> > channel state information (often requested on the mailing list) >> > and what is currently available via spectral scan. >> > >> > >> > My understanding is as follows; >> > - spectral scan (once triggered via the debugfs) logs >> > channel state estimation for each of the 56 ofdm subcarriers >> > (HT20 case). In the spectral code (for ath9k), the channel state >> > info is the I and Q values for the subcarriers. >> > For ath9k, the bulk of the code is in ath_process_fft >> >> Right. And it's sent over as a PHY error frame. >> >> > Bits I dont understand : >> > Can channel state information be collected on a more general >> > basis ? --- for example for each phy packet received. >> >> No. There's not enough bandwidth available in the PHY->MAC connection >> to also throw over that much data per packet. So, you get to trigger >> it once, and then the next packet gets the CSI data dumped into a >> memory region in the chip somewhere. Then you read it out. >> >> > Also, the calibration (ar9003_calib) seems to gather I and Q >> > data also... but its not clear when this is run/collected and used. >> >> > Any help appreciated.... >> >> That's part of ADC calibration. The idea is to calibrate differences >> in ADCs on the I and Q side of things. >> >> -adrian >> > > Thanks. A few further questions... > For spectral scan, the I/Q values are 'estimations' based on the > IFFT/FFT maths magic in the hardware - and not data that comes > from transmitters (as might be the case in beam forming) Hm. Well, everything's based on whatever the signal source is, sure. In this instance, it's based on estimations from the two ADC signals (one I, one Q) for each of the OFDM buckets. What you get is the magnitude of both combined, not separate I and Q values. > - right ? > > In the data structure for the FFT, I can't see (I may well be blind) > where the 'phase' values are > stored (Q).... it seems to mention only 'magnitude' > which I am assuming is the magnitude of > the signal (I) Well, there's magnitude and phase, and it gives you the values for each. You have to run it through math to get a power level for each bucket. https://wiki.freebsd.org/dev/ath_hal%284%29/SpectralScan You don't get separate readings for I and Q in spectral scan data. -adrian