The most common type of FIR filter encountered in practice is the
symmetric, linear-phase FIR filter. They can all be derived as
the -sample delay of an order zero-phase
filter.^{12.3} Thus, causal, symmetric,
linear-phase FIR filters are all symmetric about their midpoint:

We assume here that is odd. As a result, the filter

is a zero-phase filter. Thus, every linear-phase filter can be
expressed as a delay of some zero-phase filter,

Functions remez, fir1, and fir2 are
implemented in the open-source Octave Forge collection as well. The
window method of FIR filter design is developed in
[65,79],
and least-squares FIR design is described in the context of a wider
class of filter design methods in [75]. Software (in C) for
the window method of FIR filter design is available via
[91].