麦克风阵列声源定位实现[通俗易懂]
定位 实现 通俗易懂 阵列 麦克风 声源
2023-06-13 09:13:38 时间
大家好,又见面了,我是你们的朋友全栈君。
麥克風陣列音源定位系統是利用麥克風陣列接收音訊,然後經由適當的演算法估算出音源入射麥克風陣列的方向角,即判斷出音源的位置方向。本專題著重於此演算法的程式撰寫,並實際測試二維及三維空間中單一音源入射的方向角,期望於演算速度及準確度上能有最好的效果。此系統完成後可搭配攝影機應用於視訊會議,隨時定位出發言者;也可應用於監視系統、玩具等。
麥克風陣列音源定位系統主要是利用同一音源到麥克風陣列中每支麥克風的距離不全相同,因此同一音源的訊號傳遞到每支麥克風會有時間差TDOA ( Time Difference of Arrival ),利用求得的TDOA,代入推論出的方向角公式即可得到音源入射的方向角。而本專題著重於估算TDOA及方向角公式的演算法上,我們使用兩種演算法實作測試,其中一種演算法只適用於二維空間,而另一種適用於二維或三維空間的音源定位。
有許多相關的論文是以頻域的方法分析,但若要將此系統實作在微處理器上,運算較簡單時域分析方法會有較好的效用,且對初學訊號分析的我們來說也較容易實現,所以我們主要以時域的方法來建立演算法。
此系統主要的實作流程為:「語料取樣」、「訊號前處理」、「估算TDOA」、「計算方向角」。下圖1-1為麥克風陣列音源定位系統流程圖,詳細說明如下:
- 由兩支以上麥克風組成麥克風陣列接收音訊。
- 麥克風接收的訊號經過一放大器後,再經由四輸入USB動態訊號擷取模組,依設定的取樣頻率取樣訊號,輸入電腦分析。
- 將每支麥克風接收的訊號音量標準化,並切割成多個音框(frame)。
- 設定音量門檻值,去除音量小的部份。(算出一段訊號中所有音框的音量,取其中音框音量最小值的k倍為門檻值,k值由經驗得到。)
- 以Cross Correlation的方法估算TDOA。
- 將求得的TDOA代入方向角公式,即可得到音源入射的方向角。
TDOA的計算方法:
TDOA (Time Difference of Arrival) 是指同一音源的訊號傳遞到兩支麥克風的時間差由麥克風所取樣的訊號來估算。而時域上常見的計算方法有四種:AMDF(Average Magnitude Difference Function)、ratio AMDF、最小平方法、Cross Correlation。我们採用最常見且穩定性高的Cross Correlation。
Cross Correlation
x1及x2為兩支麥克風所取樣到的兩段訊號,經由下式可算出所對應λ值的cross correlation值。
(1)
最大合理平移範圍當音源與兩支麥克風的中心成90度時(音源與兩支麥克風距離相等),音源傳遞到兩支麥克風的時間差為0;當音源與兩支麥克風三者成一直線時,音源傳遞到兩支麥克風的時間差最大。
假設聲速為v,兩支麥克風距離為m,取樣頻率為 fS,則最大合理平移範圍為:( m / v ) × fS單位為取樣點數(sample)。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192635.html原文链接:https://javaforall.cn
相关文章
- 超高精准度IP地址定位这样实现
- 圣杯布局、双飞翼布局、Flex布局和绝对定位布局的几种经典布局的具体实现示例
- [完整案例]编程实现动物头像定位-01
- CSS进阶内容—浮动和定位详解
- css固定定位_css定位布局
- 盘点Python网络爬虫过程中xpath的联合查询定位一个案例
- 精准定位数据差异行,DBMotion 数据库迁移工具再添新功能
- 数据虚拟视图定位与智能化实现
- 【CSS】使用 z-index 属性值控制定位盒子的堆叠顺序 ( 多个盒子堆叠次序问题 | z-index 属性值简介 | 控制盒子堆叠次序 )
- 【CSS】使用 固定定位 实现顶部导航栏 ( 核心要点 | 固定定位元素居中设置 | 代码示例 )
- 浅谈Redis常见延迟问题定位与分析
- dedecms 模板文件不存在 无法解析文档!问题定位方法!详解程序员
- 微信企业号开发:微信考勤百度地图定位,错误修正二详解手机开发
- 定位MongoDB实现精准的坐标定位(mongodb坐标)
- 快速定位Linux文件末尾(linux到文件末尾)
- 苹果升级查找功能即便iOS设备已经关机或恢复出厂设置也可以继续被定位
- Linux快速定位查找文本内容(linux查找文本内容)
- “Linux查找命令全攻略:快速定位关键信息”(linux中的查找命令)
- Linux文件定位:实现快速文件访问(linux文件定位)
- 玩 VR 不知道定位追踪技术?你需要这篇文章补补课
- HTML5 定位
- 解决MySQL无法定位问题的几种方法(mysql一直定位不了)
- 大朋展出全新 E3 头盔和 E-Polaris 激光定位方案 | CES 2017
- Occipital推出VR定位追踪平台 一个摄像头也能实现SteamVR级别的定位?!
- 高精度三维空间测量、定位与追踪(上)
- 力推三大高精定位解决方案,千寻位置全面赋能IoT时代 | 云栖大会2017
- 专家观点丨央行数字货币DCEP的定位与地位
- JQuery弹出框定位实现方法
- Android基站定位原理及实现代码
- C#定位txt指定行的方法小例子
- ffchrome和ie下全局动态定位的异同及全局高度的取法