Low-distortion Audio-range Oscillator

Member
Joined 2004
Paid Member
It won't help much. The input nouse is the combination of the Jfet (X2 since its a diff pair) plus the bipolar diff pair again plus the series input resistor plus the effective impedance of the feedback network. They did a real good job of dialing them all in together.

if you have an effective resolution bandwidth of 1 Hz then the noise floor will be around 4 nV in the 1 Hz band. To put that into perspective its approx -167 dBV so if your harmonic is -170 dB below your fundamental and your source is 1V it will be lost in the noise. Source at 3V (+ 10 dBV) and harmonics at -150 and your FFT resolution is around 1 Hz the harmonics should be around 20 dB above the noise floor, should it all be 'perfect'. However there are other stages with noise floors that may limit the system. I have not really looked at all the stages. A measurement of the input noise floor may well be different from the noise floor with a signal.

We can go further over on the Shibasoku thread soon.
 
Using REW´s latest beta as of today with Coherent averaging and "9-term minimum side lobe cosine sum window to the RTA, side lobes 235 dB down" I get even lower THD.

Coherent averaging is just amasing! Look at how clearly H2 and H3 are presented.

H2 = -164 dB
H3 = -167,6 dB
THD = -162,2 dB (H2 ..H21)
 

Attachments

  • Viktor sine and viktor dual notch Tracker Pre 48kHz 24bit-10.png
    Viktor sine and viktor dual notch Tracker Pre 48kHz 24bit-10.png
    163.7 KB · Views: 467
Coherent averaging

It is accurate? :D
I am always skeptical.
It works on the premise that the phase of the fundamental has been exactly determined for each FFT record. Not that easy when the records don't contain an integer number of cycles. Moreover, it doesn't for work for frequencies not equal to one of the harmonics.

Cheers,
E.
 
Edmond: But params of the fundamental within the samples block fed to FFT do not have to be measured by the FFT itself - you use that, I do, and apparently REW does too.

Generating 1555.293Hz@-1dB signal with SoX

Code:
sox -V -n -t alsa arta_loop synth 10000 sine 1555.293 gain -1

REW rounds the measured value to 1555.29Hz in the distortion display - 8k FFT with bin width 6Hz. I would assume the phase is measured the same way. We can ask John how the fundamental is actually measured - bin interpolation, sine fitting, etc.

I use sine fitting (amplitude and phase) and it is very precise using just a few incomplete periods of samples.
 

Attachments

  • decimal.png
    decimal.png
    205.7 KB · Views: 577
  • tool.png
    tool.png
    33.1 KB · Views: 555
Last edited:
Edmond: But params of the fundamental within the samples block fed to FFT do not have to be measured by the FFT itself - you use that, I do, and apparently REW does too.
Hi Pavel,

I don't know how John has done it, but I have calculated the fundamental phase outside the FFT routines, i.e. by means of a separate algorithm. It's mathematically correct (provided that the signal is not too much contaminated by noise etc.).

Generating 1555.293Hz@-1dB signal with SoX

Code:
sox -V -n -t alsa arta_loop synth 10000 sine 1555.293 gain -1
REW rounds the measured value to 1555.29Hz in the distortion display - 8k FFT with bin width 6Hz. I would assume the phase is measured the same way. We can ask John how the fundamental is actually measured - bin interpolation, sine fitting, etc.


I use sine fitting (amplitude and phase) and it is very precise using just a few incomplete periods of samples.
That's a clever solution, congratulations!

edit: So it is still accurate, even when the records don't contain an integer number of cycles?

Cheers, E.
 
Last edited:
Using info from the FFT works fine for me. Surprisingly enough even just using the phase of the nearest bin to the fundamental is correct to within a few millionths of a degree, typically. For centre frequency I use the centroid of the bin values around the peak, sum(bin freq * bin magn sq)/sum(bin magn sq).
Sure, it works fine. With this method I got even lower errors: a few billionth of a degree (depending on the record length, of course)
 
More measurements of Victor's oscillator

I’ve done some detailed distortion measurement of Victor’s oscillator. The results underscore the extremely low distortion of this oscillator. I wanted to push the envelope and see if I could measure its distortion. I put together a passive twin-T filter with a frequency response equalizer to correct for the attenuation of the harmonics caused by the twin T. It corrects the response to be flat within +/- 0.2 dB from 2 kHz to beyond 10 kHz. The equalizer has a high-pass characteristic and does not degrade the depth of the notch – it actually improves it a few dB.

The twin-T also has a calibrated limited loss of 50 dB at the 1 kHz notch frequency. However, the circuit following the twin-T has 50 dB of gain, so the net gain at the fundamental is unity. This gives the subsequent THD analyzer adequate fundamental for auto-tuning. The gain at the harmonics is 50 dB, so at the end of the day this circuit improves analyzer dynamic range by a known 50 dB. The compensated twin-T notch and its amplifiers effectively constitute a 50-dB distortion magnifier.

