Sampling rate and IQ Demodulator

Quote from Christian on 27/01/2025, 13:09Hello,
we have a V6 PLUS and would like to use it as a "WiFi Sniffer". Since there is nothing like the LTE Decoder Block, we want to use the following tool chain:
SpectranV6Plus --> File --> MATLAB --> File --> Wireshark. In the beginning, we have files in between to decouple the stages and not overburden them; later we would like to run this continuously, e.g. by using the HTTP Server to send the data to MATLAB for processing and then onwards.We are currently mostly concerned with the first part, which is somewhat working. Yet there are some issue we do not understand and for which we seek guidance.
- Sampling Rate Problem:
We set the SpectranV6Plus to stream data (w/ or w/o RTBW Correction block) to a file, while the SpectranV6Plus is set to 2.412GHz center freq. with Amp. on, 1/2 span and 92MHz IQRate. According to our understanding that should sample the lowest 20MHz WiFi channel at 2.412GHz with sufficient resolution, both in freq. and time. We write the data to an rtsa file, then read it back in to export to MATLAB format. IQ Pwr Spectrum and Histogram blocks attached to file reader are used to narrow down the time domain to "interesting moments", e.g. when a high-power WiFi beacon arrives. In MATLAB, we convert the file to proper format and feed it for the moment to the "WLAN Toolbox Waveform Analyzer", which for the most part works. It takes ages to resample just seconds, but ok. What we observed is that we sometimes need to slightly adjust the sampling rate field in MATLAB, used to resample the IQs for further processing.
Q1: Can it be that the SpectranV6Plus is not really storing the values at a constant sampling rate of 92.16MHz/2 ?- IQ Demodulator Block:
To address the above, we thought about using the IQ demodulator block, but with this we were not able to get MATLAB to recognize a WiFi pattern as expected at all. We tried a lot of combinations of parameters. In essence, the SpectranV6Plus is configured as before, the IQ Demodulator is set to 2.412GHz center, 20MHz span, and sample rate to {20,40,80}MHz. We also tried to extend the span a bit to 24MHz with sample rates of {24 or 96}MHz to allow MATLAB to better detect the WiFi signal in case it is not perfectly aligned. The problem here is that MATLAB for no properly matching parameterization is able to detect the 20MHz WiFi signal. Funny enough, if we on purpose set e.g. in IQ Demodulator a sample rate of 80MHz and tell MATLAB this is supposedly a rate of 40MHz, it can identify the waveform along with its parameters, but all follow-up analysis will be wrong because it thinks is too narrow.
Q2: What would be the best IQ Demodulator setting to generate an IQ stream for a 20MHz signal at a sample rate of 20MHz (to avoid lengthy resampling).Find attached a screenshot of current parameterization (top: file writer for IQ stream from spectran; mid-top: file reader for export; mid-bottom the IQ demod block; bottom: MATLAB toolbox). If necessary, we can also supply the rmix file.
Greetings
Hello,
we have a V6 PLUS and would like to use it as a "WiFi Sniffer". Since there is nothing like the LTE Decoder Block, we want to use the following tool chain:
SpectranV6Plus --> File --> MATLAB --> File --> Wireshark. In the beginning, we have files in between to decouple the stages and not overburden them; later we would like to run this continuously, e.g. by using the HTTP Server to send the data to MATLAB for processing and then onwards.
We are currently mostly concerned with the first part, which is somewhat working. Yet there are some issue we do not understand and for which we seek guidance.
- Sampling Rate Problem:
We set the SpectranV6Plus to stream data (w/ or w/o RTBW Correction block) to a file, while the SpectranV6Plus is set to 2.412GHz center freq. with Amp. on, 1/2 span and 92MHz IQRate. According to our understanding that should sample the lowest 20MHz WiFi channel at 2.412GHz with sufficient resolution, both in freq. and time. We write the data to an rtsa file, then read it back in to export to MATLAB format. IQ Pwr Spectrum and Histogram blocks attached to file reader are used to narrow down the time domain to "interesting moments", e.g. when a high-power WiFi beacon arrives. In MATLAB, we convert the file to proper format and feed it for the moment to the "WLAN Toolbox Waveform Analyzer", which for the most part works. It takes ages to resample just seconds, but ok. What we observed is that we sometimes need to slightly adjust the sampling rate field in MATLAB, used to resample the IQs for further processing.
Q1: Can it be that the SpectranV6Plus is not really storing the values at a constant sampling rate of 92.16MHz/2 ? - IQ Demodulator Block:
To address the above, we thought about using the IQ demodulator block, but with this we were not able to get MATLAB to recognize a WiFi pattern as expected at all. We tried a lot of combinations of parameters. In essence, the SpectranV6Plus is configured as before, the IQ Demodulator is set to 2.412GHz center, 20MHz span, and sample rate to {20,40,80}MHz. We also tried to extend the span a bit to 24MHz with sample rates of {24 or 96}MHz to allow MATLAB to better detect the WiFi signal in case it is not perfectly aligned. The problem here is that MATLAB for no properly matching parameterization is able to detect the 20MHz WiFi signal. Funny enough, if we on purpose set e.g. in IQ Demodulator a sample rate of 80MHz and tell MATLAB this is supposedly a rate of 40MHz, it can identify the waveform along with its parameters, but all follow-up analysis will be wrong because it thinks is too narrow.
Q2: What would be the best IQ Demodulator setting to generate an IQ stream for a 20MHz signal at a sample rate of 20MHz (to avoid lengthy resampling).
Find attached a screenshot of current parameterization (top: file writer for IQ stream from spectran; mid-top: file reader for export; mid-bottom the IQ demod block; bottom: MATLAB toolbox). If necessary, we can also supply the rmix file.
Greetings
Uploaded files:
Quote from Christian on 29/01/2025, 10:08Well, it's ok to move it here, but the questions do not really relate to MATLAB, but rather to the Spectrum Analyzer and the IQ Demodulator block.
Another spectrum analyzer works with the MATLAB tool chain as expected
Well, it's ok to move it here, but the questions do not really relate to MATLAB, but rather to the Spectrum Analyzer and the IQ Demodulator block.
Another spectrum analyzer works with the MATLAB tool chain as expected

