Talk:Low-pass filter

A more commonly accepted difference equation
My interest in this article stems from my participation in the Ardupilot project which implements a digital low-pass filter according to the "Discrete-time realization" section of this article. I immediately noticed that it disagreed with every other implementation I had encountered.

I have added several sections to derive the more commonly accepted difference equation for the low pass filter. I will be adding an "Error Analysis" section which appears to be missing from the current "Discrete-time realization" section. The major difference between the two difference equations is the value of α = ωT/(ωT + 1) vs. β = exp(-ωT). It should be noted that using β in the difference equation yields an exact reconstruction of the step response whereas using α yields an error based on the corner frequency, ω, and the sampling interval, T, making β more desirable.

One problem I am having is that I am not able to upload pictures to the article. It keeps complaining that it can't verify the picture's integrity or something like that. I would like to upload the Time Response graph of the low-pass filter so if anyone can help me with that I would appreciate it.

--Kraybill (talk) 18:49, 24 July 2020 (UTC)


 * I emailed you about how I might help on image upload. Or just say more here about what problem you are seeing.  On the article changes, it would be nice to see a better integration, instead of duplicating a lot of stuff with a modified approach.  I'm familiar with  the impulse invariance method, but not with a step invariance method; is that an approach that you have sources on?  Ah, yes, it is; here.  I believe your result is also what one would get by the Matched Z-transform method, at least for this filter if not more generally.  Dicklyon (talk) 19:25, 24 July 2020 (UTC)


 * Excellent link! I did not know the name of the step invariance method. Doing a Google search I found this paper on step and ramp invariant filters. If I have time, I may attempt the ramp invariant solution. For now, I will add a small error analysis section then move on to multiple pole analysis. Thanks for your input! One more concern, since we know that the "Discrete-time realization" section's difference equation is less accurate, should we challenge or delete that section? --Kraybill (talk) 21:02, 27 July 2020 (UTC)
 * I don't think "less accurate" is the right characterization. It's a different method of making a discrete-time filter from a continuous-time filter.  Comparing a few methods might be good. Dicklyon (talk) 21:44, 27 July 2020 (UTC)
 * I should put some math behind my statement: Let's call the 2 methods α and β after their respective constants. Both have the same overall form so the only difference between them is the value of α vs. the value of β. Let's evaluate β first. The error is simply the difference between the step input time response, vout(t) = Vi(1 - exp(-ωt)), and the reconstructed output using the difference equation. We only need to evaluate the terms at t=T to determine the error. So the time response at t=T is Vi(1 - exp(-ωT)) which is equal to that of the β method yielding a 0% error for the β method. This should be no surprise since the β method was designed that way. On the other hand, at time t=T the α method produces a value of Vi*T/(RC + T) ≠ Vi(1 - exp(-ωT)). Since T > 0 there will always be an error in the reconstructed signal for the α method, hence the α method is always "less accurate". We can look at the α method as a low-pass filter with the wrong corner frequency! For example, with ω=2π (1 Hz) and T = 0.01 (100Hz) the α method yields an error of E = 100*(β - α)/β = 2.9%, whereas the β method yields 0% error. At minimum, the α section should be edited to point out the approximation xi - yi = RC y(i)-y(i-1)/T as xi - yi ≈ RC y(i)-y(i-1)/T, and include an expression for the difference equation's time response error. --Kraybill (talk) 15:29, 28 July 2020 (UTC)
 * Matching the step response is one method. Matching the impulse response is a different method (which actually yields a pole and zero in this case, if done correctly).  Depending in what you want to match, you get different results.  I'm not sure of the properties of the other method described at present, but it might be doing something good. Dicklyon (talk) 15:46, 28 July 2020 (UTC)

mathematical clumsiness
Is it really necessary to do the very simple maths in this cack-handed way? Or is this just how EEs "do" maths? No wonder so many of them go on to become crackpots! 2A01:CB0C:CD:D800:916F:EA8B:65D4:3930 (talk) 13:48, 16 November 2022 (UTC)