<div dir="ltr">Hello All,<div><br></div><div>Seeings as different transforms have come up, I've been meaning to try using a Hilbert Transform for doing envelope recovery as described in this Electronotes Application Note:</div><div><br></div><div><a href="https://electronotes.netfirms.com/AN355.pdf">https://electronotes.netfirms.com/AN355.pdf</a><br></div><div><br></div><div>I got as far as coding up an example iir based hilbert transformer in Octave:</div><div><br></div><div><a href="https://github.com/jazamatronic/iir_hilbert">https://github.com/jazamatronic/iir_hilbert</a><br></div><div><br></div><div>Cheers,</div><div>Jared</div><div> </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, 18 Dec 2021 at 13:06, Guy McCusker via Synth-diy <<a href="mailto:synth-diy@synth-diy.org">synth-diy@synth-diy.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Can you give us a clue on how a wavelet transform would be useful in an envelope follower? I don't know much about the area but at first glance it does not seem like the right tool for the job. </div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Dec 17, 2021 at 11:25 PM Mike Bryant <<a href="mailto:mbryant@futurehorizons.com" target="_blank">mbryant@futurehorizons.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div lang="EN-GB">
<div>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">If anybody is thinking of doing this digitally, you might want to read up on the Continuous Wavelet Transform. Then once you realise your DSP isn’t up to
it, have a look at the Discrete Sub Band Transform, aka Wavelet Packet Decomposition. This gives as accurate results as the Discrete Wavelet Transform with less group delay problems, and given enough processing power is able to decompose even the human voice
in real time.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<div>
<div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(181,196,223);padding:3pt 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10pt;font-family:Tahoma,"sans-serif"">From:</span></b><span lang="EN-US" style="font-size:10pt;font-family:Tahoma,"sans-serif""> Synth-diy [mailto:<a href="mailto:synth-diy-bounces@synth-diy.org" target="_blank">synth-diy-bounces@synth-diy.org</a>]
<b>On Behalf Of </b>Mr&MrsAccount<br>
<b>Sent:</b> 17 December 2021 21:41<br>
<b>To:</b> Jean-Pierre Desrochers; 'Tom Wiltshire'<br>
<b>Cc:</b> <a href="mailto:synth-diy@synth-diy.org" target="_blank">synth-diy@synth-diy.org</a><br>
<b>Subject:</b> Re: [sdiy] Best & fastest envelope follower schematic.. anybody ?<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal"><span style="color:black">Remember that high order filters don't come without their own baggage...<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">They suffer from greater group delay (which could be a problem) and poor transient response (also a problem).<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">Especially in a use where the input could start at zero or suddenly return to zero, the overshoots can be a killer.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">I've been making filters to isolate the fundamental of Guitars for many (now many mnay) years. The settling times are longer than the delay of the guitar signal itself, therefore the delays...<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"> <u></u><u></u></span></p>
</div>
<div>
<div id="gmail-m_-4193880463186652080gmail-m_-5253579429799083610OLK_SRC_BODY_SECTION">
<div id="gmail-m_-4193880463186652080gmail-m_-5253579429799083610OLK_SRC_BODY_SECTION">
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 12pt;margin-left:9.6pt;margin-right:0cm">
<div class="MsoNormal" align="center" style="text-align:center"><span style="color:black">
<hr size="5" width="100%" align="center" id="gmail-m_-4193880463186652080gmail-m_-5253579429799083610MESSAGE_DATA_MARKER">
</span></div>
<p class="MsoNormal" style="margin-bottom:12pt"><strong><span style="color:black">From:
</span></strong><span style="color:black">Jean-Pierre <<a href="mailto:jpdesroc@oricom.ca" target="_blank">jpdesroc@oricom.ca</a>><br>
<strong>To: </strong>'Tom <<a href="mailto:tom@electricdruid.net" target="_blank">tom@electricdruid.net</a>><br>
<strong>Cc: </strong>synth-diy <<a href="mailto:synth-diy@synth-diy.org" target="_blank">synth-diy@synth-diy.org</a>><br>
<strong>Date: </strong>Friday, 17 December 2021 10:39 AM EST<br>
<strong>Subject: </strong>Re: [sdiy] Best & fastest envelope follower schematic.. anybody ?<u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="color:black">> This would be the digital equivalent to the single pole RC. It should be possible to get better ripple suppression by using higher order
filters. Harald showed that he got a better response using a fourth-order filter.</span><span style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:black"><br>
So.. how can I modify the C1 section to get for example a fourth-order filter ?<br>
To do it the way the signal flows across C1 is a bit confusing..<br>
The signal comes from the left side but the clamping comes from D1 at right side.</span><span style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:black">I know how to implement high order filters in circuits but only<br>
if I know the signal flow direction..</span><span style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:black"> </span><span style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:black"><img width="608" height="460" id="gmail-m_-4193880463186652080gmail-m_-5253579429799083610Image_x0020_1"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:black"> <u></u><u></u></span></p>
<div style="border-top:none;border-right:none;border-bottom:none;border-left:1.5pt solid blue;padding:0cm 0cm 0cm 4pt">
<div>
<div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0cm 0cm">
<p class="MsoNormal"><strong><span lang="FR" style="color:black">De :</span></strong><span lang="FR" style="color:black"> Synth-diy <<a href="mailto:synth-diy-bounces@synth-diy.org" target="_blank">synth-diy-bounces@synth-diy.org</a>>
<strong>De la part de</strong> Tom Wiltshire<br>
<strong>Envoyé :</strong> 17 décembre 2021 08:37<br>
<strong>À :</strong> Martin Klang <<a href="mailto:mars@pingdynasty.com" target="_blank">mars@pingdynasty.com</a>><br>
<strong>Cc :</strong> <a href="mailto:synth-diy@synth-diy.org" target="_blank">synth-diy@synth-diy.org</a><br>
<strong>Objet :</strong> Re: [sdiy] Best & fastest envelope follower schematic.. anybody ?</span><span style="color:black"><u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><span style="color:black"> <u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:black">This would be the digital equivalent to the single pole RC. It should be possible to get better ripple suppression by using higher order filters. Harald
showed that he got a better response using a fourth-order filter.<u></u><u></u></span></p>
<div>
<div>
<p class="MsoNormal"><span style="color:black"> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12pt"><span style="color:black"><u></u> <u></u></span></p>
<blockquote style="margin-top:5pt;margin-bottom:5pt">
<div>
<p class="MsoNormal"><span style="color:black">On 16 Dec 2021, at 16:26, Martin Klang <<a href="mailto:mars@pingdynasty.com" target="_blank">mars@pingdynasty.com</a>> wrote:<u></u><u></u></span></p>
</div>
<p class="MsoNormal"><span style="color:black"> <u></u><u></u></span></p>
<div>
<p class="MsoNormal" style="word-spacing:0px">
<span style="font-size:9pt;font-family:Helvetica,"sans-serif";color:black">I think an envelope follower with no lag is called a rectifier.</span><span style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal" style="word-spacing:0px">
<span style="font-size:9pt;font-family:Helvetica,"sans-serif";color:black">Jokes aside, there are a number of options available but ultimately it comes down to filtering.</span><span style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal" style="word-spacing:0px">
<span style="font-size:9pt;font-family:Helvetica,"sans-serif";color:black">For digital envelope followers, I like to use a simple exponential average (aka leaky integrator, a first-order IIR filter) on the fully rectified signal and tune the time constant
to the expected input signal. Generally you want it to be fast, but not so fast as to track the waveform oscillations, even at say 20 Hz. This makes a computationally very efficient follower with predictable results.</span><span style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal" style="word-spacing:0px">
<span style="font-size:9pt;font-family:Helvetica,"sans-serif";color:black"> </span><span style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal" style="word-spacing:0px">
<span style="font-size:9pt;font-family:Helvetica,"sans-serif";color:black">best,</span><span style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal" style="word-spacing:0px">
<span style="font-size:9pt;font-family:Helvetica,"sans-serif";color:black"> </span><span style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal" style="word-spacing:0px">
<span style="font-size:9pt;font-family:Helvetica,"sans-serif";color:black">Martin</span><span style="color:black"><u></u><u></u></span></p>
<p class="MsoNormal" style="word-spacing:0px">
<span style="font-size:9pt;font-family:Helvetica,"sans-serif";color:black"> </span><span style="color:black"><u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span style="font-size:9pt;font-family:Helvetica,"sans-serif";color:black">On 16/12/2021 01:36, Jean-Pierre Desrochers wrote:</span><span style="color:black"><u></u><u></u></span></p>
</div>
<blockquote style="margin-top:5pt;margin-bottom:5pt;word-spacing:0px">
<div>
<p class="MsoNormal"><span style="color:black">Here is my goal..<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="color:black">I need a circuit that will take an AC signal and will shift level it from<br>
a DC offset extracted from its min & max Peaks..<br>
Ex: Suppose you have steady +/- 5v peak sine wave coming in this circuit,<br>
The output would be the same waveform but shifted up to +5vdc.<span> </span></span><span style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="color:black">So 0 to +10vdc.<br>
That final waveform would be much usable for a 0-5vdc control voltage input<br>
than the original AC waveform.<br>
Now the challenge is to do the same with a level changing AC signal.</span><span style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12pt"><span lang="EN-CA" style="color:black">In the case of a<span> </span><u>steady waveform</u><span> </span>this ‘level shifter’
could be an opamp that would add half of the peak to peak voltage as an offset DC voltage,<br>
But here I’m looking for something that will be more versatile<br>
to handle varying level waveform.<br>
<br>
</span><span style="color:black"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-CA" style="color:black"> </span><span style="color:black"><u></u><u></u></span></p>
</div>
</blockquote>
<p class="MsoNormal"><span style="font-size:9pt;font-family:Helvetica,"sans-serif";color:black">_______________________________________________<br>
Synth-diy mailing list<br>
<a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
<a href="http://synth-diy.org/mailman/listinfo/synth-diy" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><br>
Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">
marketplace@synth-diy.org</a></span><span style="color:black"><u></u><u></u></span></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"><span style="color:black"> <u></u><u></u></span></p>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
_______________________________________________<br>
Synth-diy mailing list<br>
<a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
<a href="http://synth-diy.org/mailman/listinfo/synth-diy" rel="noreferrer" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><br>
Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">marketplace@synth-diy.org</a><br>
</blockquote></div>
_______________________________________________<br>
Synth-diy mailing list<br>
<a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
<a href="http://synth-diy.org/mailman/listinfo/synth-diy" rel="noreferrer" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><br>
Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">marketplace@synth-diy.org</a><br>
</blockquote></div>