一种基于渐进串行正交化盲源分离算法的改进声源定位方法及其实现系统与流程

文档序号:13564530阅读:367来源:国知局

本发明涉及一种基于渐进串行正交化盲源分离算法的改进声源定位方法及其实现系统,属于声源定位技术领域。



背景技术:

声音是自然界中信息传播的一个重要载体,通过获取声音信号,人们不单能获取到声音承载的语音信息,还能根据声音传播的特性和传播路径本身,通过声源定位技术,还可以获取声音承载的内容信息之外的位置信息。根据声音的这两种特性,所以声音信号的获取在安全监控、定位搜寻、区域探测等领域有着不可替代的作用。

早先对于未知目标位置的定位方法主要依靠无线电、激光、超声等方式进行,通过主动发射探测信号并接收经被测物体反射回来的反射波来分析和计算被测物体的位置信息。因为是主动方式进行探测,发射和接收都要使用预先制定的频率波,所以不易受自然环境干扰,且具有高精度和高抗干扰的特性。但是主动式定位方式需要有强大的发射功率,这会在功率不足或某些能源限制环境下无法得到应用。而声源定位采用被动式原理,便于隐藏,使用广泛存在的声波,再加上设备成本低、功耗低,因而得到了广泛的关注和应用。

盲源分离技术是20世纪90年代发展起来的一种信号处理方法,是在不知源信号和传输通道的参数的情况下,根据源信号的统计特性,仅由观测信号恢复出源信号各个成分的过程。这里的“源”指原始信号,即独立成分;“盲”一是源信号不能被观测到,二是源信号的混合方式未知,因此,在源信号与传输信道参数都未知的情况下,可以用盲源分离技术来处理混合声音信号。渐进串行正交化盲源分离算法是盲源分离算法的一种,通过渐进正交化的不动点迭代找到独立成分。

基于到达时延的声源定位。假定一个以定速在空气中传播的声波,它到达位于不同位置的一对接收机的相位不同,根据接收机接收到的声音信号的相位差别,通过时延算法求得声音到各个接收端的时间差,进而求得声源位置。该定位算法有以下几个优点:一是设备要求不高;二是步骤简单,计算量小;二是方便与其它需要定位数据的系统结合。

中国专利文献cn104181506a公开了一种基于改进phat加权时延估计的声源定位方法,该系统由麦克风阵列采集4路声音信号,通过a/d采样电路转化为数字信号,并通过改进的phat加权广义互相关函数法进行时延估计算法处理,获得时延估计值,再结合放置的麦克风阵列空间位置,利用迭代法解非线性方程组,从而得到声源的相对位置。但是,该专利所述系统不能辨识多个声源,也不能分辨带有方向性的噪声。

中国专利文献cn104614069a公开了基于联合近似对角化盲源分离算法的电力设备故障音检测方法,具体步骤包括:(1)采用麦克风阵列;(2)采用基于联合近似对角化盲源分离算法针对步骤(1)采用麦克风阵列采集的声音信号分离各个独立声源信号;(3)提取独立声源信号的mel频率倒谱系数mfcc作为声音特征参数,通过模式匹配算法识别声音信号,将待测试声音模板与所有的参考样本模板进行匹配后,匹配距离最小的参考样本模板就是电力设备工作音识别的结果。但是该专利采用的联合近似对角化算法的性能受协方差矩阵数量的影响较大,当矩阵的数量越大时,运算越复杂。



技术实现要素:

为了克服现有声源定位方法中不能辨识多个声源的不足,本发明提出了一种基于渐进串行正交化盲源分离算法的改进声源定位方法;

本发明还提出了上述改进声源定位方法的实现系统。

本发明的技术方案为:

一种基于渐进串行正交化盲源分离算法的改进声源定位方法,包括步骤如下:

(1)通过麦克风阵列采集声音信号并存储;

(2)采用基于渐进串行正交化盲源分离算法对步骤(1)采集到的声音信号分离,得到各个独立声源信号;

(3)对步骤(2)得到的每个独立声源信号,提取梅尔频率倒谱系数(mfcc)作为声音特征参数,通过模式匹配算法识别声音信号,选取需要定位的声音的独立声源信号;

