Low-distortion Audio-range Oscillator

... a detailed reference for this text?

The IJCTA only has one article by Williamsen so it seemed unnecessary to type the full reference.
But the title is "RC Oscillator Admits Negative Frequency", published 2011.
This refers to the ability to tune continuously thru zero to -ve frequency, say for a motor controller to run in reverse.
There is some distortion trade-off, so not optimal for audio, but an educational exposition.
I have an authorized copy if you want it.

I have had more time to think about the Return Ratio of the leveler loop.
Now I am a little more confident that a linearized treatment is all we need for a test instrument that requires only a constant output.
Filanovsky looks at this, if the abstract is accurate, need to find a copy.

Best wishes
David
 
Disabled Account
Joined 2012
Ok.... then the newer KH4400 is a better unit if you can find one on eBAY. I was suggesting starting with that one...... settling time is fast enough for audio at low freqs and lower THD than older models ..... which can also be improved slightly....... As another alternative ready made low distortion generator.

However, with some IC changes and trimming it can be a little better. It is not as low in distortion as the two being designed here.


THx-RNMarsh
 
Last edited:
...I now recall it!

So you have read it and can comment?
It's unusual that the leveler loop dynamics are decoupled from the oscillator frequency.
So it has nice behavior that it settles within the same time even at low frequency.
Can you see how to do this with a more conventional structure?
The author is very helpful but I would like to clarify it in my own mind.

Best wishes
David
 
Member
Joined 2004
Paid Member
I was suggesting starting with that one...... settling time is fast enough for audio at low freqs and lower THD than older models ..... which can also be improved slightly....... As another alternative ready made low distortion generator.
THx-RNMarsh

Richard- the discussion was around settling time vs. distortion. The old KH4024 is an example of a very fast selling time solution that has a small impact on distortion and still has very stable output. The goal was to learn how they solved the problem. Its not a unit to make an effort to get or improve. They are just too rare and and while good not in this league.
 
Richard- the discussion was around settling time vs. distortion. The old KH4024 is an example of a very fast selling time solution that has a small impact on distortion and still has very stable output. The goal was to learn how they solved the problem. Its not a unit to make an effort to get or improve. They are just too rare and and while good not in this league.

Hi Demian,

When discussing settling time, it seems that we must use a common metric. Something like how many cycles after a range change to settle to within 1 dB or even some tighter amplitude range. Is there a commonly accepted metric for this? If not, what do you think it should be?

