<div id="geary-body" dir="auto"><div>My solution was to implement the (low-pass) filter in any standard way, and implement the ideal diode as the max() function: the input to the filter is the larger of the input value and the current filtered value.</div><div><br></div><div>For interest, my preferred implementation for a single-pole low-pass filter is 'exponential smoothing' <a href="https://en.wikipedia.org/wiki/Exponential_smoothing">https://en.wikipedia.org/wiki/Exponential_smoothing</a></div><div><br></div><div>Stephen Irons</div></div><div id="geary-quote" dir="auto"><br>On Sun, Jun 19, 2022 at 16:34, Robin Gilks <gb7ipd@gmail.com> wrote:<br><blockquote type="cite"><div dir="ltr">Here's another question for you all!!<div><br></div><div>I'm trying to implement "something like" a VU Meter in software (in an embedded system so it has to be small & fast).</div><div>The hardware equivalent to a diode running into an RC filter</div><div><font face="monospace"><br></font></div><div><font face="monospace">          |\ |             R<br>   in ----|  |----------vvvvvv--------- out<br>          |/ |                    |<br>                                 ___ <br>                                 ___  C<br>                                  |<br>                                  |<br> common ----------------------------------------  <br> </font><br><div>My first port of call for filters is an IIR but that does not have the fast attack I'm after, especially if I want the long tail.</div><div><br></div><div>Does anyone have any magic that doesn't disappear into a morass of DFTs and FFTs and 3 page equations summing integrals from 0 to infinity ;)</div><div><br></div><div>Cheers - hopefully see you tomorrow.</div><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Robin Gilks<div><br></div></div></div></div></div>
</blockquote></div>