In PNA-X SA setup,there is a "Number of LOs"parameter.It changes when I change span or image reject selection but I don't know what algorithm or function it uses to calculate the number and determine LO frequency.Dose anybody know about it,please tell me something about it.And I'm also confused by the "FFT resolution".It seems like the resolution after zero padding,but zero padding will change amplitude and shape of RF signal.How dose the system eliminate those side-effects?Thank you very much.
The algorithm is complicated and depends on many factors, but it is approximately this: Freq Span *N/68MHz. N is the number of images used for image rejection. Normal is 4, Min is 2; better is 6, maximum is 8. It simply tells you the number of FFT acquisitions that will be done. It sometimes changes slightly depending upon whether we have one or more band crossings in the span (we sometimes have to take extra FFTs at the band edges). Sometimes we need one more LO than expected because while the FFT width is 68 MHz (-34 to +34), then IF has a "DC hole"; that is the IF is AC coupled from the mixer so from -1MHz to +1MHz we have a rolloff region so we exclude that data. If in some part of the span that data is needed, we have to take an extra LO, so sometimes we add 1. And we randomly vary the LO on each acquisition to avoid pathologically bad signals from fooling us.
The FFT resolution is essentially 100 MHz/2^n where 2^n sets the FFT size. This is the size of the data-bin. The total number of FFT bins is the span divided by the FFT resolution. But the display buckets (a bucket is generally, but not always, greater than a bin) is set by the number of points parameter. When in peak detection mode, we look for the largest value in the FFT bins the comprise the bucket. Example: Span 1 GHz, points 1001; display bucket size 1MHz; If you set a 1kHz RBW, we need 198602 samples for the Gaussian filters (almost 2 times the expected rate of 100K samples for a 100 Msample ADC). But the DFT for 2^n requires 2621444 so we zero pad before and after (turns out zero padding is much faster than doing non 2^n fft). In this case, since the Gaussian filter goes to zero at the start and the end, adding zero padding has NO effect on the results (we get the exact same value as if we did an FFT with 198602 samples). In the case above, the FFT resolution is about 381 Hz, even though the RBW is 1kHz. This means we get almost 3 bins overlap in the data results for each 1 kHz wide acquisition (that is the RBW filter resolution is larger than the FFT resolution). each bucket is 1 Mhz wide, so we have 1MHz/381=2621 FFT bins in each bucket. The peak detector finds the largest peak in the bins, but interestingly we don't report that exact value. Instead we also get the nearest neighbor buckets so we have 3 points near the peak. We know these must fit to a Gaussian curve, so we use that information to compute the peak value would have been if the signal fell exactly in center of an FFT bins. Without this, if a signal fell exactly between 2 FFT bins The peak value of each would be the same, but off by perhaps 0.3 dB (depends on the FFT bin to RBW overlap). With our precision peak detection we know not only the true value of the signal, but also the exact frequency. So when we return data to the display, that display bucket is marked with both the true-peak value, and the true-peak frequency. In this way our marker readout shows the frequency with a resolution less than 1% of the FFT bin (where normally that would be the best resolution you would see). Clever, eh? (#define MODESTYMODE off)... So, you can see its complicated to get perfect answers, but that's what we strive for.