提高语音信道数据传输准确性的方法与流程

文档序号:17933543发布日期:2019-06-15 01:07阅读:199来源:国知局
提高语音信道数据传输准确性的方法与流程

本发明涉及数据传输领域。更具体地说,本发明涉及一种提高语音信道数据传输准确性的方法。



背景技术:

现有的将数据在语音信道上传输的方法是:设计一组与数据对应的类语音信号,这些信号的频率在声码器要求范围内(300hz-3400hz),并且可以通过声码器信道之后在接收端成功解调。对该方法的研究有很多,主要集中在对类语音信号的设计和优化,然而,现有的传输方法依然存在传输性能低、误码率高等缺点。



技术实现要素:

本发明的一个目的是提供一种提高语音信道数据传输准确性的方法,其具有提高传输性能,降低误比特率等优点。

为了实现根据本发明的目的和其它优点,提供了一种提高语音信道数据传输准确性的方法,包括以下步骤:

构造n个类语音符号波形;从所述n个类语音符号波形中选择nsym个最优类语音符号波形,n>>nsym,组成码本;发送端将需要传输的数据比特分组,每nbit个比特为一组,总共有种可能性,每一组选择所述码本中对应的类语音符号波形进行调制,转换成类语音信号,并将类语音信号在语音信道上传输;接收端对接收到的类语音信号进行数据解调;

其中,从所述n个类语音符号波形中选择nsym个最优类语音符号波形,具体为:

a1、利用线性预测分析对语音信号数学模型式中:ai(i=1,2,...,p)为线性预测系数,p为预测阶数,求解得到n个类语音符号波形的lpc特征,lpc1,lpc2,...lpci,...,lpcn(1≤i≤n),lpci是第i个类语音符号波形的lpc特征,为1×p向量;

a2、选择第一个最优类语音符号波形的规则:

abs(lpc1-lpc2)表示第一个类语音符号波形lpc特征和第二个类语音符号波形lpc特征差的绝对值,为1×p向量,将这p个值相加,和用diff12表示,

diff13表示第一个类语音符号波形和第三个类语音符号波形lpc特征值的差异,

diffmn表示第m个类语音符号波形和第n个类语音符号波形lpc特征值的差异,

令:

d1=diff12+diff13+...+diff1i+...+diff1n

d2=diff21+diff23+...+diff2i+...+diff2n

di=diffi1+diffi2+...+diffi(i-1)+diffi(i+1)+...+diffin

dn=diffn1+diffn2+...+diffni+...+diffn(n-1)

在[d1,d2,...,di,...,dn]中,若dm值最大,则选取第m个类语音符号波形作为码本中的第一个最优类语音符号波形;

a3、选择第i(2≤i≤nsym)个最优类语音符号波形的规则:

假设已选取出的前i-1个最优类语音符号波形在n个类语音符号符号波形s1,s2,...,sn中的位置为ind1,ind2,...,indi-1,去除剩下的n-(i-1)个类语音符号波形中选取一个最优类语音符号波形,

令:

在[d'1,d'2,...,d'i,...,d'n-i+1]中,若d'm值最大,则选取类语音符号波形作为码本中的第i个最优类语音符号波形;

a4、重复a3,直至选择出nsym个最优类语音符号波形。

优选的是,所述的提高语音信道数据传输准确性的方法,发送端在需要传输的数据比特ndata的前端或中间增加同步比特nsyn,将数据比特ndata和同步比特nsyn进行分组,每nbit个比特为一组,每一组选择所述码本中对应的类语音符号波形进行调制,每组l个样点,则同步有lensyn=nsyn/nbit·l个样点,数据有lendata=ndata/nbit·l个样点,转换成类语音信号,并将类语音信号在语音信道上传输;接收端根据最大点值积值对接收到的类语音信号进行数据解调,解调前还包括,确定同步起始点,具体为:

b1、找出第一帧的同步起始位置:

设置一个区间长度lenoffset,接收端对[index:index+lenoffset-1]这个范围作为起始点进行扫描,令index=1,则有以下lenoffset个区间:

[1:lensyn],[2:lensyn+1],...,[lenoffset:lenoffset+lensyn-1]

根据最大点值积值对每个区间内的lensyn个样点分别进行解调,得到lenoffset个比特流将其分别与nsyn进行比较,得到lenoffset个误比特率选择最小的误比特率bermin,若bermin>0.05,令index=index+lenoffset,继续扫描计算,若bermin≤0.05,则确定第一帧的同步起始点为start1,数据部分的起始点为start1+lensyn,

