kopia lustrzana https://github.com/Dsplib/libdspl-2.0
added low2bp filter transform
rodzic
afdc6bf7e5
commit
19d4e40a88
|
@ -25,9 +25,37 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* low 2 bandpass transformation
|
||||||
|
******************************************************************************/
|
||||||
|
int DSPL_API low2bp( double* b, double* a, int ord,
|
||||||
|
double w0, double wpl, double wph,
|
||||||
|
double* beta, double* alpha)
|
||||||
|
{
|
||||||
|
|
||||||
|
double num[3] = {0.0, 0.0, 1.0};
|
||||||
|
double den[3] = {0.0, 0.0, 0.0};
|
||||||
|
|
||||||
|
if(!b || !a || !beta || !alpha)
|
||||||
|
return ERROR_PTR;
|
||||||
|
if(ord < 1)
|
||||||
|
return ERROR_FILTER_ORD;
|
||||||
|
if(w0 <= 0.0 || wpl <= 0.0 || wph <= 0.0 || wph <= wpl)
|
||||||
|
return ERROR_FILTER_FT;
|
||||||
|
|
||||||
|
num[0] = (wph * wpl) / (w0 * w0);
|
||||||
|
den[1] = (wph - wpl) / w0;
|
||||||
|
|
||||||
|
return ratcompos(b, a, ord, num, den, 2, beta, alpha);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* low 2 high transformation
|
* low 2 high transformation
|
||||||
*******************************************************************************/
|
******************************************************************************/
|
||||||
int DSPL_API low2high(double* b, double* a, int ord, double w0, double w1,
|
int DSPL_API low2high(double* b, double* a, int ord, double w0, double w1,
|
||||||
double* beta, double* alpha)
|
double* beta, double* alpha)
|
||||||
{
|
{
|
||||||
|
|
|
@ -85,7 +85,7 @@ p_flipip_cmplx flipip_cmplx ;
|
||||||
p_fourier_series_dec fourier_series_dec ;
|
p_fourier_series_dec fourier_series_dec ;
|
||||||
p_fourier_series_rec fourier_series_rec ;
|
p_fourier_series_rec fourier_series_rec ;
|
||||||
p_freqs freqs ;
|
p_freqs freqs ;
|
||||||
p_freqs_cmplx freqs_cmplx ;
|
p_freqs_cmplx freqs_cmplx ;
|
||||||
p_freqs_resp freqs_resp ;
|
p_freqs_resp freqs_resp ;
|
||||||
p_freqs2time freqs2time ;
|
p_freqs2time freqs2time ;
|
||||||
p_freqz freqz ;
|
p_freqz freqz ;
|
||||||
|
@ -94,8 +94,9 @@ p_goertzel_cmplx goertzel_cmplx ;
|
||||||
p_linspace linspace ;
|
p_linspace linspace ;
|
||||||
p_log_cmplx log_cmplx ;
|
p_log_cmplx log_cmplx ;
|
||||||
p_logspace logspace ;
|
p_logspace logspace ;
|
||||||
p_low2low low2low ;
|
p_low2bp low2bp ;
|
||||||
p_low2high low2high ;
|
p_low2high low2high ;
|
||||||
|
p_low2low low2low ;
|
||||||
p_poly_z2a_cmplx poly_z2a_cmplx ;
|
p_poly_z2a_cmplx poly_z2a_cmplx ;
|
||||||
p_polyval polyval ;
|
p_polyval polyval ;
|
||||||
p_polyval_cmplx polyval_cmplx ;
|
p_polyval_cmplx polyval_cmplx ;
|
||||||
|
@ -223,8 +224,9 @@ void* dspl_load()
|
||||||
LOAD_FUNC(linspace);
|
LOAD_FUNC(linspace);
|
||||||
LOAD_FUNC(log_cmplx);
|
LOAD_FUNC(log_cmplx);
|
||||||
LOAD_FUNC(logspace);
|
LOAD_FUNC(logspace);
|
||||||
LOAD_FUNC(low2low);
|
LOAD_FUNC(low2bp);
|
||||||
LOAD_FUNC(low2high);
|
LOAD_FUNC(low2high);
|
||||||
|
LOAD_FUNC(low2low);
|
||||||
LOAD_FUNC(poly_z2a_cmplx);
|
LOAD_FUNC(poly_z2a_cmplx);
|
||||||
LOAD_FUNC(polyval);
|
LOAD_FUNC(polyval);
|
||||||
LOAD_FUNC(polyval_cmplx);
|
LOAD_FUNC(polyval_cmplx);
|
||||||
|
|
|
@ -522,6 +522,15 @@ DECLARE_FUNC(int, logspace, double
|
||||||
COMMA int
|
COMMA int
|
||||||
COMMA double*);
|
COMMA double*);
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
DECLARE_FUNC(int, low2bp, double* b
|
||||||
|
COMMA double* a
|
||||||
|
COMMA int ord
|
||||||
|
COMMA double w0
|
||||||
|
COMMA double wpl
|
||||||
|
COMMA double wph
|
||||||
|
COMMA double* beta
|
||||||
|
COMMA double* alpha);
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
DECLARE_FUNC(int, low2high, double* b
|
DECLARE_FUNC(int, low2high, double* b
|
||||||
COMMA double* a
|
COMMA double* a
|
||||||
COMMA int ord
|
COMMA int ord
|
||||||
|
|
|
@ -85,7 +85,7 @@ p_flipip_cmplx flipip_cmplx ;
|
||||||
p_fourier_series_dec fourier_series_dec ;
|
p_fourier_series_dec fourier_series_dec ;
|
||||||
p_fourier_series_rec fourier_series_rec ;
|
p_fourier_series_rec fourier_series_rec ;
|
||||||
p_freqs freqs ;
|
p_freqs freqs ;
|
||||||
p_freqs_cmplx freqs_cmplx ;
|
p_freqs_cmplx freqs_cmplx ;
|
||||||
p_freqs_resp freqs_resp ;
|
p_freqs_resp freqs_resp ;
|
||||||
p_freqs2time freqs2time ;
|
p_freqs2time freqs2time ;
|
||||||
p_freqz freqz ;
|
p_freqz freqz ;
|
||||||
|
@ -94,8 +94,9 @@ p_goertzel_cmplx goertzel_cmplx ;
|
||||||
p_linspace linspace ;
|
p_linspace linspace ;
|
||||||
p_log_cmplx log_cmplx ;
|
p_log_cmplx log_cmplx ;
|
||||||
p_logspace logspace ;
|
p_logspace logspace ;
|
||||||
p_low2low low2low ;
|
p_low2bp low2bp ;
|
||||||
p_low2high low2high ;
|
p_low2high low2high ;
|
||||||
|
p_low2low low2low ;
|
||||||
p_poly_z2a_cmplx poly_z2a_cmplx ;
|
p_poly_z2a_cmplx poly_z2a_cmplx ;
|
||||||
p_polyval polyval ;
|
p_polyval polyval ;
|
||||||
p_polyval_cmplx polyval_cmplx ;
|
p_polyval_cmplx polyval_cmplx ;
|
||||||
|
@ -223,8 +224,9 @@ void* dspl_load()
|
||||||
LOAD_FUNC(linspace);
|
LOAD_FUNC(linspace);
|
||||||
LOAD_FUNC(log_cmplx);
|
LOAD_FUNC(log_cmplx);
|
||||||
LOAD_FUNC(logspace);
|
LOAD_FUNC(logspace);
|
||||||
LOAD_FUNC(low2low);
|
LOAD_FUNC(low2bp);
|
||||||
LOAD_FUNC(low2high);
|
LOAD_FUNC(low2high);
|
||||||
|
LOAD_FUNC(low2low);
|
||||||
LOAD_FUNC(poly_z2a_cmplx);
|
LOAD_FUNC(poly_z2a_cmplx);
|
||||||
LOAD_FUNC(polyval);
|
LOAD_FUNC(polyval);
|
||||||
LOAD_FUNC(polyval_cmplx);
|
LOAD_FUNC(polyval_cmplx);
|
||||||
|
|
|
@ -522,6 +522,15 @@ DECLARE_FUNC(int, logspace, double
|
||||||
COMMA int
|
COMMA int
|
||||||
COMMA double*);
|
COMMA double*);
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
DECLARE_FUNC(int, low2bp, double* b
|
||||||
|
COMMA double* a
|
||||||
|
COMMA int ord
|
||||||
|
COMMA double w0
|
||||||
|
COMMA double wpl
|
||||||
|
COMMA double wph
|
||||||
|
COMMA double* beta
|
||||||
|
COMMA double* alpha);
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
DECLARE_FUNC(int, low2high, double* b
|
DECLARE_FUNC(int, low2high, double* b
|
||||||
COMMA double* a
|
COMMA double* a
|
||||||
COMMA int ord
|
COMMA int ord
|
||||||
|
|
|
@ -28,3 +28,6 @@ int main()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue