Omicron, a compact headphone amp with -140dB distortion

Member
Joined 2009
Paid Member
IMD is impressive. What about noise?
On the measurements above, the board was sitting on a bench with a bunch of other electronics, so it's hard to say what noise comes from the amp, what from the measurement rig, and what is coupled via probes. In principle, with a low noise device such as the NE5532, the low impedance feedback network, and the low gain of x2.5, I would not worry about noise even for 32ohm cans.
I've sometimes wondered about producing a speaker power amp where an opamp is used for the negative feedback loop just like this. I assumed it was too simple to work or everyone would do it. Is there a reason this can not be scaled up with more powerful transistors and work just as well?
Indeed, placing an opamp in front of a speaker amplifier is a cheap and cheerful way to add loop gain. You need to take care of a few practical issues (the biggest being maintaining stability under various conditions without giving up loop gain where it matters), but it is not too hard once you get the hang of it.
Technics Class AA(Sandman...) .
The issue with too many original ideas is that they do not see much development (think of 40+ years of faithful copies of the "bridge" from Quad 405), while the mainstream technology moves on and, over time, surpasses that original idea in performance. For inspiration, better look at Halcro, or Devialet, or Purifi.
 
Last edited:
  • Like
Reactions: 1 user
Member
Joined 2009
Paid Member
Tenson - yes, you run out of voltage-swing, very quickly. That is the ultimate limit on such simple approaches..
Also - depending on the intermediate (if any) and output-stage design - the opamp gets heavily loaded with delivering the haversine drive requirement.
Nah, these are technicalities. Voltage swing can be fixed e.g. by using a floating power supply, and the second opamp loading, by using a better output stage such as the diamond buffer. An amplifier like that has been designed but not built, yet. There are other amp topologies with opamp front end and similar performance that are easier to scale and are being routinely built.
 
Last edited:
  • Like
Reactions: 1 users
Moderator
Joined 2011
I've sometimes wondered about producing a speaker power amp where an opamp is used for the negative feedback loop just like this. I assumed it was too simple to work or everyone would do it. Is there a reason this can not be scaled up with more powerful transistors and work just as well?
Been done years ago.
 

Attachments

  • hfe_crown_d-60_schematic.pdf
    52.5 KB · Views: 572
Last edited:
Nah, these are technicalities. Voltage swing can be fixed e.g. by using a floating power supply, and the second opamp loading, by using a better output stage such as the diamond buffer. An amplifier like that has been designed but not built, yet. There are other amp topologies with opamp front end and similar performance that are easier to scale and are being routinely built.
Agree & yes, I have played with some similar myself : )

Looking-forward to your further posts here!
 
  • Like
Reactions: 1 user
Member
Joined 2009
Paid Member
One of the reasons for the good distortion performance of Omicron is its high loop gain. Simulations have been extensively used in designing the feedback loops that provide both high loop gain at audio frequencies and stability under various conditions. Special thanks to Analog Devices for LTSpice, to @Nazar_lv for his NE5532 models, and to @Bob Cordell for his BD139/BD140 models.

Simulated loop gain for the global feedback loop:
Loop gain.png

Omicron has at least 100dB of loop gain across the audio range. Above 20kHz, its loop gains falls at 18dB/octave. Around the crossover frequency, the fall slows down to about 4dB/octave, providing a good phase margin and step response. The low single MHz crossover frequency makes Omicron relatively insensitive, from the stability viewpoint, to layout and parasitics and allows, for example, building it on a solderless breadboard. (Note, however, that the layout remains critically important for the distortion performance.) The "excess" gain of the second opamp, which is undesirable in the global feedback loop for stability reasons, still works in the inner loop, further linearizing the output emitter follower.

The phase margin of Omicron is adequate but - as with most feedback amplifiers - can be degraded by connecting a capacitive load. To ensure stability, Omicron includes the usual RLRC filter at the output:
Filter watermark highlight.png

