FilterGen  1.0.0
A library to design digital filters in embedded systems.
utility.h
Go to the documentation of this file.
1 #ifndef DH_UTILITY_H_INCLUDED
2 #define DH_UTILITY_H_INCLUDED
3 
4 #include "dh/filter-types.h"
5 #include "dh/dh_complex.h"
6 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
24 void dh_compute_poles_on_s_plane(COMPLEX* ptr, size_t len);
25 
33 void dh_compute_polynomial_coefficients_from_roots(COMPLEX* roots, size_t len, COMPLEX* outputs);
34 
35 
45 void dh_normalize_gain_at(double* numerator, size_t len_numerator,double* denominator, size_t len_denominator, double x_evaluate);
46 
47 
57 COMPLEX dh_gain_at(double* numerator, size_t len_numerator,double* denominator, size_t len_denominator, double x_evaluate);
58 
68 void dh_convolve_parameters(double * param1,double * param2, size_t len,double * out );
69 
72 typedef struct
73 {
84  size_t (*zeros)(COMPLEX*,size_t,size_t,void*);
85 
96  size_t (*poles)(COMPLEX*,size_t,size_t,void*);
97 
99  void* user_data;
100 
104 
122 
124 #define MAYBE_UNUSED(X) (void)((X))
125 
126 #ifdef __cplusplus
127 }
128 #endif
129 
130 #endif /* DH_UTILITY_H_INCLUDED */
dh_compute_polynomial_coefficients_from_roots
void dh_compute_polynomial_coefficients_from_roots(COMPLEX *roots, size_t len, COMPLEX *outputs)
Computes polynomial coefficients from given array of roots.
DH_FILTER_CHARACTERISTIC
DH_FILTER_CHARACTERISTIC
Definition: filter-types.h:69
dh_transfer_function_callbacks::characteristic
DH_FILTER_CHARACTERISTIC characteristic
Definition: utility.h:102
dh_complex.h
Contains code to handle complex numbers in C, as MSVC does not support C99 complex types.
dh_filter_data
Definition: filter-types.h:206
dh_transfer_function_callbacks::user_data
void * user_data
Definition: utility.h:99
dh_filter_parameters
Definition: filter-types.h:81
dh_transfer_function_callbacks
Definition: utility.h:72
dh_gain_at
COMPLEX dh_gain_at(double *numerator, size_t len_numerator, double *denominator, size_t len_denominator, double x_evaluate)
Evaluates the polynomials at the given position and returns the gain.
filter-types.h
The data types for the filter library.
dh_convolve_parameters
void dh_convolve_parameters(double *param1, double *param2, size_t len, double *out)
Convolves two sets of FIR filter parameters to combine them into one filter.
COMPLEX
#define COMPLEX
Definition: dh_complex.h:16
dh_normalize_gain_at
void dh_normalize_gain_at(double *numerator, size_t len_numerator, double *denominator, size_t len_denominator, double x_evaluate)
Evaluates the polynomials at the given positions and normalizes the numerator for gain 1....
dh_compute_transfer_function_polynomials
DH_FILTER_RETURN_VALUE dh_compute_transfer_function_polynomials(dh_filter_data *filter, const dh_filter_parameters *options, const dh_transfer_function_callbacks cbs)
Computes the transfer function polynomial for a filter using the given callbacks.
dh_compute_poles_on_s_plane
void dh_compute_poles_on_s_plane(COMPLEX *ptr, size_t len)
Computes positions of poles on the complex plane. All poles are equally spaced in quadrants 2 and 3....
DH_FILTER_RETURN_VALUE
DH_FILTER_RETURN_VALUE
Definition: filter-types.h:188