While trying to do some analysis of narrow band signals it became obvious the current design of the spectrum analyzer has two limitations.Below picture shows both of them.
The signal to analyze is at 575kHz. The resolution filter is clearly too wide, about 30kHz at -3dB, and the staircase patter shows scanning is done in 10kHz steps caused by the minimum frequency steps of the first mixer LO, a ADF4351. Making very narrow RBW filters is a considerable effort and an FFT could be an alternative.So it was time to go test if a mixed mode SA can work. At high spans the SA works with the log detector but as soon as the minimum frequency step is below 10kHz the log detector is no longer used. Instead a third mixer is used to convert to an IF of 50kHz. This is fed into the PC line-in of a good audio card at 192kHz sampling rate and analyzed using a 1024 point FFT. As the usable buckets of the FFT are limited due to the RBW, now acting as the 3 IF filter, multiple FFT's, spaced 10kHz apart, are stitched together. The FFT bucket width is about 100Hz, About 300 times better compared to the RBW filter used above,The result is a nice sharp signal due to the flattop window function applied. The scan is 1000 points wide. Measurement speed is considerably faster as instead of 1000 steps the ADF4351 has to step only 10 times. It takes about twice the time for the audio samples to be collected compared to the stabilization of the log detector so in total still 50 times faster
There are still many thing to improve or test such as:- The dynamic range of the audio input should be in the order of 110dB (24 bit audio card). This needs to be validated together with the behavior of the third mixer- The frequency calibration and peak labeling needs to be improved for this much higher resolution.- The noise floor shows a repetitive pattern so something is still wrong in the signal path- Instead of averaging or duplication of FFT buckets to match the required resolution a better approach is probably to have an adaptive FFT length. A 10k FFT will result in 10Hz RBW resolution (and run 10 times slower) and a 128 bin FFT (for 1kHz resolution) will be much fasterSo many things to try!
During measurements there may be certain spurs that do not have an obvious cause. Are they caused by limitations of the SA? Or are they present in the input signal?An example is this two tone measurement of the input IIP3 of a mixer
The many spurs below -70dB are cause by bad shielding of the two signal generators. Without these connected the noise at about -100dB is without spursThe SA automatically finds the peaks and calculates the input IP3 in two independent ways, the results should be equal but there is some difference.Left IIP3 is calculatec at +9dB where right IIP3 is calculated at +7.7dBBut can we be sure the IIP3 of the mixer is indeed around +8dB?The simplest way to know is the add attenuation before and after the mixer.Attenuation after the mixer did not change anything (as it should) but -10dB attenuation before the mixer resulted in a very different picture.The measured levels are increase by the level of attenuation to keep the displayed levels equal so the noise floor moves up about 10dB
The results (15dB improvement of IIP3) is not entirely what was expected as every dB reduction of the input signal level should increase the IIP3 with one dB.There is still more to investigate and learn.
Now most of the modules are in, I combined everything into the complete signal chain..
The +10dB after the ADL5801 should not be needed but the conversion gain of the ADL5801 is -8dB i.s.o +0.8dB. I still don't understand why. The Arduino Zero controls the ADF4351's and the 12bit ADC measures the output of the AD8307 which gives a 120dB range and 0.05dB resolutionThe settings are (speed is actually in 0.1ms units):
The noise level, 1dB CP and IIP3 performance of the whole chain has been verified by doing the performance measurement including two tone IP3 performance of each stage starting with the last stage and working towards the inputThe SW allows any mixer to have any role and all frequencies of all filters can be changed. Unused LO's can be used as signal generators or tracking generator. Even after building the total chain it is stil possible to sweep each filterScanning 0 till 1Ghz without input signal gives
The many spurs around 100MHz are from the ADF4351 as it runs with R=10 from a 25MHz reference.Spur performance of the black ADF4351 eBay module is not acceptable. I still need to investigate the loop filter and improve supply decouplingThe 433MHz spur is not yet explained. At some point I had a terrible spur at 42.2MHz. After some testing I found it to be caused the keyboard of the PC. Shifting the keyboard to the other side of the bench did remove the spur.The signal around 950MHz is leakage from the mobile base station close to where I live.The absolute signal level is calibrated using a calibrated generator (which was checked using a scope with a 50 ohm input) up till 12MHz but I still need to check the sensitivity at higher frequencies. Scanning again 0-1GHz after connecting a 20cm antenna to the input of the SA gives:
Below 250MHz its AM, FM, DAB and some analog TV broadcast. around 550MHz, 800MHz and 950MHz there are mobile base stations and digital broadcast signals.Connecting two old analog signal generators with a passive -20dB combiner to the low-pass filter gives the two-tone test
Do I read this correct as an IIP3 of around +10dBm? At least changing the signal strength of one or both signals always results in the IIP3 of around +10dBm and that would be consistent with the performance of the weakest part in the chain, the ADE-25MH.With the current spur performance of the ADF4351 the active mixers seem to be the best choice, they have more noise but their LO rejection is better so unwanted mixing with the LO spurs (specially with R=1) will not obscures the measurement.I see the following next steps:- Investigate why the ADL5801 has so little output, solving this allows me to remove the +10dB amplifier and will motivate me to buy another ADL5801 module to replace the ADE-25MH- Solving the spur problem of the ADF4351 will allow me to use passive mixers everywhere, I have mixers with an IIP3 at +13dBm, less then the active mixers but with much better noise performance so in total more spur free dynamic range. I ordered a green ADF4351 eBay module that uses a 10MHz reference with possibly a better layout around the loop filter- Find the cause of the 433MHz spur. - The 15kHz RBW filter as seen in the two-tone test has way too much BW below -50dB. The phase noise of the ADF4351 is much better (was verified using two ADF4351 modules 5kHz apart and a mixer to produce audio into an audio spectrum analyzer) I probably need to improve shielding