With the filter, Omicron is stable with capacitive loads up to 100nF. In addition to capacitive load isolation, the filter protects Omicron from EMI ingress from the load.

To avoid the need for a specific part, the inductor is hand wound. The usual cylindrical inductors in testing proved to be effective antennae, both for receiving the buzz from the power transformer and for coupling the output signal back into the input circuitry. Although both problems are minor and fixable by a proper layout, I chose to use an air core toroidal inductor with parasitic turn compensation, which reduces the leakage inductance:
output inductors.png
 
Last edited:
  • Like
Reactions: 1 user
Member
Joined 2009
Paid Member
isn't the loopgain cross 0db at -220 phage margin and that's unstable?
A 220° phase shift, corresponding to 180°-220°=-40° phase margin, would be unstable, but that is not what the Bode plot shows. To find the phase margin, you need first to find the crossover frequency using the gain plot (solid line, left axis), then find the phase shift at that frequency using the phase plot (dotted line, right axis):
Loop gain copy.png

In this case, the plot shows about 180°-135°=45° phase margin. Keep in mind this is just a model, and the actual hardware needs to be adjusted for best performance. In this case, the HF gain seems to be a little low compared to the actual hardware.
 
The phase margin of Omicron is adequate but - as with most feedback amplifiers - can be degraded by connecting a capacitive load. To ensure stability, Omicron includes the usual RLRC filter at the output:
View attachment 1063370
With the filter, Omicron is stable with capacitive loads up to 100nF.

Alex, interesting project. What is the point of making the amp stable for up to 100nF capacitive loads? Since this is a headphone amplifier, are there any dynamic headphones known to present such a load? The worst one (cans + cable) I've measured was around 650pF, and that was with 6m of cable.

And what is the value (L and DCR) of L1 ?
 
  • Like
Reactions: 1 users
Member
Joined 2009
Paid Member
What is the point of making the amp stable for up to 100nF capacitive loads?
Just a precaution - it may be stable with your headphones, but you never know what others will plug into it. BTW I cannot recommend driving with Omicron a 100nF load IRL even though it would be stable.
And what is the value (L and DCR) of L1 ?
About 1.5uH and 100mOhm, give or take. Not critical.
 
Member
Joined 2009
Paid Member
Crossfeed is a means of reducing channel separation in headphones (which can be very high) to a natural level observes in realistic listening environments. This is typically achieved by mixing the attenuated and low-pass filtered signal from each channel into the other channel. The result is a more realistic soundstage with better perception of width and depth.

AFAIK the idea originated back in 1961 with a publication in the J.A.E.S. by B.B.Bauer:
1655054704223.png
It was developed by Linkwitz in 1971, then Danuyk in 2005:
1655054939645.png
and most recently by XEN Audio - @EUVL has kindly published the schematic:
1655057961088.png
and even a Vero board layout.

Since Omicron is inverting, crossfeeding is straightforward and requires no buffers or additional active circuitry:
Omicron xfeed sch.png

This is simply a textbook inverting adder. With the values shown, it produces a crossfeed frequency response similar to that of XEN Audio's passive crossfeed:
Crosfeed.png


The downside of this implementation is that it slightly decreases the loop gain. However, the penalty is only a few dB, insignificant compared with the available loop gain. It does not affect distortion performance or stability, so Omicron will work with or without its crossfeed network.
 
Last edited:
Member
Joined 2009
Paid Member
Omicron has a sensitive DC protection for headphones:
Omicron hp protection.png

The signal from each of the amplifier's outputs is low-pass filtered and fed to a window comparator. The window is set by the dividers R51R53 and R52R54. With the values shown and +/-17V supply rails, the window is about -80mV to +80mV. Should the DC component on any channel fall outside of the window, the comparator discharges C53, and the Schimitt trigger Q51Q52 switches off the relay.