(4)根据步骤(3)中模式匹配的结果,如果为单一声源,则进入步骤(5);如果为多个声源,则通过tdoa算法计算时延,求解声源位置;

(5)先粗定位:求取信号的包络,低分辨率采样,通过广义自相关函数法粗略计算时延,根据粗略定位的点数对信号进行时域搬移;再细定位:高分辨率采样,通过广义自相关函数法计算时延,得到精确时延,求解声源位置。

传统的tdoa算法中,时延估计的精度受到采样频率的限制,所需精度越高,所需采样频率就越高,对于相同的采样时长,高采样频率带来极高的采样点数,算法的运算量也就越大。粗定位细定位算法中,先采用低分辨率对信号进行一定的时域搬移,再采用高分辨率进行高精度时延校准。较于低分辨率采样的传统算法,此种算法可以达到高分辨率采样的计算精度;较于高分辨率采样的传统算法,此算法因进行过一次时域搬移,在高精度校准时只需较短的有效时长即可将时延计算出来,减少了算法运算量;基于上述原理,该算法可以解决采样mic之间的距离限制,当时延超出有效时长的距离时,只需进行一次粗定位时域搬移,即可计算精确时延。

根据本发明优选的,根据所述步骤(5)得到精确时延,包括步骤如下:

a、设定通过步骤(3)获取4路声音信号,即x1(t)、x2(t)、x3(t)、x4(t),t为数字信号中采样点的序号,长度为n,将4路声音信号进行加窗滤波处理,消除噪声;

b、对4路信号进行包络提取,只取包络的上半部分为有效信号,以fs/n的频率进行抽点采样,得x′1(t)、x′2(t)、x′3(t)、x′4(t),fs为盲源分离时的采样频率,n为大于1的整数;

c、对x′1(t)、x′2(t)、x′3(t)、x′4(t)进行傅立叶变换到频域,即x′1(k)、x′2(k)、x′3(k)、x′4(k),其中k为与t对应的数字信号中采样点的序号,t、k均为整数;

d、将x′1(t)作为基准信号,分别计算x′1(k)与x′2(k)、x′1(k)与x′3(k)、x′1(k)与x′4(k)的互功率谱g′12(k)、g′13(k)、g′14(k),对互功率谱g′12(k)、g′13(k)、g′14(k)进行phat加权操作,如式(ⅰ)、式(ⅱ)、式(ⅲ)所示:

式(ⅰ)、式(ⅱ)、式(ⅲ)中,x′1*(k)为x′1(k)的共轭;

e、将互功率谱g′12(k)、g′13(k)、g′14(k)逆变换到频域,得到对应的广义互相关函数r′12(t)、r′13(t)、r′14(t);当r′12(t)、r′13(t)、r′14(t)分别取最大值时n所对应的时延即为3路声音信号x′2(t)、x′3(t)、x′4(t)与基准信号x′1(t)的时延估计t′12、t′13、t′14;

设r′1s(t)取最大值时t的值为n′1s,s=2、3、4,所取声音信号的点数为n′=fix(n/n),采样频率为fs/n,若n′1s>n′/2,则n′1s更新为n′1s-n′-1;若n′1s≤n′/2,则n′1s不变;由此计算得到n′12、n′13、n′14;

f、若n′1s≥0,将x1(t)在时域上向左平移n′1s*n个点;若n′1s<0,xs(t)在时域上向右平移n′1s*n个点;

取x1(t)、xs(t)前n1个点信号为z(t)、zs(t),n1为大于2n小于n的整数;n1为信号长度,fs为采样频率;

按照步骤c-e采用广义自相关求取精确时延点数n″12,即将信号z1(t)、z2(t)傅立叶变换到频域,phat加权计算互功率谱,然后傅立叶反变换到时域求得互相关函数,取互相关最大时点数所对应的时间为两路的时延估计n″13,n″13和n″14n″12计算方法一致;

g、则x1(t)、x2(t)的时延同理

根据本发明优选的,所述步骤(4),如果为多个声源,则通过tdoa算法计算时延,包括步骤如下:

a、步骤(2)获取需要进行定位的独立分量为yi(t),i为整数且1≤i≤4,t为数字信号中采样点的序号,将yi(t)、x1(t)、x2(t)、x3(t)、x4(t)这5路信号进行加窗滤波处理,再经傅立叶变换到频域,得到频域信号yi(k)、x1(k)、x2(k)、x3(k)、x4(k),k为与t对应的数字信号采样点的序号;

b、将独立分量yi(t)作为基准信号,分别计算yi(k)与x1(k)、yi(k)与x2(k)、yi(k)与x3(k)、yi(k)与x4(k)的互功率谱,即gi1(k)、gi2(k)、gi3(k)、gi4(k),对互功率谱gi1(k)、gi2(k)、gi3(k)、gi4(k)进行phat加权操作,如式(ⅳ)、(ⅴ)、(ⅵ)、(ⅶ)所示:

式(ⅳ)、(ⅴ)、(ⅵ)、(ⅶ)中,y1*为y1(k)的共轭,为phat函数;

c、将互功率谱g11(k)、g12(k)、gi3(k)、gi4(k)逆变换到频域,得到对应的广义互相关函数ri1(n)、ri2(n)、ri3(n)、ri4(n),当r11(n)、r12(n)、r13(n)、r14(n)分别取最大值时,n所对应的时延即为4路声音信号x1(t)、x2(t)、x3(t)、x4(t)与基准信号y1(t)的时延估计ti1、t12、t13、t14,设r11(n)取最大值时的n的值为n11,所取声音信号的点数为n,采样频率为fs,若n11>n/2,则若ni1≤n/2,则ti2、ti3、ti4的计算与ti1的计算方法一致;

设ri2(n)取最大值时的n的值为ni2,所取声音信号的点数为n,采样频率为fs,若ni2>n/2,则若ni2≤n/2,则

设ri3(n)取最大值时的n的值为ni3,所取声音信号的点数为n,采样频率为fs,若ni3>n/2,则若ni3≤n/2,则

设ri4(n)取最大值时的n的值为ni4,所取声音信号的点数为n,采样频率为fs,若ni4>n/2,则若ni4≤n/2,则

d、将ti1作为基准延时,则t12=ti1-ti2表示x1(t)相对于x2(t)的延时,t13=ti1-ti3表示x1(t)相对于x3(t)的延时,t14=ti1-ti4表示x1(t)相对于x4(t)的延时,得到x1(t)相对于x2(t)、x3(t)、x4(t)的延时t12、t13、t14。

根据本发明优选的,所述步骤(4)、(5)中,求解声源位置,包括:设定声源位置坐标为(x,y,z),得到延时参数以后,通过式(ⅷ)求取声源位置坐标:

求得声源的位置坐标(x,y,z),式中,t12、t13、t14为三路之间的延时值,v为声音在空气中的速度。

根据本发明优选的,所述麦克风阵列为:在三维直角坐标系下选择(0,0,0),(a,0,0),(0,a,0),(0,0,a)四个位置摆放麦克风,得到所述麦克风阵列,a为固定参数,表示三个坐标(a,0,0),(0,a,0),(0,0,a)到坐标系原点(0,0,0)位置麦克风的距离。

根据本发明优选的,所述步骤(1),通过麦克风阵列采集的声音信号即混合声音信号x(t),x(t)=[x1(t),x2(t),x3(t),x4(t)],x1(t)、x2(t)、x3(t)、x4(t)分别如式(ⅸ)、(ⅹ)、(ⅺ)、(ⅻ)所示:

x1(t)=a11s1+a12s2+a13s3+a14s4(ⅸ)

x2(t)=a21s1+a22s2+a23s3+a24s4(ⅹ)

x3(t)=a31s1+a32s2+a33s3+a34s4(ⅺ)

x4(t)=a41s1+a42s2+a43s3+a44s4(ⅻ)

式(ⅰ)中,s1,s2,s3,s4为4个独立声源发出的声音信号,aij(i=1,2,3,4;j=1,2,3,4)是实系数。

根据本发明所优选的,步骤(2)中,采用基于渐进串行正交化盲源分离算法对步骤(1)采集到的声音信号分离,得到各个独立声源信号;包括步骤如下:

①采用麦克风阵列采集到环境声音,取出同一时间段内的4路声音信号进行中心化处理,即去均值处理,去均值后得到信号通过式(xiii)求得:

②对去均值后的声音信号进行白化处理,即对进行线性变换v,得到白化信号z(t):

白化处理采用主分量分析方法,对信号进行去相关和缩放,线性白化变换v如式(xv)所示:

式(xv)中,矩阵e以协方差矩阵的单位范数特征向量为列,d=diag(d1,d2,d3,d4)是以c的特征值为对角元素的特征矩阵;

③计算观测信号z(t)的独立成分个数,记为m,且m≤4;因为步骤a中麦克风阵列由4个麦克风组成,采集4组声音信号,根据盲源分离原理,独立分量数目不大于观测信号数目。

选择具有单位范数的初始化向量wp,p=1,2,…,m,令p=1;

④对wp进行如式(xvi)所示的迭代运算:

式(xvi)中,函数g为g1(y)、g2(y)或g3(y);g1(y)=tanh(a1y),g2(y)=y*exp(-y^2/2),g3(y)=y^3;

⑤对步骤④中迭代后的wp进行正交化和标准化,正交化方法如式(xvii)所示:

对wp标准化,即除以其范数,如式(xviii)所示:

wp=wp/norm(wp)(xviii)

⑥对步骤⑤中标准化后的wp进行检测,看其是否收敛,如果尚未收敛,则返回步骤④;

⑦p更新为p+1,如果p≤m,返回步骤④,否则,进入步骤⑧;

⑧通过步骤③~⑦的循环计算,得到解混矩阵w={w1,w2,…,wm}t,m≤4;由式(xix)得到源信号y(t):

y(t)=wx(t)(xix)

式(xix)中,y(t)=[y1(t),y2(t),…yi(t)…,ym(t)],i=1,2,…,m,分别为麦克风阵列采集声音信号经过盲源分离后得到的m个独立分量,即独立声源信号。

根据本发明优选的,所述步骤(3),对得到的每个独立声源信号,提取梅尔频率倒谱系数(mfcc)作为声音特征参数,通过模式匹配算法识别声音信号,选取需要定位的声音的独立声源信号;包括步骤如下:

⑨对步骤⑧中分离出的源信号y(t)进行如下处理:

对源信号y(t)做预加重处理,即将源信号y(t)通过一个高通滤波器,该高通滤波器的传递函数为;h(z)=1-μz-1,0.9≤μ≤1.0;

对预加重处理后的源信号y(t)做分帧处理,帧长为10ms-30ms,帧移为帧长的1/2-1/3;可以避免帧与帧之间的特性变化过大;

对每帧信号做加窗处理,可以增加帧左端和右端的连续性,窗函数为汉明窗,公式为

⑩对步骤⑨处理后的每帧信号进行快速傅立叶(fft)变换,将信号从时域转到频域,得到信号的频谱,再取模的平方作为离散功率谱s(k);

将每帧的频谱参数通过梅尔刻度滤波器,梅尔刻度滤波器包括v个三角形带通滤波器,20≤v≤30,得到v个参数pv,v=0,1,…,v-1;将每个频带的输出取对数,得到lv,v=0,1,…,v-1;将得到的v个参数进行离散余弦变换,得到dv,v=0,1,…,v-1;去掉d0,取d1,d2,…,dk作为mfcc的参数;

通过动态时间规整dtw算法进行声音识别,包括:

步骤中的声音信号分了p帧矢量,即{t(1):t(2):…:t(n)…:t(p)},t(n)为第n帧的语音特征矢量,1≤n≤p,参考样本中有q帧矢量,即{r(1):r(2):…:r(m)…:r(q)},r(m)为第m帧的语音特征矢量,1≤m≤q,则动态时间规整dtw算法利用时间规整函数j=w(i)完成待测试矢量与模板矢量时间轴的映射,且规整函数w满足式(xx):

在式(xx)中,d[t(z),r(w(j))]是待测试矢量t(i)与参考模板矢量r(j)之间的距离;t(i)表示t中第i帧的语音特征矢量;r(w(j))表示r中第j帧的语音特征矢量;d表示待测试矢量与参考样本矢量之间的最小距离;

