基于matlab的声源定位系统_盲源分离算法

基于matlab的声源定位系统_盲源分离算法(转载)基于TDOA声源定位算法仿真–MATLAB仿真转载自:https://blog.xxcxw.cn/archives/28声源定位算法是利用麦克风阵列进行声音定位,属于宽带信号,传统的MUSIC和DOA算法并不适用该场景,本仿真主要用TDOA算法进行定位。常用的阵列信号定位算法主要有三大类:基于高分辨率谱估计的定位技术、基于可控波束形成(Beamforming)的定位技术和基于TDOA的定位技术,以上三种算法在阵列信号处理中,尤其是移动通信的阵列信号处理中都有广泛的应用。但是声音信号与传统的电磁


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

(转载)基于TDOA声源定位算法仿真–MATLAB仿真
转载自:https://blog.xxcxw.cn/archives/28

声源定位算法是利用麦克风阵列进行声音定位,属于宽带信号,传统的MUSIC和DOA算法并不适用该场景,本仿真主要用TDOA算法进行定位。

常用的阵列信号定位算法主要有三大类:基于高分辨率谱估计的定位技术、基于可控波束形成(Beamforming)的定位技术和基于TDOA的定位技术,以上三种算法在阵列信号处理中,尤其是移动通信的阵列信号处理中都有广泛的应用。但是声音信号与传统的电磁波信号存在许多的不同,主要包括以下几点:

带宽不同:麦克风阵列处理的多是宽带信号,频率范围一般在 300Hz到 3KHz 之间;传统的阵列信号处理的多是窄带信号。
信号的平稳性:麦克风阵列处理的多是非平稳的语言信号,传统阵列处理的对象多是平稳信号。
干扰噪声不同:传统的阵列处理的信号中的噪声一般为不相关的高斯噪声,麦克风阵列处理的信号中既有相关的高斯噪声,也有非高斯噪声。
由于声音信号与电磁波信号存在上述几点不同,尤其是信号带宽问题和信号的平稳性问题,因此传统的基于高分辨率谱估计的定位技术、基于可控波束形成(Beamforming)的定位算法不太适用于声源定位算法,

基于TDOA的声源定位算法具有运算量小、算法简单易实现、定位精度较高、硬件成本低的特点,使得该算法在实际中的应用非常广泛,而且可以实现实时定位。基于 TDOA 的声音定位算法实现原理简单,一般分为延时估计和声源定位两个部分,时延估计的精确度直接决定了声源定位的精度,所以时延估计精度是该算法的核心部分。本章分别介绍基于 TDOA 的声源定位算法中的时延估计的方法和基于得到的时延信息进行声源定位的方法,并对算法进行仿真。
传统的时延估计方法有很多,传统的时延估计算法主要有基于相关分析的时延估计方法,基于相位谱估计的时延估计方法,基于参数估计的时延估计方法等,应用最广泛的方法主要为基于相关分析的时延估计方法中的广义互相关函数法(GCC)和基于自适应滤波器的延时估计方法中的最小均方自适应滤波法(LMS)。

广义互相关法

广义互相关法的基本原理是在传统的通过互相关来求时延的算法的基础上,对接收到的信号进行滤波处理,对信号和噪声进行白化处理,增强信号中信噪比较高的频率成分,从而到达抑制噪声功率的目的,使得相关函数取得尖锐的峰值,提高时延估计的精度,因此和上述的LMS算法相比,广义互相关法可以取得更好的时延估计性能。 因为广义互相关法的基础仍然是互相关算法,因此首先简单介绍下互相关算法,互相关算法的基本原理公式如下式所示,其中h(n)即对应时延为t的冲激响应,且R(k)的幅度峰值应该位于k=t的位置。 广义互相关法为了解决上述问题,对上述得互相关结果R(K)进行了频域得均衡处理,这样就只保留了互相关得相位信息,即时延信息,去除了音频信号本身得影响,再进行反傅里叶变换得到R(k)即可得到一个峰值非常陡峭的冲击信号,其峰值位置正好对应的就是时延差的位置,。由于实际音频信号的采样率有限,为了进一步提高时延估计得分辨率,还需要对广义互相关的结果进行进一步的差值处理,得到更加精确的时延信息,因此处理流程如下所示。

本仿真中主要采用了广义互相关算法作为时延信息得提取算法。 利用广义互相关算法得到时延信息之后,就需要根据麦克风阵列的几何信息估计声源的方位,进而估计出目标的位置。在本文的场景声源于目标的关系可以近似当作是远程声源进行处理。主要考虑使用二维L型阵列进行接收,L型阵列的X轴和Y轴的阵元可以分别视为一个一维的线型阵列,然后可以分别估计声源来向的水平角度和垂直角度。因此在接下来的内容中将简单介绍声源方位估计得算法。分别估计得到水平阵列的角度θ1和垂直阵列的角度θ2之后,由于本文中的声源目标是猪,因此目标的高度维度坐标肯定是0,得到目标的二维角度之后即可推算出目标的三维位置

基于matlab的声源定位系统_盲源分离算法
在这里插入图片描述
注意点

声源使用从网上下载了一段猪语音(wav文件)作为声源生成麦克风接收信号。
实现了单目标声源定位(包括方位和目标位置,根据场景目标应该在地上)
该程序采用了TDOA声源定位算法(可以参考《基于FPGA的声源定位系统软硬件设计》4节、《基于麦克风阵列的声源定位系统硬件设计与算法研究1》第4章)
文档下载:链接:https://pan.baidu.com/s/1Hgk_y2FE-Ic04iEkIDAVBw
提取码:h76w

程度下载:链接:https://pan.baidu.com/s/1AurO823CuifsXeH_Po-ItQ
提取码:bcy9

解压密码可以私信我或者在下面评论。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190689.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 命令提示符运行Python程序

    命令提示符运行Python程序1.打开DOS窗口快捷键windows+R2.切换目录到Python程序所在的目录我的Python程序存放在D:\python\program中,文件为hi.py

    2022年10月20日
  • Glance详解_glance of

    Glance详解_glance ofGlance简介Glance是OpenStack平台中负责镜像服务的组件,其功能包括系统镜像的查找、注册和获取等,简单来说glance的功能就是用户可以通过其提供的RESTAPI查询和获取镜像元数据。glance负责OpenStack中的ImageService,那么Image是什么,简单来说Image就是一个模板,里面包含各种常用的操作系统和软件,这样用户在租用OpenStack服务后就…

    2022年10月25日
  • postman汉化包_python模拟post请求

    postman汉化包_python模拟post请求Postman安装(汉化Postman)一、下载Postman下载地址:https://www.postman.com/downloads/二、下载汉化包下载地址:https://github.com/hlmd/Postman-cn/releases注意:中文包的版本和postman的版本一定要一致,否则会出现汉化后打不开postman的情况postman设置里能看到版本号:汉化包下对应的就可以:三、解压到对应目录四、重启P…

    2022年9月30日
  • linux 复制文件夹内所有文件到另一个文件夹

    linux 复制文件夹内所有文件到另一个文件夹cp-Rf/home/user1/*/root/temp/将/home/user1目录下的所有东西拷到/root/temp/下而不拷贝user1目录本身。即格式为:cp-Rf原路径/目的路径/

    2022年8月23日
  • springboot zuul网关_ubuntu网关服务器搭建

    springboot zuul网关_ubuntu网关服务器搭建目录一.Zuul网关二.Zuul服务的前期准备2.1注册中心EurekaServer的搭建2.2EurekaService的搭建三.Zuul服务搭建五.Zuul的访问六.Zuul的更多功能前言:博主一直力求做到写博客尽量的详细来减少大家花在踩坑上的时间,若有写的不好或错误的地方,还需各方大佬指正。一.Zuul网关网关,是一种网络关口,既然是…

    2022年8月15日
  • 系统首选dns服务器修改,如何在Windows系统中设置首选DNS「建议收藏」

    系统首选dns服务器修改,如何在Windows系统中设置首选DNS「建议收藏」有时候可能需要修改或者调整DNS服务器地址的设置,以达到优化网络连接速度的效果。那么如何在Windows系统中设置首选DNS呢?具体请看下面学习啦小编介绍的操作方法!在Windows系统中设置首选DNS的方法这里Windows8为例,首先在屏幕的右下角找到“网络连接”图标,在“网络连接”图标上点击鼠标右键,然后选择“打开网络和共享中心”,接下来在“网络和共享中心”窗口中点击左侧的“更改适…

    2022年6月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号