From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Modulation Toolkit: How to make a custom OQPSK symbol map/gray coding?

I'm working on an Ettus Software Defined Radio with LabVIEW 2014 and the Modulation Toolkit on Windows 7 and am struggling to understand how to create a custom symbol map correctly for OQPSK demodulation. I want to define the gray coding that maps the meaning of the symbols back to their bits.

 

The Modulation Toolkit has an example which I have modified and attached in an attempt to map my bits. The actual mapping relative to the picture I have attached should be (in most significant bit order):

Picture bits -> My intended bits

11 -> 11 (+I/+Q)

01 -> 10 (-I/+Q)

00 -> 00 (+I/-Q)

10 -> 01 (-I/-Q)

 

I believe I have correctly done my symbol map but am not getting bits in my tests yet and think that it likely has to do with a lack of understanding of the symbol map concept in LabVIEW.

 

There also seemed to be some inconsistencies that I couldn't understand. The help page for the VI attached shows an example symbol map where

+I/+Q = 0

-I/+Q = 1

+I/-Q = 2

-I/-Q = 3

 

But looking at the standard gray coding symbol map indicator values shows an ordering more like when I run the VI to produce its standard output.

+I/-Q = 0

-I/-Q = 1

-I/+Q = 2

+I/+Q = 3

 

 On a secondary note, part of my lack of ability to pull bits may be from a lack of understanding of the way the niUSRP EX PSK Rx.vi works. It says that it turns out bits from each symbol in LSB. My radio is sending bits in MSB so I figure to correct for this I will swap the bits in each symbol. So for a bit array I will want to do bits[1] + bits[0] + bits[3] + bits[2] + bits[5] + bits[4] + bits[7] + bits[6] to get my byte corrected in MSB ordering. Any ideas there on the validity of this thinking?

0 Kudos
Message 1 of 2
(3,413 Views)

How are you testing your TX signal?

 

I would take the USRP completely out of the equation and do everything in software first. Build your TX system and then take the output of that and input it into the RX part of the code.

 

Another tool you can use to help troubleshoot are the RF Visualization Probes. You will have to put the download into your Probes folder: (https://decibel.ni.com/content/people/Yardov/blog/2014/07/10/download-rf-custom-labview-probes)

 

As far as testing the MSB or LSB, try generating a distinct pattern (011 for example) so you can determine what order you need to write you bits or if you need to transpose the array when you receive it. The order of the bits really depends on how you are building your array of data.

 

Noah D. || Applications Engineer  || National Instruments 

Noah | Applications Engineer | National Instruments
0 Kudos
Message 2 of 2
(3,372 Views)