loading

Spectrum Analyser circuit help

I've decided to task myself with building a large scale spectrum analyser to get me back into electronics as I figure it will use the most common base components (transistors and op-amps) and will jog my memory on what does what.

I know there are a few guides around, but they either give the circuit diagram with no explanation of what's going on, or talk about things that I've long since forgotten. I'm trying to piece together how to build this circuit myself rather than follow a suck-eggs-follow-and-learn-nothing style guide, and trying to re-learn what and how each component works.

Right now I've figured that I should be looking to split the output signal into different frequencies and then indicating the volume of each frequency separately. So I plan on using low and high pass filters (band pass?) to split the frequencies into manageable chunks.

For getting the volume display I want to do it in roughly 3db intervals as this is roughly double the sound intensity (not entirely sure how I'm going to achieve this), then it's a case of somehow triggering the LED when a certain voltage (volume) is achieved.

Finally, rather than triggering a single LED, I want it to set off a large cluster of LEDs (as this is going to be a rather large display), so I'll need some way of triggering the cluster.

So my questions here are mainly:
Am I going the right way about the project as a whole, or am I in totally the wrong direction?
Should I be looking at another method to split the frequencies, or is a low pass plus high pass filter good enough for the job?
For the actual volume display, how would I discern the ~3db different? Would I need to double the voltage required to trigger the LEDs (as this I believe would be the double intensity that an ~3db increase would incur)?
For triggering the LED section of the circuit, should I be looking at op-amps or transistors?
Lighting a large cluster of LEDs from what I assume to be a low voltage output, should I be looking at using a transistor as a switch?
Finally, can anyone recommend some good online reading material while I try and source my old college paperwork (it's been a fair few years, but I know it's here somewhere...)?

Hopefully I've not just reduced you to a shaking wreck with my obvious obliviousness, and thanks in advance to anyone who helps!

"Am I going the right way about the project as a whole, or am I in totally the wrong direction?"

What you outlined seems like a good approach. Whether it's the right direction really depends on your goals. If you want to learn as much as you can about analog electronics this will be a very good project.

The other solution that comes to mind is to use a microcontroller to sample the signal and run it through an FFT. Then you would just need an LED driver for the output.  If your more interested in digital signal processing this would be a good approach, but it seems like your interested in the discrete electronics involved.

"Should I be looking at another method to split the frequencies, or is a low pass plus high pass filter good enough for the job?"

Like I said above, I can think of two solutions to the problem, a digital one or an analog one. If your going to take the the analog approach then using a band pass filter is the way to go. This is where you can go as crazy as you want.

Cascading a low and high pass filter will get the result you want. I'm not sure how good performance you'd get, say, cascading first order filters, but it wouldn't hurt to breadboard a few different filter topologies and see how they perform. It would probably be a good to use an established filter design. There are a bunch of calculators on line for designing filters, so you can pretty easily design a bandpass filter with reasonable characteristics. Generally you want to design a filter with as steep roll off as possible.

You also need to decide on active vs. passive filters. If you are interested in learning about opamps it may be a good idea to look into active filters. There are plenty of tools online to get the filter design done, but if you want there are whole books on filter design so you can go as deep as you want.

"For the actual volume display, how would I discern the ~3db different? Would I need to double the voltage required to trigger the LEDs (as this I believe would be the double intensity that an ~3db increase would incur)?"

"For triggering the LED section of the circuit, should I be looking at op-amps or transistors?
Lighting a large cluster of LEDs from what I assume to be a low voltage output, should I be looking at using a transistor as a switch?"


I'm assuming that for each frequency band you want to discretize the signal into several levels and then drive a bank of LEDs for each level. It seems there are two problems to solve, determining the threshold of each volume segment and driving a bank of LEDs for each segment. This will likely require two stages.

To drive the bank of LEDs I'd recommend using a transistor switch (probably a MOSFET if you're driving a lot of LEDs). There are a bunch of projects here on Instructables involving LED drivers you could use for reference (look for LED drivers).

As far as how to discretize each signal, there are a few approaches. One possibility is to use a bunch of opamps setup as comparators along with a resistor voltage divider network to setup the threshold voltages. If using a comparator solution you'll also need to amplify the signal. There are also bar graph driver ICs that convert a continuous signal to drive a series of LEDs (e.g. LM3915).

I hope this is more helpful than confusing. If you want to discuss anything further or have more questions don't hesitate to ask.
Auraomega (author)  advancedMischief4 years ago
First off many thanks for the reply, I've hopefully made some headway on a few of the sections.

I managed to find my old college work and a lot of it is coming back just by quickly flicking through the papers so this should help me a bit!

I was planning on using passive filters, I can't really see any major advantage to using active filters for this type of circuit (correct me if I'm mistaken).

I'm thinking of making the bands at 20K, 10k, 5k, 2.5k, 1.25k, 600, 300, 150, 70, 30hz. Any initial reasons to not go ahead like this?

I've made a schematic for a 1KHz filter with the band being from 0.9KHz to 1.1KHz, is this a good idea to account for tolerances or should I be looking to tighten the band? Is there standard values for capacitors similar to resistors?

According to my paperwork: "the performance of the unit will be greatly affected if a load is connected across the output"; does this mean that when connecting to the VU meter section of the circuit there will be an adverse effect? Is this where an active filter would come in handy or is it possible to get away with a transistor?

The op-amp comparators method to 'discretize' the signal is what I was thinking of (initially where I was thinking of introducing op-amps), again I've added a schematic which I think should do the trick. I have no idea what voltage I should be using on the ?v rail, would I have to check my amps line out volume and voltage to get this or should it just be something simple like 5v?

Why would I need to amplify the signal, or more to the point, where?

The LED banks I will tackle a bit further down the line; I don't imagine it'll be too hard to move from lighting single LEDs to clusters once I know everything else is working.

Hopefully that doesn't read as a total mish-mash!
comparator.jpgband-pass filter.jpg
Sorry for taking a few days to reply.

It sounds like you're talking about making the band narrow on your specific frequencies. For your application I would think you would want each filter to have a bandwidth large enough so they collectively cover the whole range you are interested with non-overlapping filters. This will be tricky because first order filters like the one you include will have a ton of roll off and will leak some of the surrounding frequencies.  So you'd likely want to keep the bands with some buffer space between them.

The tolerance of the components will affect the actual cutoff frequencies, but unless you need high precision it shouldn't affect it enough to worry much about. You could always add a potentiometer to tune the filter.

When you say the "the performance of the unit will be greatly affected if a load is connected across the output", is the unit referred to the filter? If so then, yes, any load connected to the output will change the characteristics of the filter because the output impedance will become part of the circuit, effectively changing the design of the filter. The solution is to connect the output of the filter to a high impedance input, like the input of an op-amp.  The simplest solution would be to add a voltage follower (buffer) before doing anything with the signal.  It would be fine to connect the output of a filter to the Vin input of the op-amp circuit you included, since the inputs of the ap-amps are high-impedance.

I don't know too much about the intricacies of difference between active and passive filters, but the main difference is that passive filters can never have unity gain.  That means the voltage you get out off the filter will always be less than the input voltage. This is why I was suggesting adding an amplifier to get the signal back to a larger signal.  The amplifier would go at the output of the filter and feed into the comparator bank, giving you greater control of the level of the signal into the comparator. Whether this is necessary would depend on the design.

The +?V would depend on the initial input signal and the loss in the filter.  It will determine the maximum detectable level and should be as large as the maximum output of the filter.  Again adding an amplifier gives you more flexibility at the cost of complexity.

I hope this is helpful, I realize I left a lot of the details as open ended design decisions. So if you have any more questions let me know.