HI
I have question for Kalman AEC
what is look-up table(2 x 7) for?
I know it is related with noise reduction,
I read help file carefully,
but I don't know how each numbers in the matrix affect performance of noise reduction.
Would you please explain?
9:31pm
Hi Eugine,
Can you tell me specifically what documentation you are looking at?
Thanks,
Gary
3:10am
Hi Gary
Based on the information provided in the Audio Weaver documentation,
I made assumption.
I construct an example that shows the general form of a residual noise suppression lookup table
Row 1 => is it inpult level dB?
[-80, -60, -50, -40, -30, -20, -10]
Row 2 => is it output level dB?
[-80, -60, -55, -50, -40, -30, -25]
Interpretation:
-80 dB input: Output -80 dB. No attenuation is applied to very small signals.
-60 dB input: Output -60 dB. No attenuation is applied to small signals.
-50 dB input: Output -55 dB, which is a 5 dB attenuation. -40 dB input: Output is attenuated to -50 dB, 10 dB.
-30 dB input: Output -40 dB, noise attenuated 10 dB.
-20 dB input: Output -30dB, noise attenuated 10 dB.
-10 dB input: Output -25 dB, noise attenuated 15 dB.
What this example(assumption) tells:
At low input levels, very little attenuation is applied, minimizing audio quality loss.
As input levels approach mid-level, the amount of attenuation is gradually increased to reduce residual noise.
As input levels reach a certain level, a constant amount of attenuation is applied to suppress larger residual echoes.
my understanding is correct?
11:48am
Hi Eugine,
Checking the help page for the module you showed:
SbKalmanAECMonoV1
"The residual noise suppression is configured by a 7 element interpolation table. This table operates just like the Table X-Y module with configurable (X, Y) lookup points. The lookup table specifies values in dB for the input and output function."
RNS is implemented as a set of (WOLA-domain, real valued, between 0 and 1) multiplicative weights applied to the WOLA-domain output (error) signal of the SbAEC and Kalman modules. Weight values close to 0 mean that a lot of suppression is applied while weight values close to 1 mean that little suppression is applied.
The high-level principle is very simple: in each subband, the RNS weight is small (meaning heavy suppression) if adaptation is taking place at or near full speed and it is large (meaning little suppression) if no or little adaptation is taking place (for instance during near-end single talk, and ideally during double-talk).
Thanks,
Gary
2:01am
Hi Gary
then., 1,2,3,4,5,6,7 means subband?
(1 is lowest frequency subband, 7 is highest frequency subband)
and bigger difference between first row in dB and second row in dB means more noise suppression?
7:26pm
Hi Eugine,
The table indices do not represent subbands. They are merely interpolation table points. Each RNS weight goes through this table and is mapped to a new value.
Here's a visual explanation.
Thanks,
Gary
10:44pm
Hi Gary
thank you very much.
if I use default value(below),
-60 -50 -40 -30 -20 -10 0
-60 -50 -40 -30 -20 -10 0
it means non-agressive noise suppression, that using RNS Weight W2(w,k) will be used for E'(w,k).
am I right?
if I need more aggressive noise suppression,
below value make sense to you?
-60 -50 -40 -30 -20 -10 0
-95 -80 -65 -50 -35 -20 -10
or
-30 -25 -20 -15 -10 -5 0
-80 -60 -50- -40 -30 -20 -10
for me,
there are so many possibilities,
I like to know minimum and maximum value for first row and second row of each column
thanks
6:19pm
Hi Eugine,
That's right. I don't know if I would call that "non-aggressive" because you could make it even less aggressive than that.
The first one kind of makes sense because the input range is wider (-60:0). Both of these examples have an issue though. 0dB input is mapped to -10dB output. This means that even when the RNS is "open" it will still be suppressing everything by 10dB. It'd be like if you put a -10dB gain block at the output of the Kalman.
There aren't fixed min and max values for table interp. There are ranges that make sense though. It makes sense for the first (input) row to be no less than -90 and no greater than 0. The second (output) row should also be no greater than 0 and no less than the most you would want to suppress. Choosing the lower bound will probably have to involve some tuning.
Thanks,
Gary
5:21am
Hi Thank you very much for your reply.
how about this?
case 1)
-60 -50 -40 -30 -20 -10 0
-70 -100 -40 -30 -20 -60 0
case 2)
0 0 -40 -30 -20 0 0
-10 -50 -40 -30 -20 -50 0
would you give me your opinion on both cases please?
thanks
5:31pm
Case 2:
This would be an invalid input to the table because it is a requirement that the X values be monotonically increasing.
Case 1:
This is technically a valid input to the table but it does not seem like a good configuration. This is because this application of an interpolation table (RNS weight adjustment) only makes sense if the Y values are also monotonically increasing.For example:
• for x=-10, y=-60. This is a large addition of 50dB of attenuation, if the filter module calculates that there should be -10dB of attenuation for some arbitrary RNS weight.
• for x=-20, y=-20. Now there is no added attenuation for a RNS weight of -20dB. This suggests that if the filter module determines there should be more attenuation on some arbitrary bin then there should actually be LESS attenuation.
This is demonstrated visually in the attached screenshot of these table values which are input into a separate "Table X-Y Interp" module instance. You can try this on your end to visually see what's going on with the RNS weight mapping.
See also: TableInterp
Thanks,
Gary
4:54am
Hi Gary
I think I get better understanding.
if I would want to reduce noise 10dB(aggressively)
-60 -50 -40 -30 -20 -10 0
-110 -100 -90 -80 -70 -60 0
would be better than below. right?
11:03am
Hi Eugine,
The table is there if you want to use it to change the built-in NR curve. It's pretty difficult for me to comment since I don't know what problems you are encountering. Many people just leave it at 1:1 mapping. My suggestion would be to try it at 1:1 (the default) and if that works, then leave it that way. Experiment to see what works best for you.
Thanks,
Gary
5:09am
Hi Gary
I am trying to get best Echo Cancellation Noise reduction performance.
I will try to do experiment for my case.
thank you very much!