2 #ifndef __GSL_FILTER_H__
3 #define __GSL_FILTER_H__
14 static inline double bse_trans_freq2s (
double w);
15 static inline double bse_trans_zepsilon2ss (
double epsilon);
19 void gsl_filter_butter_rp (uint iorder,
24 void gsl_filter_tscheb1_rp (uint iorder,
29 void gsl_filter_tscheb2_rp (uint iorder,
136 gboolean interpolate_db);
165 GSL_BIQUAD_NORMALIZE_PASSBAND,
166 GSL_BIQUAD_NORMALIZE_RESONANCE_GAIN,
167 GSL_BIQUAD_NORMALIZE_PEAK_GAIN
168 } GslBiquadNormalize;
172 GSL_BIQUAD_RESONANT_LOWPASS = 1,
173 GSL_BIQUAD_RESONANT_HIGHPASS,
174 GSL_BIQUAD_LOWSHELVE,
175 GSL_BIQUAD_HIGHSHELVE,
181 GslBiquadNormalize normalize;
186 guint approx_values : 1;
192 gdouble xc0, xc1, xc2;
194 gdouble xd1, xd2, yd1, yd2;
199 GslBiquadNormalize normalize);
210 gboolean reset_state);
234 return bse_complex_div (bse_complex_add (one, s), bse_complex_sub (one, s));
238 bse_trans_freq2s (
double w)
243 bse_trans_zepsilon2ss (
double zepsilon)
245 double e2 = (1.0 - zepsilon) * (1.0 - zepsilon);
251 return sqrt ((1.0 - e2) / e2);
254 bse_trans_freq2z (
double w)
256 return atan (w) * 2.;
void gsl_filter_butter_hp(uint iorder, double freq, double epsilon, double *a, double *b)
Definition: gslfilter.cc:447
double gsl_filter_tscheb2_steepness_db(uint iorder, double c_freq, double epsilon, double stopband_db)
Definition: gslfilter.cc:298
Definition: gslfilter.hh:191
void gsl_filter_tscheb2_bp(uint iorder, double freq1, double freq2, double steepness, double epsilon, double *a, double *b)
Definition: gslfilter.cc:590
Definition: bsemath.hh:39
Definition: gslfilter.hh:140
void gsl_filter_tscheb1_hp(uint iorder, double freq, double epsilon, double *a, double *b)
Definition: gslfilter.cc:470
gdouble gsl_filter_sine_scan(guint order, const gdouble *a, const gdouble *b, gdouble freq, gdouble mix_freq)
Definition: gslfilter.cc:1310
double gsl_filter_tscheb2_steepness(uint iorder, double c_freq, double epsilon, double residue)
Definition: gslfilter.cc:316
void gsl_filter_fir_approx(uint iorder, double *a, uint n_points, const double *freq, const double *value, gboolean interpolate_db)
Definition: gslfilter.cc:851
void gsl_filter_tscheb2_lp(uint iorder, double c_freq, double steepness, double epsilon, double *a, double *b)
Definition: gslfilter.cc:412
void gsl_filter_tscheb2_bs(uint iorder, double freq1, double freq2, double steepness, double epsilon, double *a, double *b)
Definition: gslfilter.cc:696
void gsl_filter_butter_bp(uint iorder, double freq1, double freq2, double epsilon, double *a, double *b)
Definition: gslfilter.cc:521
void gsl_filter_tscheb1_bs(uint iorder, double freq1, double freq2, double epsilon, double *a, double *b)
Definition: gslfilter.cc:661
void gsl_filter_butter_bs(uint iorder, double freq1, double freq2, double epsilon, double *a, double *b)
Definition: gslfilter.cc:627
void gsl_filter_tscheb2_hp(uint iorder, double c_freq, double steepness, double epsilon, double *a, double *b)
Definition: gslfilter.cc:494
void gsl_filter_tscheb1_bp(uint iorder, double freq1, double freq2, double epsilon, double *a, double *b)
Definition: gslfilter.cc:555
void gsl_filter_tscheb1_lp(uint iorder, double freq, double epsilon, double *a, double *b)
Definition: gslfilter.cc:373
void gsl_filter_butter_lp(uint iorder, double freq, double epsilon, double *a, double *b)
Definition: gslfilter.cc:343
Definition: gslfilter.hh:179