LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

How do I transmit a single bit using a PXI-5650?

Hi there,

 

I am trying to write a program that uses FSK modulation to transmit a stream of bits. However, I need the mark and space frequencies to be different. Also, I need the program to stop transmitting once it has transmitted all the bits.

 

Basically, the program should do the following:

 

for (number of bits){

   get bit

   choose frequency deviation //based on whether bit ==0 || bit ==1

   configure generation

   transmit bit

}

 

There is an example program called 565xDigitalModulation that does something similar. It generates a signal based on parameters you give it (frequency deviation; power level; symbol rate; etc.) and it generates a continuous waveform (PRBS or user defined). The problem is that it repeats the input waveform until you hit the stop button.

 

Is there an NI function to transmit just a single bit and then stop? Are there lower-level functions I could use to build my own waveform? I thought of building a wait function and doing something along the lines of this:

for (number of bits){

   get bit

   choose frequency deviation //based on whether bit ==0 || bit ==1

   configure generation

   niRFSG_Initiate

   wait(n) //where n is the number of seconds it takes to transmit a bit (1/symbol_rate);

   niRFSG_Abort

}

However, from what I've read, wait functions aren't very reliable if you're measuring microseconds.

 

Any ideas?

 

FYI, I am running LabWindows/CVI 8.5.0 and NI-RFSG 1.7 on Windows XP and using a NI PXI 5650.

 

Thanks in advance!

0 Kudos
Message 1 of 2
(2,933 Views)

For future reference, these questions are likely better addressed in the forums associated with the hardware itself. (for example, the 5650 could go in the RF Measurement Devices forum: http://forums.ni.com/t5/RF-Measurement-Devices/bd-p/290). 

 

The main issue that you're coming across is that the PXI-5650 itself is a continuous-wave RF Signal Generator. It isn't really made for doing finite, burst, or arbitrary signal generation (with or without modulation). The 5650 is largely used for generating continuously modulated waveforms, reference clock sources, or other continuous signals for use in RF hardware and applications. For finite generations, you would want to look in to hardware such as Arbitrary Function Generators, or RF Vector Signal Generators. The 5650 is made to do a continuous generation like you're seeing there, so if you needed to generate small chunks of data at a time, one of the ways to try and get around that would be to alter the waveform you're generating to buffer with null values such that it will generate the given pattern of bits and then generate all zeros such that it could do this continually and inherently 'simulate' some downtime from the 5650.

The main issue with trying to use a wait function is that this is going to be a software timed and controlled function call. The actual timing will vary depending on how long the generation takes, how long it takes Windows to process it, and the time it takes the hardware to respond to the software calls. This isn't really a good way for starting and stopping the acquisition, though if you do have some flexible timing requirements, initiating and then stopping the RFSG task could be a way to get around what you're looking to do, though as I noted, the timing resolution and consistency won't be great.

 

Let me know if you have any follow up questions in regards to the PXI-5650.

Timothy S.
Senior Technical Support Engineer
0 Kudos
Message 2 of 2
(2,917 Views)