public class RecursiveCascadeFilter
extends java.lang.Object
An advantage of recursive cascade filters is that they can be applied in-place; input and output arrays may be the same arrays.
A disadvantage of recursive cascade filters is that a forward-reverse application yields only an approximation to a symmetric zero-phase impulse response. This approximation is worst at array ends where the output of each 2nd-order filter truncated.
Modifier | Constructor and Description |
---|---|
protected |
RecursiveCascadeFilter() |
|
RecursiveCascadeFilter(Cdouble[] poles,
Cdouble[] zeros,
double gain)
Constructs a recursive filter with specified poles, zeros, and gain.
|
Modifier and Type | Method and Description |
---|---|
void |
apply1Forward(float[][][] x,
float[][][] y)
Applies this filter along the 1st dimension in the forward direction.
|
void |
apply1Forward(float[][] x,
float[][] y)
Applies this filter along the 1st dimension in the forward direction.
|
void |
apply1ForwardReverse(float[][][] x,
float[][][] y)
Applies this filter along the 1st dimension in the forward and
reverse directions.
|
void |
apply1ForwardReverse(float[][] x,
float[][] y)
Applies this filter along the 1st dimension in the forward and
reverse directions.
|
void |
apply1Reverse(float[][][] x,
float[][][] y)
Applies this filter along the 1st dimension in the reverse direction.
|
void |
apply1Reverse(float[][] x,
float[][] y)
Applies this filter along the 1st dimension in the reverse direction.
|
void |
apply2Forward(float[][][] x,
float[][][] y)
Applies this filter along the 2nd dimension in the forward direction.
|
void |
apply2Forward(float[][] x,
float[][] y)
Applies this filter along the 2nd dimension in the forward direction.
|
void |
apply2ForwardReverse(float[][][] x,
float[][][] y)
Applies this filter along the 2nd dimension in the forward and
reverse directions.
|
void |
apply2ForwardReverse(float[][] x,
float[][] y)
Applies this filter along the 2nd dimension in the forward and
reverse directions.
|
void |
apply2Reverse(float[][][] x,
float[][][] y)
Applies this filter along the 2nd dimension in the reverse direction.
|
void |
apply2Reverse(float[][] x,
float[][] y)
Applies this filter along the 2nd dimension in the reverse direction.
|
void |
apply3Forward(float[][][] x,
float[][][] y)
Applies this filter along the 3rd dimension in the forward direction.
|
void |
apply3ForwardReverse(float[][][] x,
float[][][] y)
Applies this filter along the 3rd dimension in the forward and
reverse directions.
|
void |
apply3Reverse(float[][][] x,
float[][][] y)
Applies this filter along the 3rd dimension in the reverse direction.
|
void |
applyForward(float[] x,
float[] y)
Applies this filter in the forward direction.
|
void |
applyForwardReverse(float[] x,
float[] y)
Applies this filter in the forward and reverse directions.
|
void |
applyReverse(float[] x,
float[] y)
Applies this filter in the reverse direction.
|
protected void |
init(Cdouble[] poles,
Cdouble[] zeros,
double gain) |
public RecursiveCascadeFilter(Cdouble[] poles, Cdouble[] zeros, double gain)
poles
- array of complex poles.zeros
- array of complex poles.gain
- the filter gain.protected RecursiveCascadeFilter()
public void applyForward(float[] x, float[] y)
x
- the input array.y
- the output array.public void applyReverse(float[] x, float[] y)
x
- the input array.y
- the output array.public void applyForwardReverse(float[] x, float[] y)
x
- the input array.y
- the output array.public void apply1Forward(float[][] x, float[][] y)
x
- the input array.y
- the output array.public void apply1Reverse(float[][] x, float[][] y)
x
- the input array.y
- the output array.public void apply1ForwardReverse(float[][] x, float[][] y)
x
- the input array.y
- the output array.public void apply2Forward(float[][] x, float[][] y)
x
- the input array.y
- the output array.public void apply2Reverse(float[][] x, float[][] y)
x
- the input array.y
- the output array.public void apply2ForwardReverse(float[][] x, float[][] y)
x
- the input array.y
- the output array.public void apply1Forward(float[][][] x, float[][][] y)
x
- the input array.y
- the output array.public void apply1Reverse(float[][][] x, float[][][] y)
x
- the input array.y
- the output array.public void apply1ForwardReverse(float[][][] x, float[][][] y)
x
- the input array.y
- the output array.public void apply2Forward(float[][][] x, float[][][] y)
x
- the input array.y
- the output array.public void apply2Reverse(float[][][] x, float[][][] y)
x
- the input array.y
- the output array.public void apply2ForwardReverse(float[][][] x, float[][][] y)
x
- the input array.y
- the output array.public void apply3Forward(float[][][] x, float[][][] y)
x
- the input array.y
- the output array.public void apply3Reverse(float[][][] x, float[][][] y)
x
- the input array.y
- the output array.public void apply3ForwardReverse(float[][][] x, float[][][] y)
x
- the input array.y
- the output array.