Add coefficient query functions
Add some functions that allow the opaque struct iir_coeff_t to be queried in order to retrieve the number and value of the filter coefficients.
This commit is contained in:
parent
77a526388d
commit
628e1d55a2
|
@ -58,6 +58,35 @@ iir_coeff_free(struct iir_coeff_t* coeff)
|
|||
|
||||
|
||||
|
||||
/* iir_coeff_get_*()
|
||||
* Functions for querying the coefficients that make up an IIR filter.
|
||||
*/
|
||||
int
|
||||
iir_coeff_get_nc(const struct iir_coeff_t* coeff)
|
||||
{
|
||||
return coeff->nc;
|
||||
}
|
||||
|
||||
int
|
||||
iir_coeff_get_nd(const struct iir_coeff_t* coeff)
|
||||
{
|
||||
return coeff->nd;
|
||||
}
|
||||
|
||||
double
|
||||
iir_coeff_get_c(const struct iir_coeff_t* coeff, int idx)
|
||||
{
|
||||
return coeff->c[idx];
|
||||
}
|
||||
|
||||
double
|
||||
iir_coeff_get_d(const struct iir_coeff_t* coeff, int idx)
|
||||
{
|
||||
return coeff->d[idx];
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* struct iir_filter_t
|
||||
* An instantiated IIR filter. This is actually a linked list node, so that we
|
||||
* can create chains of filters. It also has a copy of the coefficients so that
|
||||
|
|
|
@ -69,6 +69,48 @@ void iir_coeff_free(struct iir_coeff_t* coeff);
|
|||
|
||||
|
||||
|
||||
/*! \brief Query number of C coefficients.
|
||||
|
||||
\param coeff Pointer to IIR filter object.
|
||||
\returns Number of C coefficients (≥1).
|
||||
|
||||
*/
|
||||
int iir_coeff_get_nc(const struct iir_coeff_t* coeff);
|
||||
|
||||
|
||||
|
||||
/*! \brief Query number of D coefficients.
|
||||
|
||||
\param coeff Pointer to IIR filter object.
|
||||
\returns Number of D coefficients (≥1).
|
||||
|
||||
*/
|
||||
int iir_coeff_get_nd(const struct iir_coeff_t* coeff);
|
||||
|
||||
|
||||
|
||||
/*! \brief Get value of C coefficient.
|
||||
|
||||
\param coeff Pointer to IIR filter object.
|
||||
\param idx Index of coefficient (≥0, < \ref iir_coeff_get_nc()).
|
||||
\returns C coefficient value.
|
||||
|
||||
*/
|
||||
double iir_coeff_get_c(const struct iir_coeff_t* coeff, int idx);
|
||||
|
||||
|
||||
|
||||
/*! \brief Get value of D coefficient.
|
||||
|
||||
\param coeff Pointer to IIR filter object.
|
||||
\param idx Index of coefficient (≥0, < \ref iir_coeff_get_nd()).
|
||||
\returns D coefficient value.
|
||||
|
||||
*/
|
||||
double iir_coeff_get_d(const struct iir_coeff_t* coeff, int idx);
|
||||
|
||||
|
||||
|
||||
/* opaque structure */
|
||||
struct iir_filter_t;
|
||||
|
||||
|
|
Loading…
Reference in New Issue