接收端对[start1+lensyn:start1+lensyn+lendata-1]进行数据解调;

b2、找出第f(f≥2)帧的同步起始位置:

令index=startf-1+lensyn+lendata,接收端对[index-lenoffset/2:index+lenoffset/2]这个范围作为起始点进行扫描,lenoffset为偶数,取以下lenoffset+1个区间:

[index-lenoffset/2:index-lenoffset/2+lensyn-1],

[index-lenoffset/2+1:index-lenoffset/2+lensyn],

[index+lenoffset/2:index+lenoffset/2+lensyn-1]

根据最大点值积值对每个区间内的lensyn个样点分别进行解调,得到lenoffset+1个比特流将其分别与nsyn进行比较,得到lenoffset+1个误比特率若最小误比特率有m个,位置为[1:1+lenoffset]中的[pos1,pos2,...,posm],则:

1)若m=1,则确定第f帧的同步起始点为startf=startf-1+lensyn+lendata-lenoffset/2+posm-1;

2)若m>1且pos1=1,对[pos2,...,posm]这些位置的邻近位置的误比特率之和进行比较,若bx(1≤x≤m-1)最小,则确定第f帧的同步起始点为startf=startf-1+lensyn+lendata-lenoffset/2+posx+1-1;

3)若m>1且posm=1+lenoffset,对[pos1,...,posm-1]这些位置的邻近位置误比特率之和进行比较,若bx(1≤x≤m-1)最小,则确定第f帧的同步起始点为startf=startf-1+lensyn+lendata-lenoffset/2+posx-1;

4)若m>1且pos1≠1,posm≠1+lenoffset,对[pos1,...,posm]这些位置的邻近位置误比特率之和进行比较,若bx(1≤x≤m-1)最小,则确定第f帧的同步起始点为

startf=startf-1+lensyn+lendata-lenoffset/2+posx-1。

本发明至少包括以下有益效果:

第一、本发明利用语音特征参数的lpc特征来进行类语音符号波形选择,使得作为码本的nsym个最优类语音符号波形具有最大差异性,以提高传输性能,降低误比特率;

第二、本发明利用前后位置的误比特率得到准确的同步起始点,以精准控制同步,进一步降低误比特率。

本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。

附图说明

图1是本发明具体实施例中的最优类语音符号波形示意图;

图2是本发明具体实施例中采用本发明确定同步起始点的方法得到的仿真结果示意图;

图3是本发明具体实施例中不采用本发明确定同步起始点的方法得到的仿真结果示意图。

具体实施方式

下面结合实施例和附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。

一种提高语音信道数据传输准确性的方法,包括以下步骤:

构造n个类语音符号波形;从所述n个类语音符号波形中选择nsym个最优类语音符号波形,n>>nsym,组成码本;发送端将需要传输的数据比特分组,每nbit个比特为一组,总共有种可能性,每一组选择所述码本中对应的类语音符号波形进行调制,转换成类语音信号,并将类语音信号在语音信道上传输;接收端对接收到的类语音信号进行数据解调;

其中,构造n个类语音符号波形的方式有很多,有通过基音、lsf、lpc等参数构造,也有通过fsk、msk、psk、qam、ofdm等调制产生,这里利用idct(离散余弦逆变换)构造类语音符号波形,其能量集中,性能好,也简单易于实现,具体为:

将nbit个比特为一组,总共有种可能性,对应单个十进制数i通过映射m编码成单个类语音符号波形si:

m:i→d

这里的i={1,2,...,nsym}

类语音符号波形形成步骤如下:

①在中选择nf个实数gk(k=1,2,…,nf),用于产生类语音符号频谱,nf表示数据子载波的数目,l表示所有子载波的数目,保证频谱满足φ∈[fmin,fmax],声码器只能通过300hz-3400hz之间的语音,所以fmin和fmax被限定在该范围内。

②使用实数gk构造nf个频谱分量:

i∈[1:n]

③利用离散余弦逆变换idct将φi由频域转到时域:

为l点的实数类语音符号波形。

④对实数类语音符号波形的功率进行归一化处理,产生最终的时域类语音符号波形

⑤重复上述步骤,直至产生n(n>>nsym)个类语音符号波形。

从所述n个类语音符号波形中选择nsym个最优类语音符号波形,最优类语音符号波形为彼此具有最大差异性的波形,具体为:

a1、利用线性预测分析对语音信号数学模型式中:ai(i=1,2,...,p)为线性预测系数,p为预测阶数,求解得到n个类语音符号波形的lpc特征,lpc1,lpc2,...lpci,...,lpcn(1≤i≤n),lpci是第i个类语音符号波形的lpc特征,为1×p向量;

a2、选择第一个最优类语音符号波形的规则:

abs(lpc1-lpc2)表示第一个类语音符号波形lpc特征和第二个类语音符号波形lpc特征差的绝对值,为1×p向量,将这p个值相加,和用diff12表示,

diff13表示第一个类语音符号波形和第三个类语音符号波形lpc特征值的差异,

diffmn表示第m个类语音符号波形和第n个类语音符号波形lpc特征值的差异,

令:

d1=diff12+diff13+...+diff1i+...+diff1n

d2=diff21+diff23+...+diff2i+...+diff2n

di=diffi1+diffi2+...+diffi(i-1)+diffi(i+1)+...+diffin

dn=diffn1+diffn2+...+diffni+...+diffn(n-1)

在[d1,d2,...,di,...,dn]中,若dm值最大,则选取第m个类语音符号波形作为码本中的第一个最优类语音符号波形;

a3、选择第i(2≤i≤nsym)个最优类语音符号波形的规则:

假设已选取出的前i-1个最优类语音符号波形在n个类语音符号符号波形s1,s2,...,sn中的位置为ind1,ind2,...,indi-1,去除剩下的n-(i-1)个类语音符号波形中选取一个最优类语音符号波形,

令:

在[d'1,d'2,...,d'i,...,d'n-i+1]中,若d'm值最大,则选取类语音符号波形作为码本中的第i个最优类语音符号波形;

a4、重复a3,直至选择出nsym个最优类语音符号波形。所述的提高语音信道数据传输准确性的方法,发送端在需要传输的数据比特ndata的前端或中间增加同步比特nsyn,将数据比特ndata和同步比特nsyn进行分组,每nbit个比特为一组,每一组选择所述码本中对应的类语音符号波形进行调制,每组l个样点,则同步有lensyn=nsyn/nbit·l个样点,数据有lendata=ndata/nbit·l个样点,转换成类语音信号,并将类语音信号在语音信道上传输;接收端根据最大点值积值来估计接收的类语音符号波形:y为l长度的接收信号,<,>为点积运算符号,为估计码本编号,对接收到的类语音信号进行数据解调,解调前还包括,确定同步起始点,具体为:

b1、找出第一帧的同步起始位置:

设置一个区间长度lenoffset,接收端对[index:index+lenoffset-1]这个范围作为起始点进行扫描,令index=1,则有以下lenoffset个区间:

[1:lensyn],[2:lensyn+1],...,[lenoffset:lenoffset+lensyn-1]

根据最大点值积值对每个区间内的lensyn个样点分别进行解调,得到lenoffset个比特流将其分别与nsyn进行比较,得到lenoffset个误比特率选择最小的误比特率bermin,若bermin>0.05,令index=index+lenoffset,继续扫描计算,若bermin≤0.05,则确定第一帧的同步起始点为start1,数据部分的起始点为start1+lensyn,

接收端对[start1+lensyn:start1+lensyn+lendata-1]进行数据解调;

b2、找出第f(f≥2)帧的同步起始位置:

令index=startf-1+lensyn+lendata,接收端对[index-lenoffset/2:index+lenoffset/2]这个范围作为起始点进行扫描,lenoffset为偶数,取以下lenoffset+1个区间:

[index-lenoffset/2:index-lenoffset/2+lensyn-1],

[index-lenoffset/2+1:index-lenoffset/2+lensyn],

...

[index+lenoffset/2:index+lenoffset/2+lensyn-1]

根据最大点值积值对每个区间内的lensyn个样点分别进行解调,得到lenoffset+1个比特流将其分别与nsyn进行比较,得到lenoffset+1个误比特率若最小误比特率有m个,位置为[1:1+lenoffset]中的[pos1,pos2,...,posm],则:

1)若m=1,则确定第f帧的同步起始点为startf=startf-1+lensyn+lendata-lenoffset/2+posm-1;

2)若m>1且pos1=1,对[pos2,...,posm]这些位置的邻近位置的误比特率之和进行比较,若bx(1≤x≤m-1)最小,则确定第f帧的同步起始点为startf=startf-1+lensyn+lendata-lenoffset/2+posx+1-1;

3)若m>1且posm=1+lenoffset,对[pos1,…,posm-1]这些位置的邻近位置误比特率之和进行比较,若bx(1≤x≤m-1)最小,则确定第f帧的同步起始点为startf=startf-1+lensyn+lendata-lenoffset/2+posx-1;

