diyAudio (
-   Analog Line Level (
-   -   ultra-low distortion audio oscillator (

geekysuavo 1st April 2009 04:55 PM

ultra-low distortion audio oscillator
2 Attachment(s)
hi all,

recently i've gotten the itch to map out a design for a circuit/system which would measure the THD+N and frequency response of a homebrew amplifier. the main design goals are low cost, practical assembly, and relatively good performance. essentially, a tuneable harmonic oscillator sends a signal through the amp under test and another signal without modification to audio ADCs, which relay the measured data, via microcontroller, to a PC for FFT analysis.

however, i'm more experienced in digital circuits, so i'm not sure where to start on the oscillator circuit. a PTC- or FET-stabilized Wien bridge seems fairly straightforward, but using 8-bit digital pots on its tuning resistors would yield a frequency output floor of 176Hz. on the other hand, a 16-bit voltage reference (fMIN<1Hz) for a VCO is feasible with digital pots, but most VCOs i've run into function in the MHz-GHz range only.

essentially my question is: how can i build a digitally tuneable harmonic oscillator with low distortion (-75dB or less) and high frequency output resolution (~1Hz)?

thanks alot!
~ brad.

EC8010 1st April 2009 06:05 PM

Low distortion and digipots do not go together. -75dB isn't really low distortion, -100dB would be a better figure to aim for. Why do you need digital control? Linear Technology has an Application Note for a stunningly low distortion oscillator (fixed frequency). I find that it's rare to need to measure distortion as function of frequency when you're designing audio, but spot frequencies like 10Hz, 60Hz, 100Hz, 1kHz and 10kHz are very useful. If you really want to keep it simple, find an old valve Wien bridge audio oscillator and gut it for the variable capacitor and tuning scale, then wrap a modern op-amp circuit around it.

I have to warn you that making your own test equipment is far more expensive than it appears on the surface. You need a wide range of output voltages, so that means making stepped attenuators. Similarly, your ADCs will need the signal to arrive at the right level so as to maintain their dynamic range, and that means you need a variable gain amplifier with a wide range. More stepped attenuators. And the variable gain amplifier must have unmeasurable (on your kit) distortion and low noise. Achievable, but not easy.

You may find it easier to resort to a good soundcard and some simple attenuators...

anatech 1st April 2009 06:20 PM

Hi geekysuavo,
I agree completely with EC8010. However, it's a good exercise to look into. Look around for super low distortion and noise signal amplifiers. They will determine your noise floor and frequency range. That's for starters.

Your project is possible to do. These are made commercially, but cost a great deal of money. The easy way to approach the problem would be to use a PIC processor and interface that to some of the DDS products from Analog Devices. Then you have to work on attenuators and distortion. Of course, you could also calculate your sine and use a D/A converter to generate your signal. More processing, but the bigger PIC processors could probably handle this. Run your data into the D/A at a higher rate to extend the frequency range and relax your reconstruction filter slopes.

Why not continue investigating? I'm sure there are some members here who could really help. I'll mention that I would be interested to see where you go with this.

Would you like to have me move your thread into the digital section? Your analog part of the design might be better here. You can divide your project into the analog and digital sections.


geekysuavo 1st April 2009 08:49 PM

thanks for the insight! moving the thread is fine with me if it would be better answered in the digital forum.

so a setup like this (or similar) would not yield low enough THD+N for a basic homebrew analyzer?

also, how much noise/distortion do analog multiplexers add?

~ brad.

darkfenriz 1st April 2009 08:58 PM

Forget about these 4066 stuff for multiplexers. Why not relays?
Also why don't you subtact input from potion of output in analog domain and sample the result?
You can get around 20-30dB more range for the same bit-depth.

anatech 1st April 2009 09:02 PM

Hi Brad,
Continue your analog stuff here and start one in the digital section to deal with the different ways to create your signal in the digital realm.

A wien bridge oscillator may give good performance, but the other methods will be more stable and settle faster. Changing frequency may shift your amplitude around some. It will certainly "bounce".

A phase shift oscillator may provide lower distortion, there are certainly other methods out there also.

The only way to truly decide what is better (lower THD in practice) would be to build single frequency circuits and measure them. Once you know what effects slight mis-match in components will do, you can judge if the method will work for you. All my wien oscillators are single frequency after trying the variable thing. Mind you, new parts so who knows?


dangus 2nd April 2009 02:12 AM

Any reason why you can't just use Rightmark with a good sound card?

However, maybe there's a way to use VCAs to tune an oscillator, and control 'em with a PLL. This came up when I googled state-variable oscillator...

geekysuavo 2nd April 2009 03:21 AM

thanks for all the info. i'd rather not use something like rightmark, as i use linux and would prefer the learning experience of building such a device, even if it performs less well.

i'm looking at the novel sinewave generation method described here:
but instead of the MAX7400, using a MAX297 would allow for a frequency range of 0.1Hz-50kHz with reasonable distortion. thoughts?

again, thanks for the info!
~ brad.

anatech 2nd April 2009 05:56 PM

Hi Brad,
This idea is well over 15 years old, or older now. National Semiconductor may have the original app. note on it.

The problem? Distortion and residuals.

Good digging though, keep it up. Right now my feeling is that sending audio data to something like a Burr-Brown (TI now) PCM1704 would be your best answer. Just my opinion. Most of the heavy lifting can be done in software and you simply use the D/A to output your signal. Of course, now you have the interesting proposition of using the same system as an arbitrary waveform generator. Now, that's cool! All your basic waveforms can be generated. Sine, sawtooth, square (why not?), ramps both ways (very linear ones) and specialized things like a simulated diode rectification waveform to be able to simulate noise from a power supply.

That would be incredibly useful to most members, myself included. This is a little exciting. Hardware that is totally flexible for any output waveform. What a project!

BTW, look at the specs for the PCB 1704. They are far better than what you will achieve with anything you have seen so far.


geekysuavo 2nd April 2009 08:03 PM


Originally posted by anatech
That would be incredibly useful to most members, myself included. This is a little exciting. Hardware that is totally flexible for any output waveform. What a project!
i would have to agree with that. DDS from the PCM1704 could be paired with analog-to-digital conversion from a PCM1804 to provide a flexible analysis tool, instead of just generating pure tones... though it's basically a novelty soundcard now, lol! ;) i'll look into it, most definitely.

~ brad.

All times are GMT. The time now is 06:28 AM.

Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2017 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 18.75%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2017 DragonByte Technologies Ltd.
Copyright ©1999-2017 diyAudio