17 #ifndef SRCTOOLS_SINC_RESAMPLER_H 18 #define SRCTOOLS_SINC_RESAMPLER_H 20 #include "FIRResampler.h" 26 namespace SincResampler {
28 ResamplerStage *createSincResampler(
const double inputFrequency,
const double outputFrequency,
const double passbandFrequency,
const double stopbandFrequency,
const double dbSNR,
const unsigned int maxUpsampleFactor);
31 void computeResampleFactors(
unsigned int &upsampleFactor,
double &downsampleFactor,
const double inputFrequency,
const double outputFrequency,
const unsigned int maxUpsampleFactor);
32 unsigned int greatestCommonDivisor(
unsigned int a,
unsigned int b);
35 namespace KaizerWindow {
36 double estimateBeta(
double dbRipple);
37 unsigned int estimateOrder(
double dbRipple,
double fp,
double fs);
38 double bessel(
const double x);
39 void windowedSinc(FIRCoefficient kernel[],
const unsigned int order,
const double fc,
const double beta,
const double amp);
46 #endif // SRCTOOLS_SINC_RESAMPLER_H