FIR filter with relaxed transition band Is there a way to design a lowpass FIR filter with a more relaxed transition band than what MATLAB FilterDesigner tool generates?
What I intend to do is to reduce number of taps needed to implement the filter. The response that MATLAB generates is good but it needs too much coefficients and the response that I need can be relaxed in the almost second half of the transition band.
The spec. of the desired filter is as below:
Fpass = 5 M;
Rejection at 700k offset from band edge: 15 dB
Rejection at 1.5M offset from band edge: 30 dB
Rejection at 5.5M offset from band edge: 70 dB
Here are the parameters I have used (Units are MHz and dB).
Fs = 187.5;
Fpass = 5;
Fstop = 10.5;
Apass = 0.35;
Astop = 70;
Other parameters are method = equiripple and density factor = 20;
Though the resulted filter has 70dB rejection at 10.5 M, I doesn't have the rejections needed at 700k and 1.5M offsets. To get that 15 dB rejection I have to either increase rejection at stopband or decrease Fstop which will result in more coefficients and is overkill for rest of the filter.
Also tried firpm() and using the parameters below I got the same response as the one by FiterDesigner which didn't help.
&gt;&gt; [n,fo,ao,w] = firpmord([5e6 10.5e6],[1 0],[0.01 0.0002],187.5e6);
&gt;&gt; b = firpm(n,fo,ao,w);
Instead of using the FilterDesigner Tool consider using the firls() and firpm() commands directly since they will return optimized filters (in the least squares sense or peak error /equiripple sense respectively) very easily with one MATLAB command. Type help firls or help firpm in MATLAB to read further documentation on how to use these and specifically how the parameters define the transition bandwidth desired.
This can equally be done through the FilterDesigner but I see no need for that added complexity.