Post Go back to editing

FIR Filters and required Coefficients

I'm trying to get an understanding of FIR filters and their benefits over other types of filters, since my knowledge of DSP fundamentals is still a work in progress. For example, I want to have a simple pass band of 200 Hz to about 6 KHz for part of my application with sharp edges to the response. I understand that a FIR filter provides very sharp edges, but beyond that I don't understand enough about DSP's to grasp what other benefit this filter type offers beyond some of the other filter types in SigmaStudio. After reading numerous posts, I understand I could overlap several General bi-quad filters to create a very steep roll-off at each edge of the passband. Wouldn't this achieve the same result or does it come down to the efficiency of resources required in SigmaStudio? My project is utilizing the 1701.

Any insight would be appreciated.

Parents
  •    Hi Byron,

         Brett's answer sums up the relative strengths of FIR and IIR filters quite succinctly.  As he said, you can do rather extraordinary things with FIR, but IIR filters are less trouble.  They do have a nonlinear phase response, however most ears (mine, anyway) are fortunately rather insensitive to phase distortion.

         The frequency band of interest significantly affects the choice between these filter types -- and the two frequencies you mentioned are far enough apart that you could try one of each.

         In case you haven't come across it in your research, a really good DSP resource is available here:

    http://www.analog.com/en/content/scientist_engineers_guide/fca.html

    This graph from page 348 of Steven W. Smith's book shows that while IIR (recursive) filters work with about the same efficiency over the DSP's frequency range, FIR (standard convolution) filters are most efficient near the middle.  The frequency range is normalized to the sample rate fs, as is always done in DSP texts:

         Your 6KHz roll-off normalizes to 0.125 (assuming fs = 48K), which falls within the efficient range for FIR filters.  On the other hand, 200 Hz normalizes to 0.004 -- there the FIR filter takes way too much time to execute.  Execution time corresponds to the FIR filter's length (number of taps), which in SigmaDSP relates to the number of instructions and data memory the filter needs.  This says don't even try a 200 Hz FIR filter.  Use one or more double-precision filters in series, as you mentioned they can have overlapping responses to form one unified sharp filter.  AD has a filter design tool for analog active filters that can be used to generate the cutoff frequency and Q for each filter section, see near the bottom of this discussion for more info:

    http://ez.analog.com/message/66356#66356

        While you can also use a IIR filter for the 6KHz lowpass, this one is possible in FIR.  As Brett mentioned, many folks use a program like MATLAB to figure the kernel (list of coefficients) for a FIR filter.  If you have the time and a sense of adventure, it's not impossible to calculate FIR coefficients yourself -- and you'll gain some valuable insight into how these things work.  Chapter 16 of the above-mentioned book describes the windowed-sinc method.  It takes only a simple BASIC program or even a spreadsheet to calculate the coefficients, which you could then copy into the coefficient table of a SigmaDSP FIR filter.  Have fun!

         Bob

Reply
  •    Hi Byron,

         Brett's answer sums up the relative strengths of FIR and IIR filters quite succinctly.  As he said, you can do rather extraordinary things with FIR, but IIR filters are less trouble.  They do have a nonlinear phase response, however most ears (mine, anyway) are fortunately rather insensitive to phase distortion.

         The frequency band of interest significantly affects the choice between these filter types -- and the two frequencies you mentioned are far enough apart that you could try one of each.

         In case you haven't come across it in your research, a really good DSP resource is available here:

    http://www.analog.com/en/content/scientist_engineers_guide/fca.html

    This graph from page 348 of Steven W. Smith's book shows that while IIR (recursive) filters work with about the same efficiency over the DSP's frequency range, FIR (standard convolution) filters are most efficient near the middle.  The frequency range is normalized to the sample rate fs, as is always done in DSP texts:

         Your 6KHz roll-off normalizes to 0.125 (assuming fs = 48K), which falls within the efficient range for FIR filters.  On the other hand, 200 Hz normalizes to 0.004 -- there the FIR filter takes way too much time to execute.  Execution time corresponds to the FIR filter's length (number of taps), which in SigmaDSP relates to the number of instructions and data memory the filter needs.  This says don't even try a 200 Hz FIR filter.  Use one or more double-precision filters in series, as you mentioned they can have overlapping responses to form one unified sharp filter.  AD has a filter design tool for analog active filters that can be used to generate the cutoff frequency and Q for each filter section, see near the bottom of this discussion for more info:

    http://ez.analog.com/message/66356#66356

        While you can also use a IIR filter for the 6KHz lowpass, this one is possible in FIR.  As Brett mentioned, many folks use a program like MATLAB to figure the kernel (list of coefficients) for a FIR filter.  If you have the time and a sense of adventure, it's not impossible to calculate FIR coefficients yourself -- and you'll gain some valuable insight into how these things work.  Chapter 16 of the above-mentioned book describes the windowed-sinc method.  It takes only a simple BASIC program or even a spreadsheet to calculate the coefficients, which you could then copy into the coefficient table of a SigmaDSP FIR filter.  Have fun!

         Bob

Children
No Data