## FIfConvol

#### Routine

void FIfConvol (const float x[], float y[], int Nout, const float h[], int Ncof)

#### Purpose

Filter a signal with an FIR filter

#### Description

The procedure convolves a set of filter coefficients with an array of data. The input array is x[.]. The first lmem = Ncof-1 samples of x[.] are past inputs. The first output point is calculated with filter coefficient h[0] aligned with x[lmem]. The last output point is calculated with h[0] aligned with x[lmem+(Nout-1)].

The output array can share storage with the input array, with the output data overlaying the input data. Consider an array x[] with lmem+Nout elements. The first lmem elements are past input samples; the next Nout values are new input samples. To share input/output storage, invoke this routine as

      FIconvol (x, x, Nout, h, Ncof)

On return, the first Nout elements of x[] are the output values. The last lmem elements are the past input values needed for the next invocation of FIconvol.

#### Parameters

-> const float x[]
  Input array of data. Let lmem=Ncof-1. The first output point point is calculated as follows

        y[0] = h[0]*x[lmem] + h[1]*x[lmem-1] + h[2]*x[lmem-2] + ...

  The array x must have lmem+((Nout-1))+1 elements.
<- float y[]
  Output array of samples. The order of operations is such that this array can share storage with the array x.
-> int Nout
  Number of output samples to be calculated
-> const float h[]
  Array of Ncof filter coefficients
-> int Ncof
  Number of filter coefficients

#### Author / revision

P. Kabal / Revision 1.14 2005/02/01

#### See Also

FIfConvSI

Main Index libtsp