利用dtw将待测试声音模板与所有参考样本模板进行匹配后,匹配距离最小的参考样本模板就是独立分量识别的结果,当4路待测试声音匹配的距离最小时所用参考模板为同一个参考模板时,则麦克风阵列信号采集的4路信号为单一声源,麦克风阵列信号采集的4路信号为多个声源。即可根据要求选取需要定位的独立声源信息。

一种实现上述声源定位方法的实现系统,包括4个麦克风与电压放大抬高电路模块、存储模块、算法处理和系统控制模块以及显示模块,所述4个麦克风与电压放大抬高电路模块均连接所述存储模块,所述存储模块、所述算法处理和系统控制模块、所述显示模块依次连接;

所述4个麦克风与电压放大抬高电路模块实时获取声音信号;所述存储模块用于存储获取的声音信号和时间信号;所述算法处理和系统控制模块通过基于渐进串行正交化盲源分离算法分离采集到的混合声音信号,通过选择tdoa声音定位算法计算时延,并列出方程组求解出声源位置;所述显示模块用于显示声源位置。

根据本发明优选的,所述算法处理和系统控制模块为stm32开发平台;所述显示模块为液晶显示屏。

本发明的有益效果为:

1、本发明采用tdoa算法计算延时求得声源位置,当分离信号为多声源时,将分离的目标信号直接与混合信号相关计算时延,运算量小,计算速度快;当采集信号为单声源时,采用改进的tdoa算法进行时延计算,可以在一定程度上提高精度,并减少算法运算量。

2、本发明采用无源定位方法,被动式原理,功耗小。

3、本发明将盲源分离与声源定位结合起来,弥补以往声源定位不能辨识多个声源的不足。

附图说明

图1为本发明基于渐进串行正交化盲源分离算法的改进声源定位方法的实现系统的结构框图。

图2为本发明基于渐进串行正交化盲源分离算法的改进声源定位方法中的流程示意图。

图3为本发明改进tdoa算法的流程示意图。

具体实施方式

下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。

实施例1

一种基于渐进串行正交化盲源分离算法的改进声源定位方法,如图2所示,包括步骤如下:

(1)通过麦克风阵列采集声音信号并存储;麦克风阵列为:在三维直角坐标系下选择(0,0,0),(a,0,0),(0,a,0),(0,0,a)四个位置摆放麦克风,得到所述麦克风阵列,a为固定参数,表示三个坐标(a,0,0),(0,a,0),(0,0,a)到坐标系原点(0,0,0)位置麦克风的距离。通过麦克风阵列采集的声音信号即混合声音信号x(t),x(t)=[x1(t),x2(t),x3(t),x4(t)],x1(t)、x2(t)、x3(t)、x4(t)分别如式(ⅸ)、(ⅹ)、(ⅺ)、(ⅻ)所示:

x1(t)=a11s1+a12s2+a13s3+a14s4(ⅸ)

x2(t)=a21s1+a22s2+a23s3+a24s4(ⅹ)

x3(t)=a31s1+a32s2+a33s3+a34s4(ⅺ)

x4(t)=a41s1+a42s2+a43s3+a44s4(ⅻ)

式(ⅰ)中,s1,s2,s3,s4为4个独立声源发出的声音信号,aij(i=1,2,3,4;j=1,2,3,4)是实系数。

(2)采用基于渐进串行正交化盲源分离算法对步骤(1)采集到的声音信号分离,得到各个独立声源信号;对复杂环境下的声音定位,使用声源分离技术,可以从环境混合声音信号中将目标声源提取出来,从而可以提高复杂环境下声音定位的准确度。

(3)对步骤(2)得到的每个独立声源信号,提取梅尔频率倒谱系数(mfcc)作为声音特征参数,通过模式匹配算法识别声音信号,选取需要定位的声音的独立声源信号;

(4)根据步骤(3)中模式匹配的结果,如果为单一声源,则进入步骤(5);如果为多个声源,则通过tdoa算法计算时延,求解声源位置;

(5)先粗定位:求取信号的包络,低分辨率采样,通过广义自相关函数法粗略计算时延,根据粗略定位的点数对信号进行时域搬移;再细定位:高分辨率采样,通过广义自相关函数法计算时延,得到精确时延,求解声源位置。

传统的tdoa算法中,时延估计的精度受到采样频率的限制,所需精度越高,所需采样频率就越高,对于相同的采样时长,高采样频率带来极高的采样点数,算法的运算量也就越大。粗定位细定位算法中,先采用低分辨率对信号进行一定的时域搬移,再采用高分辨率进行高精度时延校准。较于低分辨率采样的传统算法,此种算法可以达到高分辨率采样的计算精度;较于高分辨率采样的传统算法,此算法因进行过一次时域搬移,在高精度校准时只需较短的有效时长即可将时延计算出来,减少了算法运算量;基于上述原理,该算法可以解决采样mic之间的距离限制,当时延超出有效时长的距离时,只需进行一次粗定位时域搬移,即可计算精确时延。

实施例2

根据实施例1所述的一种基于渐进串行正交化盲源分离算法的改进声源定位方法,其区别在于,根据步骤(5)得到精确时延,如图3所示,求解声源位置,包括步骤如下:

a、设定通过步骤(3)获取4路声音信号,即x1(t)、x2(t)、x3(t)、x4(t),t为数字信号中采样点的序号,长度为n,将4路声音信号进行加窗滤波处理,消除噪声;

b、对4路信号进行包络提取,只取包络的上半部分为有效信号,以fs/n的频率进行抽点采样,得x′1(t)、x′2(t)、x′3(t)、x′4(t),fs为盲源分离时的采样频率,n为大于1的整数;

c、对x′1(t)、x′2(t)、x′3(t)、x′4(t)进行傅立叶变换到频域,即x′1(k)、x′2(k)、x′3(k)、x′4(k),其中k为与t对应的数字信号中采样点的序号,t、k均为整数;

d、将x′1(t)作为基准信号,分别计算x′1(k)与x′2(k)、x′1(k)与x′3(k)、x′1(k)与x′4(k)的互功率谱g′12(k)、g′13(k)、g′14(k),对互功率谱g′12(k)、g′13(k)、g′14(k)进行phat加权操作,如式(ⅰ)、式(ⅱ)、式(ⅲ)所示:

式(ⅰ)、式(ⅱ)、式(ⅲ)中,x′1*(k)为x′1(k)的共轭;

e、将互功率谱g′12(k)、g′13(k)、g′14(k)逆变换到频域,得到对应的广义互相关函数r′12(t)、r′13(t)、r′14(t);当r′12(t)、r′13(t)、r′14(t)分别取最大值时n所对应的时延即为3路声音信号x′2(t)、x′3(t)、x′4(t)与基准信号x′1(t)的时延估计t′12、t′13、t′14;

设r′1s(t)取最大值时t的值为n′1s,s=2、3、4,所取声音信号的点数为n′=fix(n/n),采样频率为fs/n,若n′1s>n′/2,则n′1s更新为n′1s-n′-1;若n′1s≤n′/2,则n′1s不变;由此计算得到n′12、n′13、n′14;

f、若n′1s≥0,将x1(t)在时域上向左平移n′1s*n个点;若n′1s<0,xs(t)在时域上向右平移n′1s*n个点;

取x1(t)、xs(t)前n1个点信号为z(t)、zs(t),n1为大于2n小于n的整数;n1为信号长度,fs为采样频率;

按照步骤c-e采用广义自相关求取精确时延点数n″12,即将信号z1(t)、z2(t)傅立叶变换到频域,phat加权计算互功率谱,然后傅立叶反变换到时域求得互相关函数,取互相关最大时点数所对应的时间为两路的时延估计n″13,n″13和n″14与n″12计算方法一致;

g、则x1(t)、x2(t)的时延同理

h、设定独立声源坐标为(x,y,z),得到延时参数以后,通过式(ⅷ)求取声源坐标:

求得声源的位置坐标(x,y,z),式中,t12、t13、t14为三路之间的延时值,v为声音在空气中的速度。

实施例3

根据实施例1所述的一种基于渐进串行正交化盲源分离算法的改进声源定位方法,其区别在于,所述步骤(4),如果为多个声源,则通过tdoa算法计算时延,求解声源位置,包括步骤如下:

a、步骤(2)获取需要进行定位的独立分量为yi(t),i为整数且1≤i≤4,t为数字信号中采样点的序号,将yi(t)、x1(t)、x2(t)、x3(t)、x4(t)这5路信号进行加窗滤波处理,再经傅立叶变换到频域,得到频域信号yi(k)、x1(k)、x2(k)、x3(k)、x4(k),k为与t对应的数字信号采样点的序号;

b、将独立分量yi(t)作为基准信号,分别计算yi(k)与x1(k)、yi(k)与x2(k)、yi(k)与x3(k)、yi(k)与x4(k)的互功率谱,即gi1(k)、gi2(k)、gi3(k)、gi4(k),对互功率谱gi1(k)、gi2(k)、gi3(k)、gi4(k)进行phat加权操作,如式(ⅳ)、(ⅴ)、(ⅵ)、(ⅶ)所示:

式(ⅳ)、(ⅴ)、(ⅵ)、(ⅶ)中,yi*为yi(k)的共轭,为phat函数;

c、将互功率谱gi1(k)、gi2(k)、gi3(k)、gi4(k)逆变换到频域,得到对应的广义互相关函数ri1(n)、ri2(n)、ri3(n)、ri4(n),当ri1(n)、ri2(n)、ri3(n)、ri4(n)分别取最大值时,n所对应的时延即为4路声音信号x1(t)、x2(t)、x3(t)、x4(t)与基准信号yi(t)的时延估计ti1、ti2、ti3、ti4,设ri1(n)取最大值时的n的值为ni1,所取声音信号的点数为n,采样频率为fs,若ni1>n/2,则若ni1≤n/2,则ti2、ti3、ti4的计算与ti1的计算方法一致;

设ri2(n)取最大值时的n的值为ni2,所取声音信号的点数为n,采样频率为fs,若ni2>n/2,则若ni2≤n/2,则

设ri3(n)取最大值时的n的值为ni3,所取声音信号的点数为n,采样频率为fs,若ni3>n/2,则若ni3≤n/2,则

设ri4(n)取最大值时的n的值为ni4,所取声音信号的点数为n,采样频率为fs,若ni4>n/2,则若ni4≤n/2,则

d、将ti1作为基准延时,则t12=ti1-ti2表示x1(t)相对于x2(t)的延时,t13=ti1-ti3表示x1(t)相对于x3(t)的延时,t14=ti1-ti4表示x1(t)相对于x4(t)的延时,得到x1(t)相对于x2(t)、x3(t)、x4(t)的延时t12、t13、t14。

实施例4

根据实施例1所述的一种基于渐进串行正交化盲源分离算法的改进声源定位方法,其区别在于,步骤(2)中,采用基于渐进串行正交化盲源分离算法对步骤(1)采集到的声音信号分离,得到各个独立声源信号;包括步骤如下:

①采用麦克风阵列采集到环境声音,取出同一时间段内的4路声音信号进行中心化处理,即去均值处理,去均值后得到信号通过式(xiii)求得:

②对去均值后的声音信号进行白化处理,即对进行线性变换v,得到白化信号z(t):

白化处理采用主分量分析方法,对信号进行去相关和缩放,线性白化变换v如式(xv)所示:

式(xv)中,矩阵e以协方差矩阵的单位范数特征向量为列,d=diag(d1,d2,d3,d4)是以c的特征值为对角元素的特征矩阵;

③计算观测信号z(t)的独立成分个数,记为m,且m≤4;因为步骤a中麦克风阵列由4个麦克风组成,采集4组声音信号,根据盲源分离原理,独立分量数目不大于观测信号数目。

选择具有单位范数的初始化向量wp,p=1,2,…,m,令p=1;

④对wp进行如式(xvi)所示的迭代运算:

式(xvi)中,函数g为g1(y)、g2(y)或g3(y);g1(y)=tanh(a1y),g2(y)=y*exp(-y^2/2),g3(y)=y^3;

⑤对步骤④中迭代后的wp进行正交化和标准化,正交化方法如式(xvii)所示:

对wp标准化,即除以其范数,如式(xviii)所示:

wp=wp/norm(wp)(xviii)

⑥对步骤⑤中标准化后的wp进行检测,看其是否收敛,如果尚未收敛,则返回步骤④;

