I'm in the process of putting together an audio crossover. I finished assembling the components, and I though it would be neat to do a frequency sweep on the filters. When I inspected the tweeter filter, I got some weird results. I assume I somehow mis-wired something, so I decided to go through the math to figure out what I should be seeing.

In any case, here's the circuit (not my design):


simulate this circuit – Schematic created using CircuitLab

Below is my analysis of the filter in the S-domain (I hope I did my math right):

enter image description here

In any case, I threw this transfer function into MATLAB and it generated this Bode plot:

enter image description here

The phase plot is fine in my opinion, but the magnitude plot seems amiss. One, the magnitude of attenuation seems ridiculous, and two, there's no knee. From the circuit, it's obvious that it's a high-pass Chebyshev filter. It should be attenuating only the lower frequencies and letting the high frequencies through. So, it seems like I did something wrong? Is it my math or something else?

  • \$\begingroup\$ Do you have a link to the design (not your's) \$\endgroup\$ – Andy aka May 31 '15 at 20:44
  • \$\begingroup\$ @Andyaka Sorry for the late reply, here you go: parts-express.com/pedocs/manuals/… (Last page) \$\endgroup\$ – Mlagma May 31 '15 at 22:46

I ran the circuit through Proteus simulator and the frequency sweep gave me these results:


No load response


6 Ohm load response

Both graphs run from 1k to 20k, and the key figures are as follows:

            fo         Go        f(-3)        Gpb        G(3.5)
NoLoad    5.9 kHz    - 3.3 dB    4.6 kHz    - 4.4 dB    -15.0 dB
Load      5.0 kHz    -10.0 dB    4.2 kHz    -12.4 dB    -20.9 dB

    fo     = Peak frequency
    Go     = Gain @ f0
    f(-3)  = -3dB point
    Gpb    = Passband gain
    G(3.5) = Gain @ 3.5kHz (cut off frequency of tweeter, from manufacturer)

For the LOAD graph, the 'passband gain' is read at about 8.1kHz; after this point it climbs back to -10dB at 20k.


Check both your maths and your soldering.

I say the above with all due respect - I'm too lazy to do the maths these days so I'm definitely not one to judge. However, it does apear that you've 'got your wires crossed' in the assembly process and that there's some breakdown with the maths/MATLAB combo.

Check ground connections, and perhaps consider laying out the components better than that horrible spider-web monster on page 5 of the supplied datasheet!

  • \$\begingroup\$ Thanks for your reply. I went through my original crossover a few times, can't find any wiring issues whatsoever (it would actually be really hard to mess up a circuit this simple). I checked my math again (and again, and again...) and it still seems correct. Also, the units all match as well. In any case, this is my conclusion: (1) The instrument I'm using - a cheap NI myDAQ - doesn't seem capable of doing the sweeps I need for this crossover, and (2) I believe MATLAB is having some interpolation problems. In fact, it looks like MATLAB rounded the 3rd and 2nd order terms to 0! \$\endgroup\$ – Mlagma Jun 1 '15 at 1:37
  • \$\begingroup\$ Oh, and I forgot to say I built a second crossover, and I'm getting the same "weird" results from it as the first circuit - which seems to support my theory that the myDAQ is having difficulties sweeping this particular filter. \$\endgroup\$ – Mlagma Jun 1 '15 at 1:39
  • \$\begingroup\$ Ha, in that case I rescind my conclusion entirely! If both give identical anomalous results then it's a safe bet you've built them correctly. Just plug the buggers into an amplifier and cross your fingers. Good luck! \$\endgroup\$ – CharlieHanson Jun 1 '15 at 2:03
  • \$\begingroup\$ I was looking at the math and MATLAB a little bit more, and it looks like the third and second order poles coefficients are rounded down to 0. As a result, a knee will never appear in the Bode plot, and the third order zero on top simply dwarfs the pole in the denominator. Hence the linear magnitude plot MATLAB spit out. The plot, according to a simulation I did, is identical up until the knee point around 4kHz. So it seems everything is good! Thanks for your input. \$\endgroup\$ – Mlagma Jun 1 '15 at 2:48

I believe your MATLAB transfer function treats the two sections as independent. They aren't : the second section loads the first (C2,R1,R2 are in parallel with L1) so your first stage H1(s) is incorrect. That may not be the only difficulty but it's a start.

With sections that aren't buffered and load each other, simulation is just easier - as in Chaarlie's answer.


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.