Hello everyone Smile So this project I am working on entails observing the EM emissions of a processor running between 1-32MHz. This is achieved for now by placing a e-field sniffer probe as close as possible to the target processor; basically acting as an electrically small antenna. We've observed the output in a spectrum analyzer (technically just an o-scope with FFT) and can easily see the peaks around the clock frequency of the processor; which is good sign.

I would like to be able to process these signals (note that the actual emmisions are very very very small; so a low noise amplifier will also be needed (this looked like a suitable option for now)); and then I imagine we would route the output of this through an ADC (maybe this?), which would then feed an SPI interface to an FPGA where we would perform the FFT or STFT and then store the frequency data in memory for later software processing.

My question is; what kind of ADC and amplifier will I need? Where might I find such information? Any information or suggestions that you may have would be much appreciated Smile

I would basically like to get the best performance possible; in terms of mitigating noise and usable information within those frequency ranges (preferably around 1-16MHz)
I'd be concerned about getting enough bandwidth out of a plain 'ol ADC, though this is still relatively low frequency so maybe it's not a real issue. I'd be tempted to reach for proper RF demodulation to I/Q samples, but that's probably a poor choice for low frequencies like this because of the complexity of running a whole IF system.

You're pretty vague about requirements, which may inform design more. Does it need to be portable? Is power consumption important? Will you be using the same probe for a final design? Why isn't an oscilloscope a sufficient solution? Is cost important? Probably other questions I'm not coming up with offhand?


Anyway, your choice of amplifier and ADC are pretty clearly delineated by SNR requirements, target frequency range and actual levels coming from your input (whatever that is). Given sufficient characterization of those (hint: come up with those numbers), it should be relatively easy to find parts that will meet your needs and generally optimize for cost. It sounds like your needs may be poorly defined, so it may be that you actually want to decide what a reasonable cost is and select parts that fit that budget.

I don't know RF stuff that well so I went searching for information about how scope frontends are built and found a TI reference design for one that might be informative. This application doesn't need programmable attenuation and only requires low speeds, so most of the fancy bits (attenuators, differential conversion/amplification..) probably aren't necessary here.
I second what tari said. I know this is a project for school or similar from talking to you on sax about this before. However more info is definitely needed to even give realistic advice. Cost is really a good deciding factor. Do you want active noise cancelation from outside sources. Do you want to just rely on shielding of the DUT. Lots of possibilities.
So now that I can produce some solid numbers from measurements; I guess now I am looking for recommendations on the following things:

1. An ultra-low-noise amplifier in the range of 100uV to 80mV, programmable so we can adjust for an ADC.
2. The ADC, with a preferred sampling rate of 10-20ns with a low SNR, and a high bit count. (12 bits seems like it will probably be okay based on our voltage range?)
3. A way to connect said ADC to a computer via ethernet, usb, or some other method for signal processing, before attempting to do it on the FPGA.
4. An FPGA capable of handling this data rate; which would probably need to operate at least 100MHz. Ideally the external ADC could be connected to it, preferably also on a Xilinx FPGA.

Any help is very much appreciated! Very Happy

Noise cancellation will primarily be done by encasing the DUT.
Quote:
1. An ultra-low-noise amplifier in the range of 100uV to 80mV, programmable so we can adjust for an ADC.
2. The ADC, with a preferred sampling rate of 10-20ns with a low SNR, and a high bit count. (12 bits seems like it will probably be okay based on our voltage range?)
3. A way to connect said ADC to a computer via ethernet, usb, or some other method for signal processing, before attempting to do it on the FPGA.

Simple thoughts from some quick browsing of TI's web site, which is the sort of thing you should be doing:

An ADS5562 meets your ADC needs, with 250 MHz input bandwidth at 80 Msps and 16-bit resolution. Programmable gain in 1 dB increments from 0 to 6 might allow you to get away with fixed gain in front of the ADC. The combination of a ADS5562EVM and TSW1405EVM would be suitable for prototyping.

Even just drilling down in Digikey's ADCs, there's no shortage of similar devices. AD9235, LTC2228 ... They basically all take differential inputs of up to a few Volts peak-to-peak and emit either parallel bitstreams on an LVDS or single-ended CMOS interface.

Quote:
4. An FPGA capable of handling this data rate; which would probably need to operate at least 100MHz. Ideally the external ADC could be connected to it, preferably also on a Xilinx FPGA.
Should be relatively easy for all but the cheapest FPGAs. Since I'm reasonably familiar with the Xilinx 7-series, I'd expect you could get by with a low-cost Spartan-7 of some kind since you don't need any exotic I/O and not much of what you do need, and your DSP needs are modest. DS180 is a helpful guide. It may be easier to do most of the work in software, in which case a device with hard-core CPU onboard (like something in the Zynq family) may be a good choice.
Thanks Tari! I'll definitely be looking more into all of those Smile I've been a large fan of Zynq devices in the past; so I'll probably use something along those lines. The Artix-7 boards look fairly suitable; but I'll need to do some more research.

My next question concerns software. I'm basically looking for the best way to do patten matching and signal analysis; say searching a waveform for a specific spikes at particular intervals given a large data set. If anyone has any recommendations; it would be much appreciated! Basically pattern-matching with sensitivity control would be fabulous; although I imagine I'll have to write a lot of code myself (Not sure what language yet).
MateoConLechuga wrote:
Basically pattern-matching with sensitivity control would be fabulous; although I imagine I'll have to write a lot of code myself (Not sure what language yet).


It might not be the best way, but a recurrent neural network comes to mind.

You/the user would have to input a relatively large sample set of data, though. Sensitivity wouldn’t be too hard, just adjust the bias of the neural net.
MateoConLechuga wrote:
say searching a waveform for a specific spikes at particular intervals given a large data set.


Cross-correlate the recorded signal with the waveform in question and look for maxima in the cross-correlation function?
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement