Aside from the obvious of an accumulator being a low pass filter, we normally hard code the time consuming parts of the digital filters, presuming that your filter coefficients are not going to change. We either pre-do the multiply of factors based on a trig function times a constant or tweak the multiply. The former is done by doing the stage multiplication off line and interpolating results of table look-ups. The latter is done by skipping the bit tests on the multiplicand and straight-line coding the shifts. Obviously, the time per cycle of multiply and accumulates, as with everything in DSP, is dependent upon your sample frequency. For mains power, ya got a lotta time. For voice, you'd better be doing some real tricky stuff in a PIC if you're doing the number of orders and resolution that you are looking at. We have had great luck by varying the sample frequency and type of filter until you get to coefficients that either disappear or are very easy multiplies. You can do this type of iteration easily with filter design packages, although normally the output is in terms of C code or asm for the popular DSP's. Tom On Thursday, March 05, 1998 2:22 PM, Craig Webb [SMTP:lucid@MAGNET.CA] wrote: > Thanks everyone for the WWVB (Boulder or Fort Collins?) info on the 60kHz > time standard. > > I am also interested in finding out if anyone has done digital low pass > filtering. I need fast code that can do about 4th order (and ideally up to > 6th order) filtering on 13-bit signals. Does anyone have this or know where > I can find it? > > Thanks. > > C. Webb