Active filter modules, update

These little guys just came in the other week, and I’ve been listening and playing around with them. Earlier discussion here: Active Filter Project

High-pass version, AA cell for indication of size

Well, overall I’m pretty happy so far.

Further Analysis

The ease of soldering was a pleasant surprise (this comes after another design where the thermal relief turned out to be insufficient, so I made sure large copper areas wouldn’t suck too much heat away.)

There was a bit of distortion at first, so I spent some time diagnosing that, and I found that a 100k load resistor for the high-pass buffers didn’t draw enough current. Changing it to 10k instantly fixed what I would describe as a bit of “muddy harshness”. It was probably due to asymmetric slew rate: the input buffer can source a reasonable amount of current at its emitter, supplying positive charge, but a 100k resistor will take more time draining it back.

10k vs 100k only buys about 20 dB of headroom. Guesstimating: the dominant form of distortion should be caused by slight changes in current gain, proportional to Vc-e across the transistor. Since the “current source” is just a resistor, its performance relies on the voltage changes being very small relative to the voltage rails. Therefore, rather than passing a high volume signal through the filter, it may be better to build a pre-amp to increase the gain after the filter.

Another oddity that has been bothering me (mostly because I haven’t gotten round to fixing it yet) is the noise variation at different volume levels. It’s entirely my fault for building a rat’s-nest with a dual-ganged potentiometer hanging from a collection of long wires (rather than neatly packaged in a metal box!), but I guess an exaggerated issue sometimes forces you to notice and think about it. The source is mostly the headphone output from a laptop or phone, which is designed for a nominal 32 ohm load, give or take. I used a 10k pot, with the centre tap as the output — not the greatest scheme out there, but quick and easy to implement.

Meanwhile, I’ve got a more pressing concern because the 15W TPA3110 based class-D amp that I’ve got for the bass has been malfunctioning a lot, with one or the other or both channels going into protection mode. I don’t particularly like the idea of using low-cost ferrite beads and mystery ceramic capacitors for the output filters, so it’s a good opportunity to make a higher quality design.

Thoughts on Class D (caution: may contain rambling)

Don’t people realise that just because the output filter is set for 20kHz+, the current is still in series with the speakers, so any nonlinearities will directly affect the sound? The ripple current swings up and down, producing varying degrees of saturation in the inductor’s core. Even though the output transistors are switched, normally the current ripple only traverses a fraction of the expected range during any given cycle, so the low-passed signal has a DC offset that modulates the inductance value and the amount of averaging may be minimal.

If a particular class D chip is sufficiently clever, it could monitor the output current and adjust the width of its PWM pulses accordingly. I think some of them even do it on a per-cycle basis, precisely to avoid problems with inductor saturation. However, I still prefer to keep things as linear as possible in the first place. And those amplifier ICs never seem provide an external feedback loop, only internal self-correction.

I have similar concerns about those mystery capacitors that I see on various class D amplifier modules. Microbial 0x0x (0805, 0402 etc.) package sizes come with a price to pay. X7R, X5R etc. ceramics are not linear, and a bit like inductor saturation that varies with DC offset, their capacitance varies with DC offset.

Measuring the output current and using the signal as feedback to linearise an amplifier sounds like a great idea… as long as we know the speaker is the main source of nonlinearity. But if there are additional components in series and in parallel, that makes it more tricky. Just speculating, current control could allow us to ignore non-linear inductors in series (for the same reason that I find current control an appealing idea, because it allows us to ignore at least one type of modulation in the speaker where the inductance varies depending on voice coil position). But if part of that current is bypassed to ground, then the capacitors either have to be very linear or we have to fall back on some other feedback scheme.

/ramble

TINA simulator, limited accuracy

In other news, I performed a sanity check on TINA’s distortion tool, and found that it’s not too accurate at lower levels. By connecting an ideal distortion-free source across some ideal resistors, distortion should be zero, right? Well, it’s not. There is a lower bound that looks just like that flat “noise floor” of harmonics in some of my simulation graphs. In a way it’s a relief, because I know from experience that a series of harmonics of equal loudness tends to produce a characteristic ‘buzzing’ sound, and it should just be an artefact of the simulation.

Nonetheless, I’m still keen to improve real-world results by filtering the power supply (because it’s not just noise or hum — those things modulate the signal). Surprisingly, the little class-D amp produces less line noise than other appliances connected nearby. Or not-so-surprisingly, given the inductive loops formed by long non-twisted pair signal wires.