LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

MT PSK demodulation

Hi,

I have been having problems using the modulation toolkit. I am currently working towards creating a system for the USRP to modulate and demodulate packets of information. Based on that code I wanted to create a simulated channel to quantify the effects of noise on the reception.

My current issue is related to the demodulation of the signal (for both the USRP and the simulation). Upon reception of the signal, bits are lost and the output appears to be garbage (verses truncation). The amount of bits lost is not constant and depends on the sent string.

 

If anyone has any ideas what's wrong would be great.

 

Cheers,

 

Sam

0 Kudos
Message 1 of 15
(5,001 Views)

Hi Sam!

 

I apologize, I haven't looked through your code in detail yet. Before I do, I wanted to mention that there are shipping examples created in LabVIEW's Example Finder (Help>>Find Examples) that go through how to simulate modulation and demodulation of information. The one I specifically found was:

 

"MT PSK Transceiver (One Shot).vi" found under the folder "Toolkits and Modules>>Modulation>>Simulation" in Example Finder. If you are using a version of LabVIEW other than 2012, the example may have a slightly different name.

 

Please take a look at that and see if you can find the major differences that will help. In the meantime, I will look at your code as well.

 

Have a great day!

Peter E
Applications Engineer
National Instruments
0 Kudos
Message 2 of 15
(4,946 Views)

Hi Peter,

 

It does seem I have missed that example 😕 Looking at the example it seems there is a difference in the transmitter side in generating the bits to send. Namely in the mod_PSK transmitter vi there are guard bits at the front of the message and the use of the generate synchronization parameters vi. As this code will eventually be used for USRPs, the entire sequence at the receive side won't be known so I have instead opted to use a small PN header to indicate the start of the packet. The receive side, where I thought the problem is, does seem similar, just using the PSK demodulator vi. The length of transmitted bits is correct for Tx side (message + header length)*log2(M-PSK)*(samples/symbol) but some bits go missing on the output of the psk demodulation vi.

 

Cheers for the help, my head is getting sore from banging it on the desk. 😄

 

Sam

 

Pre-post edit: after checking the transceiver example bits go missing in the demodulation stage as well. I am now thoroughly confused.

0 Kudos
Message 3 of 15
(4,942 Views)

Hi Sam!

 

I apologize for the slight delay in getting back to you. During demodulation, fractional resampling is performed at various stages, hence we tend to lose bits. The example I gave to you is best suited for EVM measurements of your channel. If you want to recover the full sequence of bits after demodulation, the best way to do this would be to add bits to the end of the data  (simply "zeroes") for a little extra padding.

You can also use the VI "MT Detect PSK.vi" which is located in the functions palette under "RF Communications>>Modulation>>Digital>>Demodulation>>Bit Recovery". This VI will return the wanted message bits in this example we looked at.

 

Have a great day!

Peter E
Applications Engineer
National Instruments
0 Kudos
Message 4 of 15
(4,914 Views)

Hi Peter,

 

Cheers for the response. What you said was half of my problem. The other half, as I discovered earlier today, is from the use of the synchronization parameters. To align my constellation in reception I sent a PN sequence as the packet header. however when the synchronization parameter is used in the demodulation block, up to 95% of my bits are lost, the information left is valid packets, but 60% of my transmitted packets are lost. I'm not sure how to solve this problem and any insight would be much appreciated.

 

Cheers,

 

Sam

0 Kudos
Message 5 of 15
(4,896 Views)

Turns out I had forgotten a reset on first call in the demodulator.
(I can't figure out how to edit posts)

0 Kudos
Message 6 of 15
(4,887 Views)

After resetting on the first call, is everything working properly for you now?

 

This forum system does not let you edit posts after about 10 minutes, so that is why you can't find that option Smiley Happy

 

Have a great day!

 

 

Peter E
Applications Engineer
National Instruments
0 Kudos
Message 7 of 15
(4,872 Views)

Yep, solved. Always the little things that cause the biggest problems. (Earlier in the week I had made the mistake of using 2^x in an expression node vs pow(2,x). I spent all day finding that bug.)

0 Kudos
Message 8 of 15
(4,865 Views)

I am working on PSK transmission and reception and found that the output message bits and the input message bits do not match and the output message bits are truncated. Please can you help me to resolve this. How did you add the synchronization bits and the padding bits to the message sequence. Please can you share your VI as I am also facing the same problem and can rectify my mistakes.

 

Thank You.

0 Kudos
Message 9 of 15
(2,703 Views)

Its been more than 7 years, but I still have the code, presentation, and report from that project. A disclaimer that the code was probably not very good, and I won't be able to answer any questions on it, as this project was the last time I touched LabVIEW. I hope the attached files help.

Message 10 of 15
(2,639 Views)