........................
Hi.
It is nice to see when someone tries to understand and learn.
Let me first "kind of answer" the original question: MSO5000 (like many new-ish scopes) does FFT partially in FPGA (it crunches some preliminary data) and then data is fed to application processor (CPU) that in a role of DSP does final calculations and scaling. Where the actual partitioning lies depends from scope to scope.
About FFT itself: you perform a FFT over a certain data set (length). You need to capture data first, so that takes time. Then you calculate and display. If you want good frequency resolution (small frequency bin width) you need more (longer data). If you want to go to higher frequency you sample faster, which is again more data for same time period.
So sometimes you will have 1 FFT update per second although hardware accelerated FFT performs calculations in 1 ms. Why? Because you needed to wait 1 second for data to be captured..
That latency has to be accounted for. In this case this latency will dominate screen refresh rate.
How much time it takes depends on time base /sampling rate/FFT length interaction.
Secondly, FFT will be performed over exactly the amount of data it says. So if there is more in scope buffer, it will be ignored by FFT. It should be defined in User manual what it actually does. Some scopes will let you choose where from the buffer it will take data for FFT, so you can show spectrum from different parts of changing signal on screen. Some will simply chose some data from a buffer in a manner prescribed in manual.
There is something called sliding window FFT (sometimes called overlapped FFT). It works on pipeline principle, it has initial latency waiting for ADC sampling until sample is long enough and then performs FFT on that and displays it. Then it discards 1 latest sample and adds 1 new one and then again performs FFT. Latency here is one sample period, and therefore real time. This is used in real-time spectrum analysers. You can discard block of 10 or 100 and add that much new ones too.. That defines time period between spectrum plots..Spectrum waterfall or 3D plot display would be used to display it too..
There are some (higher end) scopes that have this capability. These will provide very fast screen updates but need specialized architectures in hardware to support it. Calculation is not so much a problem (although it needs to be beefy to handle it), but pumping all that data real time in parallel with normal scope functions..
Also I would recommend to read about windowing. It is a practice of "tapering off" beginning and end of sample buffer to account for discontinuity of data at data buffer ends. That is, because, the FFT should be performed on whole periods of repeating signal (starting from 0 and returning to 0 on the end). Since sample fixed periods with ADC, beginning and end of outside world signals will be "chopped off" wherever it pleases, so we need to deal with these untidy ends.
For that we use different shapes (windowing functions) to "cutoff ends" and "taper them from 0 to 0 at the ends". That makes spectrum to be cleaner but they each have different side effects that user should be familiar with.
Hope this helps .
Best,