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?