Quote from Christian on 04/02/2025, 14:08I progress a bit further: I was able to capture the signals now by setting the span down to 1/4.
2 questions for this:
- What is the true IQ sampling rate now: 92.16MHz / 4 = 23.04MHz ? This means it should be possible to properly capture a 20MHz signal
- Assuming the above to be true, I have set in the IQ demodulator the "Sample Rate" to 20MHz, but now I cannot set "Span Frequency" to 20MHz but only 19.5MHz. If I set both to 20MHz, the IQ Demod block is not outputting anything (Bounds Check on). As far as I understand this clips away a bit of the signal at the edges. Why can I not set it to 20MHz with Bounds Check on?
For the second question: I got it to work with Span=1/2, Sample Rate=40MHz and Span Frequency=20MHz and Bounds check on, but then I would have to resample the signal later on again, which I would like to avoid.
I progress a bit further: I was able to capture the signals now by setting the span down to 1/4.
2 questions for this:
- What is the true IQ sampling rate now: 92.16MHz / 4 = 23.04MHz ? This means it should be possible to properly capture a 20MHz signal
- Assuming the above to be true, I have set in the IQ demodulator the "Sample Rate" to 20MHz, but now I cannot set "Span Frequency" to 20MHz but only 19.5MHz. If I set both to 20MHz, the IQ Demod block is not outputting anything (Bounds Check on). As far as I understand this clips away a bit of the signal at the edges. Why can I not set it to 20MHz with Bounds Check on?
For the second question: I got it to work with Span=1/2, Sample Rate=40MHz and Span Frequency=20MHz and Bounds check on, but then I would have to resample the signal later on again, which I would like to avoid.

Quote from mm_dev on 04/02/2025, 15:03Quote from Christian on 04/02/2025, 14:08
- What is the true IQ sampling rate now: 92.16MHz / 4 = 23.04MHz ? This means it should be possible to properly capture a 20MHz signal
If you have the "Full Spectrum" option in the V6 block enabled, then yes. Looking at the provided screenshot it seems that you have not enabled this option. See https://v6-forum.aaronia.de/forum/topic/full-spectrum-example-screenshots/ for details.
Quote from Christian on 04/02/2025, 14:08
- Assuming the above to be true, I have set in the IQ demodulator the "Sample Rate" to 20MHz, but now I cannot set "Span Frequency" to 20MHz but only 19.5MHz. If I set both to 20MHz, the IQ Demod block is not outputting anything (Bounds Check on). As far as I understand this clips away a bit of the signal at the edges. Why can I not set it to 20MHz with Bounds Check on?
"Bounds Check" just validates that the spectrum defined by "Center Frequency" and "Span Frequency" lies fully within the frequency range of the input stream, so the blue input selection marker is completely visible.
Quote from Christian on 04/02/2025, 14:08
- What is the true IQ sampling rate now: 92.16MHz / 4 = 23.04MHz ? This means it should be possible to properly capture a 20MHz signal
If you have the "Full Spectrum" option in the V6 block enabled, then yes. Looking at the provided screenshot it seems that you have not enabled this option. See https://v6-forum.aaronia.de/forum/topic/full-spectrum-example-screenshots/ for details.
Quote from Christian on 04/02/2025, 14:08
- Assuming the above to be true, I have set in the IQ demodulator the "Sample Rate" to 20MHz, but now I cannot set "Span Frequency" to 20MHz but only 19.5MHz. If I set both to 20MHz, the IQ Demod block is not outputting anything (Bounds Check on). As far as I understand this clips away a bit of the signal at the edges. Why can I not set it to 20MHz with Bounds Check on?
"Bounds Check" just validates that the spectrum defined by "Center Frequency" and "Span Frequency" lies fully within the frequency range of the input stream, so the blue input selection marker is completely visible.

Quote from Christian on 04/02/2025, 15:20Thank you very much! That option did the trick with leaving "bounds check" on, while setting "Sample Rate"="Span Freq"=20MHz in the IQ Demodulator block. This option seems a bit hidden, though 🙂
The setup is now: Spectran >> IQ Demod >> FileWriter
I read about the RTBW Correction block to be used before exporting IQ values to other tools. Since I use the IQ Demodulator block, do I still need the RTBW Correction block? If so, in front of IQ Demod or after?
Thank you very much! That option did the trick with leaving "bounds check" on, while setting "Sample Rate"="Span Freq"=20MHz in the IQ Demodulator block. This option seems a bit hidden, though 🙂
The setup is now: Spectran >> IQ Demod >> FileWriter
I read about the RTBW Correction block to be used before exporting IQ values to other tools. Since I use the IQ Demodulator block, do I still need the RTBW Correction block? If so, in front of IQ Demod or after?

Quote from mm_dev on 04/02/2025, 16:54You will have to test on your own wether it is needed or not. It should however only be used directly before exporting values out of the RTSA.
You will have to test on your own wether it is needed or not. It should however only be used directly before exporting values out of the RTSA.