This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Best way to detect 80kHz signal from ferrite coil

Other Parts Discussed in Thread: ADS8920B

Hi,
I'm looking for best design solution to detect 80kHz signal from ferrite coil. On/Off detection.
Current design is Ferrite Coil ->Filters -> 16bit ADC at 500kHz sampling -> FFT based detection in microcontroller.
It seems not being optimal design. I need to increase detection distance and it then requires more bits/sampling which increases cost significantly.
Is there a alternative solution for these range frequencies?
Otherwise what ADC to be used for let say 1MSPS 16bit with fast SPI (design must be compact size).

  • Musheg,

    There are several methods to detect this signal. The best method would depend the factors around the signal capture, such as, background noise, signal bandwidth, and other interference. The simplest approach would be to create a bandpass filter with some gain and detect the signal above a threshold. Some ADCs have built-in filters that could be tuned for the frequencies of interest. If there is a lot of signal interference, a notch filter could be use to remove it before applying the bandpass filter. For example 50 or 60 Hz noise filter. If the signal is weak and corrupted by noise, then an FFT approach could be tacked on to the bandpass filter to find the peak of the signal.

    To limit the processing and bandwidth of the signal, an analog low pass (anti-alias) or bandpass filter could be placed before the ADC to sample at lower rates and remove any noise due to aliasing of the higher frequency component and remove unwanted signals before applying any other digital processing. Then you can choose to sample the signal at least 2x the highest frequency of the anti-alias or bandpass filter or as high as any harmonic you would like to detect.

    Your FFT could use a windowed approach with a 7-term Blackman-Harris window, ignore low frequency bins, and use a window length and FFT length that provides enough bin resolution.

    Best regards,
    Pedro

  • Hi Pedro,

    Thanks for detail explanation, but I would like to have more practical answer if possible.
    What ADCs do you mean with built-in filters for 80 KHz signal? Board is battery powered (no DC/DCs) and far from mains. I think no need for 50 or 60 Hz noise filter.
    Frequency band can be very narrow as this is resonant based detection. +/- 1kHz. 
    Current version already has bandpass and antialiasing filters.
    I'm looking to ADS8920B. Is there multiSPI compatible with QSPI used in many uC? 
    Yes windowing FFT may help more. Thanks. Current approach is just averaging FFT results over multiple samples, but that does not help much with amplitude fluctuations near the lowest signal level. Also I was looking at Goertzel algorithm as it require less processing power (no FPGA) for defined frequency at higher resolutions.

  • Musheg,

    Some ADC have programmable FIR or IIR Biquads. As far as algorithms, Goertzel implementation would require much less processing. Given that your signal is known and narrowband, you might explore the Multiple Signal Classification (MUSIC) algorithm .

    The ADS8902 offers the standard SPI protocols and enhanced SPI mode. The standard SPI bus supports data output:

    • one bit (single data line)
    • two bits (DualSPI)
    • four bits (QuadSPI)

    These are compatible with many processors that support single, dual, or QuadSPI protocols with the traditional four SPI modes  that permute between clock polarity and phase options.

    The enhanced SPI modes support double data rate transfer and extended data transfer windows. Please refer to the data sheet for detailed descriptions and timing diagrams.

    Best regards,
    Pedro