METEOR: A Constraint-based FIR Filter Design Program
The usual way of designing a filter is to specify a filter length and a nominal response, and then to find a filter of that length which best approximates that response. In this paper we propose a different approach: specify the filter only in terms of upper and lower limits on the response, find the shortest filter length which allows these constraints to be met, and then find a filter of that length which is farthest from the upper and lower constraint boundaries in a mini-max sense. Previous papers have described methods for using an exchange algorithm for finding a feasible linear-phase FIR filter of a given length if one exists, given upper and lower bounds on its magnitude response. The resulting filter responses touch the constraint boundaries at many points, however, and are not good final designs because they do not make the best use of the degrees of freedom in the coefficients. We use the simplex algorithm
for linear programming to find the best linear-phase FIR filter of minimum length, as well as to find the minimum feasible length itself. The simplex algorithm, while much slower than exchange algorithms, also allows us to incorporate more general kinds of constraints, such as constraints which force the magnitude response to be a concave function in a particular band. Very
at passband magnitude characteristics can be obtained by constraining the passband to be a concave-downward function. We give examples that illustrate how the proposed and the usual approaches differ, and how the new approach can be used to design filters with flat passbands, filters which meet point constraints, minimum-phase filters, and bandpass filters with controlled transition band behavior.