4)若m>1且pos1≠1,posm≠1+lenoffset,对[pos1,...,posm]这些位置的邻近位置误比特率之和进行比较,若bx(1≤x≤m-1)最小,则确定第f帧的同步起始点为startf=startf-1+lensyn+lendata-lenoffset/2+posx-1。

以下以具体实施例进行说明:

1、将2个比特为一组,总共有[00011011]这四种可能性,需要寻找四个类语音符号波形进行映射,每一组两个比特用16个样点(l=16)来表示的话,采样率为8000hz码率为1000bps。

类语音符号波形形成步骤如下:

①在中选择4个实数gk(k=1,2,…,4),用于产生类语音符号频谱。

②使用实数gk构造4个频谱分量:

i∈[1:16]

③利用离散余弦逆变换idct将φi由频域转到时域:

为16点的实数类语音符号波形。

④对实数类语音符号波形的功率进行归一化处理,产生最终的时域类语音符号波形

⑤重复上述步骤,直至产生16个类语音符号波形。

⑥按照步骤a1至a4,选取4个最优类语音符号波形,如图1所示,这4个16样点的波形分别对应[00011011]比特。

2、接收端根据最大点值积值来估计接收的类语音符号波形:

式中,y为l长度的接收信号,<,>为点积运算符号,为估计码本编号。

3、确定同步起始点

每帧发送40个同步比特nsyn放在1000个数据比特之前,编码需要每2个比特为1组,同步有20组,数据有500组。每一组为[00011011]中的一种,选择码本中对应的类语音符号波形进行调制传输,则同步有lensyn=320个样点,数据有lendata=8000个样点。

b1、找出第一帧的同步起始位置:

设置一个区间长度lenoffset=20,接收端对[index:index+19]这个范围作为起始点进行扫描,令index=1,则有以下20个区间:

[1:320],[2:321],...,[20:339]

对每个区间内的320个样点分别根据步骤2进行解调,得到20个比特流将其分别与nsyn进行比较,得到20个误比特率选择最小的误比特率bermin,若bermin>0.05,令index=21,继续扫描计算,若bermin≤0.05,则确定第一帧的同步起始点为start1,数据部分的起始点为start1+320,接收端对[start1+320:start1+8319]根据步骤2进行数据解调;

b2、找出第f(f≥2)帧的同步起始位置:

第f帧同步起始位置startf根据第f-1帧同步起始位置startf-1来决定,因为时钟抖动,信道不稳定等原因,startf不能单纯的用startf-1+8320来表示,依然得设置一个区间:

令index=startf-1+8320,接收端对[index-10:index+10]这个范围作为起始点进行扫描,取以下21个区间:

[index-10:index+309],

[index-9:index+310],

[index+10:index+329]

对每个区间内的320个样点分别根据步骤2进行解调,得到21个比特流将其分别与nsyn进行比较,得到21个误比特率通常是选择最小的误比特率bermin来确定startf。

仿真:一共100帧,每一帧的数据部分都是随机产生不一致的比特流,每一帧8320个样点,将832000个样点构成的类语音信号直接进行解码,比如:第2帧同步部分解码的时候,有21个同步误比特率值

第10、11、12个误比特率都为0,默认取第一个为0的值就是第10个点,也就是起始位置为startf=startf-1+8319,但事实上此时没有声码器及信道,准确的位置是startf=startf-1+8320。

若是有声码器及信道,可能为0或者其他最小值的位置有更多个,默认选取第一个最小误比特率的话极有可能不是最优起始点,所以需要一个策略如b2中的1)至4)。

比如上述中,第10、11、12个点的位置误比特率值都是0,按照策略计算的话第10个点前后位置误比特率值相加为0.325+0=0.325,第11个点前后位置误比特率值相加为0+0=0,第12个点前后位置误比特率值相加为0+0.325=0.325,第11个点为最优位置,即startf=startf-1+8320。

经过声码器及信道后,误比特率最小的点可能会有多个且可能不连续,用该策略能够选取更加准确的同步初始位置,进而可以得到更加准确的数据初始位置。

分别用采用本发明确定同步起始点的方法和不采用本发明确定同步起始点的方法对这100帧经过声码器和信道的数据进行处理,仿真结果如图2、图3所示。

由图2、图3可知,不采用本发明确定同步起始点的方法,平均误比特率为1.3657%,误比特率小于0.5%的帧占52.5%,误比特率大于2%的帧占20.2%,而采用本发明确定同步起始点的方法之后,平均误比特率下降到了0.4%,误比特率小于0.5%的帧比例提高到了76.8%,误比特率大于2%的帧比例下降到了5%,性能明显提高。

尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1