python 回声程序_一种回声消除系统及回音消除方法与流程
本发明涉及通信技术领域,具体涉及一种回声消除系统及回音消除方法。
背景技术:
回声消除器通常由滤波器和算法组成,根据具体应用和性能要求的不同可以有多种选择。
滤波器有FIR(有限长度冲激晌应)滤波器和IIR(无限长度冲激响应)滤波器两种,在系数个数相同的条件下,IIR滤波器比FIR滤波器可以获得更好收敛性,但是IIR滤波器存在稳定性问题,因此实际中一般选用FIR滤波器。
回声消除的基本原理是用一个自适应滤波器模拟回声路径,通过调整自适应滤波器预测的回声路径,仗其冲激响应与实际回声路径相逼近,从而得到回声预测信号,再将预测信号从话筒〈近端)采样的语音信号中减去.即可实现回声消除。
由于回声是一个连续变量,所以根据上一次误差调整系数来对下一次回声估计的方法,可以有效地达到尽量使得估计值接近实际回声值的效果。
虽然许多自适应算法理论上用于实现回声抵消都是可行的,但在大多数情况下,简单、稳健的算法比复杂的算法更可取。
因此,如何减少算法的计算复杂度,尽可能地降低算法计算量,是本领域技术人员一直需要考虑解决的问题。
技术实现要素:
为了克服背景技术的不足,本发明提供一种回声消除系统及回音消除方法。
本发明所采用的技术方案:一种回声消除系统,包括
信号采集单元,用于获取当前时刻的近端信号s(i)和远端信号y(i);
直流偏离去除单元,用于去除近端信号s(i)的直流偏量,其去除直流偏量的计算公式为:
其中,γ表示滤波,sdC(i)表示近端输入样本的线性表示;
回声信号估计单元,用于计算估计回声信号回声信号的估算公式为:其中,αk为误差调整系数,K为采样项;
近端输出信号计算单元,用于计算近端输出信号u(i),近端输出信号的计算公式为:
误差量计算单元,用于计算误差量e(i),误差量的计算公式为:r(i)为实际回声;
信号更新单元,用于更新远端信号y(i)和近端输出信号u(i),并归一化近端输出信号u(i);
系数更新单元,用于更新误差调整系数,其计算公式为:其中,Ly(i)为y(i)绝对值的长期平均值,β1为步长常数的折中值,M为块长度。
所述直流偏离去除单元为高通滤波器,该高通滤波器为一阶滤波器,频率为3dB,频率为160Hz。
一种回音消除方法,具体包括如下步骤:
a.获取近端信号s(i)和远端信号y(i),其中i表示当前瞬时;
b.对近端信号s(i)通过高通滤波器以去除任何残余的直流偏移量,其计算公式为:
其中,γ表示滤波,sdC(i)表示近端输入样本的线性表示;
c.通过FIR滤波器程序,计算估计回声信号其计算公式为:其中,αk为误差调整系数,K为采样项;
d.计算近端输出信号u(i),其计算公式为:
e.计算误差量e(i),其计算公式为:其中,r(i)为实际回声;
f.更新估算远端信号y(i)和近端输出信号u(i),归一化近端输出信号u(i);
g.更新FIR滤波器系数αk,其计算公式为:
其中,Ly(i)为y(i)绝对值的长期平均值,β1为步长常数的折中值,M为块长度。
采用高通滤波器对近端信号s(i)进行直流偏量去除,高通滤波器为一阶滤波器,γ为一阶滤波,γ=2^(-3)。
所述块长度取16,即M=16。
所述采样项取128,即K=128。
步骤e中,采用闭环系数自适应算法来最小化回波与其复制品之间的平均或均方误差e(i)。
当近端没有说话,s(i)近似为r(i)时,才进行FIR滤波器系数αk的更新。
本发明的有益效果是:上述方案的基本思路在于滤波器的每一个系数经过M个输入样点才更新一次,而每输入一个样点时更新全部系数的1/M,从而大大减少了算法的计算复杂度,降低算法计算量,达到收敛速度快、稳定性好和失调误差小的效果。
附图说明
图1为本发明实施例回声消除系统连接框图。
图2为本发明实施例回声消除方法流程框图。
具体实施方式
如图1所示,一种回声消除系统,包括信号采集单元、直流偏离去除单元、回声信号估计单元、近端输出信号计算单元、误差量计算单元、信号更新单元、系数更新单元。
所述信号采集单元用于采集获取近端信号s(i)和远端信号y(i)。
所述直流偏离去除单元为高通滤波器,该高通滤波器为一阶滤波器,频率为3dB,频率为160Hz,与信号采集单元连接,用于去除近端信号s(i)的直流偏量,其去除直流偏量的计算公式为:
其中,γ表示一阶滤波,γ=2^(-3),sdC(i)表示近端输入样本的线性表示,
所述回声信号估计单元用于计算估计回声信号回声信号的估算公式为:其中,αk为误差调整系数,K为采样项;
所述近端输出信号计算单元用于计算近端输出信号u(i),近端输出信号的计算公式为:
所述误差量计算单元用于计算误差量e(i),误差量的计算公式为:r(i)为实际回声。
所述信号更新单元用于更新远端信号y(i)和近端输出信号u(i),归一化近端输出信号u(i);
所述系数更新单元用于更新误差调整系数,其计算公式为:其中,Ly(i)为y(i)绝对值的长期平均值,β1为步长常数的折中值,M为块长度。
如图2所示,一种回音消除方法,具体包括如下步骤:
a.获取当前的近端信号s(i)和远端信号y(i),其中i表示当前瞬时时刻。
b.对近端信号s(i)通过高通滤波器以去除任何残余的直流偏移量,高通滤波器是一阶滤波器,频率为3dB,频率为160Hz,具体公式为:
上述公式中,,γ表示一阶滤波,γ=2^(-3),sdC(i)表示近端输入样本的线性表示。
c.通过FIR滤波器程序,回声信号进行计算估计,具体公式为:
其中,αk为FIR滤波器系数,K为采样项,K的值一般为128。
d.计算近端输出信号u(i),其具体计算公式为:
e.采用闭环系数自适应算法来最小化回波与其复制品之间的平均或均方误差e(i),其具体计算公式为:r(i)为实际回声。
f.更新估算远端信号y(i)和近端输出信号u(i),归一化近端输出信号u(i)。
g.更新FIR滤波器系数αk,其具体计算公式为:
其中,Ly(i)为y(i)绝对值的长期平均值,β1为步长常数的折中值,M为块长度,M的值一般取16。
通常实际回声r(i)是未知的并且可能随时间缓慢变化,因此需要闭环系数自适应算法来使在特定的情况下才能计算,当近端没有说话时,s(i)近似为r(i)时,FIR滤波器系数αk更新。
上述方案的基本思路在于滤波器的每一个系数经过M个输入样点才更新一次,而每输入一个样点时更新全部系数的1/M,从而大大减少了算法的计算复杂度,降低算法计算量,达到收敛速度快、稳定性好和失调误差小的效果。
各位技术人员须知:虽然本发明已按照上述具体实施方式做了描述,但是本发明的发明思想并不仅限于此发明,任何运用本发明思想的改装,都将纳入本专利专利权保护范围内。
python 回声程序_一种回声消除系统及回音消除方法与流程相关推荐
- fft 估计载波频率程序_一种基于扫描精确估计载波频率的方法与流程
本发明涉及信号处理技术领域,特别涉及一种基于扫描精确估计载波频率的方法. 背景技术: 信号的载波频率估计是通信.雷达.声纳以及电子对抗等领域信号处理中的一个重要问题.基于参数模型的谱估计.最大熵谱估计 ...
- 在android添加数据采集,一种基于Android系统的地理信息数据采集方法与流程
本方法属于采集地理信息数据的发明,是一种基于android操作系统和gis地理信息系统进行户外地理信息数据采集的方法. 背景技术: 众所周知地理信息数据采集在很多行业中都有应用,比如说农业中的土地普查 ...
- 服务器基线加固脚本_一种基于WebLogic的安全基线加固方法与流程
本发明涉及一种安全基线加固方法,尤其涉及一种基于weblogic的安全基线加固方法. 背景技术: weblogic是一个基于javaee架构的中间件,用于开发.集成.部署和管理大型分布式web应用.网 ...
- java 基于类路径搜索_一种基于ClassLoader的自定义类查找方法与流程
本发明涉及IT技术领域,特别是指一种基于ClassLoader的自定义类查找方法. 背景技术: 随着信息系统的复杂性日益增大,使用反射机制设计的系统越来越多.根据不同的业务需要通过反射去获得相应的处理 ...
- 并注册烧写钩子 获取启动介质类型_一种基于USB烧写的数据传输方法与流程
本发明涉及嵌入式系统固件量产技术领域,特别涉及嵌入式系统基于USB烧写的固件数据的场景. 背景技术: 嵌入式产品已广泛应用于社会的各行各业,在产品生产过程中,需要将嵌入式系统固件量产到产品设备中. 固 ...
- java 发送短信 多通道_一种Java卡多通道临时对象管理方法与流程
本发明涉及Java智能卡领域,具体涉及一种Java卡多通道临时对象管理方法. 背景技术: :JavaCard规范支持逻辑通道的概念,允许最多智能卡中的16个应用程序会话同时开启,每个逻辑通道一个会话. ...
- java视频保存_一种Java实现存储视频收视率的方法与流程
本发明涉及Java程序设计技术领域,尤其涉及一种Java实现存储视频收视率的方法. 背景技术: 在项目研发过程中,遇到这样一个需求.客户想要将用户在机顶盒上观看的直播频道.点播影片等用户行为存储到数据 ...
- 手机室内地磁定位软件_一种基于地磁的智能手机实时定位方法与流程
本发明涉及室内地磁定位导航方法,具体涉及一种基于地磁的智能手机实时定位方法,属于移动计算和室内定位技术领域. 背景技术: 随着室内定位导航的日益需求,利用地磁信息作为位置指纹的室内定位导航技术显示出其 ...
- java 下载加速_一种基于Java的大文件下载加速方法与流程
本发明涉及java/多线程技术领域,涉及一种加速文件下载装置,具体提供一种基于java的大文件下载加速方法. 背景技术: 现有的常用下载方式是基于浏览器的单线程下载.这种单线程下载的方式,是通过htt ...
最新文章
- IIS 7.5 去掉index.php 西数服务器
- 【sklearn学习】决策树、分类树、剪枝策略
- ansible---基础
- x5内核有什么优点_接上U盘就是NAS私有云,蒲公英X5入手测评
- 浮点加法器计算机组成原理,计算机组成原理 第二章运算方法与运算器
- xUtils 中的BitmapUtils 全面注释
- 记录一下 orangepi zero wifi联网
- php中url传递中文字符,特殊危险字符的解决方法
- 商易淘宝全屏海报代码生成工具 使用说明
- python3调用企业微信api
- 2017数学建模b题回顾_年度回顾:2017年的Java
- 动态域名ddclient
- ubuntu meld打不开
- U盘变32G的解决办法
- Java基础复习总结笔记(上)
- 推荐一些奇奇怪怪的好东西
- 【ORACLE】各种数据类型
- 网易视频云:HBase BlockCache系列-性能对比测试报告
- 植物大战僵尸java圣诞版,植物大战僵尸圣诞版-植物大战僵尸2圣诞节版v1.9.1 安卓版-腾牛安卓网...
- Proteus使用教程详细入门版(适用于 MCS-51等)
热门文章
- JSP中应用MVC架构
- numpy学习3:对象属性和基本数据类型
- struts2教程--标签库详解
- java开发资源分享(视频,源码,项目)
- Tomcat配置问题解决方法
- python 折线图x时间_在Python Bokeh折线图中设置日期/时间轴上的比例
- Java实现图的深度和广度优先遍历算法
- 利用Handler通信来实时显示系统时间
- Java 里的字符串处理类StringBuffer简介
- python是一种跨平台开源免费的高级动态编程语言吗_第1章 管中窥豹:Python概述免费阅读_Python程序设计开发宝典免费全文_百度阅读...