[sdiy] Weaver frequency shifter

rburnett at richieburnett.co.uk rburnett at richieburnett.co.uk
Thu Apr 28 14:52:30 CEST 2022

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 Eric:


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!


More information about the Synth-diy mailing list