# rtf_create_filter man page

rtf_create_filter — Creates a custom filter

## Synopsis

**#include <rtfilter.h>****hfilter rtf_create_filter(unsigned int** *nchann***, int** *proctype***,****unsigned int** *num_len***, const void ****num***,****unsigned int** *denum_len***, const void ****denum***,****int** *type***);**

## Description

This function creates and initializes a digital linear filter whose the Z-transform is rational and processing *nchann* channels of a data type specified by *proctype*.

The numerator and denominator of the rational expression are specified by respectively two arrays *num* and *denum* containing the coefficients in the ascending order of the 2 polynoms. The number of elements in each arrays is controlled by *num_len* and enum_len. *denum_len* is allowed to be equal to zero as well as *denum* is allowed to be NULL. In such case, the denominator will be set to 1. The data type of the values in *num* and *denum* are specified by *type*.

The *proctype* and *type* must be one the following constants:

RTF_FLOATspecifies real single precision (float)

RTF_DOUBLEspecifies real double precision (double)

RTF_CFLOATspecifies complex single precision (complex float)

RTF_CDOUBLEspecifies complex double precision (complex double)

The expected data type of the output of the filter has the same precision as the one specified by *proctype* and is complex *proctype* or *type* specifies a complex type. Said otherwise:

- *
- If
*proctype*is**RTF_FLOAT**or**RTF_CFLOAT**then the output data type will have single precision. Otherwise it will have double precision. - *
- If
*proctype*or*type*specifies a complex type, then the output will be complex as well. Otherwise, it will be real.

**rtf_create_filter**() can be used to use a filter that has been designed somewhere else. In particular, this function can be used directly with the output of filter design function of MATLAB. In such case, the usual B and A arrays returned by the filter design functions corresponds exactly to respectively *num* and *denum*.

## Return Value

Returns the handle to the created filter in case of success, NULL otherwise.

## Performance Consideration

See note of rtf_filter(3)

## See Also

## Referenced By

rtf_create_bandpass_analytic(3), rtf_create_chebychev(3), rtf_create_downsampler(3), rtf_create_fir_lowpass(3), rtf_destroy_filter(3), rtf_filter(3), rtf_get_type(3), rtf_init_filter(3).