After running the output of the twin-T circuit through the THD analyzer, I took the monitor output of the analyzer into a QA-401 for FFT analysis. I set the FFT for about 262,144 points and 8 averages to tamp down the noise as much as possible. The 50 dB of distortion magnification took the noise and distortion residuals of the analyzer and FFT out of the picture.

The distortion measurement noise floor of the system after the gain corrections was around -157 dB. The noise floor was dominated by the thermal noise of the resistors in the passive twin-T (10k arms). The oscillator was set at 3 V RMS output. No harmonics from Victor's oscillator were visible above the noise floor. Quite amazing.

To verify that I got the numbers and scaling right, I injected a tiny 2500-Hz pilot signal into the oscillator output through a 10,000:1 divider consisting of a series 2M resistor and the 200-ohm output resistance of the oscillator. I set the level of the 2500 Hz oscillator so as to see 0.32% THD (-50 dB) on my THD analyzer. This made the 2500-Hz injected pilot signal to be at -100 dB as a reference point on the FFT display. The noise floor on the FFT display was about 57 dB below the pilot, confirming an approximate -157 dB measurement floor in the vicinity of 3 kHz. The noise floor was slightly higher at –152 dB at 2 kHz.

As a sanity check, I then loaded the output of the oscillator with a 1-k resistor with the expectation of increasing its distortion to come out of the noise floor. This resulted in easily-visible third harmonic distortion of about –145 dB, with second still in the noise. I put QA-401 markers on the pilot tone and the third harmonic. These markers conveniently provide a readout of the difference between the –100 dB pilot and the third harmonic. I then tried successively higher load resistances and the third harmonic marker followed the harmonic into the noise. Below are the distortion numbers as a function of load:

1.0k load: -145 dB
2.2k load: -147 dB
3.3k load: -149 dB
4.7k load: -152 dB
10k load: -154 dB
no load: -156 dB (load is actually that of the twin-T network)

I sanity-checked these numbers by measuring other oscillators that I was familiar with using the same setup, such as my THD analyzer oscillator that comes in at about –130 dB, my stock HP-339A and a Tek SG-502. All of the numbers made sense and were easily seen above the measurement floor. Victor’s oscillator starkly put them all to shame.

Cheers,
Bob
 
Member
Joined 2004
Paid Member
OK. Now I do need to get a newer version of Victor's oscillator. Mine is an early example from when he was first offering them. He has made improvements and they are better now.

Mine is run off of batteries to ensure the lowest residuals. And hum is not coming from the oscillator since it has no leakage path back to power.

There were made with my Shibasoku AM70A and 725D. Both are pretty exceptional analyzers. The 725D amazing. The AM70A is too complex to easily bring it to the same level. However its internal oscillator is still quite remarkable.

In any case the internal autoscaling makes setting the scaling on the QA401 difficult. I added the -100 dB marker using a separate oscillator and a GR 1346 microvolter (essential for this task). When I turn off the marker the analyser would rescale so I had to leave the marker (2500 Hz) on.

The harmonics seem to be in the -140 range. tomorrow if time permits I'll set up the passive notch and try to get a measurement. however i may run into residual noise issues.
 

Attachments

  • AM70A + Victor distortion residual Scaled with marker.png
    AM70A + Victor distortion residual Scaled with marker.png
    55.6 KB · Views: 518
  • Victor + -100dB marker AD725D.png
    Victor + -100dB marker AD725D.png
    62.4 KB · Views: 523
Member
Joined 2004
Paid Member
Correct AM70A + marker. You can see all the "spurs" limiting the measurement. Keep in mind this is with 600 Ohm load on the 600 Ohm output of my victor oscillator and all the spurs are below -135.
 

Attachments

  • AM70A + Victor distortion residual Scaled with marker.png
    AM70A + Victor distortion residual Scaled with marker.png
    61.4 KB · Views: 428
AX tech editor
Joined 2002
Paid Member
I’ve done some detailed distortion measurement of Victor’s oscillator.

[ ... ]

1.0k load: -145 dB
2.2k load: -147 dB
3.3k load: -149 dB
4.7k load: -152 dB
10k load: -154 dB
no load: -156 dB (load is actually that of the twin-T network)

Bob

Bob, thanks for a very thorough investigation. Your twin-tee + compensation amp is intriguing ...

Jan
 
Bob, thanks for a very thorough investigation. Your twin-tee + compensation amp is intriguing ...

Jan

Some might be interested in the compensated twin-T measurement circuit built to measure the distortion of Victor’s oscillator. This twin-T circuit includes 50 dB of amplification and is placed in front of a THD analyzer whose distortion output is fed to an FFT. Here is a brief description.

