filterJ211 is simply a wrapper for the algorithm set forth by SAE-J211 (MAR95) (APPENDIX C);
This standard describes how to calculate the filter coefficients necessary for a BUTTERWORTH 4-POLE PHASELESS DIGITAL FILTER. These coefficients can then be directly applied to an input signal using the standard Matlab |filtfilt| command or with any custom filtering function that requires any number of 2nd-order sections (pole-pairs).
By default, this function will create the coefficients, and (if the Signal Processing Toolbox is installed) filter the input signals.
Meade (2021). J211 Compliant filter (https://www.mathworks.com/matlabcentral/fileexchange/61852-j211-compliant-filter), MATLAB Central File Exchange. Retrieved .
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Create scripts with code, output, and formatted text in a single executable document.
@Allen, Thanks for your comment. You are correct. Long ago, the function was a wrapper that would dump into the Matlab |designfilt| function for higher order filters. That tool is much better for designing arbitrary filter classes and I had deprecated the functionality without removing the arguments.
I have updated the function to reflect that it will only solve the J211 spec'd 2 pole Phaseless filter.
Thanks much,
Meade
Meade, this function works great using the default 2nd-order value, but does not appear to behave correctly when trying to use the optional 'order' input for anything other than a 2nd-order. Trying to do so generates an error when passing the transfer function coefficients to filtfilt(...) that reads "Warning: Expected input to be a vector."
awesome! nice job