本发明涉及音频通信领域,特别是一种音频通信解码方法。
背景技术:
音频通信指的是通过音频处理技术的通讯手段。一般的流程如下:
音频通信的发送端将待发送的信息数据按照通讯协议转换为bit流数据;发送端按照编码方式将bit流数据依次转换为音频信号;音频信号在线路上传输;接收端接收到音频信号,并按照约定的编码方式转换为bit流数据;接收端按照通讯协议将bit流数据解码为信息数据。完成通讯。
其中,通讯协议由通讯双方按照需求约定即可。编码方式一般有频率编码和幅度编码、相位编码等,也需要通讯双方约定。通过对信号波形的研究,无论何种编码方式,都存在信号的高电平与低电平,而从高电平到低电平的过渡区域或者低电平到高电平的过渡区域,往往不是瞬间变化的,而是有一定的倾斜宽度,这造成了高电平与低电平的边界点不明确的问题,边界点的确定精度,直接影响了解码成功率。
音频通信中以手机—手持POS机音频通信为例,目前手机厂家之多、型号之多导致了同一手持POS机硬件电路很难适应所有的手机。
技术实现要素:
有鉴于此,本发明的目的是提出一种音频通信解码方法,通过动态阈值、质心法求解边界,使信号宽度或频率的计算更为准确,提高了解码成功率,提高适应性,使音频通信设备的应用范围更加广泛。
本发明采用以下方案实现:一种音频通信解码方法,具体包括以下步骤:
步骤S1:音频通信设备的接收端接收信号采样数据,并将所述信号采样数据存储在信号数据存储器中;
步骤S2:采用动态阈值、质心法求边界,并根据计算出来的边界,计算高低电平宽度;
步骤S3:接收端根据步骤S2的计算结果对信号存储器中的采样数据进行bit流解码;
步骤S4:根据解码的bit流,进行解码为应用数据,并进行相关的应用操作,完成通讯应用。
进一步地,所述步骤S2中采用动态阈值、质心法求边界具体包括以下步骤:
步骤S21:设定初始阈值为T0,并令过程阈值T=T0,设最后一个有效系列标志V=0,表示递减系列;
步骤S22:对数据存储器的数据依次进行搜索,直到结束;其搜索过程为:交替搜索严格递增系列、严格递减系列,并判断其是否为有效系列,遇到前后数据相等时,直接过滤;
针对严格递增系列,若上一个有效系列标志V=1,其中,V=1表示递增系列,则无效,否则为有效;
若有效,则计算落差F,F的计算为严格递增系列的最后一个数据减去第一个数据的结果;若落差F大于过程阈值T,则判断为是一个低电平到高电平的边界,并根据系列采用质心法计算边界位置,同时记录边界位置,并根据落差F重新计算过程阈值T=F/2,若T小于T0,则取T=T0,记录备份落差BF,设置V=1。否则若落差F小于或等于过程阈值T,则丢弃该系列;
若无效,则计算落差F,若落差F大于备份落差BF,根据系列采用质心法计算边界位置,更新最后一个边界位置,重新计算过程阈值T=F/2,若T小于T0,则取值为T=T0,更新备份落差BF=F,设置V=1;否则落差F小于或等于备份落差BF,则丢弃该系列;
针对严格递减系列,若上一个有效系列标志V=0,则无效,否则为有效;
若有效,则计算落差F,F的计算为严格递减系列的第一个数据减去最后一个数据的结果,若落差F大于过程阈值T,则判断为是一个高电平到低电平的边界,并根据系列采用质心法计算边界位置,同时记录边界位置;并根据落差F重新计算过程阈值T=F/2,若T小于T0,则取T=T0,设置V=0;否则若落差小于或等于过程阈值T,则丢弃该系列;
若无效,则计算落差F,若落差F大于备份落差BF,根据系列采用质心法计算边界位置,更新最后一个边界位置,重新计算过程阈值T=F/2,若T小于T0,则取T=T0,更新备份落差BF=F,设置V=0;否则落差F小于或等于备份落差BF,则丢弃该系列。
进一步地,其中所述采用质心法计算边界位置具体为:设系列的索引依次为n1,n2,n3,...nk,采样值依次为c1,c2,c3...ck,计算:
e=(ck×nk-c1×n1-∑ci)/(|ck-c1|)+0.5,
1<i≤k;
其中e即为边界所在位置。
进一步地,步骤S2中所述并根据计算出来的边界,计算高低电平宽度具体为:相邻的两个边界之差即为低电平宽度或高电平宽度;若后一个边界是高电平到低电平的边界时,是高电平宽度,否则是低电平宽度。
进一步地,在所述步骤S3中,若编码方式为幅度编码,以低电平的宽度除以单位宽度,即可解码为与倍数相同个数的bit0,以高电平的宽度除以单位宽度,即可解码为与倍数相同的bit1;若编码方式为频率编码,可通过宽度对比进行解码为bit流,约定高频为bit1时,则宽度大的解码为bit0,宽度小的解码为bit1,反之亦然。
与现有技术相比,本发明有以下有益效果:本发明通过动态阈值、质心法求边界的方法,使信号宽度或频率的计算更为准确,提高了解码成功率,提高适应性,使音频通信设备的应用范围更广泛。。
附图说明
图1为本发明的原理流程示意图。
图2为本发明实施例中步骤S22的流程示意图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
如图1所示,本实施例提供了一种音频通信解码方法,具体包括以下步骤:
步骤S1:音频通信设备的接收端接收信号采样数据,并将所述信号采样数据存储在信号数据存储器中;
步骤S2:采用动态阈值、质心法求边界,并根据计算出来的边界,计算高低电平宽度;
步骤S3:接收端根据步骤S2的计算结果对信号存储器中的采样数据进行bit流解码;
步骤S4:根据解码的bit流,进行解码为应用数据,并进行相关的应用操作,完成通讯应用。
在本实施例中,所述步骤S2中采用动态阈值、质心法求边界具体包括以下步骤:
步骤S21:设定初始阈值为T0,并令过程阈值T=T0,设最后一个有效系列标志V=0,表示递减系列;其中,T0的选取是根据实际情况决定的,是一个经验参数。在本实施例中,T0选取采样数据的最大、最小值差值的1/4。
步骤S22:对数据存储器的数据依次进行搜索,直到结束;其搜索过程为:交替搜索严格递增系列、严格递减系列,并判断其是否为有效系列,遇到前后数据相等时,直接过滤;
针对严格递增系列,若上一个有效系列标志V=1,则无效,否则为有效;
若有效,则计算落差F,F的计算为严格递增系列的最后一个数据减去第一个数据的结果;若落差F大于过程阈值T,则判断为是一个低电平到高电平的边界,并根据系列采用质心法计算边界位置,同时记录边界位置,并根据落差F重新计算过程阈值T=F/2,若T小于T0,则取T=T0,记录备份落差BF,设置V=1。否则若落差F小于或等于过程阈值T,则丢弃该系列;
若无效,则计算落差F,若落差F大于备份落差BF,根据系列采用质心法计算边界位置,更新(覆盖)最后一个边界位置,重新计算过程阈值T=F/2,若T小于T0,则取值为T=T0,更新备份落差BF=F,设置V=1;否则落差F小于或等于备份落差BF,则丢弃该系列;
针对严格递减系列,若上一个有效系列标志V=0,则无效,否则为有效;
若有效,则计算落差F,F的计算为严格递减系列的第一个数据减去最后一个数据的结果,若落差F大于过程阈值T,则判断为是一个高电平到低电平的边界,并根据系列采用质心法计算边界位置,同时记录边界位置;并根据落差F重新计算过程阈值T=F/2,若T小于T0,则取T=T0,设置V=0;否则若落差小于或等于过程阈值T,则丢弃该系列;
若无效,则计算落差F,若落差F大于备份落差BF,根据系列采用质心法计算边界位置,更新最后一个边界位置,重新计算过程阈值T=F/2,若T小于T0,则取T=T0,更新备份落差BF=F,设置V=0;否则落差F小于或等于备份落差BF,则丢弃该系列。
在本实施例中,其中所述采用质心法计算边界位置具体为:设系列的索引依次为n1,n2,n3,...nk,采样值依次为c1,c2,c3...ck,计算:
e=(ck×nk-c1×n1-∑ci)/(|ck-c1|)+0.5,
1<i≤k;
其中e即为边界所在位置。
在本实施例中,步骤S2中所述并根据计算出来的边界,计算高低电平宽度具体为:由于低电平、高电平时交替出现的,因此相邻的两个边界之差即为低电平宽度或高电平宽度;若后一个边界是高电平到低电平的边界时,是高电平宽度,否则是低电平宽度。
在本实施例中,在所述步骤S3中,若编码方式为幅度编码,以低电平的宽度除以单位宽度()单位宽度可参考串口通信,需约定波特率,即可转化为单位宽度),即可解码为与倍数相同个数的bit0,以高电平的宽度除以单位宽度,即可解码为与倍数相同的bit1;若编码方式为频率编码,可通过宽度对比进行解码为bit流,约定高频为bit1时,则宽度大的解码为bit0,宽度小的解码为bit1,反之亦然。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。