Sinisa,
I've started working on code to do the SA function properly. I'm still doing the requirements analysis and don't expect to start writing code for several weeks. There are many nuances to getting this right. I have a long standing rule: I never write code until I've run out of excuses for not writing it.
This morning I was examining heterodyning a narrow span and doing the FFT on the lower sideband. In an FPGA heterodyning is basically a single multiplier and and a sine table in block RAM. I'm sure there is some stuff I've overlooked, but that's not a lot of resources and it allows downsampling by summing samples to increase the dynamic range. So probably 2 DSP and 2 RAM blocks in a Zynq. If you want to look at a filter response over a 500 kHz BW with 10 Hz RBW it's a 100 kSa FFT on data sampled at 1 Msa/s. If the ADC is sampling at 1 GSa/s there is 60 dB increase in dynamic range over the 42 dB range of the 8 bit data coming out of the ADC. So now we have a 102 dB dynamic range. The screen can't be updated faster than 60 fps or so. As a consequence there is loads of time to do the processing.
This is not particularly difficult and does not require changing the data acquisition. The UI needs to be sensible, frequency & span, RBW, VBW, etc. Not the "center frequency, Hz/div and very limited selection of sample length imposed by current DSOs which provide no meaningful control over the FFT.
It just has to be done properly. Relative to the code for a 10 TB input imaging job that takes 20,000 cores 7-10 days to complete it's very easy. A code for that is 1-2 years work full time by a top rate scientist/programmer. A first rate SA app for a DSO is a few weeks work at most to do the numerical stuff. I don't do UIs.
Have Fun!
Reg
Reg,
thanks for discussion.
FFT crunching alone is not a problem. Feeding it, is, and also showing results.
A/D feeding display engine is 5GB/s datapump. Scope deals with it in realtime. Sure there are pauses in there, but even with those, a lot of data gets moved around.
And also,
there is a problem of display. That would need combining FFT results, math results, decode results, measurement results.. Each by itself not a problem, but combining and orchestrating them gets complicated too.
And FFT can use data from normal acquisitions. Sometimes. This is how it works now. Problem is that sample memory length/timebase/sampling ratios are governed by scope settings for time domain. So somewhere in the middle of timebase range, where we are still operating at full sample speed, but already have long memory depth, we can use scope's capture. In that case we have data that can be decimated, downsampled etc. And there is enough of it to have your bins nicely filled to length you need.
But what to do when I'm looking at signal at slow timebase (that scope is sampling at 100 Mpoints/s) , and would like to use FFT to see if some spikes I see in there are 868 MHz bursts from telemetry receiver... That would need me to have scope sampling at 2GS/s or more at the same time it samples for my time domain display at 100 MS/s.
Answer is to either have separate A/D converter (Tek MDO series), have A/D always sample at full speed and decimate and distribute data to separate and parallel datapaths, or have scope always have time domain priority (and have FFT have whatever data is available, useful or not), or have scope have FFT priority, and start changing sampling to always cater to FFT needs and not show time domain data if not available.
First two options are expensive. As for second two options, since we are not talking about SA with auxiliary time domain display, but about scopes with auxiliary FFT (frequency domain display), those scopes prioritize sampling to cater to scopes time domain needs primarily and FFT gets what it does. Simple as that.
Do i think that option with having paralel datapaths for scope and FFT is possible? Absolutely, in Zynq definitely. But it is not a classic architecture, and would need to be developed.
Funny thing, Rigol's new chipset is used in both their new scopes and SAs, and it possibly could be used to make mixed signal scope that would be able to do what are you talking here...
Take care