This commit adds libiir++, a C++ wrapper library which provides a true
object-oriented interface. The library has two primary objects, Coeff
(coefficient set) and Filter (filter instance) which are implemented
internally using the C objects.
The C++ implementation does produce additional copies of various bits
of information at setup time in order to better support querying the
structure of the filter at runtime. This is intended to be useful for a
future Python extension that will provide a filter experimentation lab.
When building a high-order Butterworth filter, split into 2nd-order
components, not 4th-order. Instability due to quantization effects has been
observed on real data even with double-precision floating point.
Adds functionality to compute the response of the filter's transfer function at
a given frequency. This uses the Z domain transform. A new test program
zplot_filter (which is compatible with the existing plot_filter) is provided.
Compute the DC gain of the filter (assuming 0 if unstable) and use that to
set the initial conditions of a filter as follows:
x(t<0)=x(0)
y(t<0)=x(0) × dc_gain