diyAudio

diyAudio (http://www.diyaudio.com/forums/)
-   Analog Line Level (http://www.diyaudio.com/forums/analog-line-level/)
-   -   designing a 1-Hz lowpass with no DC error (http://www.diyaudio.com/forums/analog-line-level/238956-designing-1-hz-lowpass-no-dc-error.html)

CharlieLaub 10th July 2013 12:54 AM

designing a 1-Hz lowpass with no DC error
 
I'm trying to brainstorm a good way to measure the DC voltage component in a signal that has significantly more AC signal (volts) than DC (10's-100's of microvolts). I would like to bring the measurements into an Arduino so that I can monitor and further process the signal. The Arduino can measure voltages in the range of 0-5V but only with a resolution of 4.7mV (10-bit).

My rough plan is to remove all the AC signal above 1 Hz (filtering) and then increase the voltage of the remaining DC signal (gain) so that it better matches the Arduino's input voltage range. This will improve the measurement resolution. The 1 Hz corner will give me sufficient temporal resolution for my measurements.

I thought of using the following:
single pole passive-RC LP filter --> chopper stabilized op-amp buffer --> LTC1062 switched capacitor filter --> RC single pole LP filter with 40dB of gain using another chopper stabilized op-amp

Motivation for this signal processing chain:
  • The passive-RC LP filters will provide some attenuation and introduces no DC errors.
  • The chopper stabilized op amp has very low DC offset and can buffer and feed the main filter
  • The LTC1062 is a DC accurate 5th order LP filter. This provides the main filtering
  • The RC filter on the second chopper stabilized op amp will filter out the clock frequency feed through from the LTC1062 and provide DC gain to the filtered signal so that I can improve the measurement resolution I will get using the Arduino.

I don't have any real world experience working with chopper stabilized op amps or the LTC1062, but it seems like it should work on paper.

Any other ideas are welcome.

-Charlie

DUG 10th July 2013 02:43 AM

IMHO

Delete the LTC1062 switched capacitor filter.

Your are adding AC components that you have to filter out later.

What does the model results show?

CharlieLaub 10th July 2013 02:49 AM

Quote:

Originally Posted by DUG (Post 3555967)
IMHO

Delete the LTC1062 switched capacitor filter.

Your are adding AC components that you have to filter out later.

What does the model results show?

If I delete the LT1062 I don't have enough filtering. What's a "better" alternative???

The only AC components that the LTC1062 will add are 1/f noise and the clock feedthrough, which is 1mV(pk) and 100 times higher than the corner frequency, so it's easily removed with a simple RC post filter.

If not the LTC1062, what do you suggest for something for a 5th or 6th order LP filter?

-Charlie

CharlieLaub 10th July 2013 02:55 AM

Here is another approach that might work:

Use 2 or 3 amplifier stages to implement the LP filter and gain stages simultaneously. Even if I use FET input op amps, there will be some DC "error" introduced. But this DC error component will be very slowly varying on the time scale of minutes or more (I assume). So once a minute I could just replace the actual in-circuit measurement points with a grounded resistor of the same value and measure the DC offset. This should be only the DC error itself. Then I could just subtract the DC error from subsequent measurements inside the Arduino.

If the DC error changes very slowly and can be quickly measured, this would probably be a better approach. Not sure about these however.

-Charlie

Thinking a little more about this... I like the idea more and more. It would be best to just measure the DC error and subtract it from subsequent measurements. But it would be best if the error did not change much over time, e.g. with changes in temperature. So what is the op amp type that has the least bias current drift? Should I use a chopper stabilized type here, or is that not necessary and I should use some other type??

Zero D 10th July 2013 03:04 AM

1 Attachment(s)
Hi, i was working on this for you before DUG posted, but i thought i'd post it anyway.

This works fine in Sim. You can choose a filter below 1Hz as i have, so a 12dB per octave one should be OK.

Use Ultra Low Offset OpAmps such as OPA177 for eg. You could use a 5k Ohm Trimpot for R6 to alter the gain to suit. And also make use of the OpAmps offset terminals to trim out any internal offsets.

CharlieLaub 10th July 2013 03:28 AM

Quote:

Originally Posted by Zero D (Post 3555988)
Hi, i was working on this for you before DUG posted, but i thought i'd post it anyway.

This works fine in Sim. You can choose a filter below 1Hz as i have, so a 12dB per octave one should be OK.

Use Ultra Low Offset OpAmps such as OPA177 for eg. You could use a 5k Ohm Trimpot for R6 to alter the gain to suit. And also make use of the OpAmps offset terminals to trim out any internal offsets.

Yes, thanks for the model and your thoughts.

It looks like you used a two single pole (first order) filters - I need at least 5 pole or more to get enough attenuation by 10Hz. Also, I don't want to reduce the corner frequency below 1Hz because the filter time constant becomes too long and I won't be able to measure second-by-second changes in the signal.

There is no way I want to trim out all those op amps!!! I'm thinking of using the LTC1052 (quad chopper op-amp) even though it is rather pricey.

So maybe three or four MFB LP filter stages with gain would work for my needs. I will sim that up tomorrow but would love to hear more feedback.

-Charlie

gootee 10th July 2013 06:02 AM

I was going to suggest a one-op-amp differential integrator op amp circuit, like is used for DC servos for amplifiers, with a one-op-amp DC-accurate 3rd-order active filter following the integrator.

Another thought occurred to me: Maybe you could use two of those RMS-to-DC converter chips, with one fed the original waveform and one fed a high-passed version of the waveform. Then subtract the output of the second converter from that of the first.

CharlieLaub 10th July 2013 02:37 PM

Quote:

Originally Posted by gootee (Post 3556098)
I was going to suggest a one-op-amp differential integrator op amp circuit, like is used for DC servos for amplifiers, with a one-op-amp DC-accurate 3rd-order active filter following the integrator.

Another thought occurred to me: Maybe you could use two of those RMS-to-DC converter chips, with one fed the original waveform and one fed a high-passed version of the waveform. Then subtract the output of the second converter from that of the first.

Can you give me a part number for the RMS-to-DC converter ICs? I'm not familiar with them. I'd like to check out the specifications.

The only issue with the integrator is that you have to constantly reset it, since a DC signal will always be present.

bear 10th July 2013 09:41 PM

If you can live with some ripple, you might be able to cascade a standard 2 to 4 pole filter with a Cauer or eliptic filter and get a very sharp skirt, using the standard filter to further drag the components above the steep drop down some more than the eliptic will do by itself.

What is the application that needs the measurement?

_-_-

CharlieLaub 11th July 2013 01:52 AM

Well I've been modeling all day and it seems that the bottom line is that the more amplifiers you throw at the problem the worse things look. So I changed the filtering to three single pole RC low pass filters, one after the other, with a 10x impedance difference between each one to minimize interaction. Then I used a couple of gain stages. I ended up doing the modeling with good ol reliable TL072s. Anyway, this is more or less working. I can track the voltage drop fairly well. I will need to sample the DC offset with the input grounded to zero that out of the equation, and hopefully the offset will be stable WRT time and temperature...

-Charlie


All times are GMT. The time now is 09:42 PM.


vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
Copyright 1999-2014 diyAudio


Content Relevant URLs by vBSEO 3.3.2