Application Note AIC3262 Dual-Microphone Noise Canceller Tuning

Application Note AIC3262 Dual-Microphone Noise Canceller Tuning
Application Note
AIC3262 Dual-Microphone Noise Canceller
Tuning Guideline
February 6, 2012
1. Overview
TI AIC3262 uplink dual-mic noise canceller consists of two components;
DualMic_NC_Preproc and DualMic_NC_Main. DualMic_NC_Preproc runs two
adaptive filters that intend to de-correlate speech and noise signal. Practically, it
reduces diffused noise in the primary channel only by 2~4 dB while it removes
speech well in the reference channel. DualMic_NC_Main is a frequency-domain
nonlinear noise suppressor. It uses the reference channel output of
DualMic_NC_Preproc for noise reference signal and further reduces noise level
in the primary channel. Noise reduction in DualMic_NC_Main is configurable and
can be up to 25 dB. Normally, 15 ~ 20 dB preserve good voice quality.
Speech + Noise
Primary
Speech + reduced Noise
DualMic_NC
Main
DualMic_NC
Preproc
Speech
Noise
Reference
Reduce noise in the primary
channel by 2~4dB
Reduce speech in the reference
channel by ~10 dB
Figure 1: Dual-Microphone noise canceller overview
Note that TI dual-mic NC performance is sub-optimal in some conditions. Optimal
performance requires good acoustic separation between two microphones. The
primary microphone should capture voice better than the reference microphone.
The primary microphone voice level should be higher than the reference by at
least 5 dB. The voice level at each microphone should be measured in proper
position (e.g. handheld position or handsfree position).
The following is the recommended microphone position for smart phone platform.
Facing top
Primary
microphone
Facing
side
Facing
bottom
Reference
microphone
Facing
bottom
Figure 2: Recommended microphone position examples
The figure below shows an example of dual-mic noise canceller system on GDE.
DualMic_NC_Preproc and DualMic_NC_Main are connected three I/O ports.
There first two are the primary and reference signal paths. The third port
connection is control flow for identifying initial convergence period (see Sec 2 for
detail). Biquad and Shift_Scale components follow DualMic_NC_Main for uplink
signal frequency shape and level adjustment.
Note that DC-removal filter should be set in Dec4xIn component. Cutoff
frequency is typically set to 80 – 100 Hz. AGC_HPF_n0, AGC_HPF_n1 and
AGC_HPF_d1 are coefficients of 1st order IIR filter embedded in Dec4xIn (they
have nothing to do with AGC). Values in Figures are an example for 8 kHz
sampling operation.
Figure 3: Dual-mic NC example process flow
Figure4 : Dec4xIn run-time parameter window
2. DualMic_NC_Preproc
DualMic_NC_Preproc component separates a primary voice signal from all other
types of noise including interfering talker’s voice. The component includes two
adaptive filters; H1 and H2. H1 estimates noise signal in the primary channel
while H2 estimates speech signal in the secondary channel.
DualMic_NC_Preproc
Primary voice
microphone
Noise
Voice
Noise reduced primary
microphone signal
Adaptive
Filter H1
Noise
Noise reference
signal
Adaptive
Filter H2
Noise reference
microphone
Figure 5 DualMic_NC_Preproc
a. Design-Time Properties
The table below shows a subset of DualMic_NC_preproc design-time
parameters.
1
2
3
4
5
6
Parameter Name
Description
mu1_step
mu2_step
mu1_init_step
mu2_init_step
Speech_Level_Thresh
Power_thresh
H1 filter step size
H2 filter step size
H1 filter initial step size
H2 filter initial step size
Speech level difference
H1/H2 maxim filter power
Recommended
(handset mode)
0.0008
0.008
0.08
0.08
See below
1.0
Recommended
(spkphone mode)
0.0008
0.008
0.08
0.08
1.0001
3.0
Table 1: DualMic_NC_Preproc design-time parameters for 8 kHz sampling rate
1
2
3
4
5
6
Parameter Name
Description
mu1_step
mu2_step
mu1_init_step
mu2_init_step
Speech_Level_Thresh
Power_thresh
H1 filter step size
H2 filter step size
H1 filter initial step size
H2 filter initial step size
Speech level difference
H1/H2 maxim filter power
Recommended
(handset mode)
0.0016
0.016
0.16
0.16
See below
1.0
Recommended
(spkphone mode)
0.0016
0.016
0.16
0.16
1.0001
3.0
Table 2: DualMic_NC_Preproc design-time parameters for 16 kHz sampling rate
Noise
Figure 6: DualMic_NC_Preproc Design Properties window
mu1_step
H1 filter step size. Larger number makes filter converged faster for quick
noise environment change, but it may cause filter divergence.
mu2_step
H2 filter step size. Larger number makes filter converged faster for quick
noise environment change, but it may cause filter divergence.
mu1_init_step
H1 filter initial step size. During initial convergence period, H1 filter uses
larger step size for faster convergence.
mu2_init_step
H2 filter initial step size. During initial convergence period, H2 filter uses
larger step size for faster convergence.
Speech_Level_Thresh
Speech level difference between two microphone inputs. Measure speech
power in normal position of use case. Conversion of speech level
difference in dB is described below. It is assumed that primary
microphone speech level is higher than the level in the reference
microphone, and speech level difference is 0 dN or positive dB value.
This parameter is a linear-scale value and need conversion below.
Speech_Level_Thresh = 10speech_level_diff_dB / 10
To make the component work better, set speech_level_diff_dB 1~2 dB
lower than actual measurement. For example, if speech level difference is
found 6 dB, compute Speech_Level_Thresh with 4 dB.
Power_thresh
If H1 or H2 filter power exceeds this parameter value, both the filter will
reset to initial condition (i.e. all zeros). This is a linear-scale value.
b. Tuning Process
i.
ii.
iii.
iv.
Usually, all four step sizes do not need to be changed. If filter
reset (i.e. filter divergence) is observed, reduce it a little by little.
Pewer_tresh does not usually need to be changed either.
Measure speech level at the primary and reference microphone
and set up Speech_Level_Thresho as described in 2.a.
Verify DualMic_NC_Preproc behavior by recording the primary
and reference channel output of DualMic_NC_Preproc. Usually,
noise level in the primary output is lower than the primary input
by 2~4 dB while speech level in the reference output is 5~10 dB
lower than the reference input.
3. DualMic_NC_Main
DualMic_NC_Main reduces stationary and non-stationary noise level in the
primary input channel signal. The noise spectrum and level is estimated from
noise reference signal in the reference input signal.
DualMic_NC_Main
Frequency
domain
Non-linear
processing
Primary voice
microphone
Speech
Noise reference
microphone
Noise
Figure 7: Dual microphone noise canceller without two-mic cross-talk coupling
The component assumes the second input port is noise reference signal. If a
target system has acoustic and/or electrical cross-talk coupling between two
microphones, DualMic_NC_Preproc should be used on the front end.
DualMic_NC_Preproc reduces speech signal level in the reference channel and
provides good noise reference signal to DualMic_NC_Main. The figure below is
an example configuration.
DualMic_NC_Main
Frequency
domain
Non-linear
processing
DualMic_NC_Preproc
Primary voice
microphone
Speech
Speech
Noise reference
microphone
Noise reference
Figure 8: Dual microphone noise canceller with two-mic cross-talk coupling
If the component is used in two-way communication system, the 4th input
channel should be enabled (DualMic_NC_Preproc and DualMic_NC_Main have
three port connection as default – see Sec 1). The component takes downlink
signal (receiving signal from the other side) in the 4th input channel and controls
noise reduction strength for optimal noise canceller performance during doubletalk. Note that the component does not act as an echo canceller. If echo needs to
be removed, AEC component should be used along with the noise canceller
component.
Noise
DualMic_NC_Main
Frequency
domain
Non-linear
processing
DualMic_NC_Preproc
Primary voice
microphone
Speech
Speech
Noise reference
microphone
Noise
Noise reference
Downlink signal
Figure 9: Dual microphone noise canceller for communication system
a. Run-Time Properties
Parameter Name
Description
Recommended
value
Default
Value
NR_LEVEL
Maximum Noise
reduction level
0.0631 – 0.1778
(-24 dB ~ -15 dB)
0.1259
(-18 dB)
NOISE_LEVEL_Adj
Noise level
adjustment
0.5 ~ 1.0
0.9
Table 3: DualMic_NC_Main run-time parameters
Figure 10: DualMic_NC_Main run-time properties window
NR_Level
The component suppresses noise as much as the specified level. The
smaller value (stronger attenuation) will reduce noise more aggressively.
It is specified in linear scale. If noise reduction level is desired to be set to
-15 dB, set the to 10(-0.05*15). The recommended range of this parameter is
- 15 ~ - 24 dB.
NOISE_LEVEL_Adj
Noise spectrum and level in the primary input channel is estimated from
noise reference signal in the reference channel. This parameter is gain for
the reference input. The smaller value (< 1.0) reduces the estimated
noise level and as a result preserves voice better while larger value (>
1.0) increases the estimated noise level and reduces noise level more
aggressively with some voice distortion such as chopping artifact.
b. Design-Time Properties
Property
Description
Recommended value
Default Value
Smooth_factor
Smoothing factor for signal
level estimation
0.5 – 0.95
0.8
Frequency shaping factor
See below.
1.0
FreqShape_table1~28
Table 4: DualMic_NC_Main design-time parameters
smooth_factor
Smoothing factor for signal level estimation. The smaller value indicates
weaker smoothing while the larger value indicating stronger smoothing.
The weaker smoothing makes voice sound brighter but produces musical
tone noise. The larger value eliminates musical tone noise, but might
make voice slightly sound muffled.
FreqShape_table1~28
Each table is corresponding to (0.5*Fs/28)*i , i = 1…28. The smaller
value setting attenuates more aggressively with some voice signal
attenuation in the corresponding frequency. The larger value preserves
voice signal better but does not aggressively reduce noise level in that
frequency. If voice sounds less intelligible, aggressively reduce lower
frequency signal by setting them to smaller value. The following is the
example setting for 8 kHz operation.
Figure 11: DualMic_NC_Main design-time properties window
c. Tuning Process
a.
b.
c.
d.
e.
f.
Start with default parameter values (see Table 3 and 4)
If voice chopping is observed, lower NOISE_LEVEL_ADJ
To increase noise reduction strength, 1) decrease NR_Level,
increase NOISE_LEVEL_ADJ and/or increase smooth factor.
If voice sounds muffled, decrease 1~3rd band frequency shaping
parameters
If voice sounds synthetic increase 1~3rd band frequency shaping
parameters
Adjust smooth factor to control trade off of musical tone
noise/click/thumps against noise-echo (noise surge) artifact.
New Design-Time Properties – Planned to be added in v4
Two new design-time properties below plan to be added to DualMic_NC_Main. It
is ideal to enable both features for the best performance, but it costs memory and
cycles. Two features can be independently enabled and disabled.
�
�
Frequency Matching in Two Channels
If Frequency matching flag is turned on, DualMic_NC_Main will
automatically compensate mismatch of noise level between the primary
and reference channel. Noise frequency characteristic sometimes does
not match between the primary and reference channel. It could come
from enclosure difference between two microphones, or
DualMic_NC_Preproc could change noise frequency characteristic after
the filtering. If noise frequency characteristic is known, biquad filter can be
alternatively inserted in the reference signal path instead of enabling this
feature.
Additional Noise Suppression in Long Pause
If this feature is enabled, DualMic_NC_Main will try to suppress noise
stronger than NR_LEVEL by 10 dB in long pause (non-speech) period.
This is not a noise-gate and will not produce noise pumping artifact.
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement