| RESPITE: The CASA Toolkit Page: Documentation: Block Library Index: Autocorrelator |
The Autocorrelator transforms a frame of input data by performing a time-domain autocorrelation along one of its axes.
The name of the dimension to act on if given by the AXIS parameter. If an axis is not specified then, by default, Autocorrelator searches for a dimension called ``TIME". Finally, if there is no ``TIME" dimension it will act on the frame's outermost dimension. After operation the dimension operated on will be renamed ``LAG".
There are a number of parameters that specify exactly how to perform the autocorrelation.
This may be set to either STAF or MODIFIED_STAF. When using the STAF (Short Time Autocorrelation Function) a copy of the window is gradually shifted against the original window and the dot product of the overlapping portions is calculated. As the shift is increased, the overlap gets smaller, and there are fewer terms contributing to the autocorrelation. This contrasts with the MODIFIED_STAF in which samples from beyond the extent of the original window are used to make sure that there are always an equal of number of terms contributing to the autocorrelation. (For a fuller explanation see Rabiner and Schafer, "Digitial Processing of Speech Signals")
When NORMALISE is set to true, then the autocorrelation at each lag is divided by the autocorrelation at 0 lag. This makes the result independent of signal energy.
This specifies the shaping to apply to each frame. This has a default value of RECTANGLE.
If not specified then for STAF the WINDOW_SIZE will be the same width as the axis along which the autocorrelation is being taken, and for MODIFIED_STAF it will be half this length (so that there is spare data for the padding).
This is the maximum amount that the copies of the window are shifted with respect to each other. By default it is the same as the window's size. It may be set to a lower value.
When using MODIFIED_STAF, MAX_LAG + WINDOW_SIZE must not exceed the width of the input frame, or if using 2-D frames, the width of the frame along the axis on which the autocorrelation is being performed. In no case should MAX_LAG exceed WINDOW_SIZE.
| Inputs | Meaning | Sample | 1-D frame | 2-D frame | >2-D frame |
|---|---|---|---|---|---|
| in1 | input frame data | No | Yes | Yes | No |
| Outputs | Meaning |
|---|---|
| out1 | frame data after autocorrelated |
| Parameters | Type | Default | Meaning |
|---|---|---|---|
| AXIS | String | - | Name of the axis to operate on |
| NORMALISE | Boolean | false | Apply normalisation? |
| WINDOW | {RECTANGLE, HAMMING, HANNING, TRIANGLE} | RECTANGLE | Window Shaping |
| WINDOW_SIZE | Integer | - | Size of window to employ |
| MAX_LAG | Integer | - | Maximum lag to compute |
| VERSION | {STAF, MODIFIED_STAF} | STAF | Type of autocorrelation to perform |