I am reading a thermocouple in an industrial environment. Thermocouple output is read twice a second. ADC performs 50/60 Hz filtering internally.

I had the intention of using a filter with a cutoff frequency between 10-100 hz (not Kilohertz) to completely filter out most frequencies, but Many circuits that I have seen have simple RC anti-aliasing filters with cutoff frequencies higher than 1khz. Am I missing something here or is this simply due to those circuits having a much higher sampling rate? In other words, what problems could arise if I use a filter with very low cutoff frequency?

Sample filter circuitry shown in red below:

enter image description here


It depends what you would like to do with your thermocouple readings.

The Nyquist–Shannon sampling theorem basically says that you need to ensure that the highest frequency of your signal is below half the sampling frequency (fn).

What does it means and do you need to comply with it?

If you comply with it, you ensure that you won't suffer from aliasing problems and it guaranties that your digitized signal contains enough information to perfectly recover the initial analog signal. Most digital signal processing require that the input signal is not aliased to compute meaningful results. If you would like to perform digital filtering or even a PID, it is strongly recommended to ensure compliance with the Nyquist–Shannon sampling theorem or you may encounter strange behaviors.

If you want to comply with the Nyquist–Shannon sampling theorem you need to ensure that the signal content at fn and above is zero. This is not possible because all real world filters "attenuates" and don't "discard"...

You can approximate this by having a filter that sufficiently rejects the frequencies above fn. "sufficiently" depends on the noise level and the application, but let's choose 40dB here.

If you use a simple RC filter (a first order filter) then you have a filter roll-off of -20dB/decade. Thus the cutoff frequency (fc) of your filter need to be 2 decades (100 times) smaller than 2Hz to ensure at least 40dB of attenuation after fn.

$$ fc = 2Hz/100 = 0.02 Hz$$

Well, this is not practical !

You could use higher order filters with 40dB/decades. then:

$$ fc = 2Hz/10 = 0.2 Hz$$

This is better but still not easily done. Here the best way would be to acquire your thermocouple readings much faster, let's say at 200kHz. A first order anti aliasing filter could be set at 1kHz to ensure -40dB at fn (100kHz).

It is much easier to build a 1kHz filter than a 0.1Hz one !

Then you apply a 100 times decimation digital filter and you get your 2Hz signal back.

Rarely, but sometimes you know your noise sufficiently well that you can match a rejection filter to it.

For instance, you acquire at 2Hz. The Nyquist–Shannon sampling theorem said that you have to ensure to have nothing above 1Hz. If you know by design that nothing can couple with your sensor and it won't be anything above 1Hz, then you don't need any filtering. If you know that only a 50/60Hz signal is likely to be present, then a 50/60Hz rejection filter is enough.

As always, the goal is to ensure that you have nothing above fs. It could be by design (shielding, slow thermocouple, noise free environment, ...) or by filtering.

  • \$\begingroup\$ Your answer got me thinking. I am using an AD7124-8 chip that has a digital filter. It is my understanding that the actual sampling rate of the ADC is much higher (tens of Kilohertz) needed for the digital filter to function properly and the ADC then gives out some preset data rate like 2 SPS. Thus I am assuming that the ADC automatically performs the decimation when outputting 2 SPS. Is this correct? So it suffices for me to use the original ADC sampling rate of tens of Kilohertz to calculate cutoff frequency instead of the output data rate of 10 SPS? \$\endgroup\$ – hadez May 31 '16 at 8:02
  • \$\begingroup\$ Maybe a stupid question, but: Since the thermocouple’s signal will be pretty slow (in the order of seconds) is all this hassle with filters really necessary? \$\endgroup\$ – Michael May 31 '16 at 10:53
  • 1
    \$\begingroup\$ @hadez: About the AD7124. They are using digital filtering internally, thus yes, you can use the 2SPS output directly. But as written in the AD7124 datasheet, you have to filter the thermocouple signal at the input of the AD7124. The datasheet is huge, but complete. Sure all the details are explained somewhere, or in an Application Note available on the website. \$\endgroup\$ – Blup1980 Jun 1 '16 at 5:10
  • 1
    \$\begingroup\$ @Michael: Yes, if the thermocouple signal is very slow and you are sure there is no outside noise coupled to it then it's ok to live without the filter. Filtering is just one way to remove the signal above fn. But if there is noting above fn by design, no need for filtering. \$\endgroup\$ – Blup1980 Jun 1 '16 at 5:13
  • \$\begingroup\$ From the AD7124 datasheet page 72 The external antialias filter is omitted for clarity. However, such a filter is required to reject any interference at the modulator frequency and multiples of the modulator frequency. In addition, some filtering may be needed for EMI purposes. Both the analog inputs and the reference inputs can be buffered, which allows the user to connect any RC combination to the reference or analog input pins. \$\endgroup\$ – Blup1980 Jun 1 '16 at 5:21

For thermocouples, the big problem is noise pickup rather than intrinsic sensor noise. Furthermore, most thermocouples, particularly when coupled to a physical object, will have thermal time constants on the order of seconds or greater. So your "best" choice for an ADC with a 2 Hz sample rate is on the order of 1 Hz. if your shielding is good, you can get away with rather higher cutoff frequencies.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.