双麦克风语音增强之ANF 自适应零点形成
概述
ANF(Adaptive Null-Forming,自适应零点形成)是双麦克风阵列处理中实现语音增强的一种方法。ANF算法适用的场景是目标信号来自于端射(endfire)方向,比如通话时的蓝牙耳机,说话人嘴的位置大致在两个麦克风连线的延长线上。ANF算法可以定向拾取端射方向的目标信号,并且自适应地在噪声来源方向形成零点,从而提高语音质量。
符号表示:
原理
时域ANF
最简单的一种beamformer只包括图1的左上角部分,即x(n)为输出。响应可表示为
图1
图1是TD-ANF(TD:Time-Domain)的结构,包括两个差分beamformer和一个自适应滤波器。上下两个差分beamformer的pattern分别为图2中的实线和虚线。可见,
图2
频域ANF
频域ANF是时域ANF算法在频域的等价实现,如图3所示。其中FFT是N点,k=0~N-1表示频点索引,v(k)=2*pi*k*f/N/c是波数。需要注意的是频域自适应滤波器系数是复数。
图3
时域ANF包含延时
EQ补偿
ANF结构中的两个差分beamformer都是高通滤波器,使得处理后的语音低频部分被削弱。为增强语音低频部分,建议在ANF之后加上一个补偿滤波器。文献给出其频响如下
其中
Matlab验证
模拟蓝牙耳机的场景,取3cm麦克风间距,用采集板采集前后两个mic的语音数据,使用频域ANF+补偿滤波器,matlab仿真情况如图4。
图4
Reference
主要参照如下资料,其中图1和图3来自[1],图2来自[2]。
[1]: Hu, X., et al. “Robustness analysis of time-domain and frequency-domain adaptive null-forming schemes.” Communications and Signal Processing IEEE, 2011:1-4.
[2]: Elko, G. W., and A. T. N. Pong. “A simple adaptive first-order differential microphone.” Applications of Signal Processing to Audio and Acoustics, 1995. IEEE ASSP Workshop on IEEE, 2002:169-172.
[3]: Buck, Markus, and M. Rößler. “First order differential microphone arrays for automotive applications.” Proc Iwaenc (2001).