基于卡尔曼滤波的声源跟踪方法研究(下)

简介: 基于卡尔曼滤波的声源跟踪方法研究(下)

基于卡尔曼滤波的声源跟踪方法研究(上)+https://developer.aliyun.com/article/1627361

3.4容积卡尔曼滤波算法

3.4.1算法的基本原理

容积卡尔曼滤波算法是用于解决非线性问题的算法,是在贝叶斯算法的基础上发展而来,同无迹卡尔曼滤波算法相似,但是容积卡尔曼滤波算法通过选取一组容积点来近似计算非线性系统的状态值和协方差,采用球面径向容积准则逼近状态后验均值和后验协方差,可以有效的降低非线性函数线性化的误差,由于容积卡尔曼滤波算法是基于数值积分理论来计算高斯积分,具有严格的数学证明,所以具有数值精度高和稳定性好的特点。

容积卡尔曼滤波算法的流程图如图.

3.4.2仿真实验及分析

在仿真实验中,声源的初始坐标是(1,1),声源沿x轴方向的速度是0.05m/s,声源沿y轴方向的速度是0.2m/s,利用容积卡尔曼滤波算法实现声源跟踪得到的仿真结果如图

在仿真结果图2.13中蓝色米字线代表声源的实际运动轨迹,红色十字线代表利用容积卡尔曼滤波算法获得的估计轨迹,从跟踪结果图2.13可以观察出,声源的真实轨迹和估计轨迹非常吻合,在跟踪的整个过程中没有出现随着跟踪时间的延长,跟踪效果下降的现象,整个阶段十分稳定,没有出现较大的偏差。从均方根误差图2.14中可以观察出均方根误差整体处于波动状态,跟踪误差整个过程保持稳定,且同应用无迹卡尔曼滤波和扩展卡尔曼滤波算法实现声源跟踪相比,均方根误差有明显的减小,且整个过程的稳定性最好。仿真实验中,采样时间是1s,声源跟踪的仿真时间是60s,这个过程的均方根误差的平均值如图2.15,均方根误差的均值为0.0087,跟踪误差比应用扩展卡尔曼滤波算法和无迹卡尔曼滤波的跟踪误差小。

3.5三种算法的分析比较

仿真环境设置为在6m7m3m的房间内,混响时间为0.2s,信噪比为30db,用Image模型生成声源与各传声器之间的冲激响应,然后与语音信号卷积并添加噪声模拟仿真房间中各麦克风接收到的信号,采样频率是16kHz,声源的运动模型是匀速运动模型,声源的初始坐标是(1,1),声源沿x轴方向的速度是0.05m/s,声源沿y轴方向的速度是0.2m/s,其他条件相同,分别利用三种算法实现声源跟踪,三种算法的跟踪轨迹如图2.16,其中蓝色直线表示声源的真实轨迹,绿色三角线表示利用扩展卡尔曼滤波算法实现声源跟踪的估计轨迹,粉色十字线表示利用无迹卡尔曼滤波实现声源跟踪的估计轨迹,红色米字线表示利用容积卡尔曼滤波算法实现声源跟踪的估计轨迹,从三种算法的对比图可以直观的观察出容积卡尔曼滤波算法的估计轨迹同真实轨迹最为吻合,估计效果最好,三种算法的均方根误差的均值如表2.1所示,从表2.1可以得出利用容积卡尔曼滤波算法实现声源跟踪的误差最小,无迹卡尔曼滤波算法次之,扩展卡尔曼滤波算法的误差最大,图2.17是三种算法的均方根误差的对比图,蓝色线、红色线和绿色线依次代表三种算法的均方根误差,整个过程容积卡尔曼滤波算法的误差最小,即跟踪精度最高,且整体保持稳定的态势。

假设其他条件不变,只改变信噪比,信噪比依次是5db、10db、15db、20db、25db、30db,分别应用三种算法实现声源跟踪,对应的均方根误差如表.

随着信噪比的提高,三种算法的均方根误差均在不同程度的减小,跟踪效果逐渐上升,三种算法在低信噪比中的均方根误差均较大,跟踪精度均较低;在同一信噪比环境下,容积卡尔曼滤波算法的均方根误差总体小于另外两种算法,这说明容积卡尔曼滤波算法的定位精度要比另外两种算法更高,所以容积卡尔曼滤波算法在匀速运动的声源模型中的跟踪效果最好,且在较高信噪比环境下,容积卡尔曼滤波算法的均方根误差变化幅度最小,稳定性能最好,这是由于容积卡尔曼滤波算法采用容积积分原则,不会因为忽略函数本身的一些非线性特性而造成误差,无迹卡尔曼滤波算法的跟踪效果次之,但优于扩展卡尔曼滤波,这是因为扩展卡尔曼滤波主要通过泰勒级数一级展开将非线性系统线性化,只保留了一阶项,忽略了高阶项,而无迹卡尔曼滤波算法摒弃了这种传统做法,对非线性函数的概率密度进行近似,没有忽略高阶项,因此相较扩展卡尔曼滤波算法有较高的精确度和稳定性。

四、声源跟踪仿真系统设计

本文设计了一个基于卡尔曼滤波的声源跟踪仿真系统,该系统的系统框图如图3.1所示,该仿真系统主要分为三个部分,分别是声源选择和显示声源波形部分、声源跟踪和结果显示部分、比较三种算法并显示均方根误差部分。

4.1声源选择部分

声源选择部分是仿真系统的输入部分,通过设置采样频率、信噪比和混响实现输入功能,采样频率输入选用可编辑文本组件,在仿真系统运行时输入采样频率的数值,选择信噪比包括5db、10db、15db、20db、25db、30db,选择信噪比选用弹出式菜单组件,混响同信噪比设置相同,如图.

声源选择部分设置为点击选择文件按钮,然后弹出声源文件,声源文件的类型是.wav文件,选择声源文件后会将所选的声源文件的路径显示到可编辑文本框中,声源选择部分的界面设计如图

声源波形显示选用按钮和坐标轴组件,点击语音波形按钮组件,可以在坐标轴组件中显示语音的波形,声源波形显示部分的系统设计界面如图。

4.2声源跟踪部分

声源跟踪部分需要在三种算法中选择一种实现跟踪功能,并显示跟踪轨迹和均方根误差曲线,其中算法选择选用弹出式菜单组件,下拉菜单选择算法,跟踪轨迹和均方根误差的显示选用按钮和坐标轴组件,点击声源跟踪按钮之后会在两个坐标轴组件中分别显示跟踪轨迹和均方根误差,声源跟踪部分的仿真系统界面如图

4.3算法比较部分

算法比较部分实现同时显示三种算法的跟踪轨迹和均方根误差的功能,并在界面中显示均方根误差的均值,算法比较部分选用按钮、坐标轴和可编辑文本组件,点击算法算法比较按钮之后,在两个坐标轴中分别显示三种算法的跟踪轨迹和均方根误差结果,在可编辑文本中显示均方根误差的均值,算法比较部分的界面设计如图.

4.4算法比较部分测试分析

算法分析比较分析部分测试同时使用三种算法跟踪声源并显示跟踪轨迹和均方根误差,点击算法比较按钮,在左边的坐标轴上显示三种算法的跟踪轨迹,在右边的的坐标轴上显示使用三种算法实现声源跟踪功能的均方根误差结果,同时在三种算法对应的文本框中显示三种算法各自的均方根误差的均值,算法比较分析部分的仿真运行界面如图.将三种算法的估计轨迹和声源的实际轨迹显示在同一幅图中可以直观的分析比较三种算法,在三种算法对应的文本框显示三种算法的均方根误差的均值,可以更准确的分析三种算法的误差,从整个跟踪过程比较三种算法。

五、结论

在本次设计中,主要研究了基于卡尔曼滤波的声源跟踪方法研究和仿真系统的设计,主要应用了三种算法实现声源跟踪功能,分别利用三种算法在不同信噪比环境下进行仿真实验实现声源跟踪,然后比较三种算法的性能和优缺点。在扩展卡尔曼滤波算法的仿真实验中,声源的估计轨迹和真实轨迹拟合效果较差,随着跟踪时间的延长,均方根误差逐渐变大,声源的跟踪精确度下降,均方根误差的均值是0.1580,总体跟踪效果较差;在无迹卡尔曼滤波算法的仿真实验中,同扩展卡尔曼滤波算法相似,声源的跟踪效果随着跟踪时间的延长在下降,但是,应用无迹卡尔曼滤波算法的均方根误差总体在下降,均方根误差的均值是0.0721,跟踪性能优于扩展卡尔曼滤波算法;容积卡尔曼滤波算法的声源跟踪轨迹同声源的实际轨迹基本吻合,均方根误差曲线一直处于波动状态,均方根误差的均值是0.0087,说明容积卡尔曼滤波算法同另外两种算法相比精度更高;利用三种算法在信噪比为30db的仿真环境下进行跟踪,从跟踪轨迹图2.16可以观察出,容积卡尔曼滤波算法的估计轨迹同声源的实际轨迹最吻合,从均方根误差的对比图2.17可以更观的观察出,容积卡尔曼滤波算法的均方根误差在整个仿真过程中处于波动态势,跟踪性能最为稳定,表2.1列出来三种算法的均方根误差的均值,可以更准确的得出容积卡尔曼滤波算法的误差最小;表2.2是三种算法分别在信噪比为5db、10db、15db、20db、25db、30db的环境下测得的均方根误差的均值,三种算法的均方根误差均随着信噪比的下降而逐渐增大,即跟踪效果均在逐渐下降,在同一信噪比环境下,均方根误差最小的是容积卡尔曼滤波算法,其次是无迹卡尔曼滤波算法,最后的扩展卡尔曼滤波算法,综上所述,容积卡尔曼滤波算法在匀速运动模型中的跟踪效果最好,具有稳定性好和准确度高的特点。

本文设计的仿真系统可以设置并选择声源,具备选择不同算法实现的声源跟踪功能,可以同时显示三种算法跟踪轨迹和均方根误差结果,便于分析比较不同算法的跟踪效果和性能,本系统的优点在于操作简单、选择性强、功能丰富且跟踪的准确率较高,缺点是在低信噪比时,跟踪效果较差。

本课题研究的是基于卡尔曼滤波的声源跟踪算法并应用软件设计仿真系统,节约经济且保护环境,同时,声源跟踪已逐渐应用在各个领域,例如,应用在家用社交机器人的头部,可以跟踪用户,应用在智能会议室中,控制摄像头跟踪说话人等等,这些都为我们的生活带来了极大的便利,提高了我们的生活质量,而且算法研究成果的转化会推动人工智能的发展,实现经济、社会和环境共同发展。

六、附录

仿真系统界面设计


目录
相关文章
|
25天前
|
存储 算法 语音技术
基于卡尔曼滤波的声源跟踪方法研究(上)
基于卡尔曼滤波的声源跟踪方法研究(上)
14 0
基于卡尔曼滤波的声源跟踪方法研究(上)
|
5月前
|
数据挖掘 数据库
检测未知成分一般用到那些仪器丨技术分析
未知成分检测是确定物质化学组成的过程,涉及样品收集、前处理、选择分析方法(如光谱法、色谱法、质谱法、能谱法等)、样品分析、数据分析解释、验证确认及报告编写。此过程需要专业知识,可寻求专业服务支持。
|
机器学习/深度学习 存储
基于小脑模型神经网络的轨迹跟踪研究(Matlab代码实现)
基于小脑模型神经网络的轨迹跟踪研究(Matlab代码实现)
|
资源调度
【鲁棒、状态估计】用于电力系统动态状态估计的鲁棒迭代扩展卡尔曼滤波器研究(Matlab代码实现)
【鲁棒、状态估计】用于电力系统动态状态估计的鲁棒迭代扩展卡尔曼滤波器研究(Matlab代码实现)
|
机器学习/深度学习 算法 智慧交通
智慧交通day04-特定目标车辆追踪02:Siamese网络+单样本学习
Siamese network就是“连体的神经网络”,神经网络的“连体”是通过共享权值来实现的,如下图所示。共享权值意味着两边的网络权重矩阵一模一样,甚至可以是同一个网络。
141 0
智慧交通day04-特定目标车辆追踪02:Siamese网络+单样本学习
|
机器学习/深度学习 编解码 算法
SiamRPN、SiamMask、UpdateNet、SiamAttn…你都掌握了吗?一文总结目标追踪必备经典模型(二)
SiamRPN、SiamMask、UpdateNet、SiamAttn…你都掌握了吗?一文总结目标追踪必备经典模型(二)
236 0
|
机器学习/深度学习 传感器 算法
【滤波跟踪】基于粒子滤波实现目标滤波跟踪附matlab代码
【滤波跟踪】基于粒子滤波实现目标滤波跟踪附matlab代码
|
机器学习/深度学习 传感器 资源调度
【滤波跟踪】基于粒子滤波实现机器人航迹跟踪附matlab代码
【滤波跟踪】基于粒子滤波实现机器人航迹跟踪附matlab代码
|
智慧交通
智慧交通day02-车流量检测实现06:目标估计模型-卡尔曼滤波(汇总)
智慧交通day02-车流量检测实现06:目标估计模型-卡尔曼滤波(汇总)
89 0
|
智慧交通
智慧交通day02-车流量检测实现06:目标估计模型-卡尔曼滤波
在这里我们主要完成卡尔曼滤波器进行跟踪的相关内容的实现。
107 0
下一篇
无影云桌面