It might also be useful to specify settling for a frequency change within a given range (which might or might not be smaller.

BTW, it should probably specified at the usual worst-case lowest frequency on a given range.

Alternatively, time to settling to within some dB metric could be specified. The worst case putting it this way is likely to be at the lowest frequency setting of the generator, such as 10Hz or 20Hz.

Time to settle is most important for automated measurements.

For distortion measurements, settling time of the THD analyzer auto-tune circuits to within 1dB of the final distortion value might be the larger, and governing, time.

Cheers,
Bob
 
...it seems that we must use a common metric... like how many cycles... to settle to within 1 dB or even...
Time to settle is most important for automated measurements.

Hi Bob
You would need to quantify the disturbance from which the oscillator must settle because there is also the factor of sensitivity, to component or level mismatch.
For example, a swept Wien B. oscillator is very sensitive to mismatch between the two variable resistance halves, as every user learns.
So the total inconvenience is a product of the slow time to settle and the sensitivity of the leveler loop to excitation.
It was this that prompted me to look at oscillator theory in the first place.
I think the leveler loop can be characterized just like any other feedback loop, either in the time or frequency domain.(1)
But I haven't seen much analysis of sensitivity, so I have done some work for myself but it's slow.
How badly the leveler is perturbed is also a function of detailed implementation of the oscillator, like Bruce Hofer's and your work to ensure that capacitors are already at the correct potential before a frequency decade switch.
I recall there was some discussion of this earlier in the thread but it's hard to find in so many posts, pointers welcome.

Best wishes
David

(1) Actually, your oscillator has some non-linear circuitry in the leveler so it's a bit more complicated.
Was this empirically adjusted?
I have not yet worked out how do a nice Return Ratio plot of the leveler in LTSpice.
 
Last edited:
Hi Bob
You would need to quantify the disturbance from which the oscillator must settle because there is also the factor of sensitivity, to component or level mismatch.
For example, a swept Wien B. oscillator is very sensitive to mismatch between the two variable resistance halves, as every user learns.
So the total inconvenience is a product of the slow time to settle and the sensitivity of the leveler loop to excitation.
It was this that prompted me to look at oscillator theory in the first place.
I think the leveler loop can be characterized just like any other feedback loop, either in the time or frequency domain.(1)
But I haven't seen much analysis of sensitivity, so I have done some work for myself but it's slow.
How badly the leveler is perturbed is also a function of detailed implementation of the oscillator, like Bruce Hofer's and your work to ensure that capacitors are already at the correct potential before a frequency decade switch.
I recall there was some discussion of this earlier in the thread but it's hard to find in so many posts, pointers welcome.

Best wishes
David

(1) Actually, your oscillator has some non-linear circuitry in the leveler so it's a bit more complicated.
Was this empirically adjusted?
I have not yet worked out how do a nice Return Ratio plot of the leveler in LTSpice.

Hi Dave,

You are exactly right about the issue of how big the frequency change perturbances are as a function of component tolerances, etc. For this reason, a given model of oscillator might have different worst-case settling time from another of the same model. Clearly, in a state variable oscillator with capacitors that are switched for range change, those capacitors should be closely matched. Ideally, the required agc voltage in an oscillator will be identical for all ranges and frequencies, but this will not be the case in practice. In oscillators that use switches for both R and C, make-before-break switches might also minimize the perturbance. At the higher frequencies, the slight phase delay in the op amp integrators in an SVO can also result in a different needed agc voltage.

The nonlinearity in my SVO implementation, i.e., the speed-up diodes in the agc path for large error, was arrived at empirically, as were the other component values in the agc system. I could probably better optimize it if I did it again in the present.

If I was re-doing the oscillator today, I would use the SVO quadrature outputs to form a 4-wave rectifier as opposed to the full-wave rectifier I used in the original implementation. This doubles the agc ripple frequency right off the bat.

Cheers,
Bob
 
Member
Joined 2004
Paid Member
Hi Dave,

If I was re-doing the oscillator today, I would use the SVO quadrature outputs to form a 4-wave rectifier as opposed to the full-wave rectifier I used in the original implementation. This doubles the agc ripple frequency right off the bat.

Cheers,
Bob

I proposed a scheme some time back using an LM339 as 4 active rectifiers
with a peak response and a controllable decay. Not quite a sample and hold but still an improvement, using a very cheap part. it takes advantage of the internals which are effectively a fast amplifier with a pull up only output. All you need is a resistor for feedback and a cap. Since the input pair is designed to operate with a high differential it does not get stressed doing this and it has a pretty high open loop response so it follows to a very high frequency.

How to specify settling time is a challenge as well as measure it. I would use a 7L13 to see the amplitude variations (the KH4100 tells how to do this) but defining transient and time is not obvious. The older KH4000 was visually instant, the KH4400 takes 5-10 cycles to settle visually.

Ideally you would measure the output amplitude's response to line (ac power), load, temperature etc. as well as frequency response and distortion and noise etc. If the response is not flat then is the change a transient or an error when changing frequency?

RE Noise- is the noise floor the same when the oscillation is stopped as when its running? As the distortion gets lower the noise floor will become a limitation.
 
Clearly, in a state variable oscillator with [switched] capacitors...those capacitors should be closely matched

I want to find the exact response of an SVO to a mismatch in those parts, to determine if it is different to a Wien B..
For a Wien B. I can calculate that a delta in the capacitors leads to a certain delta in amplitude that the leveler loop must correct.
For a SVO the delta in the capacitors leads to a phase delta rather than in amplitude, and I find this harder to conceptualize.
I have not seen this analysed so I have started to work it out myself, but I would happily skip it if you (or anyone else) knows the answer or has a reference.
Does Bruce Hofer's AES paper address this aspect? or only cover suppression of leveler distortion by the SVO.

... make-before-break switches...

This occurred to me too, I am surprised I have not noticed it mentioned elsewhere.

...the oscillator today, I would use the SVO quadrature outputs to form a 4-wave rectifier as opposed to the full-wave rectifier I used

The quadrature outputs would have to be accurately matched, of course.
In that case why not a Sin^2 + Cos^2 detector with theoretically no ripple at all?

I proposed a scheme ...LM339 as 4 active rectifiers

Same question as to Bob, why not Sum Of Squares?
An LM13700 looks to make a decent dual squarer but I have never tried one.
You are evidently very experienced, any advice on this IC?

...the noise floor will become a limitation.

A few posts back I pondered on the AD797 as the op-amp of choice, partly for this reason.
I have since read more of the vast flood of prior posts and found, predictably, that this was already discussed a bit.
So, you think the AD797 to keep the noise down?

Best wishes
David
 
Last edited:
This occurred to me too, I am surprised I have not noticed it mentioned elsewhere.
I'd say first of all you need to use a good ranging topology. It is wise to arrange the range capacitors such that they are incrementally added. For example, the highest range is formed by a 111 pF capacitor; for the second range, a 1 nF cap is added (not substituted); for the third range a 10 nF cap is added etc.

With this topology, switching to a higher range doesn't add a substantial disturbance as the remaining capacitance was used before and is therefore correctly charged. To minimize the disturbance when switching to a lower range (which adds "cold"/uncharged capacitance) it helps to pre-charge the capacitors such that they are "in quadrature" before being switched in. This has been done already in the Tek SG 505 (see http://www.diyaudio.com/forums/equipment-tools/205304-low-distortion-audio-range-oscillator-64.html#post3196154), and I also recall a discussion by Barrie Gilbert (in the context of RF quadrature VCOs).

Switching the resistors of the integrators does not seem to require any particular attention; in my implementation, a modest disturbance is all that's seen in the first cycle after switching.

Samuel
 
I want to find the exact response of an SVO to a mismatch in those parts, to determine if it is different to a Wien B..
For a Wien B. I can calculate that a delta in the capacitors leads to a certain delta in amplitude that the leveler loop must correct.
For a SVO the delta in the capacitors leads to a phase delta rather than in amplitude, and I find this harder to conceptualize.
I have not seen this analysed so I have started to work it out myself, but I would happily skip it if you (or anyone else) knows the answer or has a reference.
Does Bruce Hofer's AES paper address this aspect? or only cover suppression of leveler distortion by the SVO.



This occurred to me too, I am surprised I have not noticed it mentioned elsewhere.



The quadrature outputs would have to be accurately matched, of course.
In that case why not a Sin^2 + Cos^2 detector with theoretically no ripple at all?



Same question as to Bob, why not Sum Of Squares?
An LM13700 looks to make a decent dual squarer but I have never tried one.
You are evidently very experienced, any advice on this IC?



A few posts back I pondered on the AD797 as the op-amp of choice, partly for this reason.
I have since read more of the vast flood of prior posts and found, predictably, that this was already discussed a bit.
So, you think the AD797 to keep the noise down?

Best wishes
David

Hi David,

With regard to R-C mismatch in an SVO causing agc disturbance on range change, one way I like to think of it is that the level of the agc feedback signal off of the first integrator may become mismatched with the level of the signal from the other integrator that feeds the agc rectifier when the range is changed, since mismatch will result in a difference in the gain of the integrators at the oscillating frequency.

Yes, the quadrature outputs would have to be matched for the use of them both in the rectifier to be optimal, but if good R-C matching is used to minimize disturbance at range change, then these amplitudes should be quite close, and trimming might not be necessary to get 90% or more of the benfit of this approach. Note that I trimmed the 2 halves of the FWR signal in my design.

There is another possible issue here, however. It has to do with which integrator output governs the oscillator output amplitude. We normally take both the oscillator output signal AND the signal to the rectifier from the second integrator. This allows for rock-solid accurate control of the output signal level.

In in a quadrature combing rectifier, if the output of the first integrator slightly dominates under some conditions of mismatch, then the output amplitude will lose some accuracy. This suggests that it might indeed be desirable for the output of the first integrator to be deliberately attenuated by perhaps 1% before application to the rectifier, so as to guarantee that the output of the second integrator dominates the determination of the output amplitude. The added ripple from this deliberate mismatch would likely be extremely small (especially compared to a simple FWR).

I lean toward the rectifier approach as opposed to the sum of squares approach simply because of the added complexity of the latter.

Cheers,
Bob
 
... capacitors such that they are incrementally added.

Yes, this had also occurred to me. It's not obvious on my copy whether Bob's oscillator does this but the Kleinschmidt oscillator is a descendant and certainly does.

... the capacitors such that they are "in quadrature"

This was what I had in mind when I recalled there had been discussion but couldn't remember the exact post. Thank you. It's a neat trick, I plan to use it shamelessly.

... the resistors of the integrators do... not seem to require any particular attention

Switched resistors match much better than swept potentiometer halves, naturally.
So I understand it's not a problem for your switched frequency oscillator but have you ever analysed whether a mismatch creates a smaller disturbance in a SVO than, say, a Wien?
I would like to have a sweep option if the trade-offs aren't too bad.

Best wishes
David
 
Yes, the quadrature outputs would have to be matched for the use of them both in the rectifier to be optimal... then these amplitudes should be quite close... Note that I trimmed the 2 halves of the FWR

My first impression is that if you needed to trim the 2 halves of a FWR then you would probably need to trim the 4 quarters of a 4PhaseRectifier.
Obviously depends on how critical it is, will think more.

There is another possible issue here...This allows for rock-solid accurate control of the output...

I have an idea for an improved 4 quadrant detector and this is an issue I have also tossed over in my mind. It certainly needs some consideration.

I lean toward the rectifier approach as opposed to the sum of squares approach simply because of the added complexity of the latter.

An LM13700 provides 2 squarers in one DIP so it doesn't look any more complex, as far as I can see.
But I haven't done it yet and that makes it look simple, naturally;)
Thanks for the comments.

Best wishes
David
 
A couple of slave op amps can be used to pre-charge the unused caps. This will add current usage to the design but your caps will be close to exactly the correct charge during switching.

I had a static charge scheme in my oscillator but had to removed it. The garbage on the rails was getting back into the oscillator. A separate regulator or RC filtering of the rails voltage to charge the unused caps will solve the problem but I'm not sure it's worth it.