| RESPITE: The CASA Toolkit Page: Documentation: Block Library Index:HirschWANoiseEstimation |
This noise estimation technique, introduced by Hirsch and Ehrlicher (Proc. ICASSP `95) attempts to adapt its estimate to changes in the noise. It is based on a first order recursion to estimate the level of noise and uses an adaptive threshold to stop the recursion when the signal is most likely to be present. For each frequency channel, an estimate of the noise magnitude in frame t is obtained by:
if x(t) <= B.N(t-1), then N(t)=A.N(t-1)+ (1-A).x(t)
else if x(t) > B.N(t-1), then N(t)=N(t-1)
where x is the spectral magnitude (i.e. in1), N the noise magnitude estimation, and suitable values of A and B are around 0.98 and 2.0 respectively. The initialisation is the same as for the StationaryNoiseEstimation block i.e. the initial noise estimate is formed by averaging the first NFRAMES of data. (If IGNORE_LARGE is set then the values in the first NFRAMES are sorted and the larger 50% are discarded before calculating the mean.)
The constants A and B in the equations above are set via the block parameter ALPHA and BETA respectively.
| Inputs | Meaning | Sample | 1-D frame | |
|---|---|---|---|---|
| in1 | noisy spectral data | Yes | Yes | Yes |
| Outputs | Meaning |
|---|---|
| out1 | noise spectrum estimate |
| out2 | signal spectrum estimate |
| out3 | noise variance estimate |
| Parameters | Type | Default | Meaning |
|---|---|---|---|
| NFRAMES | Integer | - | Number of frames to use for initial noise estimate |
| IGNORE_LARGE | Boolean | False | Ignore larger values when making initial estimate |
| ALPHA | Integer | 0.98 | The value of A |
| BETA | Float | 2.0 | The value of B |