|
||||||||||
| 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.LowPassFilter
public class LowPassFilter
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class marytts.signalproc.filter.FIRFilter |
|---|
FIRFilter.FIROutput |
| Field Summary | |
|---|---|
static double |
DEFAULT_TRANSITIONBANDWIDTH
|
double |
normalisedCutoffFrequency
|
| Fields inherited from class marytts.signalproc.filter.FIRFilter |
|---|
denumeratorCoefficients, impulseResponseLength, sliceLength, transformedIR |
| Constructor Summary | |
|---|---|
LowPassFilter(double normalisedCutoffFrequencyIn)
Create a new lowpass filter with the given normalised cutoff frequency and a default transition band width. |
|
LowPassFilter(double normalisedCutoffFrequencyIn,
double normalisedTransitionBandwidth)
Create a new lowpass filter with the given normalised cutoff frequency and the given normalised transition band width. |
|
LowPassFilter(double normalisedCutoffFrequencyIn,
int kernelLength)
Create a new lowpass filter with the given normalised cutoff frequency and the given length of the filter kernel. |
|
| 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 normalisedCutoffFrequencyIn,
int kernelLength)
Compute the low-pass filter kernel, using a Blackman window. |
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 normalisedCutoffFrequency
| Constructor Detail |
|---|
public LowPassFilter(double normalisedCutoffFrequencyIn)
normalisedCutoffFrequency - the cutoff frequency of the lowpass filter,
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 normalisedCutoffFrequency would have to be 0.25.
public LowPassFilter(double normalisedCutoffFrequencyIn,
double normalisedTransitionBandwidth)
normalisedCutoffFrequency - the cutoff frequency of the lowpass filter,
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 normalisedCutoffFrequency would have to be 0.25.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 LowPassFilter(double normalisedCutoffFrequencyIn,
int kernelLength)
normalisedCutoffFrequency - the cutoff frequency of the lowpass filter,
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 normalisedCutoffFrequency would have to be 0.25.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 normalisedCutoffFrequencyIn,
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 | |||||||||