⑦p更新为p+1,如果p≤m,返回步骤④,否则,进入步骤⑧;

⑧通过步骤③~⑦的循环计算,得到解混矩阵w={w1,w2,…,wm}t,m≤4;由式(xix)得到源信号y(t):

y(t)=wx(t)(xix)

式(xix)中,y(t)=[y1(t),y2(t),…y1(t)…,ym(t)],i=1,2,…,m,分别为麦克风阵列采集声音信号经过盲源分离后得到的m个独立分量,即独立声源信号。

实施例5

根据实施例1所述的一种基于渐进串行正交化盲源分离算法的改进声源定位方法,其区别在于,所述步骤(3),对得到的每个独立声源信号,提取梅尔频率倒谱系数(mfcc)作为声音特征参数,通过模式匹配算法识别声音信号,选取需要定位的声音的独立声源信号;包括步骤如下:

⑨对步骤⑧中分离出的源信号y(t)进行如下处理:

对源信号y(t)做预加重处理,即将源信号y(t)通过一个高通滤波器,该高通滤波器的传递函数为;h(z)=1-μz-1,0.9≤μ≤1.0;

对预加重处理后的源信号y(t)做分帧处理,帧长为10ms-30ms,帧移为帧长的1/2-1/3;可以避免帧与帧之间的特性变化过大;

对每帧信号做加窗处理,可以增加帧左端和右端的连续性,窗函数为汉明窗,公式为

⑩对步骤⑨处理后的每帧信号进行快速傅立叶(fft)变换,将信号从时域转到频域,得到信号的频谱,再取模的平方作为离散功率谱s(k);

将每帧的频谱参数通过梅尔刻度滤波器,梅尔刻度滤波器包括v个三角形带通滤波器,20≤v≤30,得到v个参数pv,v=0,1,…,v-1;将每个频带的输出取对数,得到lv,v=0,1,…,v-1;将得到的v个参数进行离散余弦变换,得到dv,v=0,1,…,v-1;去掉d0,取d1,d2,…,dk作为mfcc的参数;

通过动态时间规整dtw算法进行声音识别,包括:

步骤中的声音信号分了p帧矢量,即{t(1):t(2):…:t(n)…:t(p)},t(n)为第n帧的语音特征矢量,1≤n≤p,参考样本中有q帧矢量,即{r(1):r(2):…:r(m)…:r(q)},r(m)为第m帧的语音特征矢量,1≤m≤q,则动态时间规整dtw算法利用时间规整函数j=w(i)完成待测试矢量与模板矢量时间轴的映射,且规整函数w满足式(xx):

在式(xx)中,d[t(z),r(w(j))]是待测试矢量t(i)与参考模板矢量r(j)之间的距离;t(i)表示t中第i帧的语音特征矢量;r(w(j))表示r中第j帧的语音特征矢量;d表示待测试矢量与参考样本矢量之间的最小距离;

利用dtw将待测试声音模板与所有参考样本模板进行匹配后,匹配距离最小的参考样本模板就是独立分量识别的结果,当4路待测试声音匹配的距离最小时所用参考模板为同一个参考模板时,则麦克风阵列信号采集的4路信号为单一声源,麦克风阵列信号采集的4路信号为多个声源。即可根据要求选取需要定位的独立声源信息。

实施例6

一种实现实施例1-5任一所述的一种基于渐进串行正交化盲源分离算法的改进声源定位方法上述声源定位方法的实现系统,如图1所示,包括4个麦克风与电压放大抬高电路模块、存储模块、算法处理和系统控制模块以及显示模块,4个麦克风与电压放大抬高电路模块均连接存储模块,存储模块、算法处理和系统控制模块、显示模块依次连接;

4个麦克风与电压放大抬高电路模块实时获取声音信号;存储模块用于存储获取的声音信号和时间信号;算法处理和系统控制模块通过基于渐进串行正交化盲源分离算法分离采集到的混合声音信号,通过选择tdoa声音定位算法计算时延,并列出方程组求解出声源位置;显示模块用于显示声源位置。

算法处理和系统控制模块为stm32开发平台;显示模块为液晶显示屏。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1