一种基于FPGA的声阵列定向拾音方法技术

技术编号:34563851 阅读:13 留言:0更新日期:2022-08-17 12:52
本发明专利技术涉及声阵列信号采集和信号处理,特别涉及一种基于FPGA的声阵列定向拾音方法。本发明专利技术以FPGA作为主控的基于空时频的宽带波束形成器,实施载体为32阵元的矩形MEMS数字麦克风阵列,实现功能为室内和室外环境下实时、可靠、稳定的定向拾音和干扰抑制。在FPGA芯片主控的硬件电路上,32个麦克风阵元通过I2S接口解码并以48KSpS和24bit的业内标准音频采样率和量化精度同步采集和传输,后续依次通过:空域处理、频域处理、小波域处理和为时域处理。最终本发明专利技术输出音频在增强目标声源的同时能极大程度抑制干扰声源以及环境噪声,致力于提供智能办公、智能家居、高质量会议、设备健康监测等丰富的需求场景。等丰富的需求场景。等丰富的需求场景。

【技术实现步骤摘要】
一种基于FPGA的声阵列定向拾音方法


[0001]本专利技术涉及声阵列信号采集和信号处理,特别涉及一种基于FPGA的声阵列定向拾音方法。

技术介绍

[0002]声阵列系统被广泛应用于工业监测、军事、商务办公等领域。在更多智能化、小型化、数字化的设计需求和理念下,阵列系统将更多地代替人类在特定的场合进行特定的工作完成特定的任务。
[0003]声阵列信号处理相对于传统阵列信号处理技术有以下四项难点:
[0004]1、接收信号的带宽:声阵列信号处理的对象是宽带语音信号,典型频带处于300~3400Hz。接收阵列对此类信号源形成非相干阵,各阵元接收信号并非只是相位上的差异,不能直接加权相加。
[0005]2、接收信号的非平稳性:语音信号需要做预处理,如抗混叠滤波、预加重、加窗、分帧以保证接收信号的短时平稳,从而获得更低失真更高音质的数字信号。
[0006]3、接收信号的物理特性:接收信号通常为机械纵波,由于波的反射、衍射,麦克风收到的信号除了直达信号以外,还有多径信号的叠加和干涉,产生声学混响;在室内环境中,受房间边界或者障碍物衍射和反射导致声信号传播到每个阵元的幅度和相位发生了未知的变化。
[0007]4、阵列所处的外部环境:信号处理算法应当适应于室内室外环境、适应于近场远场条件;近场相对于远场,既需考虑声源的入射角度还需考虑声源相对于阵列的距离。
[0008]针对以上四项技术难点,目前广泛采用的采集卡+DSP处理器的硬件方案和宽带自适应波束形成的算法虽然能得到一些高信噪比的定向拾音效果,但是也会遇到未解决的种种技术问题:如阵元数目少、拾音距离不足、抑制非平稳干扰不足、增加大量阵元导致的运算量大以及硬件成本高。

技术实现思路

[0009]针对上述存在问题或不足,为解决基于目前声阵列波束形成技术实现的定向拾音效果存在阵元数目少、拾音距离不足、抑制非平稳干扰不足、增加大量阵元导致的运算量大、硬件成本高等问题,本专利技术提供了一种基于FPGA的声阵列定向拾音方法,以FPGA作为主控的基于空时频的宽带波束形成器,输出音频满足实时性地要求,并在增强目标声源的同时能极大程度抑制干扰声源以及环境噪声。
[0010]一种基于FPGA的声阵列定向拾音方法,具体步骤如下:
[0011]步骤1、上位机UART(通用异步收发)模块发送的映射于范围从

80
°
到80
°
的方位角

俯仰角组的控制字符至FPGA。FPGA同步采集32阵元的麦克风阵列的输出字并通过I2S解码得到的48KHz、24bit、32CH并数字行PCM(脉冲编码调制)流。
[0012]然后FPGA将上述控制字符经由ASCII解码得到目标和干扰两个方向的方位角


仰角组,再采用映射于从

80
°
到80
°
的不同长度(量化为

4到4)的抽头延迟线将输入的32CH并行数字PCM流进行固定权值延时求和;延时求和的顺序是先执行4行横向排列的麦克风的延时求和,再在纵向上执行前一步4行求和结果的延时求和。
[0013]最终通过Mux9_1(9选1分支器)使得麦克风阵列分别对齐目标和干扰方向的方位角

俯仰角组,并输出8KHz、24bit、2CH数字PCM流。
[0014]步骤2、对于步骤1输出的8KHz、24bit、2CH数字PCM流进行系统信干比提升处理。
[0015]FPGA将步骤1得到的两路对齐目标和干扰方向的信号(方位角

俯仰角组)分别以24K点数的矩形窗进行加窗的短时傅里叶变换,并计算互功率谱。对传统MMSE(最小均方误差)准则下的带Wiener后置滤波的最优权值进行改进,所述改进即添加一个可变系数α以改善加权效果。将改进后的权值与目标方向的频域加权。最后将加权结果逆变换至时域单通道去非平稳干扰信号。变换时序为Natural Order(自然排序)、变换实现为Radix

