Low Pass Filter in Software question

AI Thread Summary
The discussion revolves around implementing a low pass filter in software, specifically addressing confusion regarding the convergence of output values based on the provided equation. The original equation yields outputs that do not converge as expected, particularly when using a specific filter strength (k). It is clarified that the filter has a gain at low frequencies, causing the output to rise slowly and level off at a certain value. An alternative equation is suggested to achieve a gain of 1 at low frequencies, which successfully smooths the data. The conversation also touches on high pass filters, explaining that they retain high-frequency changes while removing low-frequency signals, effectively highlighting noise in the dataset.
preimmortal
Messages
13
Reaction score
0
Hi Everyone,
I read an article by Barry L. Dorr about how to implement a Low Pass Filter in software, however, the equation that he gave confused me as I didn't see any sort of convergence to the value desired.

So here is the equation:
y(n) = (1 - 2^(-k)) * y(n-1) + x(n)
x is the input, y is the output, n is the index, and k is the filter strength

So I understand how k works as it just makes it so that previous values affect the output less. But where I run into problems is the + x(n) term.

So taking the example where k = 4, I have the equation:
y(n) = 0.9375 * y(n-1) + x(n)

Then I will just create an arbitrary array with which I want to low-pass and smooth out.
So let's say, x(n) = {1, 5, 3, 2}

Then that means,
y(3) = .9375 * y(2) + x(3) = 8.031 + 2 = 10.031
y(2) = .9375 * y(1) + x(2) = 5.5664 + 3 = 8.5664
y(1) = .9375 * y(0) + x(1) = .9375 + 5 = 5.9375
y(0) = x(0) = 1

So at this point, I can see the the output array is not even converging to getting larger as time goes on, even though the maximum input to low-pass filter was 5.

Any insight on how this works would be great.
 
Engineering news on Phys.org
You mean ths article? http://www.edn.com/article/465351-A...filter_suits_embedded_system_applications.php

He "forgot" to tell you that his simple filter has a gain at low frequences. If you see what happens when you filter a constant input signal with all the x(n) values equal to 1, the output values are
1
1 + .9375
1 + .9375 + .9375^2
1 + .9375 + .9375^2 + 9375^3
etc.
This is a geometric series. The output will rise "slowly" and then level off at the value of
1 / (1 - .9375) = 16.

Note: you will need to get about 50 output values to see the complete picture of what happens.

If you want the filter to have a gain of 1 at low frequencies, use
y(n) = 2^(-k)(1 - 2^(-k)) * y(n-1) + 2^(-k)x(n)
instead.
 
Last edited:
Ah yes,
I did notice that when I was running it in my actual software. It would level off at around 16 if I passed in a large array. I will try implementing your low-pass filter with gain of 1 and see how it works out. Thanks.
 
Okay I just implemented the low-pass filter and it does have the affect of "smoothing" out my data, now I want to implement a high pass filter for my data. My main question is,
What affect does a high pass filter have on my dataset?
For example, I know that the low pass smooths out data and passes low frequencies (changes?). So applying this logic, does the high pass filter converge more quickly to my data, (ie. pass large changes in data but not small?)
 
Short answer: high pass leaves you with the part that low pass removes. If your data are the sum of a low-frequency "signal" and some higher-frequency "noise" then low-pass will tend to filter out the noise, while high-pass will leave you with the noise. (Of course, one person's noise is another person's data, etc., etc...)

The time derivative (changes) is weighted toward high frequencies in a sort of "ramp" rather than providing good "high pass."
 
Thread 'Where is my curb stop?'
My water meter is submerged under water for about 95% of the year. Today I took a photograph of the inside of my water meter box because today is one of the rare days that my water meter is not submerged in water. Here is the photograph that I took of my water meter with the cover on: Here is a photograph I took of my water meter with the cover off: I edited the photograph to draw a red circle around a knob on my water meter. Is that knob that I drew a red circle around my meter...
Hi all, i have some questions about the tesla turbine: is a tesla turbine more efficient than a steam engine or a stirling engine ? about the discs of the tesla turbine warping because of the high speed rotations; does running the engine on a lower speed solve that or will the discs warp anyway after time ? what is the difference in efficiency between the tesla turbine running at high speed and running it at a lower speed ( as fast as possible but low enough to not warp de discs) and: i...

Similar threads

Replies
6
Views
995
Replies
1
Views
2K
Replies
2
Views
2K
Replies
46
Views
3K
Replies
1
Views
1K
Replies
4
Views
3K
Replies
11
Views
4K
Replies
5
Views
2K
Back
Top