When DC is removed, C53 is charged via R55 and, when the voltage across C53 reaches the threshold set by R56R57, relay switches on. This also provides a turn-on delay of about 1 second. Since the input of the Schmitt trigger (the gate of Q51) has a high impedance, R55 can be made big and C53, small enough to use a ceramic capacitor instead of an electrolytic that would normally be used in this role. To shink the bill of materials and the board, the low pass filters also use 1uF ceramic capacitors.

Q53 provides a quick turn-off when the AC power is lost. PGOOD is connected to a separate rectifier with a small filter capacitor, providing negative voltage. When the AC power is lost, PGOOD becomes less negative than the negative power supply rail. Q53 opens and discharges C53, which switches off the relay.
 
Last edited:
  • Like
Reactions: 3 users
Member
Joined 2009
Paid Member
Omicron's power supply is rather plain vanilla:
Omicron power supply sch.png


Still, there are a few points worth mentioning. First, there is an LRC filter in front of the power transformer's primary. With a 22mH common mode choke (I used Wurth WE-FC series, but there are many, many similar chokes), the filter adds differential mode noise suppression above 100kHz, where LM317/337's ripple rejections is low (on the charts below, top half is the gain/attenuation, bottom half is the phase, and -14dB attenuation at low frequencies is just the effect of a 115V-to-18V transformer):
amveco filter-no filter.gif


Second, I tested both a toroidal (Talema/AMVECO/ACME 70064K) and a flat-pack (Block FL10/18) power transformers. The flat-pack adds noise suppression between low single kHz and 100kHz, where the input filter does not kick in yet in but where the regulators already start losing ripple rejection:
block vs amveco with filter.gif

The downside of the flat-pack is that it has a much higher leakage inductance which readily couples into adjacent circuitry. Therfore, a flat-pack is preferred if you have at least a few inches to separate the amplifier from the transformer. Otherwise, the toroidal trafo (and probably a common mode choke with more leakage inductance) is the best option.

Third, the snubbers have been tuned using the excellent Quasimodo test jig - thank you @Mark Johnson! The optimal snubber valuse were 39ohm+150nF for the 700064K and 470ohm+150nF for the FL10/18.

Lastly, D3 and C14 is the aforementioned rectifier providing the PGOOD signal to the protection circuit. Note that the values shown work well if there is a power-on LED connected to the rectifier. If there is no LED or another comparable load, C14 in the power supply and/or R59R60 in the protection circuit would need to have lower value(s) for a quick turn-off.
 
Definitely worth trying though if the load case allows.. in a suitably-safe manner.

I've an active pre-amp PSU I use sim for; it's not just the benefits you provide Mark, but - actually, and depending on the scope for accomodating R1/R2 thermally, and the value of what is shown at C1 - this approach can be used to knock-down a lot of HF, even midrange harmonics off the mains, - but has little to no effect on the output-side impedance (because of course, supply impedance scales as 1/(turn ratio ^2) ; and that gets lost in 'small' transfromers - which also often have significant winding impedances anyway)

Not a cure-all - just, sometimes, a useful tool - if you can (even-roughly) quantify the real behaviour of the dots you are trying to join : )


ETA:
I also use it with my ESLs - not for sound quality - as given the required bias-suply current is so very low, this is also a useful way to limit rate -of-rise if something-untoward happens on their AC Mains input.

I'd hate to have problems in EHV spark-over from Mains transients (given the ~2000% step-up) - when such a simple approach utterly, utterly makes tsuch things ... go away.
 
Last edited:
  • Like
Reactions: 1 user
I hope you don't mind if I played around with the design in LTspice. Just for fun, I changed the silicon in the current gain stage, put it in class A and increased the gain a little, and some pretty damn good results ensured. Excited to see what it can do in real life!

Into 32/150/600R at 1kHz respectively:
1655422528938.png
1655422551746.png
1655422575610.png


Into 32/150/600R at 10kHz respectively:
1655422109976.png
1655422185955.png
1655422233066.png

Test circuit (the 10p capacitor is to simulate an average amount of headphone capacitance):
1655422341929.png
 
  • Like
