LabVIEW Communications System Design Suite

cancel
Showing results for 
Search instead for 
Did you mean: 

AM communication between NI2900 USRPs

Hello everybody, I am a student from Italy and I was assigned with a simple task as part of my exam, that is to set up an AM communication between 2 USRP-2900.

Nothing fancy, but I am having some problems. The goal is to transmit a message tone over the two USRPs.

I used the Hardware I/O>>>NI USRP Host>>>Single Device>>>Single Channel>>>Continuous>>>Tx and Rx Continuous Async example for the backbone of my project, in particular for setting the hardware up.

It is my understanding that the USRP hardware takes care of converting the base band signal, so I avoided multiplying my message with a carrier tone. For this reason, on the TX side, I simply added a "MT Modulate AM (DSB)" block, and in the "niUSRP Write Tx Data" block I selected CDB Cluster as the type of the input. The modulated output is fed directly into the Write Tx Data. 

As for the RX side, I used a "MT Demodulate AM (DSB)" block and tweaked the "niUSRP Fetch Rx Data" so that it yields a CDB Cluster output, required for the input of the demodulation block.

 

The problem is with the received tone signal, whose shape is really distorted. I've run different tests, changing the IQ rate, message and carrier frequency; sometimes the sinusoidal waveform clips very hard in the upper part, some other times half a period is correct, and the other half just looks like noise. I apologize for not having any screenshots to show. Also, the frequency of the message is not stable, in fact its spectrum shows harmonics at frequencies that are a multiple of the message frequency, and sometimes those harmonics have even bigger power than the original frequency (that is, the Dirac deltas at n*(message frequency) in the spectrum are even bigger than the message one).  

 

I've tried:

  • replacing the demodulation block with a simple "Absolute Value" block followed by a "Filter" block
  • replacing the modulation block with a mathlab script that performs the basic steps for AM modulation (sums 1, multiplies with m and converts the result into a complex number so it can be fed to the "niUSRP Write Tx Data" block)
  • replacing the modulation block with blocks that perform the basic steps of AM modulation, same as above 
  • changing the values of message and carrier frequency, IQ rate, number of samples, tone amplitude, modulation
  • using different USRPs, both USRP-2900 and USRP-2901 were used (for a total of 4 different devices tested, 2 at a time, using 2 PCs)

but to no avail. The output waveform is always distorted.

Any kind of input on the matter would be greatly appreciated. I'm including my code in the zip.

Thanks,

Marco.

Download All
0 Kudos
Message 1 of 1
(2,943 Views)