Thinking aloud:
Supposing we only wanted to present say 10 cycles, and say the waveform was at 200KHz, and say we were sampling at 2MHz, we'd need 100 samples in total, times 16 bits, that's like 200 bytes of data to transfer and analyze.
MHz?! I was thinking audio, 20kHz max...
100 samples isn't much to get a good idea on the noise and harmonics of a signal. I'd like to see at least as many samples as 2^ENOB of desired accuracy (or ENOB/2, not sure exactly). May still be enough to get an idea though.
But...
I do not need to check for distortion in real time - it could be seconds after the event and I only need to check say once every so often. Currently using an LM567 which is in real time.
If you only need to check a signal's average level, and by "signal" I mean a very particular frequency (namely, a harmonic of another also very particular fundamental frequency), then you can do even better:
You can do equivalent time sampling, at a rate determined by the desired accuracy (you're getting a statistical sampling here), any fluctuations in frequency (in other words, the bandwidth of that signal), and the desired refresh rate.
If you need a refresh rate of two seconds, an accuracy of 16 bits, and narrow bandwidth, then for a 12 bit ADC, you need 256 samples averaged for 16 ENOB, and so the minimum sample rate is 128 Sps. The maximum bandwidth will be 64Hz then. The samples need to be synchronized to whatever the source signal frequency is, and you can use a DDS to generate the sin/cos terms to correlate the samples against (thus generating a single-bin FT).
Can we go back to the FPGA you mentioned a while ago? Is that something easy to use? Is an FPGA some sort of glorified MCU with much more RAM (capabilities) and I/O ports and ADCs and DACs and so on? And you can program it and upload code to it and debug and so on?
FPGAs are discrete logic, integrated in programmable-chip form. The programming is usually fixed (i.e., you configure the general "fabric" to be a particular digital logic circuit), and any additional configuration you want, has to be accommodated by implementing muxes and registers and such -- just as you'd draw up a discrete digital logic circuit to do it. (Dynamic (on-the-fly) reconfiguration can be done, but I don't think there are any simple tools to do it. I've only seen research projects about it.)
FPGAs are not, in general, MCUs. They are much more general than that. However, you can implement simple state machines that execute a complex but limited series of operations, much faster than an MCU can do it; or you can put together a few more state machines, and synthesize a full-on MCU as such (for example, 8051 cores are freely available).
Higher end devices (SoCs) have a variety of hardware already built on chip, including MCUs, communication PHYs, MACs, etc.
Most include useful pin and clock functions, like PLLs, pin drive strength settings (including controllable pull-ups/downs, tristate and such), priority routing for global clocks, block RAM, etc.
Tim