Signal Generators

cancel
Showing results for 
Search instead for 
Did you mean: 

How to combine multiple IQ waveform arrays into one IQ waveform array for ARB signal generation

I am trying to combine several different IQ waveform data arrays into one IQ data array for generation using a PXI ARB waveform generator.   Each IQ array is a 50Hz PPM signal.  Each array contains IQ data that is offset from eachother by at least 25kHz, each having individual bandwidths below 20kHz.  So there will be a PPM signal at the center freq, a different PPM signal at +/-30 kHz, maybe a third signal at +/-60kHz, etc.  any ideas on how to combine each of these IQ arrays into one, creating a waveform with all signals present?
0 Kudos
Message 1 of 4
(9,288 Views)

Hello,

If I understand your question correctly, you are trying to have a different frequency offset for each IQ Dataset from the center frequency.

If this is the case, to get a different frequency offset for each IQ Data set , perform corresponding frequency translation on the IQ Data Set.To Perform frequency translation, the trick is to multiply the IQ Data by exp(-j*2*pi*f0*t) where f0 is the frequency offset , t is the time vector. Note the mulltiplication here will be dot product. You can perform this multiplication for each dataset by having frequency offsets and then add all the IQ Data.

I am attaching an example in LV 8.2 which will demonstrate this trick. This VI demonstrates generating complex sine tone and performing a frequency offset defined by the user. Displayed spectrum shows frequency translation in frequency domain.

 You can play with frequency shift slider on the front panel and notice how frequency translates.

 

 

 

Kalyanramu Vemishetty
Automated Test Systems Engineer
National Instruments
0 Kudos
Message 2 of 4
(9,278 Views)
Thanks for the example, it is exactly what I am trying to do.  So to combine mutliple Y data arrays to create a single waveform with each offset included, I would simply add the Y values of each array together, sample by sample?
0 Kudos
Message 3 of 4
(9,264 Views)

Yes, You got it.

You just have to add the arrays point by point. LabVIEW's addition is polymorphic in nature. If two arrays are given as input to the addition function in LabVIEW, they get added point by point.

 

Kalyanramu Vemishetty
Automated Test Systems Engineer
National Instruments
0 Kudos
Message 4 of 4
(9,254 Views)