>> For those who aren't familiar with this trick, it's easy to make a low >> pass filter in software: >> X = X*(1-k) + k*new
> Designing filters seems like an art. What is the frequency response of the > above for different values of k? I tend to like FIR filters because I think > I understand them better. I think yours is an IIR. It's a simple 1 pole filter. The corner frequency scales with the sample rate. If you have N samples per second and k is 1/K, then the time constant is K/N seconds. So with 1 PPS and an 8 bit shift, you get a time constant of 256 seconds. It's just a trick to add to your collection. It's only advantage is that it doesn't take many CPU cycles. It's just shifts and adds, no multiplies or floating point. I first saw it used to compute round trip times on early networking code. You do have to get the scaling right: if k is right shift by 8 bits, X has to be stored shifted left 8 bits so the right shift doesn't throw away too much info. You may need to store X shifted farther left, depending on the accuracy you need. (Or maybe you don't care about accuracy and don't need to shift.) It may be easier to think of X and a fraction with the binary point on the left of the word. Then instead of storing X shifted left, the question is how wide does X have to be. -- These are my opinions, not necessarily my employer's. I hate spam. _______________________________________________ time-nuts mailing list -- [email protected] To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts and follow the instructions there.