2(基

2)。以提升系统的信干比。
[0016]最终输出48KHz、24bit、1CH数字PCM流,为经过频域加权后得到的高信干比的单路目标方向输出信号S(n)。
[0017]步骤3、对于步骤2输出的48KHz、24bit、1CH数字PCM流S(n)。
[0018]FPGA采用dB3小波基的分解重构FIR滤波器组对步骤2得到的单路去非平稳干扰信号进行基底平稳噪声估计。以估计噪声为输入且以误差信号为输出做自适应噪声抵消、基于LMS(最小均方)准则做自适应滤波器的权值更新、滤波实现为33

taps(33抽头)FIR。以提升系统的信噪比。
[0019]最终输出48KHz、24bit、1CH数字PCM流,为经过自适应噪声抵消后的高信噪比的单路目标方向输出信号S
af
(n)。
[0020]步骤4、对于步骤3输出的48KHz、24bit、1CH数字PCM流S
af
(n)。
[0021]FPGA按照Hilbert滤波器提取的信号包络计算步骤3得到的单路信号的短时能量。滤波响应特征为Hilbert

Transformation(希尔伯特变换)、滤波实现为11

taps FIR、通过16阶滑动滤波计算包络直流分量、根据包络直流分量的强度进行4个等级的划分、通过Mux4_1输出对应划分下的增益时域信号。目的进行幅度上的自动增益控制,以保证输出音频的音量均衡。
[0022]最终得到48KHz、24bit、1CH数字PCM流S
audio
(n)直接输出至声卡并发声于外接耳机。
[0023]进一步的,所述步骤1具体如下:
[0024]步骤1.1、通过上位机反馈的控制字符经由UART协议发送给FPGA进行ASCII解码,从而获取空域滤波的目标位置和干扰位置其中分别表示方位角和俯仰角、下角标s表示目标、i表示干扰;
[0025]步骤1.2、根据步骤1.1的方位角和俯仰角信息,将

80
°
到80
°
映射为整数量化的

4到4作为抽头延迟线的长度,采用映射于不同角度信息的长度的抽头延迟线进行固定权值延时求和。在空域上先执行4行横向排列的麦克风的延时求和,得到四路分别对齐目标和干扰方向方位角的合计4*2CH信号,再执行纵向四路的延时求和,得到对齐目标和干扰方向俯仰角的2CH信号。
[0026]固定权值延时求和表示为其中w=[1,1,...,1]T
,h=

4,

3...,0,...3,4,即ih衡量了上述的“不同长度”,n表示时域上的采样点,M指当前延时求和使用的麦克风阵元数量,在执行横向麦克风延时求和时为8,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的声阵列定向拾音方法,其特征在于,包括以下步骤:步骤1、上位机UART通用异步收发模块发送的映射于范围从

80
°
到80
°
的方位角

俯仰角组的控制字符至FPGA;FPGA同步采集32阵元的麦克风阵列的输出字并通过I2S解码得到的48KHz、24bit、32CH并行数字PCM流;然后FPGA将上述控制字符经由ASCII解码得到目标和干扰两个方向的方位角

俯仰角组,再采用映射于从

80
°
到80
°
的量化为

4到4不同长度的抽头延迟线将输入的32CH并行数字PCM流进行固定权值延时求和;延时求和的顺序是先执行4行横向排列的麦克风的延时求和,再在纵向上执行前一步4行求和结果的延时求和;最终通过Mux9_1使得麦克风阵列分别对齐目标和干扰方向的方位角

俯仰角组,并输出8KHz、24bit、2CH数字PCM流;步骤2、对于步骤1输出的8KHz、24bit、2CH数字PCM流进行系统信干比提升处理;FPGA将步骤1得到的两路对齐目标和干扰方向的方位角

俯仰角组分别以24K点数的矩形窗进行加窗的短时傅里叶变换,并计算互功率谱;对传统MMSE最小均方误差准则下的带Wiener后置滤波的最优权值进行改进,所述改进即添加一个可变系数α以改善加权效果;将改进后的权值与目标方向的频域加权,最后将加权结果逆变换至时域单通道去非平稳干扰信号;变换时序为Natural Order自然排序、变换实现为Radix

2;最终输出48KHz、24bit、1CH数字PCM流,为经过频域加权后得到的单路目标方向输出信号S(n);步骤3、对于步骤2输出的48KHz、24bit、1CH数字PCM流S(n);FPGA采用dB3小波基的分解重构FIR滤波器组对步骤2得到的单路去非平稳干扰信号进行基底平稳噪声估计;以估计噪声为输入且以误差信号为输出做自适应噪声抵消、基于LMS准则做自适应滤波器的权值更新、滤波实现为33

tapsFIR;最终输出48KHz、24bit、1CH数字PCM流,为经过自适应噪声抵消后的单路目标方向输出信号S
af
(n);步骤4、对于步骤3输出的48KHz、24bit、1CH数字PCM流,即单路信号的短时能量;FPGA按照Hilbert滤波器提取的信号包络计算步骤3得到的单路信号的短时能量,滤波响应特征为Hilbert

Transformation希尔伯特变换、滤波实现为11

taps FIR、通过16阶滑动滤波计算包络直流分量、根据包络直流分量的强度进行4个等级的划分、通过Mux4_1输出对应划分下的增益时域信号;进行幅度上的自动增益控制,以保证输出音频的音量均衡;最终得到48KHz、24bit、1CH数字PCM流S
audio
(n)直接输出至声卡并发声于外接耳机。2.如权利要求1所述基于FPGA的声阵列定向拾音方法,其特征在于,所述步骤1具体如下:步骤1.1、通过上位机反馈的控制字符经由UART协议发送给FPGA进行ASCII解码,从而获取空域滤波的目标位置和干扰位置其中分别表示方位角和俯仰角、下角标s表示目标、i表示干扰;步骤1.2、根据步骤1.1的方位角和俯仰角信息,将

80
°
到80
°
映射为整数量化的

4到4作为抽头延迟线的长度,采用映射于不同角度信息的长度的抽头延迟线进行固定权值延时求和;在空域上先执行4行横向排列的麦克风的延时求和,得到四路分别对齐目标和干扰方
向方位角的合计4*2CH信号,再执行纵向四路的延时求和,得到对齐目标和干扰方向俯仰角的2CH信号;固定权值延时求和表示为其中w=[1,1,...,1]
T
,h=

4,

3...,0,...3,4,即ih衡量不同长度,n表示时域上的采样点,M指当前延时求和使用的麦克风阵元数量,在执行横向麦克风延时求和时为8,在执行纵向麦克风延时求和时为4;步骤1.3、横向对齐方位角使用4*7*2个加法器,纵向对齐俯仰角使用3*2个加法器;加法器采用树状流水线,每个加法器后需将位宽提高1bit,累计求和后将输出右移3bit,再统一cast转换至24_0_fixed;UART模块接收控制字符解码为ASCII作为多路复用器Mux9_1的参考信号,由于h具有9种取值,故每次延时求和都需要做Mux9_1的输出选择;以改善步骤1.1到1.2硬件设计中的时序和溢出问题:步骤1.4、麦克风阵列信号经过步骤1.1

步骤1.3的空域滤波后产生两路对齐信号Aligned_s(n)和Aligned_i(n),它们从方位角和俯仰角两个方向分别对齐和3.如权利要求2所述基于FPGA的声阵列定向拾音方法,其特征在于,所述步骤2具体如下:步骤2.1、针对步骤1获取的两路对齐信号Aligned_s(n)和Aligned_i(n),分别按照0.5s、24K长度的矩形窗进行加窗分帧,并计算相同点数的短时傅里叶变换得到两路频域信号F_s(k)和F_i(k),k表示频域上的采样点;步骤2.2、针对步骤2.1所得的两路频域信号,分别计算其自功率谱密度得到P_s(k)和P_i(k);自功率谱的计算为P(k)=F(k)
·
F
*
(k)/N,其中[
·
]
*
表示序列的共轭,N表示帧长;步骤2.3、对MMSE准则下的带Wiener后置滤波的最优权值进行改进,将权值写为:依据干扰方向的短时功率谱密度的大小调整系数α的取值,P_i越大则α越小以减轻加权过度造成的音乐噪声,P_i越小则α越大以进一步增强对非平稳干扰信号的抑制效果;步骤2.4、在步骤2.3获取加权的权值后,对步骤2.1计算目标方向的频域变换F_s(k)进行如步骤2.3所述的加权再取傅里叶逆变换,计算为:S(n)=F
‑1{F_s(k)
·
w
opt
(k)};步骤2.5、针对步骤2.1到2.4的硬件设计中的时序和溢出问题:FFT和IFFT模块均采用Natural Order、基2运算;共轭相乘计算实质是模平方计算,利用1个加法器+2个乘法器替代复数乘法器,输出皆采用Full

Scale满刻度,依据干扰方向的短时功率谱密度的大小调整α的取值采用Mux4_1实现;由于IFFT模块只支持上限33bit的Fixed

point定点输入,所以涉及乘法器的运算结果均做16bit右移防止冗余量化;IFFT模块输出的结果带小数,统一cast至24_0_fixed;步骤2.6、经过步骤2.1到步骤2.5的计算,两路空域对齐信号经过频域加权得到高信干比的单路目标方向输出信号S(n)。4.如权利要求3所述基于FPGA的声阵列定向拾音方法,其特征在于,所述步骤3具体如下:
步骤3.1、小波分解和重构各需要一对FIR滤波器组,dB3小波基的滤波器系数分别为:用于尺度空间分解的低通滤波器Lo_D=[0.035226
ꢀ‑
0.085441
ꢀ‑

【专利技术属性】
技术研发人员:吴宇向伟铭刘钰周毅炜
申请(专利权)人:电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1