V G wrote: > The main purpose is to first eliminate the 60Hz signal, then test, > then see what else I could get rid of. Trying to get rid of 60Hz is probably not a good idea since your signal contains valid frequencies in that range. For example, if the fundamental (the heart rate) was close to 60Hz, the result could be a very strange waveform. It is far better to eliminate as much of the 60Hz as possible as early in the analog chain as possible. Most will be common mode, and keeping it fro= m turning into differential mode will give you better results than trying to get rid of it later. Even if you do want to try removing 60Hz after the fact, a FIR filter is no= t appropriate for that. FIR filters can do lots of cool things, all with the same algorithm, just different kernel functions. However, their required width goes up with the frequency discrimination. If you want to filter out a narrow band around 60Hz, then you'll need a wide filter. A better approach for 60Hz noise reduction is to use the fact that the nois= e is exactly 60Hz. You could convolve the signal with a 60Hz sine and cosine to determine the average 60Hz amplitude and phase over some segment of signal, then subtract off a 60Hz sine with its phase and amplitude adjusted accordingly. As for a PIC 32, it probably can do meaningful FIR filters on 150Hz data. However, a PIC 32 is not a DSP whereas a PIC 33 is. A PIC 32 may run faster, but probably uses more time per point in the end than a PIC 33 does with it's multiply-accumulate capability meant for exactly this kind of problem. The PIC 33 can do successive points of a convolution in successiv= e cycles. It does the multiply, add, updating pointers to the next data word= s with possible wrapping, and loop termination all in one instruction cycle. A PIC 33 can run at up to 40MHz instruction rate. Let's say your data sample rate is 500Hz. 40MHz / 500Hz =3D 80K, which is the maximum width convolution it could perform every data point. That's way more than you need, and certainly more than you have storage for anyway. You could do a 2000 point convolution at 500Hz and use up about 2.5% of the processor. ******************************************************************** Embed Inc, Littleton Massachusetts, http://www.embedinc.com/products (978) 742-9014. Gold level PIC consultants since 2000. --=20 http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .