Overview
DSP Concepts proprietary Single-Channel Noise Reduction. Version 2.
Discussion
DSP Concepts proprietary Single-Channel Noise Reduction module. This module works in conjunction with the WOLA filterbank modules. The module supports any number of channels and applies noise reduction independently to each. The input pin is mic input signal and output pin is stationary noise-suppressed signal. There is an optional 2nd output pin that outputs noise masking gain for each frequency
...
The module can be configured to output an optional 2nd output pin. This pin holds the instantaneous gain reduction (as a linear value) that is applied to each subband.
Type Definition
Code Block |
---|
typedef struct _ModuleSCNRv2 { ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure FLOAT32 minGaindB; // the minimum gain to be applied in dB FLOAT32 noiseAdjustdB; // noise level adjustment in dB. FLOAT32 minGain; // the minimum gain to be applied in linear. FLOAT32 noiseAdjust; // noise level adjustment in linear. FLOAT32 attackTime; // Internal coefficient realizing the attack time. FLOAT32 attackCoeff; // Internal coefficient realizing the attack time. FLOAT32 freq1; // Internal coefficient realizing the attack time. FLOAT32 b0_1; // Desired first numerator coefficient. FLOAT32 b1_1; // Desired second numerator coefficient. FLOAT32 a1_1; // Desired second denominator coefficient. FLOAT32 freq2; // Internal coefficient realizing the attack time. FLOAT32 b0_2; // Desired first numerator coefficient. FLOAT32 b1_2; // Desired second numerator coefficient. FLOAT32 a1_2; // Desired second denominator coefficient. FLOAT32 ppriorTimeConst; // Internal coefficient realizing the attack time. FLOAT32 ppriorEta; // Internal coefficient realizing the attack time. FLOAT32* pxState; // Sb smoothing state for Px computation. FLOAT32* pshatState; // Sb smoothing state for Ps_hat computation. FLOAT32* gainState; // Sb smoothing state for gain computation. FLOAT32* pnEnvState; // Attack release env state for Pn computation. FLOAT32* prevPsHat; // Feedback memory. FLOAT32* maskGain; // Noise suppression mask gain. } ModuleSCNRv2Class; |
Variables
Properties
Name | Type | Usage | isHidden | Default value | Range | Units |
minGaindB | float | parameter | 0 | -12 | -20:1:0 | dB |
noiseAdjustdB | float | parameter | 0 | 6 | 0:1:12 | dB |
minGain | float | derived | 1 | 0.25119 | Unrestricted | |
noiseAdjust | float | derived | 1 | 3.9811 | Unrestricted | |
attackTime | float | const | 1 | 2000 | Unrestricted | |
attackCoeff | float | derived | 1 | 1.0417e-05 | Unrestricted | |
freq1 | float | const | 1 | 12 | Unrestricted | |
b0_1 | float | derived | 1 | 0.00078478 | Unrestricted | |
b1_1 | float | derived | 1 | 0.00078478 | Unrestricted | |
a1_1 | float | derived | 1 | 0.99843 | Unrestricted | |
freq2 | float | const | 1 | 5 | Unrestricted | |
b0_2 | float | derived | 1 | 0.00032714 | Unrestricted | |
b1_2 | float | derived | 1 | 0.00032714 | Unrestricted | |
a1_2 | float | derived | 1 | 0.99935 | Unrestricted | |
ppriorTimeConst | float | const | 1 | 311.9 | Unrestricted | |
ppriorEta | float | derived | 1 | 0.99993 | Unrestricted | |
pxState | float* | state | 1 | [1 x 32] | Unrestricted | |
pshatState | float* | state | 1 | [1 x 32] | Unrestricted | |
gainState | float* | state | 1 | [1 x 32] | Unrestricted | |
pnEnvState | float* | state | 1 | [1 x 32] | Unrestricted | |
prevPsHat | float* | state | 1 | [1 x 32] | Unrestricted | |
maskGain | float* | state | 1 | [1 x 33] | Unrestricted |
Pins
Input Pins
Name: in
Description: Audio input
...
Sample rate range: Unrestricted
Complex support: Complex
Output Pins
Name: out
Description: audio output
...
Description: SCNR mask gain
Data type: float
MATLAB Usage
File Name: scnr_v2_module.m
...