05-09-2011 11:41 AM
I've successfully acquired complex I16 data using the niRFSA_FetchIQSingleRecordComplexI16 function but after computing the spectral result my amplitudes are ~15dBm too low. I must be scaling the data incorrectly. I'm assuming that the gain and offset values returned in the wfmInfo structure are applied to the real and imaginary values. I'm also assuming that the gain and offset values take the programmed reference level set with the niRFSAConfigureReferenceLevel into account. The gain scaling values do change when select a differect reference level.
Are these assumptions correct? The gain value seems to be off by a factor of 4 (or so).
I'm using the 5663 RFSA hardware configuration. When I use the RFSA SFP the amplitudes are correct.
05-09-2011 12:30 PM
Additional info:
If I call niRFSA_GetScalingCoefficients after getting the data with niRFSA_FetchIQSingleRecordComplexI16, the scaling coefficients are different than the values returned in the wfmInfo structure returned by niRFSA_FetchIQSingleRecordComplexI16. Using the GetScalingCoefficients values result in a signal amplitude that is too high by roughly 5dBm. It seems like neither set of offset and gain values are correct (or I'm using them wrong).
Shouldn't the scaling coefficients returned by these two functions be the same?
05-10-2011 11:46 AM
I would also expect the two functions to return the same scaling info. I don't know why they are different.
I think I can help with the original question, however. I have a VI that I use to scale binary IQ data using the scaling info returned by fetch. I get the same results using the binary fetch VI (and converting) as I do using RFSA's floating-point Read VI. Both methods give me the signal power I expect. Maybe there's a little something missing in the math you are using. I think you'll find the VI clearer than a text explanation.
I'm using a PXIe-5663, and RFSA 2.4.0.
05-10-2011 06:08 PM
gsa,
From what I can tell going through the different functions, for a given acquisition and hardware configuration, those two sets of scaling values should be the same. Different values will be computed based on the acquired values and hardware configuration, so could you explain a bit more about how you are configuring the actual acquisition steps for the 5663? There could be something in the configuration steps that is causing the changes we are seeing. Also, are you trying to use these values to scale the values after they are fetched?
05-11-2011 10:25 AM
Hi Timothy,
05-12-2011 12:18 PM
Gary,
Thank you for the code there for me to work with. This issue has been moved in to a service request, so lets focus on working from that side of things. I'll keep this thread updated once we can get to the root cause of the issue. Thanks.