The compensated twin-T filter comprises a passive 1 kHz twin-T filter followed by two state variable filters (SVF) that equalize out the twin-T loss at 2 kHz and 3 kHz. This makes the measurement more straightforward and does not rely on an active twin-T to obtain flat frequency response to harmonics.

The first SVF is configured as a high pass filter with high enough Q to cause peaking in the vicinity of its high pass corner. This filter is tuned to 1.6 kHz. This peaking is most responsible for correcting the loss of the Twin-T filter at the 2nd and 3rd harmonic frequencies. However, the shape of its peaking curve is not a sufficiently close match to correct both the 2nd and 3rd harmonic amplitudes to the desired level of accuracy.

The second SVF cleans up this error. It is configured as a bandpass filter whose center frequency is at 2.5 kHz. It is fed from the output of the HPF. It is arranged so that its output is added to the output of the first HPF SVF in forming the final equalized output. It thus augments the frequency response in the vicinity of 2-3 kHz.

The result is a twin-T filter system that is accurate to less than +/- 0.2 dB at the 2nd and 3rd harmonic frequencies and at all higher harmonic frequencies out to the tenth. The gain of this twin-T high-pass equalizing post filter is less than unity at the fundamental frequency, so it does not degrade the depth of the passive twin-T notch. In fact, it improves it by a few dB.

Low-noise amplifiers precede and follow the compensating filter so that the net gain at and above 2 kHz is 50 dB. Distortion products are thus magnified by 50 dB.

The passive twin-T notch filter depth is deliberately limited by a calibrated amount so that the gain of the system is unity at 1 kHz. This is done by taking the twin-T node that is normally at ground potential and placing a parallel R-C network of low impedance in series with it. The time constant of this network is set to be the same as those in the twin-T network so that its presence does not shift the frequency of the notch. The impedance is set so that the net gain at 1 kHz is unity.

The overall circuit thus has unity gain at the fundamental and 50 dB of gain at all harmonics. The signal can thus be fed into a distortion analyzer and the analyzer can auto-tune to the fundamental. The reading on the analyzer will show a value of THD that is 50 dB higher than it really is. The circuit is thus a 50 dB distortion magnifier.

The boost in distortion and signal level sent into the analyzer is such that noise and residual distortion in the analyzer is taken out of the picture. Noise of this equalized twin-T arrangement is the limiting factor. Indeed, the dominant noise source in the measurement is the thermal noise of the resistors in the passive twin-T notch filter (10k arms). This was verified by LTspice noise simulation of the twin-T filter.

To suppress the noise, the distortion monitor output of the analyzer is fed to a QA-401 for FFT analysis. An FFT of 262,144 samples and 8 averages is employed to force down the noise floor of the measurement.

A typical measurement is done with a very small 2500-Hz “distortion” pilot tone injected by a 2-Meg resistor into the approximate 200-ohm output impedance of the oscillator. This pilot tone provides a reference “distortion” of –100 dB. A spectral line 50 dB down from this reference will correspond to a distortion level of –150 dB. The noise floor in the complete measurement arrangement is about –157 dB when the above-mentioned FFT is used.

Cheers,
Bob
 
I'm guessing this 50dB distortion amplifier would also have benefit in the setup of any soundcard style distortion and noise measurement rig.

For a typical soundcard setup, the soundcard's generator and signal input circuitry are assessed in series in loopback, and although the sum can be tweaked for effectively zero HD (using eg. REW), that does not confirm that the signal generator output has been tweaked for effectively zero HD.

Using the 50dB distortion amp would allow the signal generator distortion harmonics to be more effectively nulled, and hence provide an alternative low distortion signal source (at least for the single reference frequency being tweaked).
 
Using the 50dB distortion amp would allow the signal generator distortion harmonics to be more effectively nulled, and hence provide an alternative low distortion signal source (at least for the single reference frequency being tweaked).

I am afraid the series of filters will significantly shift phases of the generator harmonics. Distortion compensation on generator side would have to take the chain phase shifts into account - the chain transfer at every compensated harmonics would have to be precisely measured in advance. And if such information is already available, DAC/ADC contributions to the overall distortion can be directly calculated. But for that a simple RC filter and a fine-tunable voltage divider would do.
 
I would have thought that a software based harmonically adjusted (nulled) generator output signal would pass through the 50dB distortion amplifier such that the following input stage of the soundcard rig would then add its own level of harmonic distortion components, which should be circa 50dB lower if both ends of the soundcard added similar distortion harmonic levels.

I was thinking that adjustment of the generator harmonics (in this closed loop) would allow a significantly better null of the generator harmonic components, even though there would be some phase variability with how the soundcard input circuitry distortion components were modified.
 
Last edited: