[sdiy] Weaver frequency shifter

David G Dixon dixon at mail.ubc.ca
Thu Apr 28 20:46:29 CEST 2022

Richie, I have a failsafe method for building Dome filters.  First, I run my
model to find the least-error RC factors.  Then I select capacitor values
(almost always powers of 10 -- 1nF, 10nF, 100nF, 1uF) and select pairs of 1%
resistors in series which gets me the closest to the target RC values.  I
have a very convenient Excel macro that finds the 1% (E96) resistor value
just below the target, and I also use it to find the best small-value
resistor to take up the slack.  The final step is that I hand-sort 5% film
capacitors and separate them into 0.2% bins.  Then, to get the most accurate
filter, I can choose all capacitors with the same mantissa (for example,
0.98nF, 9.8nF, 98nF, 980nF).  If I start runnning out of caps, I can make
sets with fixed offsets to maximize the use of my inventory, and I can
change the small resistor values of the pairs to best-fit these offset
mantissa sets.  The offsets are constant for a large number of caps, and to
find the best offsets, I just have to look at the modes of the distributions
and take the offsets as the differences between the mantissa modes.

It sounds like a lot of effort, but now that I have a decent inventory
spreadsheet, it's actually pretty easy.  The big effort is when I buy
several hundred of each cap value and have to hand-sort them.  It takes a
couple hours to sort 1000 caps into 0.2% baggies.

Anyway, the final result is that my Dome filters are extremely accurate -- I
scan the entire range of frequencies and the Lissajous figures are basically
perfectly circular throughout.

-----Original Message-----
From: Synth-diy [mailto:synth-diy-bounces at synth-diy.org] On Behalf Of
rburnett at richieburnett.co.uk
Sent: Thursday, April 28, 2022 5:53 AM
To: Eric Brombaugh
Cc: synth-diy at synth-diy.org
Subject: Re: [sdiy] Weaver frequency shifter

[CAUTION: Non-UBC Email]

Interesting replies.  Thank you guys.

David, It's interesting that you got such dramatically better results with
the phase-shifting method than the Weaver method when implemented with
analogue electronics.  You must have had fun building those phase-shifting
networks!  My understanding is that the original motivation for Weaver's
method was that it was easier to build decent
(matched) low-pass filters with a deep stopband using the analogue
electronics available at the time, than it was to build the two chains of
all-pass filters required to ensure a precise 90 degrees phase shift between
the two audio paths.  (Granted, I know it's not quite that simple...  The
oscillators in the Weaver method also have to have outputs that are in
precise quadrature too, to get good results.)

Eric, it is interesting hearing things from a comms guy's perspective too,
because the people around me in my day job do underwater comms stuff.  I can
see the equivalency in the different methods of SSB generation in that they
ultimately all achieve the same goal of generating the analytical signal
then mixing it up to some other frequency.  And when comparing the total
number of poles required in either a phase-shift network or the Weaver's
low-pass filters they both have a more-or-less similar requirement for lots
of poles close to the unit circle!

On reading about the Weaver method of frequency shifting (SSB
generation) my thought process went something like this...

The suppression of the unwanted sideband using the phase-shifting method is
dependent largely on keeping everything in quadrature.  It's easy to make
precise quadrature oscillators (in analogue or digital,) but making two
copies of the audio input signal that are always precisely 90 degrees apart
is always an approximation whether done with an analogue or digital
phase-shifting network.  Now the Weaver method circumvents this "problem" by
changing it into a requirement for two precisely matched *low-pass* filters
who's stop-band attenuation ultimately determines the degree of suppression
for the unwanted sideband, if I understand things right.  This is exactly
what digital filters are good at!  It's easy to get deep stop-band
attenuation, a steep transition band (given enough poles) and both filters
will be *exactly* matched if they are implemented by the same algorithm with
the same filter coefficients. (state dependent rounding errors aside ;-) )

So, from this train of thought it seemed that a modern digital
implementation of the Weaver method might actually yield better performance
(superior sideband suppression) than the digital phase-shifting method for
audio manipulation applications?

Eric, are you implementing your Hilbert transformer as an FIR filter in your
comms stuff to maintain linear-phase?  The guys in the comms group here
always balk at my suggestions to use IIR filters because of the undesirable
non-linear phase response.  But the two low-pass filters in the Weaver
method seem to be crying out for implementation as Elliptic IIR filters on a
digital platform because of the guaranteed matching, provided the phase
response is tolerable.

I presume you have already seen this implementation of an IIR Hilbert-pair


I like the simplicity and degree to which he has optimised the
implementation, but the 40dB opposite-sideband rejection figure isn't
fantastic.  I remember having a discussion with Olli about this years ago,
and he tried to explain the equivalence of these two chains of IIR all-pass
filters to a single complex half-band low-pass IIR filter.  But something
never quite clicked for me, and I think there was a step I was missing
somewhere in my understanding!

Synth-diy mailing list
Synth-diy at synth-diy.org
Selling or trading? Use marketplace at synth-diy.org

More information about the Synth-diy mailing list