USRP Software Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

O-QPSK demodulation issue with modulation toolkit 15

Hello,

 

I am experiencing a problem with the modulation toolkit 15 with LV2015. I am new to this forum and I will try to explain what I discovered so far and I hope that you can give me sugggestions. I am working on an 802.15.4 receiver using USRP and modulation toolkit. I started working with labview 2013 and I managed to receive, demodulate and decode successfully some messages. Later I had to move my project to another machine with a freshly installed LV2015 and I discovered that the very same code was not working at all. After some digging in the MT libraies I noticed that the vi "MT Demodulate Offset PSK" in the two versions (2013 and 2015) is different. As first, in the new release the execution is set up as non-reentrant (which seems to be odd). Moreover I took a look to the two block diagrams and I noticed some differences. In the 2015 version they changed some blocks (deleted notes D and E). Those changes produce the generation of sone NaN values which currupts the demodulation process with the result that the messages are not well decoded anymore.

The simplified sequence that I perform is 

 

Get samples from usrp -> resample at the desired rate -> feed the demodulation block 

 

Do you have information if this is a known issue for the modulation toolkit or if, due to those changes, the new library has to be used differently?

I don't know if it is necessary to use another block between the resampling and the demodulation in order to avoid the NaN issue.

Thank you in advance

 

Best Regards 

0 Kudos
Message 1 of 6
(4,319 Views)

Hi NightEagle,

 

Would it be possible for you to post the VI of interest on the forums here for us to take a look at it? Upgrading LabVIEW versions shouldn't change the functionality of an addon like Modulation Toolkit, however, there are multiple versions of Modulation Toolkit which will have differences between them. What versions of NI-USRP and Modulation Toolkit are using? Did you upgrade these drivers when making the switch from LabVIEW 2013 to 2015?

 

The only known issue I was able to find in relation to MT Demodulate PSK with Offset is from Modulation Toolkit version 4.4 and it has to do with getting poor BER readings. It is listed as 255784 in the following document.

http://www.ni.com/product-documentation/52249/en/

 

-Cooking_Up_Code

 

Paul C
0 Kudos
Message 2 of 6
(4,294 Views)

Hi Paul,

 

thank you for your reply. I will start answering to your questions

 

What versions of NI-USRP and Modulation Toolkit are using? 

 

the hardware is NI-USRP 2952R. In the previous configuration I was using LabVIEW 2013 and the modulation toolkit at version 4.3.4. Now it's LabVIEW 2015 and the modulation toolkit is version 15, according to what is stated in the readme file installed on the machine.

 

Did you upgrade these drivers when making the switch from LabVIEW 2013 to 2015?

Actually it was not an upgrade of my usual machine, I had to move to another workstation so everything have been freshly installed to the latest version (LabVIEW, toolkits and device drivers). Anyway I don't thik it is due to the device driver because I have no issues retrieving samples from the USRP. 

 

I also tried to find some references to known issues for modulation toolkit but I wasn't able to find any, regarding this kind of problem. Anyway I am attaching the block diagram images for the two different versions and the way I use it in my code.

I noticed some changes between the two versions, but there is one that make me think mostly to an issue. The vi execution is set as "non-reentrant execution". I am not very exeperienced with labview yet but, to the best of my knowledge, such kind of VIs should be set up as "preallocated clone reentrant execution". Please correct me if I'm wrong. I realize this can't be the reason of the issue I am experiencing, and that's why I am wondering if maybe the library is ok and I'm not using it properly for the way it wans designed in this new release. 

 

Best

 

NightEagle

 

0 Kudos
Message 3 of 6
(4,283 Views)

I am also using Modulation Toolkit version 2015 and my MT Offset QPSK Mod-Demod.vi is a little different than yours. It looks like yours is still using the earlier version's functions, just updated into 2015. Try using the attached the VI, which is the unmodified shipping example from Modulation Toolkit 2015 and let us know if you are getting your expected results. If you don't want to download this, you can navigate to it on your computer at the following directory.

 

C:\Program Files (x86)\National Instruments\LabVIEW 2015\examples\Modulation\simulation examples\Programming

Paul C
0 Kudos
Message 4 of 6
(4,235 Views)

Hi Paul,

 

Thank you for your help. I have seen the example that you pointed out and it does not seems to be changed from previous version, anyway unfortunatelly I can't use it. The communication chain used in that case is feasible for simulation purposes, but I am not sure it could be used in a real communication case. If you consider examples for USRP and modulation toolkit, for instance 

C:\Program Files (x86)\National Instruments\LabVIEW 2015\examples\instr\niUSRP\ModulationToolkitExamples\niUSRP EX PSK Rx.vi

you can see that they use the block "MT Demodulate PSK". All USRP examples I worked with use these kind of blocks. I checked and the simulation example that you mentioned contains some of the blocks included in a demodulation block, but a demodulation block is more complex, which should lead to a more robust demodulation in real communications.

 

Since you are using version 15 as well, could you please check the execution configuration of the file 

C:\Program Files (x86)\National Instruments\LabVIEW 2015\vi.lib\addons\Modulation\Digital\Demodulation\MT Demodulate Offset PSK.vi

in your computer?

In mine  it is set as "Non-reentrant execution" and according to previous version I suppose it should be "preallocated clone reentrant execution". It is just to check if it is a problem of the version I installed. Could you please also check if it lloks like the one I uploaded in my previous message?

 

I did some more tests and I am not sure where exactly is the problem in the MT 2015 but, if it can help, from the tests I did this is what I got so far:

 

- The O-QPSK demodulation block generates some times a value NaN somewhere. Not all messages are affected by this issue because sometime I am able to demodulate and decode properly a message.

- I captured a sampled signal with the USRP and stored on disk to run the tests with the exact same sequence. Running the same application with modulation toolkit 4.3.4 decodes properly 26 packets whereas with modulation toolkit 2015 the number falls to 12.

 

To my knowledge modulation toolkit version is the only thing that changes between the two tests.

Thanks again for your help,

 

NightEagle

 

 

0 Kudos
Message 5 of 6
(4,221 Views)

Hi NightEagle,

 

My VI is also set to Non-reentrant execution, so I don't believe this should be part of the issue. You can use highlight execution to find exactly where the NaN values may be originating from in LabVIEW, though this may be very time consuming if the issue is intermittent, as the functionality slows down LabVIEW execution. If the simulated OPSK Demodulation example works for you, then try copying those functions over into your VI to see if you get expected behavior with actual signals. There was likely some low-level changes in these functions that is not public facing, so starting with a 2015 example will be your best bet.

Paul C
0 Kudos
Message 6 of 6
(4,161 Views)