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 $\ge$2-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

Documentation for CTKv1.1.4 - Last modified: Thu Jun 28 15:43:52 BST 2001