Analysis gone horribly wrong

Analysis gone horribly wrong

We’re almost done with this stage of the project! (I think…). Admittedly, this part has taken me longer than I initially anticipated, mainly because I wanted to spend a bit of time trying to figure out what the heck was going on with the circuit (circuit analysis isn’t exactly one of my strong points…yet)

I started out with this circuit which proved to be a pretty good amplifier and filter for the geophone. However, I did mention in previous posts that there are problems with it, but before I dive into those details, it’s a good idea to do some analysis first to understand what is going on.

Note: I already mentioned that circuit analysis isn’t one of my strong points, but I am working on that. If any of the explanations I give below are incorrect or if I have made some poor design choices, please let me know!

Overall circuit

Overall circuit

At first glance, the circuit seems a bit daunting. However, if you look closer, you’ll start to notice that there are 3 (somewhat) familiar stages:

  1. Gain/Filter
  2. Filter stages
  3. Another gain stage

We’ll look at each stage one by one


Screen Shot 2014-02-07 at 10.42.06 PM

This is a classic op-amp integrator circuit but because we are dealing with sinusoids, this stage isn’t so much an integrator as it is an inverting amplifier with a gain of 47 (470k/10k) and a low pass filter (cutoff freq = 150 Hz). Notice that the 220 kΩ divider network, R1 and R3, supplies a bias point of 2.5 V. We are not using dual rail supplies here so we need to set a point in order to accommodate our geophone’s signal swing. We want to keep our bias point stable, meaning we just can’t have any DC gain! This is what the preceding high-pass filter/DC Block is for, which has a cutoff frequency of about 7 Hz.

I’m a little bit unsure about what R7 (2.2 MΩ) is for. I suspect that the resistor “clamps” the bias voltage to 2.5 V. I could be wrong though…

RC Networks

Screen Shot 2014-02-04 at 9.34.47 PM

Because our geophone has a pretty limited bandwidth (in our case, about 10 – 240 Hz), it’s nice to have a low pass filter to cater to our bandwidth requirements and avoid any unwanted high frequency components (like noise). The thing I find strange about this part is that the first RC network has a cutoff frequency (fc) of about 100 Hz despite the original designer specifying a bandwidth of about 5 – 150 Hz, although I may have an idea of how the overall bandwidth gets extended. R10 and C8 make a filter with fc = 234 Hz. What about R9 and C7? That brings us to the next stage…

Gain Stage 2

Screen Shot 2014-02-04 at 9.43.14 PM

This stage is a simple non-inverting amplifier but with a twist. Remember that first RC network with fc=100 Hz? You might think that the overall circuit would have bandwidth of about 7 – 100 Hz but that is not the case! It turns out that C7 forms a positive feedback loop and amplifies higher frequency signals! R11 and C7 form a high pass stage, amplifying signals past 150 Hz. Of course, very high signals are filtered out by the R10/C8 RC network.

Non-inverting amplifiers also have DC gain, which we don’t want! C9 is added to prevent this.

Running this circuit through LTSpice shows the following frequency response:
Screen Shot 2014-02-07 at 10.53.05 PM

Honestly, this is a pretty good circuit! Peak gain is about 58 dB with a 3 dB rolloff at about 14 and 120 Hz. I could have stuck with this circuit, but we can do better.

Our geophone spec indicates that we can get useful data from 10 – 240 Hz so it would be beneficial to us to extend our bandwidth to this point.

Making Adjustments

With the geophone’s specs in mind, we draft the specification of the conditioning circuit:

  1. Bandwidth response from 10 to at least 250 Hz
  2. Flat frequency response at the specified bandwidth
  3. Keep original gain of around 1000. Not at all a stringent spec since we’re not building the circuit to detect far away earthquakes or anything of the sort

Often, I forget that electronics engineering is an iterative process. This was one of those times. I won’t bore you with the details of me working out calculations, simulating and trying different component values. Instead, I will give the final circuit – which isn’t all that different from the original circuit, save for some component value changes:

Screen Shot 2014-02-07 at 10.07.10 PM

The circuit is unchanged until right after the first op amp stage. Initially, I took out the first RC network because I didn’t really see a need for it. I re-added it after I found that, after some simulations, it actually helped flatten the frequency response. I simply adjusted the capacitor value to extend the cutoff frequency. I decided to change the resistance in the RC network just before the second op amp to, again, extend the cutoff frequency.

The capacitor in the positive feedback network was very interesting. It turns out that any capacitor value below 0.01 µF drove the op amp into saturation and I’m not exactly sure why. I’ll have to investigate this one further.

Simulation yielded the following frequency response:

Screen Shot 2014-02-07 at 10.25.40 PM
Awesome! This looks like exactly what we want! Our 3 dB cutoff frequencies are at roughly 10 to 300 Hz. Our gain looks pretty good at 60 dB, which is about 1000 V/V. Now, how does it compare to the actual circuit?

Red: Simulated Blue: Actual Circuit

Red: Simulated Blue: Actual Circuit

Not bad at all! Our actual circuit has 3 dB cutoff frequencies at around 10 and 300 Hz. Our gain suffered a little bit, but I suspect that this is largely due to the 5% tolerances of the resistors. On a 470 kΩ resistor, 5% is quite a large amount to be off by.

The gain could potentially be solved by using resistors with tighter tolerances (ones with 1% tolerances). This isn’t a big issue though because, again, we’re not looking to build an overly sensitive seismometer. It looks like we have our conditioning signal worked out and ready to go. Time to move on the fun part, digitizing and processing the data!