-
Notifications
You must be signed in to change notification settings - Fork 1
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
Is the data read here a Fourier transformed frequency domain? #2
Comments
CSI data is, in a way, FFT of the wifi signal. So it's already in the Fourier domain when we get it from the chip. When you run unpack, an fftshift is done to place the subcarriers in the right order. You can plot the csi amplitude like a spectrogram for a time series visualisation. |
Thank you for reply for me. my last question is.. Are the amplitude unit "mW" and phase unit "radian" correct? |
There's an automatic gain controller in the chip which applies a different gain for every packet. Since the signal is being amplified, and we don't know what the amplification factor is, I don't think we can assign a unit. |
Hello? Thank you for the information you gave me. If you are still active in this repository, I have one more question. I've done a lot of research on csi so far, and I'd like to filter noise or extract features using wavelet transform instead of the current fft of nexcsi. What I'm curious about is that I want to know which order I should put the wavelet transform task in. I think the unpack function is the part that enforces fft in nexcsi package, but I was wondering if I can just use the wavelet transform after removing the unpack code and using only the decoder function. And I want to ask you one more thing. (fft, stft, wt(wavelet)) I'm curious about your opinion on which of these three transformations do you prefer when analyzing csi signals. |
Heyo, nexcsi doesn't do any FFT. CSI data is already an FFT of the received signal, nexcsi does FFT-shift so that the subcarriers are in the right order, with 0 at center. The only filtering it does is making the values of null and pilot subcarriers 0 when the option to do so it passed. Yes, you should use the unpack function, which converts CSI from encoded form to complex values, and then do any processing you'd like to do. I don't have experience with the other transforms, try all of them and see which works best? Please do tell us which one works best and your experience so we learn too :) |
I'm the one using your csi decoder. Thank you for creating this tool. By the way, I wonder if the csi read here cannot be plotted in time series. I learned the usefulness of wavelet conversion by looking at existing papers, and I tried to wavelet conversion of csi data, but I heard that this is a conversion method performed in time series data. When I look at your interleaved.py , there is an fft part, so I think it is the data that has already converted the csi into Fourier, is that right?
The text was updated successfully, but these errors were encountered: