I would like to propose a demo project that using LimeSDR to generate and analyze the WLAN signal.
I have Matlab code that can generate TX IQ waveforms and analyze the RX IQ waveforms (including: Transmit Spectrum MASK test, EVM, Transmit Center Frequency Tolerance, Spectral Flatness, etc. currently my code support 802.11n, HT-MF 20MHz signal).
My initial step is to use LimeSDR as TX sink and RX source, and incorporates LimeSDR into my matlab. And if the performance is good, we can use LimeSDR as can WLAN tester instrument.
Any suggestions or advices or foreseeable issues are welcome! Thanks.
I had a very similar idea and goal in mind when I purchased the LimeSDR. I had started to do some work in Pothos to get familar with moving data around. But did not get very far, before getting distracted on something else. If you are looking for some collaboration, I would be willing to assist. I am a hardware engineer by trade, and work in this arena. So I have access to WLAN test generators and Analyzers that I can use to verify the operation of this project.
Thanks~ My major platform is Matlab, not sure if you can use the same platform.
Currently, I am working on the interface/driver to Matlab for LimeSDR. My concern is how fast the data transfer speed can be? we need to have at least 20MSPS (complex samples) for 802.11n. From my experience with USRP device, the data speed in Windows is less than that in Linux. I am not sure if LimeSDR can reach that speed without any overflow or underflow.
I do not have access to MatLab. I could use Octave, it looks like there is support and some examples for the LimeSDR. It may limit what I can do depending on what ToolBoxes you have used in your code. I will have to get my LimeSDR out and setup again and get it playing with Octave. I had a Pothos project that was bringing the sampled data into the PC and displaying the WLAN spectrum. I am not sure how fast the transfer across the USB was actually running? I can check that out and see if I can get a quick answer. There was a post where Lime was able to get 387Mbyte/s across the interface. So that should be fast enough.
If LO is set to 2450MHz, the received samples become a real vector rather than complex one. I am not sure if my code is OK so I attached it.
It seems the matlab driver interface does not provide overflow/underflow indication. I cannot judge whether the waveform is successfully transfered between LimeSDR and host PC.
As an workaround solution to issue 2, I use a CW signal transmitted from signal generator to LimeSDR, and calculate the phase difference between samples, It should be as expected according the the CW frequency, LO frequency, and the sample rate.
As an example, I set the LO to 1GHz, CW to 1.001111GHz, 20MHz sample rate. The phase difference should be around 20 degrees. You can see from the below figure (3rd line) it is as expected.
When I set the CW to 1.002222GHz, 40MHz sample rate. The phase difference should still be around 20 degrees. However, the phase difference begin to “jump”. And If I set to 50MSPS, the phase jump is more obvious.
As a workaround, I set the LO to 1G and tested my wlan signal generator and analyzer, it works fine. However, this blocks my analyzer to get the “real” Wifi signal that generated from commercial AP.