public class BandRejectFilter extends FIRFilter
FIRFilter.FIROutput
Modifier and Type | Field and Description |
---|---|
static double |
DEFAULT_TRANSITIONBANDWIDTH |
double |
lowerNormalisedCutoffFrequency |
double |
upperNormalisedCutoffFrequency |
denumeratorCoefficients, impulseResponseLength, sliceLength, transformedIR
Constructor and Description |
---|
BandRejectFilter(double lowerNormalisedCutoffFrequencyIn,
double upperNormalisedCutoffFrequencyIn)
Create a new band reject filter with the given normalized cutoff frequencies and a default transition band width.
|
BandRejectFilter(double lowerNormalisedCutoffFrequencyIn,
double upperNormalisedCutoffFrequencyIn,
double normalisedTransitionBandwidth)
Create a new band reject filter with the given normalized cutoff frequencies and a default transition band width.
|
BandRejectFilter(double lowerNormalisedCutoffFrequencyIn,
double upperNormalisedCutoffFrequencyIn,
int kernelLength)
Create a new band reject filter with the given normalised cutoff frequencies and a default transition band width.
|
Modifier and Type | Method and Description |
---|---|
protected static int |
bandwidth2kernelLength(double normalisedTransitionBandwidth)
Convert from normalisedTransitionBandwidth to filter kernel length, using the approximate formula l = 4/bw.
|
protected static double[] |
getKernel(double lowerNormalisedCutoffFrequencyIn,
double upperNormalisedCutoffFrequencyIn,
int kernelLength)
Compute the band-reject filter kernel, as the sum of a low-pass filter kernel and a high-pass filter kernel.
|
double |
getTransitionBandWidth(int samplingRate)
For a given sampling rate, return the width of the transition band for this filter, in Hertz.
|
protected static double |
kernelLength2bandwidth(int kernelLength)
Convert from filter kernel length to normalisedTransitionBandwidth, using the approximate formula l = 4/bw.
|
static void |
main(String[] args) |
String |
toString() |
apply, apply, applyInline, getDenumeratorCoefficients, getImpulseResponseLength, initialise
public static double DEFAULT_TRANSITIONBANDWIDTH
public double lowerNormalisedCutoffFrequency
public double upperNormalisedCutoffFrequency
public BandRejectFilter(double lowerNormalisedCutoffFrequencyIn, double upperNormalisedCutoffFrequencyIn)
lowerNormalisedCutoffFrequencyIn
- the cutoff frequency corresponding to the lower end of the band, expressed as a fraction of the sampling rate.
It must be in the range ]0, 0.5[. For example, with a sampling rate of 16000 Hz and a desired cutoff frequency
of 4000 Hz, the lowerNormalisedCutoffFrequency would have to be 0.25.upperNormalisedCutoffFrequencyIn
- the cutoff frequency corresponding to the upper end of the band, expressed as a fraction of the sampling rate.
It must be in the range ]0, 0.5[. For example, with a sampling rate of 16000 Hz and a desired cutoff frequency
of 6000 Hz, the upperNormalisedCutoffFrequency would have to be 0.375.public BandRejectFilter(double lowerNormalisedCutoffFrequencyIn, double upperNormalisedCutoffFrequencyIn, double normalisedTransitionBandwidth)
lowerNormalisedCutoffFrequencyIn
- the cutoff frequency corresponding to the lower end of the band, expressed as a fraction of the sampling rate.
It must be in the range ]0, 0.5[. For example, with a sampling rate of 16000 Hz and a desired cutoff frequency
of 4000 Hz, the lowerNormalisedCutoffFrequency would have to be 0.25.upperNormalisedCutoffFrequencyIn
- the cutoff frequency corresponding to the upper end of the band, expressed as a fraction of the sampling rate.
It must be in the range ]0, 0.5[. For example, with a sampling rate of 16000 Hz and a desired cutoff frequency
of 6000 Hz, the upperNormalisedCutoffFrequency would have to be 0.375.normalisedTransitionBandwidth
- indicates the desired quality of the filter. The smaller the bandwidth, the more abrupt the cutoff at the cutoff
frequency, but also the larger the filter kernel (impulse response) and computationally costly the filter. Usual
range of this parameter is [0.002, 0.2].public BandRejectFilter(double lowerNormalisedCutoffFrequencyIn, double upperNormalisedCutoffFrequencyIn, int kernelLength)
lowerNormalisedCutoffFrequencyIn
- the cutoff frequency corresponding to the lower end of the band, expressed as a fraction of the sampling rate.
It must be in the range ]0, 0.5[. For example, with a sampling rate of 16000 Hz and a desired cutoff frequency
of 4000 Hz, the lowerNormalisedCutoffFrequency would have to be 0.25.upperNormalisedCutoffFrequencyIn
- the cutoff frequency corresponding to the upper end of the band, expressed as a fraction of the sampling rate.
It must be in the range ]0, 0.5[. For example, with a sampling rate of 16000 Hz and a desired cutoff frequency
of 6000 Hz, the upperNormalisedCutoffFrequency would have to be 0.375.kernelLength
- length of the filter kernel (the impulse response). The kernel length must be an odd number. The longer the
kernel, the sharper the cutoff, i.e. the narrower the transition band. Typical lengths are in the range of
10-1000.IllegalArgumentException
- if the kernel length is not a positive, odd number, or if normalisedCutoffFrequency is not in the range between
0 and 0.5.public double getTransitionBandWidth(int samplingRate)
samplingRate
- the sampling rate, in Hertz.protected static double[] getKernel(double lowerNormalisedCutoffFrequencyIn, double upperNormalisedCutoffFrequencyIn, int kernelLength)
lowerNormalisedCutoffFrequencyIn
- lowerNormalisedCutoffFrequencyInupperNormalisedCutoffFrequencyIn
- upperNormalisedCutoffFrequencyInkernelLength
- kernelLengthprotected static int bandwidth2kernelLength(double normalisedTransitionBandwidth)
normalisedTransitionBandwidth
- normalisedTransitionBandwidthprotected static double kernelLength2bandwidth(int kernelLength)
kernelLength
- kernelLengthCopyright © 2000–2016 DFKI GmbH. All rights reserved.