|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectmarytts.signalproc.filter.FIRFilter
marytts.signalproc.filter.BandRejectFilter
public class BandRejectFilter
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class marytts.signalproc.filter.FIRFilter |
|---|
FIRFilter.FIROutput |
| Field Summary | |
|---|---|
static double |
DEFAULT_TRANSITIONBANDWIDTH
|
double |
lowerNormalisedCutoffFrequency
|
double |
upperNormalisedCutoffFrequency
|
| Fields inherited from class marytts.signalproc.filter.FIRFilter |
|---|
denumeratorCoefficients, impulseResponseLength, sliceLength, transformedIR |
| Constructor Summary | |
|---|---|
BandRejectFilter(double lowerNormalisedCutoffFrequencyIn,
double upperNormalisedCutoffFrequencyIn)
Create a new band reject filter with the given normalised cutoff frequencies and a default transition band width. |
|
BandRejectFilter(double lowerNormalisedCutoffFrequencyIn,
double upperNormalisedCutoffFrequencyIn,
double normalisedTransitionBandwidth)
Create a new band reject filter with the given normalised 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. |
|
| Method Summary | |
|---|---|
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(java.lang.String[] args)
|
java.lang.String |
toString()
|
| Methods inherited from class marytts.signalproc.filter.FIRFilter |
|---|
apply, apply, applyInline, getDenumeratorCoefficients, getImpulseResponseLength, initialise |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static double DEFAULT_TRANSITIONBANDWIDTH
public double lowerNormalisedCutoffFrequency
public double upperNormalisedCutoffFrequency
| Constructor Detail |
|---|
public BandRejectFilter(double lowerNormalisedCutoffFrequencyIn,
double upperNormalisedCutoffFrequencyIn)
lowerNormalisedCutoffFrequency - 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.upperNormalisedCutoffFrequency - 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)
lowerNormalisedCutoffFrequency - 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.upperNormalisedCutoffFrequency - 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)
lowerNormalisedCutoffFrequency - 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.upperNormalisedCutoffFrequency - 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.
java.lang.IllegalArgumentException - if the kernel length is not a positive, odd number,
or if normalisedCutoffFrequency is not in the range between 0 and 0.5.| Method Detail |
|---|
public double getTransitionBandWidth(int samplingRate)
samplingRate - the sampling rate, in Hertz.
protected static double[] getKernel(double lowerNormalisedCutoffFrequencyIn,
double upperNormalisedCutoffFrequencyIn,
int kernelLength)
protected static int bandwidth2kernelLength(double normalisedTransitionBandwidth)
normalisedTransitionBandwidth -
protected static double kernelLength2bandwidth(int kernelLength)
kernelLength -
public java.lang.String toString()
toString in class java.lang.Object
public static void main(java.lang.String[] args)
throws java.lang.Exception
java.lang.Exception
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||