基于可见光通信的纠错方法和装置
技术领域
本发明涉及可见光通信技术领域,尤其涉及一种基于可见光通信的纠错方法和装置。
背景技术
无线光通信技术又称可见光通讯,其传输速率最高达每秒千兆。无线光通信技术因为其数据不易被干扰和捕获,光通信设备制作简单且不宜损坏或消磁,可以用来制作无线光加密钥匙。与微波技术相比,无线光通信有相当丰富的频谱资源,这是一般微波通信和无线通信无法比拟的;同时可见光通信可以适用任何通信协议、适用于任何环境;在安全性方面,其相比传统的磁性材料,无需担心消磁问题,更不必担心通信内容被人窃取;无线光通信的设备架设灵活便捷,且成本低廉,适合大规模普及应用。
现有技术中,可见光通信系统通过信源中的二进制数据来控制LED灯的“开”或“关”来传输信息,如信源的基带信号是二进制数字信号,当这些数字信号中的比特为“1”时,代表高电平,控制LED灯打开,LED灯发出可见光;当这些数字信号中的比特为“0”时,代表低电平,控制LED灯关闭,LED灯不发光。而接收端则在特定的脉冲周期内检测是否接收到足够强度的光信号来判断接收到的比特是“1”还是“0”,从而完成可见光信息的传输。
但在实际使用中,由于某些可见光通信设备(如手机)对LED的开关控制存在延时,不能在规定的时间点对相应的信源信号进行LED的实时开关控制,则会导致发生可见光通信过程中发生串码,同步信息混乱,即会在通信过程中信源会被加插多余的“0”或者“1”。如信源的基带二进制数字为100000001100,遇到第一个数字“1”时,LED灯发光;接着后面连续出现7个“0”,在7个脉冲周期内,LED灯都处于关闭状态;再遇到数字“1”时,LED应该及时重新发光。但由于LED开关存在延时,所以在遇到数字“1”时,LED并没有按时亮起,所以接收端这时会检测的信号依然为0,可能过了一个周期LED才亮起,这时接收端才会检测到“1”。等接收完全部数据,则接收端接收到的数据可能为“1000000001100”,即在通信过程中被加插了一个“0”。当然,也有可能存在被加插多个“0”的情况。同理,如果LED的关闭存在延时,则在可见光通信过程有可能被加插二进制数字“1”。此外,如果信源数据中连续出现较多的“0”时,LED会比较长时间处于关闭状态,会使接收端误认为发送端已经发送完毕信号,造成漏接信号。
发明内容
本发明所要解决的技术问题在于,降低误码率,避免可见光信号在通信过程中发生串码,导致同步信息混乱,接收到的信号不能被识别。
为了解决上述技术问题,本发明实施例提供了一种基于可见光通信的纠错方法,包括:
发射端获取认证信息,在所述认证信息中加插纠错码,将具有纠错码的认证信息以可见光信号的形式发送出去。
其中,所述在所述认证信息中加插纠错码,具体包括:
采用RS码、奇偶校验码、汉明码、卷积码、Turbo码、交织码、伪随机序列扰码、LDPC码、或者BCH码的编码方式,在所述认证信息中加插纠错码。
可选的,采用交织码的编码方式在所述认证信息中加插纠错码,具体包括:
将二进制形式的认证信息按照每两个比特为一组进行分组,按照预设规则将两个比特的每组数据分别用至少四个比特来表示。
可选的,在所述认证信息中加插纠错码之后,还包括:
采用差分编码的方式对具有纠错码的认证信息进行编码。
可选的,所述将具有纠错码的认证信息以可见光信号的形式发送出去之前还包括:
对所述具有纠错码的认证信息进行加密。
可选的,对所述具有纠错码的认证信息进行加密,具体包括:
将变化的伪码序列与所述具有纠错码的认证信息进行逻辑加密运算;和/或,
将变化的伪码序列与所述具有纠错码的认证信息进行算术加密运算。
其中,所述逻辑加密运算包括异或加密运算、同或加密运算、或者与非加密运算。
其中,所述算术加密运算包括加法加密运算、减法加密运算、乘法加密运算、或者除法加密运算。
可选的,所述变化的伪码序列是随本地时间的变化而连续变化的伪码序列;或者,
随预设的单位时间变化的伪码序列。
可选的,所述变化的伪码序列是随发射信号的预设次数连续而变化的伪码序列。
可选的,所述变化的伪码序列是频率根据预设条件而变化的伪码序列。
可选的,所述预设的条件是信号的频率根据晶振信息的变化进行频率变化;或者,
信号的频率根据本地时钟信息的变化进行频率变化。
其中,对所述具有纠错码的认证信息进行加密,具体包括:
采用MD5加密算法、RSA加密算法、采用DES加密算法、或者AES加密算法对所述具有纠错码的认证信息进行加密。
为了解决上述技术问题,本发明实施例提供了一种基于可见光通信的纠错方法,包括:
接收端将接收的可见光信号转换为数字信号,获得具有纠错码的认证信息,从所述具有纠错码的认证信息中解码出认证信息。
其中,从所述具有纠错码的认证信息中解码出认证信息,具体包括:
采用RS码、奇偶校验码、汉明码、卷积码、Turbo码、交织码、伪随机序列扰码、LDPC码、或者BCH码的解码方式,从具有纠错码的认证信息中解码出认证信息。
可选的,采用交织码的解码方式从具有纠错码的认证信息中解码出认证信息,具体包括:
将具有纠错码的认证信息中连续出现的预设数字删除至一个,根据预设规则将至少四个比特的每组数据分别用两个比特来表示,获得认证信息。
可选的,从所述具有纠错码的认证信息中解码出认证信息之前,还包括:
采用差分解码的方式对所述数字信号进行解码。
可选的,所述接收端将接收的可见光信号转化为数字信号之后,还包括:
对所述数字信号进行解密。
可选的,对所述数字信号进行解密,具体包括:
对所述数字信号与变化的伪码序列进行逻辑解密运算;和/或,
对所述数字信号与变化的伪码序列进行算术解密运算。
其中,所述逻辑解密运算具体包括:异或解密运算、同或解密运算、或者与解加密运算。
其中,所述算术解解密运算具体包括:加法解密运算、减法解密运算、乘法解密运算、或者除法解密运算。
可选的,所述变化的伪码序列是随本地时间的变化而连续变化的伪码序列;或者,
随预设的单位时间变化的伪码序列。
可选的,所述变化的伪码序列是随发射信号的预设次数连续而变化的伪码序列。
可选的,所述变化的伪码序列是频率根据预设条件而变化的伪码序列。
其中,所述预设的条件是信号的频率根据晶振信息的变化进行频率变化;或者,
信号的频率根据本地时钟信息的变化进行频率变化。
可选的,所述方法之前还包括:
采用MD5解密算法、RSA解密算法、采用DES解密算法、或者AES解密算法对所述数字信号进行解密。
为了解决上述技术问题,本发明实施例还提供了一种基于可见光通信的纠错装置,所述纠错装置包括:
处理单元,用于在获取的认证信息中加插纠错码;
发射单元,用于将具有纠错码的认证信息以可见光信号的形式发送出去。
其中,所述处理单元是RS码编码单元、奇偶校验码编码单元、汉明码编码单元、卷积码编码单元、Turbo码编码单元、交织码编码单元、伪随机序列扰码编码单元、LDPC码编码单元、或者BCH码编码单元。
可选的,所述纠错装置还包括与所述处理单元连接的差分编码单元。
可选的,所述纠错装置还包括与所述处理单元连接的加密单元,用于对加插纠错码的认证信息进行加密。
为了解决上述技术问题,本发明实施例还一种基于可见光通信的纠错装置,所述纠错装置包括:
转换单元,用于将接收的可见光信号转化为数字信号,获得具有纠错码的认证信息;
译码单元,用于从所述具有纠错码的认证信息中解码出认证信息。
其中,所述译码单元是RS码译码单元、奇偶校验码译码单元、汉明码译码单元、卷积码译码单元、Turbo码译码单元、交织码译码单元、伪随机序列扰码译码单元、LDPC码译码单元、或者BCH码译码单元。
可选的,所述纠错装置还包括:
与所述转换单元连接的差分解码单元,用于对所述具有纠错码的认证信息进行差分码解码。
可选的,所述纠错装置还包括与所述转换单元连接的解密单元,用于对所述数字信号进行解密。
上述技术方案在将认证信息以可见光信号形式发射前,采用预设的编码方式在该认证信息中加插了纠错码,在接收端采用对应的解码方式解码出认证信息,即使在可见光通信过程中出现了错误,导致被加插了多余的预设数字,接收端也可以将多余的预设数字删除,这样可以纠正信道部分加插预设数字的错误,从提高了可见光通信的可靠性。
附图说明
图1,是本发明实施例1提供的一种可见光通信的纠错方法流程图;
图2,是本发明实施例2提供的一种可见光通信的纠错方法流程图;
图3,是本发明实施例3提供的一种可见光通信的纠错系统结构示意图;
图4,是本发明实施例4提供的一种可见光通信的纠错系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了使本领域技术人员更好的理解本发明的技术方案,下面首先对本发明的技术方案进行简要介绍。
本发明实施例提供的技术方案是在可见光发射端进行编码前,采用采用RS码、奇偶校验码、汉明码、卷积码、Turbo码、交织码、伪随机序列扰码、LDPC码、或者BCH码的编码方式,在所述认证信息中加插纠错码。以交织码的编码方式为例:对基带二进制数字信号进行交织,将基带数字信号按每两个比特进行分组,然后每一个组根据数值不同而分别用不同的四个比特来表示,如分组数据中某一组的数据为两个二进制数字“00”,则用四个比特“0111”来表示。当原信息连续出现多个“0”时,如“000000”,交织后将变成“011101110111”。此外,也可能用不同的四个比特,或者五个以上比特来表示一组,只要所表示的数据中不连续出现两个或两个以上的数字“0”即可。数据交织完成后再编码,由于数据交织后不会有两个“0”的连续出现,而经过编码后在可见光通信过程中也只能出现被加插“0”而不能被加插“1”的情况,所以接收端在接收到的信号中如果出现连续的“0”,则将多余的“0”删除,只保留一个“0”,然后再进行解交织,根据与交织相同的规则对接收到的信号按每四比特还原为两个比特,从而完成信息的传输。
使用本发明实施例提供的数据交织与解交织的方法,使得信源数据进行交织后,数据中两个“1”之间只有一个“0”,没有连续的“0”,意味着在接收端如果信道过程中出现了错误,导致多余的“0”,接收端也可以将多的“0”去掉,这样可以纠正信道部分加插零的错误,从而减少了编码纠错的难度和减少直流分量为零,提高了可见光通信的可靠性。
实施例1:
参见图1,是本发明实施例1提供的一种可见光通信的纠错方法流程图,该纠错方法包括:
(一)发射端:
S101:获取认证信息。具体的,可以从外部网络、USB接口、或者从本地存储器获取认证信息。该认证信息可以是指纹认证信息,也可以是数字信息,如ID信息。
S102:在获取的认证信息中加插纠错码。具体的,采用RS码、奇偶校验码、汉明码、卷积码、Turbo码、交织码、伪随机序列扰码、LDPC码、或者BCH码等编码方式,在所述认证信息中加插纠错码。
S103:将具有纠错码的认证信息以可见光信号的形式发送出去。
例如,将具有纠错码的认证信息以二进制数字表示,二进制数字“1”和“0”分别代表高电平和低电平来控制LED的“开”和“关”,当这些数字信号中的比特为“1”时,代表高电平,控制LED灯打开,LED灯发出可见光;当这些数字信号中的比特为“0”时,代表低电平,控制LED灯关闭,LED灯不发光。
(二)接收端:
S104:将接收的可见光信号转换为数字信号,获得具有纠错码的认证信息。具体的,将可见光信号转换为电信号,然后将电信号转换为数字信号。
S105:从具有纠错码的认证信息中解码出认证信息。具体的,可采用RS码、奇偶校验码、汉明码、卷积码、Turbo码、交织码、伪随机序列扰码、LDPC码、或者BCH码等解码方式,从具有纠错码的认证信息中解码出认证信息。
本实施例中,上述技术方案在将认证信息以可见光信号形式发射前,采用预设的编码方式在该认证信息中加插了纠错码,在接收端采用对应的解码方式解码出认证信息,可以纠正信道部分加插的错误数字信息,从提高了可见光通信的可靠性。
实施例2:
参见图2,是本发明实施例2提供的一种可见光通信的纠错方法流程图,该纠错方法包括:
(一)发射端:
S201:从本地存储单元获取认证信息。例如,从本地存储单元获取指纹信息的特征值,该特征值可以是二进制数据,也可以是以其他形式存在的数据。
S202:将二进制形式的认证信息按照每两个比特为一组进行分组,按照预设规则将两个比特的每组数据分别用至少四个比特来表示。
例如,获取的认证信息(指纹信息)为二进制数字信号“0001101100000001”,将信源按每两个比特进行分组,数据“0001101100000001”共有16个比特,可以分成8组,分别为“00”、“01”、“10”、“11”、“00”、“00”、“00”和“01”。将每组数据根据数值的不同分别用至少4个比特表示,此处以4个比特为例,则8组数据可以表示为“0111”、“1011”、“1101”、“1111”、“0111”、“0111”、“0111”和“1011”。这8组数据合并后为“01111011110111110111011101111011”。由此可见,指纹信息“0001101100000001”经过交织后,变成“01111011110111110111011101111011”,指纹信息中连续出现的二进制数字“0”在交织后不再连续出现。假设2比特的每组数据“00”、“01”、“10”、“11”分别用5个比特来表示,则可以依次表示为“01111”、“10111”、“11011”、以及“11101”,以此类推,可以得出2比特的每组数据以6个、及6个以上比特表示的形式。
S203:对S202表征的认证信息进行加密,获得加密信号。
具体的,可采用将变化的伪码序列与所述具有纠错码的认证信息进行逻辑加密运算的方式加密,和/或将变化的伪码序列与所述具有纠错码的认证信息进行算术加密运算的方式加密;也可以采用采用MD5加密算法、RSA加密算法、采用DES加密算法、或者AES加密算法等加密算法对所述具有纠错码的认证信息进行加密。
其中,逻辑加密运算包括异或加密运算、同或加密运算、或者与非加密运算等逻辑运算方式;算术加密运算包括加法加密运算、减法加密运算、乘法加密运算、或者除法加密运算等算术运算方式。
其中,变化的伪码序列可以是随本地时间的变化而连续变化的伪码序列;或者随预设的单位时间进行变化的伪码序列。也可以是随发射信号的预设次数而变化的伪码序列。还可以是信号的频率根据预设条件而变化的伪码序列,例如伪码序列的频率根据晶振信息的变化进行频率变化;或者,伪码序列的频率根据本地时钟信息的变化进行频率变化。
S204:采用差分编码的方式对所述加密信号进行编码。
S205:用差分码编码后的加密信号控制LED灯的开关,将信息以频闪的可见光信号发射出去。如数字“1”控制LED灯的状态与上一个状态相反,数字“0”控制LED灯与上一个状态保持一致。
假设在传输过程中由于LED开关的控制延时而导致某些位置被加插了二进制数字“0”。如上面交织后的数据“01111011110111110111011101111011”被加插“0”后变成了“01111011110011111001110111001111011”。
(二)接收端:
S206:将接收的可见光信号转换为数字信号。
S207:采用差分码解码的方式,对S206获得的数字信号进行解码,获得具有纠错码的认证信息。具体的,将可见光信号转换为电信号,然后将电信号转换为数字信号。
S208:对S207解码后的差分信号进行解密。
具体的,采用发射端对原始信号加密对应的方式对加密的原始信号进行解密,即若发射端采用逻辑运算方式加密,则接收端采用逻辑运算方式解密;若发射端采用算术运算方式解密,则接收端采用算术运算方式解密;若发射端采用采用MD5加密算法、RSA加密算法、采用DES加密算法、或者AES加密算法进行加密,则接收端采用MD5解密算法、RSA解密算法、采用DES解密算法、或者AES解密算法对所述数字信号进行解密。
S209:将具有纠错码的认证信息中连续出现的预设数字删除至一个,根据预设规则将至少四个比特的每组数据分别用两个比特来表示,获得认证信息。
例如,预设数字表示二进制数据“0”。将收到的数据“01111011110011111001110111001111011”中连续出现的“0”删除,只保留一个“0”,即得到“01111011110111110111011101111011”。由于发射端的交织编码过程是将认证信息分组后以每组用四个比特进行表示的,所以接收端也需要将交织后的数据按每四比特为一组进行分组。交织后的数据“01111011110111110111011101111011”一共有32比特,可以分成8组,分别为“0111”、“1011”、“1101”、“1111”、“0111”、“0111”、“0111”和“1011”。按照交织时对应的转换规则,每组用两个比特进行表示,则8组数据可表示为:“00”,“01”,“10”,“11”,“00”,“00”,“00”和“01”。将这8组数据进行合并后得到“0001101100000001”。
本实施例通过交织和解交织方法,使得信源数据进行交织后,数据中两个“1”之间只有一个“0”,没有连续的“0”,即使在可见光通信过程中在信道出现了错误,导致被加插了多余的“0”,那么接收端也可以将多的“0”去掉,这样可以纠正信道部分加插零的错误,提高了可见光通信的可靠性。
实施例3:
参见图3,是本发明实施例3提供的一种可见光通信的纠错系统结构示意图,该纠错系统包括发射端300(发射端纠错装置)和接收端300’(接收端纠错装置)。
发射端300可集成在手机、MP3、PSP等移动电子设备上、或者独立存在的设备,包括存储单元301,用于存储用户的认证信息。与存储单元301连接的处理单元302,用于在获取的认证信息中加插纠错码。具体的,处理单元302可以是RS码编码单元、奇偶校验码编码单元、汉明码编码单元、卷积码编码单元、Turbo码编码单元、交织码编码单元、伪随机序列扰码编码单元、LDPC码编码单元、或者BCH码编码单元。以处理单元302是交织码处理单元为例,处理单元302获取的认证信息为二进制数字信号“0001101100000001”,将信源按每两个比特进行分组,可以分成8组“00”、“01”、“10”、“11”、“00”、“00”、“00”和“01”。按前面所述的转换规则,每组数据根据数值的不同分别用4个比特表示,则8组数据可以表示为“0111”、“1011”、“1101”、“1111”、“0111”、“0111”、“0111”和“1011”。这8组数据合并后为“01111011110111110111011101111011”。认证信息中连续出现的二进制数字“0”在交织后不再连续出现。
与处理单元302连接的发射单元303,用于将具有纠错码的认证信息以可见光信号的形式发送出去。例如,通过二进制数字“1”和“0”分别代表高电平和低电平来控制LED灯的“开”和“关”,发送交织后得到的数据“01111011110111110111011101111011”。假设在传输过程中由于LED开关的控制延时而导致某些位置被加插了二进制数字“0”。如上面交织后的数据“01111011110111110111011101111011”被加插“0”后变成了“01111011110011111001110111001111011”。
在具体的实施过程中,发射端300还包括与处理单元302连接的加密单元304,用于对加插纠错码的认证信息进行加密。
接收端300’可集成在手机、MP3、PSP等移动电子设备上、或者以独立的设备存在,包括转换单元301’,用于将接收的可见光信号转化为数字信号,获得具有纠错码的认证信息。
与转换单元301’连接的译码单元302’,用于从所述具有纠错码的认证信息中解码出认证信息。具体的,译码单元302’可以是RS码译码单元、奇偶校验码译码单元、汉明码译码单元、卷积码译码单元、Turbo码译码单元、交织码译码单元、伪随机序列扰码译码单元、LDPC码译码单元、或者BCH码译码单元等纠错译码单元。以译码单元302’是交织码译码单元为例,译码单元302’将收到的数据“01111011110011111001110111001111011”中连续出现的“0”删除,只保留一个“0”,即得到“01111011110111110111011101111011”。交织后的数据“01111011110111110111011101111011”一共有32比特,可以分成8组,分别为“0111”、“1011”、“1101”、“1111”、“0111”、“0111”、“0111”和“1011”。按照交织时对应的转换规则,每组用两个比特进行表示,则8组数据可表示为:“00”,“01”,“10”,“11”,“00”,“00”,“00”和“01”。将这8组数据进行合并后得到“0001101100000001”,与发射端300发射的认证信息一致。
在具体的实施过程中,接收端300’还包括与译码单元302’连接的解密单元303’,用于对所述数字信号进行解密。
实施例4:
参见图4,是本发明实施例4提供的一种可见光通信的纠错系统结构示意图,该纠错系统包括发射端300和接收端300’。
相对于实施例3,该实施例发射端300还包括连于处理单元302与发射单元303连接的差分编码单元401,用于对具有纠错码的认证信息进行差分编码。
接收端300’还包括连接于转换单元301’与译码单元302’之间的差分解码单元401’,用于对所述具有纠错码的认证信息进行差分码解码。
本实施例中,发射端在具有纠错码的认证信息发射前进行了差分编码,接收端在接收到可见光信号后,进行差分解码,进一步降低误码率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。