<html><body><div style="font-size: 12pt; font-family: "times new roman", "new york", times, serif; color: rgb(0, 0, 0);"><div>In the dome filter case the advantage of the +45 / -45 is that the group delays through both filters are nearly the same.</div>
<div> </div>
<div>I don't know if that is true of a digital implementation, but the 0 / 90 degree probably won't work in the analog realm.</div>
<div> </div>
<div>I thought of using a frequency shifter as part of a pitch to voltage converter to try and eliminate the lag usually present.</div>
<div>My (bad) idea was to shift up and then convert the higher frequency.  But in order to convert I'd need to pretty much</div>
<div>get the input signal to be sinusoidal (not easy) and the group delay for a reasonable dome filter was as long or longer that my</div>
<div>fundamental waveform.  If wishes were horses...</div>
<div> </div>
<div>Harry</div>
<div> </div>
<div>

<div id="OLK_SRC_BODY_SECTION">
<div id="OLK_SRC_BODY_SECTION">
<blockquote style="margin: 0 0 0 .8em; border-left: 1px #ccc solid; padding-left: 1em;"><hr id="MESSAGE_DATA_MARKER"><strong>From: </strong>Eric <synth-diy@synth-diy.org><br><strong>To: </strong>rburnett <rburnett@richieburnett.co.uk><br><strong>Cc: </strong>synth-diy <synth-diy@synth-diy.org><br><strong>Date: </strong>Thursday, 28 April 2022 10:46 AM EDT<br><strong>Subject: </strong>Re: [sdiy] Weaver frequency shifter<br><br>In my communications applications I generally ended up using an <br>"analytic signal converter" design that combined a Hilbert FIR with the <br>necessary Fs/4 modulation - sort of like the first two functions in a <br>Weaver system. This was usually pretty easy to do in digits and I've <br>built a number of them over the years in both ASIC and FPGA.<br><br>For my synth shifters I have always used the split IIR approach as <br>described by Niemitalo at the site you referenced. I also was <br>unsatisfied with the bandwidth and rejection he describes so with a <br>little optimization work it was possible to augment the filters and <br>improve both parameters significantly. I've been able to get such <br>systems running on fairly low-end hardware, including dsPICs and the <br>RP2040 module I mentioned here earlier. I'm aware of several cases where <br>this approach has been implemented with the Spin FV1 part that's popular <br>for guitar pedals and effects modules.<br><br>As far as the equivalence of the split filter to a single complex <br>filter, it's boils down to this: you have a real signal and you want to <br>create from that a complex signal with proper positive and negative <br>frequency components. One way to do this is to use the raw signal for <br>the I channel and a single all-pass filter with a phase shift of 90deg <br>for the Q channel. Another way is to phase shift the raw signal with two <br>filters by +45 and -45 degrees - you still end up with an effective <br>90deg shift between the resulting I and Q.<br><br>Eric<br><br>On 4/28/22 05:52, rburnett@richieburnett.co.uk wrote:<br>> Interesting replies.  Thank you guys.<br>> <br>> David, It's interesting that you got such dramatically better results <br>> with the phase-shifting method than the Weaver method when implemented <br>> with analogue electronics.  You must have had fun building those <br>> phase-shifting networks!  My understanding is that the original <br>> motivation for Weaver's method was that it was easier to build decent <br>> (matched) low-pass filters with a deep stopband using the analogue <br>> electronics available at the time, than it was to build the two chains <br>> of all-pass filters required to ensure a precise 90 degrees phase shift <br>> between the two audio paths.  (Granted, I know it's not quite that <br>> simple...  The oscillators in the Weaver method also have to have <br>> outputs that are in precise quadrature too, to get good results.)<br>> <br>> Eric, it is interesting hearing things from a comms guy's perspective <br>> too, because the people around me in my day job do underwater comms <br>> stuff.  I can see the equivalency in the different methods of SSB <br>> generation in that they ultimately all achieve the same goal of <br>> generating the analytical signal then mixing it up to some other <br>> frequency.  And when comparing the total number of poles required in <br>> either a phase-shift network or the Weaver's low-pass filters they both <br>> have a more-or-less similar requirement for lots of poles close to the <br>> unit circle!<br>> <br>> On reading about the Weaver method of frequency shifting (SSB <br>> generation) my thought process went something like this...<br>> <br>> The suppression of the unwanted sideband using the phase-shifting method <br>> is dependent largely on keeping everything in quadrature.  It's easy to <br>> make precise quadrature oscillators (in analogue or digital,) but making <br>> two copies of the audio input signal that are always precisely 90 <br>> degrees apart is always an approximation whether done with an analogue <br>> or digital phase-shifting network.  Now the Weaver method circumvents <br>> this "problem" by changing it into a requirement for two precisely <br>> matched *low-pass* filters who's stop-band attenuation ultimately <br>> determines the degree of suppression for the unwanted sideband, if I <br>> understand things right.  This is exactly what digital filters are good <br>> at!  It's easy to get deep stop-band attenuation, a steep transition <br>> band (given enough poles) and both filters will be *exactly* matched if <br>> they are implemented by the same algorithm with the same filter <br>> coefficients. (state dependent rounding errors aside ;-) )<br>> <br>> So, from this train of thought it seemed that a modern digital <br>> implementation of the Weaver method might actually yield better <br>> performance (superior sideband suppression) than the digital <br>> phase-shifting method for audio manipulation applications?<br>> <br>> Eric, are you implementing your Hilbert transformer as an FIR filter in <br>> your comms stuff to maintain linear-phase?  The guys in the comms group <br>> here always balk at my suggestions to use IIR filters because of the <br>> undesirable non-linear phase response.  But the two low-pass filters in <br>> the Weaver method seem to be crying out for implementation as Elliptic <br>> IIR filters on a digital platform because of the guaranteed matching, <br>> provided the phase response is tolerable.<br>> <br>> I presume you have already seen this implementation of an IIR <br>> Hilbert-pair Eric:<br>> <br>> http://yehar.com/blog/?p=368<br>> <br>> I like the simplicity and degree to which he has optimised the <br>> implementation, but the 40dB opposite-sideband rejection figure isn't <br>> fantastic.  I remember having a discussion with Olli about this years <br>> ago, and he tried to explain the equivalence of these two chains of IIR <br>> all-pass filters to a single complex half-band low-pass IIR filter.  But <br>> something never quite clicked for me, and I think there was a step I was <br>> missing somewhere in my understanding!<br>> <br>> -Richie,<br>> .<br><br>_______________________________________________<br>Synth-diy mailing list<br>Synth-diy@synth-diy.org<br>http://synth-diy.org/mailman/listinfo/synth-diy<br>Selling or trading? Use marketplace@synth-diy.org</blockquote>
</div>
</div></div></div></body></html>