This article is part of WikiProject Electronics, an attempt to provide a standard approach to writing articles about electronics on Wikipedia. If you would like to participate, you can choose to edit the article attached to this page, or visit the project page, where you can join the project and see a list of open tasks. Leave messages at the project talk pageElectronicsWikipedia:WikiProject ElectronicsTemplate:WikiProject Electronicselectronic articles
This article is within the scope of WikiProject Professional sound production, a collaborative effort to improve the coverage of sound recording and reproduction on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.Professional sound productionWikipedia:WikiProject Professional sound productionTemplate:WikiProject Professional sound productionProfessional sound production articles
This article is within the scope of WikiProject Systems, which collaborates on articles related to systems and systems science.SystemsWikipedia:WikiProject SystemsTemplate:WikiProject SystemsSystems articles
A more commonly accepted difference equation[edit]
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.
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)[reply]
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)[reply]
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)[reply]
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)[reply]
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)[reply]