Reactions: 1 user
Member
Joined 2009
Paid Member
smear out the current pulses which charge C6 and C7, reducing stress on the rectifiers and also slowing down the rising edges of the 2 x f_mains ripple waveform.
can be used to knock-down a lot of HF, even midrange harmonics off the mains,
All that and one more thing - the resistors drop extra voltage in case of overload and, if they are fusible type, serve as fuses.

some pretty damn good results ensured. Excited to see what it can do in real life!
Woo-hoo! You are on the right track.

As long as the output stage stays in class A, the distortion is vanishingly low. When the EF leaves class A, the distortion is still low but becomes clearly visible on the measurements - see the last of the five spectra in post #11. This obviously can only happen when the signal level is high and the load impedance is low. If you intend to use Omicron with low-impedance loads, you may want to increase bias to make sure EF never ever leaves class A, and perhaps to decrease supply voltage to keep the transistors cool.

The preferred way to increase the quiescent current is to increase the 47ohm resistors, not to decrease the 10kOhm (as per original schematic). The reason is that the latter are in parallel with the input impedance of the EF and hence load the output of the 2nd opamp. EF's input impedance is roughly its load times beta, giving low kOhm range with typical low-impedance cans. With two resistors 3.9kOhm each in parallel, the 5532 may see a kOhm or even less. 5532 is quite robust, but there is no need to make its life more difficult by loading it more than necessary.

For simulation purposes, you can even replace the 10kOhm resistors with current sources of about 1.5mA each. It further improves linearity, although in hardware the improvement was negligible.

Modeling distortion at 1kHz may or may not be meaningful because the 5532 model may not produce realistic distortion, and because the loop gain at low single-digit kHz is quite high (at 1kHz, over 120dB in the outer loop and an additional 35dB in the inner loop), producing those 0.000000% results. A more interesting measurement is THD @ 6kHz or IMD @ 19+20kHz, but again, unless you have a realistic NE5532 model, it just gives you an indication. Having said that, the actual hardware is pushing my capabilities to measure distortion.

Also because of high loop gain, Omicron in not particularly fussy about its output stage, and that's why it is so simple. Better transistors may help to add a little linearity, but I would not expect a major breakthrough.

One more thing - getting low distortion in hardware (as opposed to modeling) requires careful attention to construction. I will post more details separately, but in short, I was able to get great linearity with one channel on a solderless breadboard fairly easily. With two channels, it was not straightforward on the breadboard, but a properly designed PCB made construction easy and performance repeatable.
 
Last edited:
I've been busy!
(snip)...perhaps to decrease supply voltage to keep the transistors cool.

The preferred way to increase the quiescent current is to increase the 47ohm resistors, not to decrease the 10kOhm (as per original schematic)...(snip)...With two resistors 3.9kOhm each in parallel, the 5532 may see a kOhm or even less. 5532 is quite robust, but there is no need to make its life more difficult by loading it more than necessary.
You are indeed correct, I completely forgot about this! I've decreased the rails to +-15V and increased the 10k resistors to 15k, and it still performs excellently. I've gone for about
Modeling distortion at 1kHz may or may not be meaningfulbut a properly designed PCB made construction easy and performance repeatable.
Indeed, that's why I also model at 10kHz :)
(snip)...but a properly designed PCB made construction easy and performance repeatable.
I've been working on one! I changed the outputs (again) to SMT types and paralleled them in order to spread the heat load over a larger surface area and ensure that each one is dissipating less current (a standing current of about 84mA per device). Also, my board is entirely SMT and only has one channel, which I know goes against your design philosophy of easy to build THT parts, but there are only a few 0603s and most of the parts are large and easy to solder. Finally, a separate feedback input has been provided to allow feedback to be taken from closer to the output jack, and because of this, the R || L network has also been excluded from my board and is intended to be placed elsewhere. It can be jumpered if not required.

1656047725643.png

1656049348757.png

1656049377914.png

1656049438597.png
 
Last edited:
  • Like
Reactions: 3 users