public class BesselFilterDesign extends Object
Modifier and Type | Method and Description |
---|---|
static double |
computeGain(double[] polyCoeffs,
double w)
Computes the normalized gain of a Bessel filter at a given frequency.
|
static Complex[] |
computePoles(int n)
Returns the frequency normalized s-plane poles for a Bessel filter.
|
static double[] |
computePolynomialCoefficients(int n)
Returns the polynomial coefficients for the Bessel polynomial of the given order.
|
static double |
findFrequencyForGain(double[] polyCoeffs,
double gain)
This method uses appoximation to find the frequency for a given gain.
|
static double |
findFrequencyScalingFactor(double[] polyCoeffs)
Returns the frequency normalization scaling factor for a Bessel filter.
|
static Complex |
transferFunction(double[] polyCoeffs,
Complex s)
Evaluates the transfer function of a Bessel filter.
|
public static double[] computePolynomialCoefficients(int n)
Reference: Wikipedia.
n
- The order of the polynomial.a[]
with the coefficients, ordered in descending powers, for:
a[0] * x^n + a[1] * x^(n-1) + ... a[n-1] * x + a[n]
public static Complex transferFunction(double[] polyCoeffs, Complex s)
polyCoeffs
- Coefficients of the reverse Bessel polynomial.s
- Complex frequency.public static double computeGain(double[] polyCoeffs, double w)
polyCoeffs
- Coefficients of the reverse Bessel polynomial.w
- Relative frequency.public static double findFrequencyForGain(double[] polyCoeffs, double gain)
If anyone knows a better way than approximation to find the 3dB cuttoff frequency, please let me know (chdh@inventec.ch).
polyCoeffs
- Coefficients of the reverse Bessel polynomial.gain
- A normalized gain.public static double findFrequencyScalingFactor(double[] polyCoeffs)
polyCoeffs
- Coefficients of the reverse Bessel polynomial.public static Complex[] computePoles(int n)
n
- The filter order.