name: Filter : public AlgorithmBase

synopsis:

g++ [flags ...] file ...-l /isip/tools/lib/$ISIP_BINARY/lib_algo.a

#include <Filter.h>

Filter(ALGORITHM algorithm = DEF_ALGORITHM);
Filter(const Filter& arg);
boolean setMACoeffs(const VectorFloat& ma_coef);
boolean setMACoeffs(const VectorFloat& ma_coef, const VectorLong& ma_lag);
boolean setARCoeffs(const VectorFloat& ar_coef);
boolean setARCoeffs(const VectorFloat& ar_coef, const VectorLong& ar_lag);
boolean setCoeffs(const VectorFloat& ma_coef, const VectorLong& ma_lag, const VectorFloat& ar_coef, const VectorLong& ar_lag);
boolean setCoeffs(const VectorFloat& ma_coef, const VectorFloat& ar_coef);
boolean compute(VectorFloat& output, const VectorFloat& input, AlgorithmData::COEF_TYPE coef_type = DEF_COEF_TYPE, long index = DEF_CHANNEL_INDEX);
quick start:

VectorFloat in_vec;
VectorFloat out_vec;
VectorFloat ma_coef(L"1.0, 2.0, 0.5");
VectorFloat ar_coef(L"1.0");
Filter ft;
ft.setCoeffs(ma_coef, ar_coef);
in_vec.assign(L" 1.0, 1.0, 2.0, 1.0, 1.0");
ft.compute(out_vec, in_vec);
description:

Filter is a class that implements standard digital filtering techniques. A good reference for different ways to define and implement filters is: This class currently supports only one algorithm choice: Linear Time Invariant (LTI). It also supports only one implementation choice: Constant Coefficient Difference Equation (CCDE). This is described in detail below:


This filter is implemented using a standard direct form implementation. Note that filter is specified using an array of filter coefficients and a matching array of lags. This allows only the non-zero coefficients of a filter to be specified, and allows both causal (negative lag values) and non-causal filters (positive lag values) to be implemented. See the programming example below for more details on how to specify filter coefficients.

dependencies:

public constants:

error codes:

protected data:

required public methods:

class-specific public methods:

private methods:

examples:

notes: