<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>I think an envelope follower with no lag is called a rectifier.</p>
    <p>Jokes aside, there are a number of options available but
      ultimately it comes down to filtering.</p>
    <p>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.<br>
    </p>
    <p><br>
    </p>
    <p>best,</p>
    <p><br>
    </p>
    <p>Martin</p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 16/12/2021 01:36, Jean-Pierre
      Desrochers wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:003d01d7f215$0904e630$1b0eb290$@oricom.ca">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style>@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}div.WordSection1
        {page:WordSection1;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">Here
            is my goal..<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"
            lang="EN-CA">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. <o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"
            lang="EN-CA">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.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"
            lang="EN-CA">In the case of a <u>steady waveform</u> 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>
            <o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"
            lang="EN-CA"><o:p> </o:p></span></p>
      </div>
    </blockquote>
  </body>
</html>