LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

RFSG Peak vs Average Power

I'm using a PXIe-5673E to generate multitone signals, and am currently adding the ability to pulse the output using script generation in RFSG.

 

The problem is that when the 5673 is set to script, the power level type needs to be set to peak power. Everything in this application has been done so far using average power, so I can't simply switch it now. I have to calculate the equivalent peak power when creating a pulsed output.

 

I've used the examples RFSG Multitone - Arbitrary Spacing.vi and RFSG Pulsed Data.vi to do this, so I'm dealing with I-Q arrays and the power level calculated inside of rfsg_Complex Multitone II.vi.

 

I've tried the calculation in the RFSG help manual under power level type, but it's always giving me 0. I've also tried the calculation on this page but it seems to be giving me a value that's too high. With a tone power of -40 dBm, it's returning -27 dBm. I'm looking at the output on a scope, and I'd assume the peak voltage level should be the same with or without pulsing the output.

 

What am I missing? Any help would be greatly appreciated.

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

Hi Marc_A,

 

There are several differences between peak power and average power, I think it's worth addressing several of them here.  To summarize the notes below, you'll likely just need to divide your I/Q data by sqrt(2).  I've added a couple of other notes about switching from average power to peak power that may be helpful but are only applicable in specific cases.

 

The help documentation is very confusing on this; it required a fair amount of time to pull this information out.  When in average power mode, the I/Q data is scaled from -1 to 1, while in peak power mode, the peak power is scaled from -1 to 1.  Peak power is given by sqrt(I^2+Q^2), meaning that if your I/Q data is scaled from -1 to 1, your peak peak power will be scaled from 0 to sqrt(2).  To compensate, you'll need to divide your I/Q data by sqrt(2); I've attached a VI that does both peak and average power for arbitrary waveforms.  This VI isn't built on script mode, but it should show how to manipulate your I/Q data to compensate for peak mode.

 

One thing to be wary of with average power vs. peak power; when in average power mode, the driver will scale I/Q data from whatever range it is in to the -1 to 1 range.  For example, in average power mode, if my I/Q data is scaled from -1 to 1 and I set the power level to be -20 dBm, my signal's maximum output will be -20 dBm.  Also, if my I/Q data is in the -0.5 to 0.5 range and the power level to be -20 dBm, the driver will still assume we want a maximum power of -20 dBm and scale my I/Q data by a factor of 2; I will still see -20 dBm as my output.  Average power always sets your signal to the power level requested and scales the I/Q data to match.

 

This is not the case with the peak power case.  With peak power, the driver does not scale the peak power to -1 to 1 for you, it instead leaves it the way it is.  If you're coming from the average power case, this problem can manifest itself in three ways:

 

  1. Lower than expected power levels.  If your I/Q data is scaled from -0.5 to 0.5 and specify a power level of -20 dBm, you'll get a lower than expected power level, around 6 dB lower.
  2. Error being thrown if the highest magnitude of your I/Q data is greater than 1.  If we forget to divide by sqrt(2), this will likely occur.  Average power mode will allow you to specify any range you want (even -100 to 100), but peak power will not allow you to select anything greater than a peak power of 1.
  3. Unexpected power levels if using multiple waveforms.  In average power mode, if the waveforms have different ranges, the driver will match them all to the specified power level.  Therefore, in average power mode, all of our waveforms will have the same power level unless we change the power setting as well.  However, in peak power mode, if the waveforms have different ranges, they will be different power levels since the driver does not scale to the -1 to 1 range.

 

To summarize: as long as your I/Q data is scaled from -1 to 1, all you need to do is divide it all by sqrt(2).  The last 3 notes are caveats only if your data wasn’t scaled from -1 to 1 originally.

 

Thanks,

 

David Bell

National Instruments

Applications Engineer

Message 2 of 6
(4,023 Views)

Thank you, you explained that better than any help documentation I've found. However, after dividing by sqrt(2), the output is too low, as you noted it would be if the I-Q data isn't scaled from -1 to 1 which rfsg_Complex Multitone II.vi does not do.

 

I first scaled the I-Q data by dividing both arrays by the maximum value of sqrt(I^2 + Q^2), this gives a maximum of 1, but doesn't fully scale the data between -1 and 1. I'm getting closer, but the output still isn't matching up.

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

Doing some more testing, I've found that if I only create a single tone, simply dividing the I-Q arrays by the maximum magnitude for peak power works perfectly. I get the same output level whether I use average power or create a pulse with peak power and scale the I-Q to 1. I don't need to divide by sqrt(2), either.

 

Once I add any more tones, the pulsed output using peak power is always lower. I suspect this has something to do with the fact that the Q array has all zeros with a single tone, but some other values that dip below zero when a multitone waveform is used.

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

I found the software scaling factor property, which does what I need to do, but if I set it to 1/(max magnitude of IQ arrays),  it gives the same output as if I do the scaling myself, and it's still too low when using multiple tones. It's 3 dB lower with 2 tones, and 4.5 dB lower with 3 tones.

 

I don't know where to go from here, I just want to bump the thread with my latest findings in the hope somoene has done something like this before.

0 Kudos
Message 5 of 6
(3,935 Views)

Hi Marc_A, 

 

Your original question was already answered, but your scaling output tests brought up an interesting issue that I encountered as well. I believe you can understand the issue as the I/Q data when you understand it as being scaled by a DAC's voltage output. I will explain why you see different power outputs than what you expected for each tone when outputting one, two, and three tones. 

 

  1. One Tone - If you have a CW at a single frequency, then the I/Q data sums to one and the power of the RF output is equivalent to your peak power. 
  2. Two Tone - The I/Q data for each tone can only take 0.5 of the DAC's output. This actually results in a 20log(2) dB = 6 dB decrease in the power per signal. You expected the power to be divided between the two signals, but the voltage is divided. That is why you see a 20log(2) dB - 10log(2) dB = 3 dB greater decrease than expected. 
  3. Three Tone - This is the same deal. A decrease of voltage by a factor of 3 results in a 20log(3) dB = 9.54 dB decrease. That is why you see a 20log(3) dB - 10log(3) dB = 4.77 dB greater decrease than expected. 

If you normalize your I/Q data data, you can set RFSG's Peak Power Adjustment property to the dB value of that voltage change. 

 

Best, 

 

David

Message 6 of 6
(2,625 Views)