CN105790852B - 基于多频声波的数据传输方法及系统 - Google Patents
基于多频声波的数据传输方法及系统 Download PDFInfo
- Publication number
- CN105790852B CN105790852B CN201410803196.8A CN201410803196A CN105790852B CN 105790852 B CN105790852 B CN 105790852B CN 201410803196 A CN201410803196 A CN 201410803196A CN 105790852 B CN105790852 B CN 105790852B
- Authority
- CN
- China
- Prior art keywords
- data
- frequency
- transmission
- code
- audio
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明公开了一种基于多频声波的数据传输方法及系统,计算传输数据的检错码和纠错码,并将检错码和纠错码添加到传输数据中;将传输数据转换到对应的声波频率上,生成连续的音频信息并播放;其中,音频信息的每个音节包含1个或多个频率信号;当接收到音频信息时,从音频信息中解析出频率信号并从频率信号中获取传输数据。本发明的基于多频声波的数据传输方法,在同一音节内包含多种频率,增加了每一个音节的可编码信息,提高了码率,采用交插的方式分散连续错误,提高纠错抗干扰能力,具有两种检错方式和两种纠错方式混合使用,提高纠错抗干扰能力,并且解码前同步对齐,提高解码成功率。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种基于多频声波的数据传输方法及系统。
背景技术
目前,现有的通信设备之间通过网络或无线的方式收发数据。一般在设备之间传输信息的方式有:1)通过网络直接传送,如通过聊天软件传送;2)通过网络间接传送,如邮件和云盘;3)蓝牙,需要配对,且只能点到点传送;4)二维码;5)NFC。例如,手机之间或手机与电脑之间的通信方式有蓝牙、WIFI、红外等方式,但对设备的硬件配置要求较高,并且对使用的场景要求比较严格,不便于进行手机现场支付、与手机之间互传私密资料等要求较高的场景。
声波传输是利用声音实现快速传输的技术,能够在发送声波与接收声波的智能设备之间的建立数据传输。声音是全向传播的,通过将信息编码在声音里进行传播,无需联网就可达到广播的目的。例如,音频二维码,使用特定频率代表特定的字符,同一时间内有一个频率,码率低,只能传输很短的字符串id,一个时间点内能传输的信息很短。
DTMF(双音多频)为电话拨号产生的声音,由高频群和低频群组成,高低频群各包含4个频率,一个高频信号和一个低频信号叠加组成一个组合信号,代表一个数字。DTMF信号有16个编码。现有的声波传输方式,每秒最多传10个数,每个数的时隙最短为100ms,音频持续时间为45ms-55ms,其余时间为静默时间,因而音频不具有连续性,并且无纠错能力,频率使用率较低。
发明内容
有鉴于此,本发明要解决的一个技术问题是提供一种基于多频声波的数据传输方法,可以在同一音节内包含多种频率。
一种基于多频声波的数据传输方法,其中:计算传输数据的检错码和纠错码,并将所述检错码和纠错码添加到所述传输数据中;将所述传输数据转换到对应的声波频率上,生成连续的音频信息并播放,使所述音频信息的每个音节包含1个或多个频率信号;当接收到所述音频信息时,从所述音频信息中解析出频率信号并从所述频率信号中获取所述传输数据。
根据本发明的一个实施例,进一步的,所述使所述音频信息的每个音节包含1个或多个频率信号包括:对于每个音节所传送的1个或多个字符生成一个或多个频率信号;将所述一个或多个频率信号叠加合成为单频信号或多频信号。
根据本发明的一个实施例,进一步的,所述计算传输数据的检错码和纠错码、并将所述检错码和纠错码添加到所述传输数据中包括:生成传输数据数组,将数据头数据添加到所述传输数据数组中;计算版本号和传输数据长度的检验码和纠错码,版本号数字、传输数据长度、版本号和传输数据长度的检验码和纠错码组成版本数据,将所述版本数据添加到所述传输数据数组中;将待传输数据进行分段处理,形成长度相同的多段子数据,并为每段子数据生成检错码和纠错码,将每段子数据、每段子数据的检错码和纠错码组成分段数据,将所述分段数据添加到所述传输数据数组中;对多个所述分段数据进行交叉处理。
根据本发明的一个实施例,进一步的,所述版本号数字、传输数据长度、版本号和传输数据长度的检验码和纠错码组成版本数据包括:版本号为16进制数D0、传输数据长度为2个16进制数D1、D2;版本号和传输数据长度的检验码为D3;如果D1不等于0并且D2不等于0,则D3=(D1*D2+D0)%16;否则,D3=(D1+D2+D0)%16;对版本号、传输数据长度、版本号和传输数据长度的检验码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
根据本发明的一个实施例,进一步的,为每段子数据生成检错码和纠错码,将每段子数据、每段子数据的检错码和纠错码组成分段数据包括:将每段子数据中的各个数乘以预设的加权系数并求和,然后除以8生成商跟余数,然后将商跟余数的和除以8求模,生成每段子数据的检错码;对每段子数据、每段子数据的检错码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
根据本发明的一个实施例,进一步的,所述对多个所述分段数据进行交叉处理包括:从所述传输数据数组中获取所述多个所述分段数据;将每个所述分段数据按行填充到矩阵中,并从此矩阵中按列依次提取多组数据,形成转换数据;将所述转换数据替换所述分段数据添加到所述传输数据数组中。
根据本发明的一个实施例,进一步的,预设单频频率表,根据所述数据头数据在所述单频频率表中选取数据生成单频信号;所述单频信号为sin(2.0*M_PI*twofTable[0][num1]*i*T);其中twofTable为单频频率表,num1为数据头数据,T为周期,M_PI为π,0=<i<NFRAME,NFRAME为帧长。
根据本发明的一个实施例,进一步的,设置三频频率表,对所述版本数据产生3频信号;其中,将16进制的所述版本数据以3个为一组分成多个组数据,根据先后顺序在所述三频频率表中选择相应的频率合成所述3频信号;
所述3频信号分别为:
0.3*sin(2.0*M_PI*threefTable[0][num1]*i*T)、
0.3*sin(2.0*M_PI*threefTable[1][num2]*i*T)、
0.4*sin(2.0*M_PI*threefTable[2][num3]*i*T));
其中,threefTable为三频频率表,num1,num2,num3为同一时间发送的组数据中的3个数据,T为周期,M_PI为π,0=<i<NFRAME,NFRAME为帧长。
根据本发明的一个实施例,进一步的,预设矩阵频率表,从所述传输数据数组中获取所述转换数据,所述转换数据为八进制数据;以8个八进制数为一组将所述转换数据分为多个在同一时间发送的发送数字串,根据发送数字串中数字的先后顺序在所述预设矩阵频率表中选择相应的频率合成8频信号;其中,所述转换数据的各个八进制数产生的8频信号为:
sig[i]+=sigcoeff[k]*sin(2.0*M_PI*fTable[k][num[k]]*i*T);其中fTable为矩阵频率表,num[k]为同一时间发送数字串中的第k个八进制数据,sigcoeff[k]为对发送数字串中第k个八进制数据的信号的加权系数,T为周期,M_PI为π,0=<i<NFRAME,NFRAME为帧长。
根据本发明的一个实施例,进一步的,当接收到所述音频信息时,根据所述音频信息中增加的时间窗同步对齐,解析出频率信号并对所述频率信号进行解码,依次解析出数据头数据、版本数据和待传输数据。
根据本发明的一个实施例,进一步的,解析出待传输数据包括:获取加载所述转换数据的音频帧,使用goertzel算法检测每个音频帧包含的多个频率,并保存与所述多个频率相对应的音强能量;按照所述音强能量由高到低的顺序,计算所述多个频率中每个频率包含的数据并进行RS解码,并根据编码时的交插规则转换回原有的顺序;当判断检错码正确时,则判断为待传输数据。
本发明要解决的一个技术问题是提供一种基于多频声波的数据传输系统,可以在同一音节内包含多种频率。
一种基于多频声波的数据传输系统,包括:发送端装置,包括:数据编码单元,用于计算传输数据的检错码和纠错码,并将所述检错码和纠错码添加到所述传输数据中;音频生成单元,用于将所述传输数据转换到对应的声波频率上,生成连续的音频信息,使所述音频信息的每个音节包含1个或多个频率信号;音频播放单元,用于播放所述音频信息;接收端装置,包括:音频接收单元,用于接收所述音频信息;音频解码单元,用于从所述音频信息中解析出频率信号并从所述频率信号中获取所述传输数据。
根据本发明的一个实施例,进一步的,所述音频生成单元,用于对于每个音节所传送的1个或多个字符生成一个或多个频率信号;将所述一个或多个频率信号叠加合成为单频信号或多频信号。
根据本发明的一个实施例,进一步的,数据编码单元,包括:数组生成子模块,用于生成传输数据数组;头数据编码子模块,用于将数据头数据添加到所述传输数据数组中;版本数据编码子模块,用于计算版本号和传输数据长度的检验码和纠错码,版本号数字、传输数据长度、版本号和传输数据长度的检验码和纠错码组成版本数据,将所述版本数据添加到所述传输数据数组中;传输数据编码子模块,用于将待传输数据进行分段处理,形成长度相同的多段子数据,并为每段子数据生成检错码和纠错码,将每段子数据、每段子数据的检错码和纠错码组成分段数据,将所述分段数据添加到所述传输数据数组中;对多个所述分段数据进行交叉处理。
根据本发明的一个实施例,进一步的,版本号为16进制数D0、传输数据长度为2个16进制数D1、D2;版本号和传输数据长度的检验码为D3;所述版本数据编码子模块,用于如果D1不等于0并且D2不等于0,则计算D3=(D1*D2+D0)%16;否则,计算D3=(D1+D2+D0)%16;对版本号、传输数据长度、版本号和传输数据长度的检验码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
根据本发明的一个实施例,进一步的,所述传输数据编码子模块,还用于将每段子数据中的各个数乘以预设的加权系数并求和,然后除以8生成商跟余数,然后将商跟余数的和除以8求模,生成每段子数据的检错码;对每段子数据、每段子数据的检错码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
根据本发明的一个实施例,进一步的,所述传输数据编码子模块,还用于从所述传输数据数组中获取所述多个所述分段数据;将每个所述分段数据按行填充到矩阵中,并从此矩阵中按列依次提取多组数据,形成转换数据;将所述转换数据替换所述分段数据添加到所述传输数据数组中。
根据本发明的一个实施例,进一步的,所述音频生成单元,包括:头数据音频生成子模块,用于预设单频频率表,根据所述数据头数据在所述单频频率表中选取数据生成单频信号;所述单频信号为sin(2.0*M_PI*twofTable[0][num1]*i*T);其中twofTable为单频频率表,num1为数据头数据,T为周期,M_PI为π,0=<i<NFRAME,NFRAME为帧长。
根据本发明的一个实施例,进一步的,所述音频生成单元,包括:版本数据音频生成子模块,设置三频频率表,对所述版本数据产生3频信号;其中,将16进制的所述版本数据以3个为一组分成多个组数据,根据先后顺序在所述三频频率表中选择相应的频率合成所述3频信号;所述3频信号分别为:
0.3*sin(2.0*M_PI*threefTable[0][num1]*i*T)、
0.3*sin(2.0*M_PI*threefTable[1][num2]*i*T)、
0.4*sin(2.0*M_PI*threefTable[2][num3]*i*T));
其中,threefTable为三频频率表,num1,num2,num3为同一时间发送的组数据中的3个数据,T为周期,M_PI为π,0=<i<NFRAME,NFRAME为帧长。
根据本发明的一个实施例,进一步的,所述音频生成单元,包括:传输数据音频生成子模块,用于预设矩阵频率表,从所述传输数据数组中获取所述转换数据,所述转换数据为八进制数据;以8个八进制数为一组将所述转换数据分为多个在同一时间发送的发送数字串,根据发送数字串中数字的先后顺序在所述预设矩阵频率表中选择相应的频率合成8频信号;其中,所述转换数据的各个八进制数产生的8频信号为:
sig[i]+=sigcoeff[k]*sin(2.0*M_PI*fTable[k][num[k]]*i*T);其中fTable为矩阵频率表,num[k]为同一时间发送数字串中的第k个八进制数据,sigcoeff[k]为对发送数字串中第k个八进制数据的信号的加权系数,T为周期,M_PI为π。
根据本发明的一个实施例,进一步的,所述音频解码单元,还用于当接收到所述音频信息时,根据所述音频信息中增加的时间窗同步对齐,解析出频率信号并对所述频率信号进行解码,依次解析出数据头数据、版本数据和待传输数据。
根据本发明的一个实施例,进一步的,所述音频解码单元,包括:传输数据音频解码子模块,还用于获取加载所述转换数据的音频帧,使用goertzel算法检测每个音频帧包含的多个频率,并保存与所述多个频率相对应的音强能量;按照所述音强能量由高到低的顺序,计算所述多个频率中每个频率包含的数据并进行RS解码,并根据编码时的交插规则转换回原有的顺序;当判断检错码正确时,则判断为待传输数据。
本发明的基于多频声波的数据传输方法,在同一音节内包含多种频率,增加了每一个音节的可编码信息,提高了码率,采用交插的方式分散连续错误,提高纠错抗干扰能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明的基于多频声波的数据传输方法的一个实施例的流程图;
图2为根据本发明的基于多频声波的数据传输方法的一个实施例的发送端编码的流程图;
图3为根据本发明的基于多频声波的数据传输方法的一个实施例的接收端解码的流程图;
图4为根据本发明的基于多频声波的数据传输方法的一个实施例的接收端同步对齐解码数据头的流程图;
图5为根据本发明的基于多频声波的数据传输方法的一个实施例的接收端解码版本号及数据长度的流程图;
图6为根据本发明的基于多频声波的数据传输方法的一个实施例的接收端解码数据的流程图;
图7为根据本发明的基于多频声波的数据传输系统的一个实施例的示意图;
图8为根据本发明的基于多频声波的数据传输系统的一个实施例的数据编码单元的示意图;
图9为根据本发明的基于多频声波的数据传输系统的一个实施例的音频编码单元的示意图。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为根据本发明的基于多频声波的数据传输方法的一个实施例的流程图,如图1所示:
步骤101,计算传输数据的检错码和纠错码,并将检错码和纠错码添加到传输数据中。
步骤102,将传输数据转换到对应的声波频率上,生成连续的音频信息并播放;其中,音频信息的每个音节包含1个或多个频率信号。根据传输数据的需要,音频信息的每个音节可以包含任意个频率,例如,1、2、3……等个频率信号。
步骤103,当接收到音频信息时,从音频信息中解析出频率信号并从频率信号中获取传输数据。
在一个实施例中,对于每个音节所传送的1个或多个字符生成一个或多个频率信号,生成频率信号可以为对每个字符都生成一个频率信号,也可以对多个数字进行运算,对运算的结果生成一个或多个频率信号等。将一个或多个频率信号叠加合成为单频信号或多频信号。
本发明的基于多频声波的数据传输方法,在每个音节中包含多种频率,增加了每一个音节的可编码信息,提高了码率。
在一个实施例中,生成传输数据数组,将数据头数据添加到传输数据数组中。计算版本号和传输数据长度的检验码和纠错码,版本号数字、传输数据长度、版本号和传输数据长度的检验码和纠错码组成版本数据,将版本数据添加到传输数据数组中。
将待传输数据进行分段处理,形成长度相同的多段子数据,并为每段子数据生成检错码和纠错码,将每段子数据、每段子数据的检错码和纠错码组成分段数据,将分段数据添加到传输数据数组中。对多个分段数据进行交叉处理。
图2为根据本发明的基于多频声波的数据传输方法的一个实施例的发送端编码的流程图;如图2所示:
步骤201,读取频率配置文件。
步骤202,添加代表数据头的16进制数字到数组。
步骤203,计算版本号(16进制)和数据长度(16进制)检错码及纠错码。
步骤204,将版本号和数据长度及其纠错码添加到数组。
步骤205,将待通过声波发送的字符串(8进制)分段。
步骤206,判断是否到了最后一段,如果是,则进入步骤207,添加最后一段数据的检错码;如果否,则进入步骤208,对每一段数据都添加检错码及纠错码。
步骤209,将每一段数据及其检错码和纠错码添加到数组中。
步骤210,补齐数组空余,将剩余的位数用0补齐。此数组为2维数组。可以使用一个数组,也可以使用不同的数组放置版本号和数据长度及其纠错码、每一段数据等等。
步骤211,将数组中的数据做交插处理。
步骤212,将数据头产生单频声波信号。
步骤213,将版本号和数据长度及其纠错码产生三频声波信号。
步骤214,将交插后的数据及其检错码和纠错码产生八频声波信号。
步骤215,对声波信号做增益补偿。
步骤216,对每一个音节的声波信号加时间窗,一般为平滑窗。
步骤217,将声波信号转换为可播放的格式的音频文件,例如WAV、MP3等等。
步骤218,播放此音频文件。
在一个实施例中,版本号为16进制数D0、传输数据长度为2个16进制数D1、D2;版本号和传输数据长度的检验码为D3。如果D1不等于0并且D2不等于0,则D3=(D1*D2+D0)%16;否则,D3=(D1+D2+D0)%16。
对版本号、传输数据长度、版本号和传输数据长度的检验码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
例如,生成版本号及数据长度检错码:在数组中,data[0]为16进制版本号,data[1]、data[2]为16进制数据长度,data[3]为检错码。如果data[1]!=0&&data[2]!=0,则data[3]=(data[1]*data[2]+data[0])%16;否则data[3]=(data[1]+data[2]+data[0])%16。
在一个实施例中,将每段子数据中的各个数乘以预设的加权系数并求和,然后除以8生成商跟余数,然后将商跟余数的和除以8求模,生成每段子数据的检错码;对每段子数据、每段子数据的检错码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
对多个分段数据进行交叉处理为:从传输数据数组中获取多个分段数据;将每个分段数据按行填充到矩阵中,并从此矩阵中按列依次提取多组数据,形成转换数据。将转换数据替换分段数据添加到传输数据数组中。
在一个实施例中,分段数据检错码产生方法为:先将每段数据乘以加权系数并求和,然后将和除以8产生商跟余数,然后将商跟余数的和除以8求模。最终数据检错码产生方法为:将所有数据相加,然后将和除以8求模。每个分段数据的纠错码产生方法为:里的-所罗门编码。交插方法为:先将数据按行填充到矩阵,然后按列提取。
上述实施例中的基于多频声波的数据传输方法,采用交插的方式分散连续错误,提高纠错抗干扰能力,并生成带有纠错码的RS码,采用两种检错方式和两种纠错方式混合使用,能够提高纠错抗干扰能力。
在一个实施例中,单频数据头信号产生,根据16进制数据头数据在数据头频率表中选取数据产生单频信号的方法为:预设单频频率表,根据数据头数据在单频频率表中选取数据生成单频信号:单频信号为:
sin(2.0*M_PI*twofTable[0][num1]*i*T);
twofTable为单频频率表,即为2维数组,num1为数据头数据,例如,当数据头数据num1=3时,查找twofTable[0][3]的位置的数据,即为所需的频率。T为周期,M_PI为π。twofTable为单频频率表,其频率与多频频率表错开,num1为数据头数据。
在一个实施例中,设置三频频率表,对版本数据产生3频信号。将16进制的版本数据以3个为一组分成多个组数据,根据先后顺序在三频频率表中选择相应的频率合成3频信号。
3频信号分别为:
0.3*sin(2.0*M_PI*threefTable[0][num1]*i*T)、
0.3*sin(2.0*M_PI*threefTable[1][num2]*i*T)、
0.4*sin(2.0*M_PI*threefTable[2][num3]*i*T));
threefTable为三频频率表,num1,num2,num3为同一时间发送的组数据中的3个数据,T为周期,M_PI为π,0=<i<NFRAME,NFRAME为帧长,为音频信息中的音频帧的长度。
在一个实施例中,生成三频版本号及数据长度信号为:16进制版本号及数据长度以3个为一组,根据先后顺序在相应的频率表中选择相应位置上的频率合成3频信号
(0.3*sin(2.0*M_PI*threefTable[0][num1]*i*T)+
0.3*sin(2.0*M_PI*threefTable[1][num2]*i*T)+
0.4*sin(2.0*M_PI*threefTable[2][num3]*i*T));
其中threefTable为3频频率表,num1,num2,num3为同一时间发送的3个信号。
3频信号能够直接播放,对信号同比扩大信号峰值到1,提高播放增益。
在一个实施例中,预设矩阵频率表,从传输数据数组中获取转换数据,转换数据为八进制数据。以8个八进制数为一组将转换数据分为多个在同一时间发送的发送数字串,根据发送数字串中数字的先后顺序在预设矩阵频率表中选择相应的频率合成8频信号。转换数据的各个八进制数产生的8频信号为:
sig[i]+=sigcoeff[k]*sin(2.0*M_PI*fTable[k][num[k]]*i*T);
其中,fTable为矩阵频率表,num[k]为同一时间发送数字串中的第k个八进制数据,sigcoeff[k]为对发送数字串中第k个八进制数据的信号的加权系数,T为周期,M_PI为π,0=<i<NFRAME,NFRAME为帧长,为音频信息中的音频帧的长度。
在一个实施例中,转换数据可以为八进制、十六进制等等,下面以八进制为例,生成八频数据信号。8进制数据以8个为一组,根据先后顺序在相应的频率表中选择相应位置上的频率合成8频信号:
sig[i]+=sigcoeff[k]*sin(2.0*M_PI*fTable[k][num[k]]*i*T);
fTable为8频频率表,num[k]为同一时间发送的8个数据,sigcoeff为加权系数以降低高频衰减的影响。
对8频信号同比扩大信号峰值到1,提高播放增益。
8频频率表fTable的频率生成公式为:
fTable[i][j]=basefreq+(i*FREQ_PER_GROUP+j)*(freqgap);0=<i<FREQ_GROUP_NUM;0=<j<FREQ_PER_GROUP。
此公式用来产生代表数据的频率表fTable,FREQ_GROUP_NUM为频率组数,FREQ_PER_GROUP为每组包含的频率数,basefreq为基频,freqgap为频率间隔。
例如,待发送的一段数据为76543210,fTable为一个8*8的矩阵频率表,7位于第一位置,于是选取第一组频率第8个位置上的频率fTable[0][7](注:下标从0开始)和系数sigcoeff[0]。
6位于第二位置,于是选取第二组频率第7个位置上的频率fTable[1][6]和系数sigcoeff[1]。
5位于第三位置,于是选取第三组频率第6个位置上的频率fTable[2][5]和系数sigcoeff[1]。
依此类推,分别产生相应的信号再相加,即
sigcoeff[0]*sin(2.0*M_PI*fTable[0][7]*i*T)+
sigcoeff[1]*sin(2.0*M_PI*fTable[1][6]*i*T)+
sigcoeff[2]*sin(2.0*M_PI*fTable[2][5]*i*T)+
sigcoeff[3]*sin(2.0*M_PI*fTable[3][4]*i*T)+
sigcoeff[4]*sin(2.0*M_PI*fTable[4][3]*i*T)+
sigcoeff[5]*sin(2.0*M_PI*fTable[5][2]*i*T)+
sigcoeff[6]*sin(2.0*M_PI*fTable[6][1]*i*T)+
sigcoeff[7]*sin(2.0*M_PI*fTable[7][0]*i*T)。
0=<i<NFRAME,NFRAME为帧长,8频信号能够直接播放,这个信号在同一段时间内就包含了76543210这8个数据信息。fTable中的8组频率的带宽互不重叠。
图3为根据本发明的基于多频声波的数据传输方法的一个实施例的接收端解码的流程图;如图3所示:
步骤301,接收音频信息并录制,将录制的音频分帧以及获取音频信息中的平滑窗。
步骤302,根据平滑窗的信息进行同步对齐,如果能够对齐,则进入步骤303。
步骤303,解码数据头。
步骤304,判断数据头解码是否成功,如果是,进入步骤305。
步骤305,解码版本号及数据长度。
步骤306,判断版本号及数据长度是否解码成功,如果是,进入步骤307。
步骤307,解码数据。
步骤308,判断数据解码是否成功,如果是,进入步骤309。
步骤309,返回解码结果。
在一个实施例中,当接收到音频信息时,根据音频信息中增加的时间窗同步对齐,解析出频率信号并对频率信号进行解码,依次解析出数据头数据、版本数据和待传输数据。
图4为根据本发明的基于多频声波的数据传输方法的一个实施例的接收端同步对齐解码数据头的流程图,如图4所示:
步骤401,保存连续3帧音频。数据头为两个16进制数。
步骤402,计算中间帧包含的频率。
步骤403,计算频率对应的数字。
步骤404,判断数字是否为数据头,如果是,则进入步骤405。
步骤405,将3帧音频分子帧,计算每个子帧对应的数字。
步骤406,若至少连续4个子帧对应的数字等于数据头。
步骤407,解码数据头。
步骤408,拷贝剩余数据用于解码数据头,剩余的数据已同步对齐。
在一个实施例中,获取加载转换数据的音频帧,使用goertzel算法检测每个音频帧包含的多个频率,并保存与多个频率相对应的音强能量;采用Goertzel基本算法能得出与常规离散傅立叶变换(DFT)或FFT相同的频率实部和虚部。
按照音强能量由高到低的顺序,计算多个频率中每个频率包含的数据并进行RS解码,并根据编码时的交插规则转换回原有的顺序;当判断检错码正确时,则判断为待传输数据。
图5为根据本发明的基于多频声波的数据传输方法的一个实施例的接收端解码版本号及数据长度的流程图,如图5所示:
步骤501,获取加载有版本号及数据长度的音频帧。
步骤502,使用goertzel算法检测每帧包含的频率。
步骤503,计算每个频率对应的数据。
步骤504,当数据满6个时,进行rs解码。此步骤获取的数据数与RS编码采用的算法相关,例如RS(7,3)等。
步骤505,根据编码时的检错码生成规则计算检错码。
步骤506、507,判断版本号是否匹配并且接收到的检错码是否正确,如果是,则进入步骤508,数据长度解码成功,开始解码数据。
图6为根据本发明的基于多频声波的数据传输方法的一个实施例的接收端解码数据的流程图;如图6所示:
步骤601,获取传输数据的音频帧。
步骤602,使用goertzel算法检测每帧最可能包含的频率,同时保存其次可能包含的频率,并保存相应能量的比值。
步骤603,根据频率计算最可能包含的数据和其次可能包含的数据。
步骤604,根据编码时的交插规则将数据变换回正确顺序。
步骤605,每一段都先用最可能包含的数据做rs解码。
步骤606,判断每段检错码是否正确,如果是则进入步骤608,判断最后一位检错码是否正确。如果否,则进入步骤607,根据能量比值从大到小的顺序依次替换相应位置上最可能包含的数据为其次可能包含的数据,并作rs解码。
在一个实施例中,根据能量比值从大到小的顺序依次替换相应位置上最可能包含的数据为其次可能包含的数据,例如,一般依次替换1-4个数据,解码出的结果是:最可能是01234567,其次是76543210,首先会按照能量比值依次替换01234567中的1个数再验证是否正确,比如替换后变为71234567、06234567、12534567...;如果替换一个之后都不对,再替换两个进行验证,比如替换后变为76234567、71534567...;最多替换4个,若替换4个后还是验证不成功,解码失败,重新接收音频解码。
步骤609,依次替换之后判断每段检错码是否正确,如果是则进入步骤608,如果否则进入步骤611,重新对齐并寻找数据头。
本发明的基于多频声波的数据传输方法与音频二维码相比:
1、本发明的每一个音节可以包含1-8种频率信号,即一个音节最多可以传送8个8进制字符,而音频二维码一个音节只包含一种频率,只能传送1个字符。
2、本发明将16进制数据头生成单频信号,将16进制的版本号及数据长度信息生成三频信号,将8进制数据信息生成八频信号,而音频二维码所有的都是信息都是单频信号。
本发明的基于多频声波的数据传输方法与DTMF相比较:
1、本发明的每一个音节可以包含1-8种频率信号,即一个音节最多可以传送8个8进制字符,DTMF一个音节也是只能传送1个字符。
2、本发明的播放的声波信号是连续的,而DTMF播放的声音是断续的。
3、本发明能检验并纠正最多3个错误,具有检错及纠错能力,因而有一定的抗干扰能力,而DTMF只具备一定的抗干扰能力,没有纠错能力。
本发明的基于多频声波的数据传输方法,能够在同一时间包含多种频率,增加了每一个音节的可编码信息,提高了码率,采用交插的方式分散连续错误,提高纠错抗干扰能力,具有两种检错方式和两种纠错方式混合使用,提高纠错抗干扰能力,并且解码前同步对齐,提高解码成功率。
如图7所示,本发明提供一种基于多频声波的数据传输系统,包括:发送端装置71和接收端装置72。数据编码单元711计算传输数据的检错码和纠错码,并将检错码和纠错码添加到传输数据中。音频生成单元712将传输数据转换到对应的声波频率上,生成连续的音频信息。
音频播放单元713播放音频信息。其中,音频信息的每个音节可以包含1个或多个频率信号。音频接收单元721接收音频信息;音频解码单元722从音频信息中解析出频率信号并从频率信号中获取传输数据。
在一个实施例中,音频生成单元712对于每个音节所传送的1个或多个字符生成一个或多个频率信号,将一个或多个频率信号叠加合成为单频信号或多频信号。
在一个实施例中,如图8所示,数组生成子模块811生成传输数据数组。头数据编码子模块812将数据头数据添加到传输数据数组中。版本数据编码子模块813计算版本号和传输数据长度的检验码和纠错码,版本号数字、传输数据长度、版本号和传输数据长度的检验码和纠错码组成版本数据,将版本数据添加到传输数据数组中。
传输数据编码子模块814将待传输数据进行分段处理,形成长度相同的多段子数据,并为每段子数据生成检错码和纠错码,将每段子数据、每段子数据的检错码和纠错码组成分段数据,将分段数据添加到传输数据数组中;对多个分段数据进行交叉处理。
在一个实施例中,版本号为16进制数D0、传输数据长度为2个16进制数D1、D2;版本号和传输数据长度的检验码为D3。如果D1不等于0并且D2不等于0,则版本数据编码子模块813计算D3=(D1*D2+D0)%16;否则,计算D3=(D1+D2+D0)%16。
版本数据编码子模块813对版本号、传输数据长度、版本号和传输数据长度的检验码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
在一个实施例中,传输数据编码子模块814将每段子数据中的各个数乘以预设的加权系数并求和,然后除以8生成商跟余数,然后将商跟余数的和除以8求模,生成每段子数据的检错码。传输数据编码子模块814对每段子数据、每段子数据的检错码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
传输数据编码子模块814从传输数据数组中获取多个分段数据。传输数据编码子模块814将每个分段数据按行填充到矩阵中,并从此矩阵中按列依次提取多组数据,形成转换数据。传输数据编码子模块814将转换数据替换分段数据添加到传输数据数组中。
在一个实施例中,如图9所示,头数据音频生成子模块911预设单频频率表,根据数据头数据在单频频率表中选取数据生成单频信号。单频信号为sin(2.0*M_PI*twofTable[0][num1]*i*T);其中twofTable为单频频率表,num1为数据头数据,T为周期,M_PI为π。
版本数据音频生成子模块912设置三频频率表,对版本数据产生3频信号;其中,将16进制的版本数据以3个为一组分成多个组数据,根据先后顺序在三频频率表中选择相应的频率合成3频信号;3频信号分别为:
0.3*sin(2.0*M_PI*threefTable[0][num1]*i*T)、
0.3*sin(2.0*M_PI*threefTable[1][num2]*i*T)、
0.4*sin(2.0*M_PI*threefTable[2][num3]*i*T));
其中,threefTable为三频频率表,num1,num2,num3为同一时间发送的组数据中的3个数据,T为周期,M_PI为π。
传输数据音频生成子模块913预设矩阵频率表,从传输数据数组中获取转换数据,转换数据为八进制数据。传输数据音频生成子模块913以8个八进制数为一组将转换数据分为多个在同一时间发送的发送数字串,根据发送数字串中数字的先后顺序在预设矩阵频率表中选择相应的频率合成8频信号;其中,转换数据的各个八进制数产生的8频信号为:
sig[i]+=sigcoeff[k]*sin(2.0*M_PI*fTable[k][num[k]]*i*T);其中fTable为矩阵频率表,num[k]为同一时间发送数字串中的第k个八进制数据,sigcoeff[k]为对发送数字串中第k个八进制数据的信号的加权系数,T为周期,M_PI为π。
在一个实施例中,当接收到音频信息时,音频解码单元722根据音频信息中增加的时间窗同步对齐,解析出频率信号并对频率信号进行解码,依次解析出数据头数据、版本数据和待传输数据。
传输数据音频解码子模块获取加载转换数据的音频帧,使用goertzel算法检测每个音频帧包含的多个频率,并保存与多个频率相对应的音强能量;按照音强能量由高到低的顺序,计算多个频率中每个频率包含的数据并进行RS解码,并根据编码时的交插规则转换回原有的顺序;当判断检错码正确时,则判断为待传输数据。
上述实施例提供的基于多频声波的数据传输方法,在同一音节内包含多种频率,增加了每一个音节的可编码信息,提高了码率,采用交插的方式分散连续错误,提高纠错抗干扰能力,具有两种检错方式和两种纠错方式混合使用,提高纠错抗干扰能力,并且解码前同步对齐,提高解码成功率。
本发明的实施例公开了:
A1、一种基于多频声波的数据传输方法,其中:
计算传输数据的检错码和纠错码,并将所述检错码和纠错码添加到所述传输数据中;
将所述传输数据转换到对应的声波频率上,生成连续的音频信息并播放,使所述音频信息的每个音节包含1个或多个频率信号;
当接收到所述音频信息时,从所述音频信息中解析出频率信号并从所述频率信号中获取所述传输数据。
A2、如权利要求A1所述的方法,其特征在于,所述使所述音频信息的每个音节包含1个或多个频率信号包括:
对于每个音节所传送的1个或多个字符生成一个或多个频率信号;
将所述一个或多个频率信号叠加合成为单频信号或多频信号。
A3、如权利要求A1或A2所述的方法,其特征在于,所述计算传输数据的检错码和纠错码、并将所述检错码和纠错码添加到所述传输数据中包括:
生成传输数据数组,将数据头数据添加到所述传输数据数组中;
计算版本号和传输数据长度的检验码和纠错码,版本号数字、传输数据长度、版本号和传输数据长度的检验码和纠错码组成版本数据,将所述版本数据添加到所述传输数据数组中;
将待传输数据进行分段处理,形成长度相同的多段子数据,并为每段子数据生成检错码和纠错码,将每段子数据、每段子数据的检错码和纠错码组成分段数据,将所述分段数据添加到所述传输数据数组中;
对多个所述分段数据进行交叉处理。
A4、如权利要求A3所述的方法,其特征在于:所述版本号数字、传输数据长度、版本号和传输数据长度的检验码和纠错码组成版本数据包括:
版本号为16进制数D0、传输数据长度为2个16进制数D1、D2;版本号和传输数据长度的检验码为D3;
如果D1不等于0并且D2不等于0,则D3=(D1*D2+D0)%16;否则,D3=(D1+D2+D0)%16;
对版本号、传输数据长度、版本号和传输数据长度的检验码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
A5、如权利要求A4所述的方法,其特征在于,为每段子数据生成检错码和纠错码,将每段子数据、每段子数据的检错码和纠错码组成分段数据包括:
将每段子数据中的各个数乘以预设的加权系数并求和,然后除以8生成商跟余数,然后将商跟余数的和除以8求模,生成每段子数据的检错码;
对每段子数据、每段子数据的检错码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
A6、如权利要求A5所述的方法,其特征在于,所述对多个所述分段数据进行交叉处理包括:
从所述传输数据数组中获取所述多个所述分段数据;
将每个所述分段数据按行填充到矩阵中,并从此矩阵中按列依次提取多组数据,形成转换数据;
将所述转换数据替换所述分段数据添加到所述传输数据数组中。
A7、如权利要求A6所述的方法,其特征在于:
预设单频频率表,根据所述数据头数据在所述单频频率表中选取数据生成单频信号;
所述单频信号为sin(2.0*M_PI*twofTable[0][num1]*i*T);
其中twofTable为单频频率表,num1为数据头数据,T为周期,M_PI为π,0=<i<NFRAME,NFRAME为帧长。
A8、如权利要求A6所述的方法,其特征在于:
设置三频频率表,对所述版本数据产生3频信号;其中,将16进制的所述版本数据以3个为一组分成多个组数据,根据先后顺序在所述三频频率表中选择相应的频率合成所述3频信号;
所述3频信号分别为:
0.3*sin(2.0*M_PI*threefTable[0][num1]*i*T)、
0.3*sin(2.0*M_PI*threefTable[1][num2]*i*T)、
0.4*sin(2.0*M_PI*threefTable[2][num3]*i*T));
其中,threefTable为三频频率表,num1,num2,num3为同一时间发送的组数据中的3个数据,T为周期,M_PI为π,0=<i<NFRAME,NFRAME为帧长。
A9、如权利要求A6所述的方法,其特征在于:
预设矩阵频率表,从所述传输数据数组中获取所述转换数据,所述转换数据为八进制数据;
以8个八进制数为一组将所述转换数据分为多个在同一时间发送的发送数字串,根据发送数字串中数字的先后顺序在所述预设矩阵频率表中选择相应的频率合成8频信号;
其中,所述转换数据的各个八进制数产生的8频信号为:
sig[i]+=sigcoeff[k]*sin(2.0*M_PI*fTable[k][num[k]]*i*T);其中fTable为矩阵频率表,num[k]为同一时间发送数字串中的第k个八进制数据,sigcoeff[k]为对发送数字串中第k个八进制数据的信号的加权系数,T为周期,M_PI为π,0=<i<NFRAME,NFRAME为帧长。
A10、如权利要求A6所述的方法,其特征在于:
当接收到所述音频信息时,根据所述音频信息中增加的时间窗同步对齐,解析出频率信号并对所述频率信号进行解码,依次解析出数据头数据、版本数据和待传输数据。
A11、如权利要求10所述的方法,其特征在于,解析出待传输数据包括:
获取加载所述转换数据的音频帧,使用goertzel算法检测每个音频帧包含的多个频率,并保存与所述多个频率相对应的音强能量;
按照所述音强能量由高到低的顺序,计算所述多个频率中每个频率包含的数据并进行RS解码,并根据编码时的交插规则转换回原有的顺序;
当判断检错码正确时,则判断为待传输数据。
B12、一种基于多频声波的数据传输系统,其特征在于,包括:
发送端装置,包括:
数据编码单元,用于计算传输数据的检错码和纠错码,并将所述检错码和纠错码添加到所述传输数据中;
音频生成单元,用于将所述传输数据转换到对应的声波频率上,生成连续的音频信息,使所述音频信息的每个音节包含1个或多个频率信号;
音频播放单元,用于播放所述音频信息;
接收端装置,包括:
音频接收单元,用于接收所述音频信息;
音频解码单元,用于从所述音频信息中解析出频率信号并从所述频率信号中获取所述传输数据。
B13、如权利要求B12所述的系统,其特征在于:
所述音频生成单元,用于对于每个音节所传送的1个或多个字符生成一个或多个频率信号;将所述一个或多个频率信号叠加合成为单频信号或多频信号。
B14、如权利要求B12或B13所述的系统,其特征在于:
数据编码单元,包括:
数组生成子模块,用于生成传输数据数组;
头数据编码子模块,用于将数据头数据添加到所述传输数据数组中;
版本数据编码子模块,用于计算版本号和传输数据长度的检验码和纠错码,版本号数字、传输数据长度、版本号和传输数据长度的检验码和纠错码组成版本数据,将所述版本数据添加到所述传输数据数组中;
传输数据编码子模块,用于将待传输数据进行分段处理,形成长度相同的多段子数据,并为每段子数据生成检错码和纠错码,将每段子数据、每段子数据的检错码和纠错码组成分段数据,将所述分段数据添加到所述传输数据数组中;对多个所述分段数据进行交叉处理。
B15、如权利要求B14所述的系统,其特征在于:
版本号为16进制数D0、传输数据长度为2个16进制数D1、D2;版本号和传输数据长度的检验码为D3;
所述版本数据编码子模块,用于如果D1不等于0并且D2不等于0,则计算D3=(D1*D2+D0)%16;否则,计算D3=(D1+D2+D0)%16;对版本号、传输数据长度、版本号和传输数据长度的检验码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
B16、如权利要求B15所述的系统,其特征在于:
所述传输数据编码子模块,还用于将每段子数据中的各个数乘以预设的加权系数并求和,然后除以8生成商跟余数,然后将商跟余数的和除以8求模,生成每段子数据的检错码;对每段子数据、每段子数据的检错码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
B17、如权利要求B16所述的系统,其特征在于:
所述传输数据编码子模块,还用于从所述传输数据数组中获取所述多个所述分段数据;将每个所述分段数据按行填充到矩阵中,并从此矩阵中按列依次提取多组数据,形成转换数据;将所述转换数据替换所述分段数据添加到所述传输数据数组中。
B18、如权利要求B17所述的系统,其特征在于:
所述音频生成单元,包括:
头数据音频生成子模块,用于预设单频频率表,根据所述数据头数据在所述单频频率表中选取数据生成单频信号;所述单频信号为sin(2.0*M_PI*twofTable[0][num1]*i*T);其中twofTable为单频频率表,num1为数据头数据,T为周期,M_PIπ,0=<i<NFRAME,NFRAME为帧长。
B19、如权利要求B17所述的系统,其特征在于:
所述音频生成单元,包括:
版本数据音频生成子模块,设置三频频率表,对所述版本数据产生3频信号;其中,将16进制的所述版本数据以3个为一组分成多个组数据,根据先后顺序在所述三频频率表中选择相应的频率合成所述3频信号;所述3频信号分别为:
0.3*sin(2.0*M_PI*threefTable[0][num1]*i*T)、
0.3*sin(2.0*M_PI*threefTable[1][num2]*i*T)、
0.4*sin(2.0*M_PI*threefTable[2][num3]*i*T));
其中,threefTable为三频频率表,num1,num2,num3为同一时间发送的组数据中的3个数据,T为周期,M_PI为π,0=<i<NFRAME,NFRAME为帧长。
B20、如权利要求B17所述的系统,其特征在于:
所述音频生成单元,包括:
传输数据音频生成子模块,用于预设矩阵频率表,从所述传输数据数组中获取所述转换数据,所述转换数据为八进制数据;以8个八进制数为一组将所述转换数据分为多个在同一时间发送的发送数字串,根据发送数字串中数字的先后顺序在所述预设矩阵频率表中选择相应的频率合成8频信号;其中,所述转换数据的各个八进制数产生的8频信号为:
sig[i]+=sigcoeff[k]*sin(2.0*M_PI*fTable[k][num[k]]*i*T);其中fTable为矩阵频率表,num[k]为同一时间发送数字串中的第k个八进制数据,sigcoeff[k]为对发送数字串中第k个八进制数据的信号的加权系数,T为周期,M_PI为π。
B21、如权利要求B17所述的系统,其特征在于:
所述音频解码单元,还用于当接收到所述音频信息时,根据所述音频信息中增加的时间窗同步对齐,解析出频率信号并对所述频率信号进行解码,依次解析出数据头数据、版本数据和待传输数据。
B22、如权利要求B21所述的系统,其特征在于:
所述音频解码单元,包括:
传输数据音频解码子模块,还用于获取加载所述转换数据的音频帧,使用goertzel算法检测每个音频帧包含的多个频率,并保存与所述多个频率相对应的音强能量;按照所述音强能量由高到低的顺序,计算所述多个频率中每个频率包含的数据并进行RS解码,并根据编码时的交插规则转换回原有的顺序;当判断检错码正确时,则判断为待传输数据。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (22)
1.一种基于多频声波的数据传输方法,其中:
计算传输数据的检错码和纠错码,并将所述检错码和纠错码添加到所述传输数据中;
将所述传输数据转换到对应的声波频率上,生成连续的音频信息并播放,使所述音频信息的每个音节包含1个或多个频率信号,具体为,补齐所述传输数据的空余,将剩余位数用0补齐,将所述传输数据中的数据做交插处理,将数据头产生单频声波信号,将版本号和数据长度及其纠错码产生三频声波信号,将交插后的传输数据及其检错码和纠错码产生八频声波信号,对声波信号做增益补偿,对每一个音节的声波信号加时间窗,将声波信号转换为可播放的格式的音频信息;
当接收到所述音频信息时,从所述音频信息中解析出频率信号并从所述频率信号中获取所述传输数据。
2.如权利要求1所述的方法,其特征在于,所述使所述音频信息的每个音节包含1个或多个频率信号包括:
对于每个音节所传送的1个或多个字符生成一个或多个频率信号;
将所述一个或多个频率信号叠加合成为单频信号或多频信号。
3.如权利要求1或2所述的方法,其特征在于,所述计算传输数据的检错码和纠错码、并将所述检错码和纠错码添加到所述传输数据中包括:
生成传输数据数组,将数据头数据添加到所述传输数据数组中;
计算版本号和传输数据长度的检验码和纠错码,版本号数字、传输数据长度、版本号和传输数据长度的检验码和纠错码组成版本数据,将所述版本数据添加到所述传输数据数组中;
将待传输数据进行分段处理,形成长度相同的多段子数据,并为每段子数据生成检错码和纠错码,将每段子数据、每段子数据的检错码和纠错码组成分段数据,将所述分段数据添加到所述传输数据数组中;
对多个所述分段数据进行交叉处理。
4.如权利要求3所述的方法,其特征在于:所述版本号数字、传输数据长度、版本号和传输数据长度的检验码和纠错码组成版本数据包括:
版本号为16进制数D0、传输数据长度为2个16进制数D1、D2;版本号和传输数据长度的检验码为D3;
如果D1不等于0并且D2不等于0,则D3=(D1*D2+D0)%16;否则,D3=(D1+D2+D0)%16;
对版本号、传输数据长度、版本号和传输数据长度的检验码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
5.如权利要求4所述的方法,其特征在于,为每段子数据生成检错码和纠错码,将每段子数据、每段子数据的检错码和纠错码组成分段数据包括:
将每段子数据中的各个数乘以预设的加权系数并求和,然后除以8生成商跟余数,然后将商跟余数的和除以8求模,生成每段子数据的检错码;
对每段子数据、每段子数据的检错码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
6.如权利要求5所述的方法,其特征在于,所述对多个所述分段数据进行交叉处理包括:
从所述传输数据数组中获取所述多个所述分段数据;
将每个所述分段数据按行填充到矩阵中,并从此矩阵中按列依次提取多组数据,形成转换数据;
将所述转换数据替换所述分段数据添加到所述传输数据数组中。
7.如权利要求6所述的方法,其特征在于:
预设单频频率表,根据所述数据头数据在所述单频频率表中选取数据生成单频信号;
所述单频信号为sin(2.0*M_PI*twofTable[0][num1]*i*T);
其中twofTable为单频频率表,num1为数据头数据,T为周期,M_PI为π,0=<i<NFRAME,NFRAME为帧长。
8.如权利要求6所述的方法,其特征在于:
设置三频频率表,对所述版本数据产生3频信号;其中,将16进制的所述版本数据以3个为一组分成多个组数据,根据先后顺序在所述三频频率表中选择相应的频率合成所述3频信号;
所述3频信号分别为:
0.3*sin(2.0*M_PI*threefTable[0][num1]*i*T)、0.3*sin(2.0*M_PI*threefTable[1][num2]*i*T)、0.4*sin(2.0*M_PI*threefTable[2][num3]*i*T));
其中,threefTable为三频频率表,num1,num2,num3为同一时间发送的组数据中的3个数据,T为周期,M_PI为π,0=<i<NFRAME,NFRAME为帧长。
9.如权利要求6所述的方法,其特征在于:
预设矩阵频率表,从所述传输数据数组中获取所述转换数据,所述转换数据为八进制数据;
以8个八进制数为一组将所述转换数据分为多个在同一时间发送的发送数字串,根据发送数字串中数字的先后顺序在所述预设矩阵频率表中选择相应的频率合成8频信号;
其中,所述转换数据的各个八进制数产生的8频信号为:
sig[i]+=sigcoeff[k]*sin(2.0*M_PI*fTable[k][num[k]]*i*T);其中fTable为矩阵频率表,num[k]为同一时间发送数字串中的第k个八进制数据,sigcoeff[k]为对发送数字串中第k个八进制数据的信号的加权系数,T为周期,M_PI为π,0=<i<NFRAME,NFRAME为帧长。
10.如权利要求6所述的方法,其特征在于:
当接收到所述音频信息时,根据所述音频信息中增加的时间窗同步对齐,解析出频率信号并对所述频率信号进行解码,依次解析出数据头数据、版本数据和待传输数据。
11.如权利要求10所述的方法,其特征在于,解析出待传输数据包括:
获取加载所述转换数据的音频帧,使用goertzel算法检测每个音频帧包含的多个频率,并保存与所述多个频率相对应的音强能量;
按照所述音强能量由高到低的顺序,计算所述多个频率中每个频率包含的数据并进行RS解码,并根据编码时的交插规则转换回原有的顺序;
当判断检错码正确时,则判断为待传输数据。
12.一种基于多频声波的数据传输系统,其特征在于,包括:
发送端装置,包括:
数据编码单元,用于计算传输数据的检错码和纠错码,并将所述检错码和纠错码添加到所述传输数据中;
音频生成单元,用于将所述传输数据转换到对应的声波频率上,生成连续的音频信息,使所述音频信息的每个音节包含1个或多个频率信号,具体为,补齐所述传输数据的空余,将剩余位数用0补齐,将所述传输数据中的数据做交插处理,将数据头产生单频声波信号,将版本号和数据长度及其纠错码产生三频声波信号,将交插后的传输数据及其检错码和纠错码产生八频声波信号,对声波信号做增益补偿,对每一个音节的声波信号加时间窗,将声波信号转换为可播放的格式的音频信息;
音频播放单元,用于播放所述音频信息;
接收端装置,包括:
音频接收单元,用于接收所述音频信息;
音频解码单元,用于从所述音频信息中解析出频率信号并从所述频率信号中获取所述传输数据。
13.如权利要求12所述的系统,其特征在于:
所述音频生成单元,用于对于每个音节所传送的1个或多个字符生成一个或多个频率信号;将所述一个或多个频率信号叠加合成为单频信号或多频信号。
14.如权利要求12或13所述的系统,其特征在于:
数据编码单元,包括:
数组生成子模块,用于生成传输数据数组;
头数据编码子模块,用于将数据头数据添加到所述传输数据数组中;
版本数据编码子模块,用于计算版本号和传输数据长度的检验码和纠错码,版本号数字、传输数据长度、版本号和传输数据长度的检验码和纠错码组成版本数据,将所述版本数据添加到所述传输数据数组中;
传输数据编码子模块,用于将待传输数据进行分段处理,形成长度相同的多段子数据,并为每段子数据生成检错码和纠错码,将每段子数据、每段子数据的检错码和纠错码组成分段数据,将所述分段数据添加到所述传输数据数组中;对多个所述分段数据进行交叉处理。
15.如权利要求14所述的系统,其特征在于:
版本号为16进制数D0、传输数据长度为2个16进制数D1、D2;版本号和传输数据长度的检验码为D3;
所述版本数据编码子模块,用于如果D1不等于0并且D2不等于0,则计算D3=(D1*D2+D0)%16;否则,计算D3=(D1+D2+D0)%16;对版本号、传输数据长度、版本号和传输数据长度的检验码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
16.如权利要求15所述的系统,其特征在于:
所述传输数据编码子模块,还用于将每段子数据中的各个数乘以预设的加权系数并求和,然后除以8生成商跟余数,然后将商跟余数的和除以8求模,生成每段子数据的检错码;对每段子数据、每段子数据的检错码组成的数字串进行RS编码运算,生成包括纠错码的RS码。
17.如权利要求16所述的系统,其特征在于:
所述传输数据编码子模块,还用于从所述传输数据数组中获取所述多个所述分段数据;将每个所述分段数据按行填充到矩阵中,并从此矩阵中按列依次提取多组数据,形成转换数据;将所述转换数据替换所述分段数据添加到所述传输数据数组中。
18.如权利要求17所述的系统,其特征在于:
所述音频生成单元,包括:
头数据音频生成子模块,用于预设单频频率表,根据所述数据头数据在所述单频频率表中选取数据生成单频信号;所述单频信号为sin(2.0*M_PI*twofTable[0][num1]*i*T);其中twofTable为单频频率表,num1为数据头数据,T为周期,M_PIπ,0=<i<NFRAME,NFRAME为帧长。
19.如权利要求17所述的系统,其特征在于:
所述音频生成单元,包括:
版本数据音频生成子模块,设置三频频率表,对所述版本数据产生3频信号;其中,将16进制的所述版本数据以3个为一组分成多个组数据,根据先后顺序在所述三频频率表中选择相应的频率合成所述3频信号;所述3频信号分别为:
0.3*sin(2.0*M_PI*threefTable[0][num1]*i*T)、0.3*sin(2.0*M_PI*threefTable[1][num2]*i*T)、0.4*sin(2.0*M_PI*threefTable[2][num3]*i*T));
其中,threefTable为三频频率表,num1,num2,num3为同一时间发送的组数据中的3个数据,T为周期,M_PI为π,0=<i<NFRAME,NFRAME为帧长。
20.如权利要求17所述的系统,其特征在于:
所述音频生成单元,包括:
传输数据音频生成子模块,用于预设矩阵频率表,从所述传输数据数组中获取所述转换数据,所述转换数据为八进制数据;以8个八进制数为一组将所述转换数据分为多个在同一时间发送的发送数字串,根据发送数字串中数字的先后顺序在所述预设矩阵频率表中选择相应的频率合成8频信号;其中,所述转换数据的各个八进制数产生的8频信号为:
sig[i]+=sigcoeff[k]*sin(2.0*M_PI*fTable[k][num[k]]*i*T);其中fTable为矩阵频率表,num[k]为同一时间发送数字串中的第k个八进制数据,sigcoeff[k]为对发送数字串中第k个八进制数据的信号的加权系数,T为周期,M_PI为π。
21.如权利要求17所述的系统,其特征在于:
所述音频解码单元,还用于当接收到所述音频信息时,根据所述音频信息中增加的时间窗同步对齐,解析出频率信号并对所述频率信号进行解码,依次解析出数据头数据、版本数据和待传输数据。
22.如权利要求21所述的系统,其特征在于:
所述音频解码单元,包括:
传输数据音频解码子模块,还用于获取加载所述转换数据的音频帧,使用goertzel算法检测每个音频帧包含的多个频率,并保存与所述多个频率相对应的音强能量;按照所述音强能量由高到低的顺序,计算所述多个频率中每个频率包含的数据并进行RS解码,并根据编码时的交插规则转换回原有的顺序;当判断检错码正确时,则判断为待传输数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410803196.8A CN105790852B (zh) | 2014-12-19 | 2014-12-19 | 基于多频声波的数据传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410803196.8A CN105790852B (zh) | 2014-12-19 | 2014-12-19 | 基于多频声波的数据传输方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105790852A CN105790852A (zh) | 2016-07-20 |
CN105790852B true CN105790852B (zh) | 2019-02-22 |
Family
ID=56385984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410803196.8A Expired - Fee Related CN105790852B (zh) | 2014-12-19 | 2014-12-19 | 基于多频声波的数据传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105790852B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11854569B2 (en) | 2016-10-13 | 2023-12-26 | Sonos Experience Limited | Data communication system |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201617408D0 (en) | 2016-10-13 | 2016-11-30 | Asio Ltd | A method and system for acoustic communication of data |
GB201704636D0 (en) | 2017-03-23 | 2017-05-10 | Asio Ltd | A method and system for authenticating a device |
CN108809441B (zh) * | 2017-04-28 | 2021-09-21 | 杭州萤石网络股份有限公司 | 一种声波通信方法及系统 |
GB2565751B (en) | 2017-06-15 | 2022-05-04 | Sonos Experience Ltd | A method and system for triggering events |
WO2018231652A1 (en) | 2017-06-13 | 2018-12-20 | Intel Corporation | Robust ultrasound communication signal format |
GB2570634A (en) * | 2017-12-20 | 2019-08-07 | Asio Ltd | A method and system for improved acoustic transmission of data |
CN110289916A (zh) * | 2019-07-19 | 2019-09-27 | 上海睿赛德电子科技有限公司 | 一种支持数据纠错与校验的声波传输的方法 |
CN111865952B (zh) * | 2020-07-10 | 2023-04-18 | 腾讯音乐娱乐科技(深圳)有限公司 | 数据处理方法、装置、存储介质及电子设备 |
US11988784B2 (en) | 2020-08-31 | 2024-05-21 | Sonos, Inc. | Detecting an audio signal with a microphone to determine presence of a playback device |
CN112235053B (zh) * | 2020-09-29 | 2022-05-13 | 上海特金无线技术有限公司 | 通信方法、装置及设备、存储介质 |
CN112911558B (zh) * | 2021-01-18 | 2023-01-06 | 佳格科技(浙江)股份有限公司 | 数据通信系统、数据发送装置及数据接收装置 |
CN113938215B (zh) * | 2021-09-10 | 2023-10-03 | 佳格科技(浙江)股份有限公司 | 多路双工声波通信系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247183A (zh) * | 2007-02-15 | 2008-08-20 | 凌阳科技股份有限公司 | 基于超声波实现通讯的发送装置、接收装置、系统和方法 |
CN102394724A (zh) * | 2011-11-01 | 2012-03-28 | 南京音优行信息技术有限公司 | 一种基于双音多频声波的高可靠性数据传输方法及装置 |
CN103023580A (zh) * | 2012-12-06 | 2013-04-03 | 深圳市创想天空科技有限公司 | 通过声音实现数据传输的方法 |
WO2014129370A1 (ja) * | 2013-02-21 | 2014-08-28 | ヤマハ株式会社 | 変調装置、復調装置、音響伝送システム、プログラム及び復調方法 |
-
2014
- 2014-12-19 CN CN201410803196.8A patent/CN105790852B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247183A (zh) * | 2007-02-15 | 2008-08-20 | 凌阳科技股份有限公司 | 基于超声波实现通讯的发送装置、接收装置、系统和方法 |
CN102394724A (zh) * | 2011-11-01 | 2012-03-28 | 南京音优行信息技术有限公司 | 一种基于双音多频声波的高可靠性数据传输方法及装置 |
CN103023580A (zh) * | 2012-12-06 | 2013-04-03 | 深圳市创想天空科技有限公司 | 通过声音实现数据传输的方法 |
WO2014129370A1 (ja) * | 2013-02-21 | 2014-08-28 | ヤマハ株式会社 | 変調装置、復調装置、音響伝送システム、プログラム及び復調方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11854569B2 (en) | 2016-10-13 | 2023-12-26 | Sonos Experience Limited | Data communication system |
Also Published As
Publication number | Publication date |
---|---|
CN105790852A (zh) | 2016-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105790852B (zh) | 基于多频声波的数据传输方法及系统 | |
CN102509216B (zh) | 一种通过音频信号进行手机现场支付的方法及装置 | |
CN102722812B (zh) | 通过音频信号传递消费凭证号实现现场交易的方法及装置 | |
CN102394724B (zh) | 一种基于双音多频声波的高可靠性数据传输方法及装置 | |
CN102291205B (zh) | 一种基于多频声波的高可靠性数据传输方法及装置 | |
US9407869B2 (en) | Systems and methods for initiating conferences using external devices | |
CN104883720A (zh) | 目标网络接入方法和导引、控制方法及相应的终端 | |
US8717971B2 (en) | Systems, methods and apparatus for transmitting data over a voice channel of a wireless telephone network using multiple frequency shift-keying modulation | |
CN103023580B (zh) | 通过声音实现数据传输的方法 | |
CN108172227A (zh) | 语音遥控方法和装置 | |
CN105790854B (zh) | 一种基于声波的短距离数据传输方法及装置 | |
US20190253154A1 (en) | Method and system for acoustic communication of data | |
CN105846911A (zh) | 基于声波的数据传输方法、装置和系统 | |
US20150033250A1 (en) | Systems, methods and apparatus for transmitting data over a voice channel of a wireless telephone network | |
CN103166702A (zh) | 通过音频方式配置无线网络的方法与装置 | |
CN108777596B (zh) | 一种基于声波的通信方法、通信系统及计算机可读存储介质 | |
CN105722183A (zh) | Wi-Fi链接信息分享方法及装置 | |
CN106686639A (zh) | 用于智能语音交互设备的网络配置方法、装置及相关设备 | |
CN108024120A (zh) | 音频生成、播放、接听方法及装置和音频传输系统 | |
CN108988957B (zh) | 一种基于线性调频的空气声波通信编码方法 | |
CN105763293B (zh) | 在声波传输数据时播放音乐的方法及系统 | |
US20090245276A1 (en) | Systems, methods and apparatus for transmitting data over a voice channel of a telephone network using linear predictive coding based modulation | |
US20190237091A1 (en) | A method and system for acoustic communication of data | |
EP3729692B1 (en) | A method and system for improved acoustic transmission of data | |
CN202931336U (zh) | 通过声音实现数据传输的系统及数据发送、接收端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190222 Termination date: 20211219 |