Q:
Can you suggest any beginner literature or software tools for designing my own FIR filters for IMU products, such as the ADIS16480?
A:
--------------------------------------------------------------------------------------------------------------------------------------------
While there are many excellent DSP references which cover FIR filter basics, these two references have been helpful for me:
http://www.analog.com/en/processors-dsp/learning-and-development/content/scientist_engineers_guide/fca.html
http://www.dspguru.com/dsp/faqs
I typically analyze FIR filters more often than I design them, but I have found that Matlab's Filter Design and Analysis Tool is very helpful. It is part of the Signal Processing Toolbox (add-on, not standard with Matlab license) and I access it by typing "fdatool" at the Matlab command prompt. The ADIS16480 FIR filter banks actually contain four different examples of FIR filter designs, which can serve as design examples when learning how to use any FIR design/analysis software. The file attachment, ADIS16480FIRFilterResponse.m, is an m-script that analyzes the magnitude/frequency response of each filter in ADIS16480 and actually produced the responses that are in Figure 21 in the ADIS16480 datasheet (page 26). To run this script, copy this file into your MATLAB Path and then type "ADIS16480FIRFilterResponse" at the prompt in the Matlab command window.
For those who do not have access to Matlab, I would probably start my evaluation with the FIR filter package that is on the following website.
http://www.dspguru.com/dsp/links/digital-filter-design-software
This FIR filter package is available $299 and offers a free 30-day trial. I have not used this software but I suspect that it has some sort of method for importing FIR coefficients, so I extracted the coefficients from each example design in the ADIS16480, saved them into each FIR bank into *.csv files and attached them to this post as well.
For proper formatting and programming of the ADIS16480 FIR filters, please see page 25 and page 26 of the ADIS16480 datasheet.
Now that we have started this discussion, we would like to ask if anyone has other suggestions or can share their methods/tools for FIR filter design.
Best regards,
NevadaMark
Thank you, your answer is very useful to me.
Thank you for your comment/question. To be honest, I do not use this on a regular basis myself, but in the past, we have been able to open the file in the workspace, copy the coefficients from the rows or columns in the data display, then assign it to a variable. Then, inside of the fda tool, you can assign the variable to the “denominator.” I am not in a position to try this right now, but if you are not able to figure this out, let us know. I will be out of the office for the next 1.5 weeks and will not likely have access to Matlab, but will be glad to help when I return, if you are not able to figure this out. It probably wouldn’t take that long to just type these coefficients into the FDA tool directly either.
I am not very familiar with the DSP toolbox. How can I import the examples of FIR filter designs into this fdatool?
Great comments! Generally speaking, I tend to design the filter first, then scale the coefficients to math the desired gain through the filter and then round each coefficient to the nearest integer that the coefficient resolution will support. Sounds like you are all over this. I hope that this post was helpful. Thanks again for offering value to all of us by sharing your experience.
Got it. Generate C headers from fdatool and set 16 bit integer.