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