陈 勇 韩照中 刘焕淋 胡陈毅 吴志倩
①(重庆邮电大学工业物联网与网络化控制教育部重点实验室 重庆 400065)
②(重庆邮电大学通信与信息工程学院 重庆 400065)
目前,随着物联网终端接入设备的增多,持续增长的业务量促进无线通信系统[1]获取可拓展的频谱资源。射频频谱的需求持续增长。为了缓解射频(Radio Frequency, RF)频谱短缺问题,业界提出使用毫米波、太赫兹以及更高频段在内的诸多频段进行通信[2,3],并考虑对传统灯光进行赋能,在不影响正常生产生活下,使用闪烁的灯光进行发送信息。具有高效节能、无电磁干扰、通信安全性好等特点的可见光通信(Visible Light Communication,VLC)已成为一种热门的新型无线通信技术,复旦大学的迟楠等人[4]指出未来6G网络是一种使用各式各样通信方式的全频谱网路,其中 6G 蓝图的重点内容之一就是将 VLC 技术与6G 中其他信息通信技术融合形成异构网络,共同提供海量连接、更高网速、稳定可靠的实时传输。6G中可见光通信的应用场景包括:室内无线接入、室内定位、智能交通、星间激光通信以及海底通信等[4,5]。
VLC技术可以根据接收器的不同分为:基于光电二极管的传统VLC技术和基于图像传感器的新型VLC技术。基于图像传感器的VLC也被称之为OCC。与传统VLC相比,OCC具有更大的接收视场角(Field Of View, FOV),良好的空间分离特性,硬件成本低等特点。OCC技术可以运用在例如室内定位及导航、远程控制、移动支付和短距离通信等现实场景中。
对于OCC系统,待传输的信息以发光二极管(Light-Emitting Diode, LED)的明暗光信号进行发送与接收,而数据信息在干扰环境下的正确解码是研究的重点。Shi等人[6]倾向于将数字图像处理方法用于信号解调,在解码过程中引入恒定偏移量,导致其不能够满足多种场合通信需求;Zhang等人[7]提出多阶项式拟合阈值算法进行解调,但该算法更着重于整体走势,解码过程中受异常值影响较大,造成解码错误,限制通信性能;Liu等人[8]则使用一种自适应阈值方法直接判断逻辑值,其鲁棒性较差,解码效果受步长设置影响较深,受灰度值波动影响易造成解码错误;Hsu等人[9]则与之不同地使用人工神经网络进行判断逻辑值概率,该方法准确度较高,但需大量样本数据用以训练,所需时间成本高,迁移能力有待提升。
针对上述研究中存在的问题,本文提出一种基于指数权重滤波的参考条纹宽度判决解调方法。在发送端设定1.67 kbps发送速率,并设计较为合理的帧结构;在接收端解调过程中首先利用直方图均衡化操作对接收图像进行预处理,从而提高图像整体对比度以增强明暗条纹区分。针对灰度值波动导致错码,使用指数权重滤波算法,同时兼顾灰度曲线整体与细节,设计参考条纹宽度判决的解调解码策略。本文采用比特误码率(Bit Error Ratio, BER)作为评价指标,衡量本文算法在信息解调解码时的准确性。
基于光学相机的可见光通信结构示意图如图1所示。OCC系统通过驱动LED灯具进行明暗变换,将编码调制后的数据以可见光的形式在自由信道中传输,然后在接收端使用具有卷帘快门效应的光学相机实现记录LED的状态,将数据信息转换成不同宽度的黑白条纹图像,最后对图像进行离线解调解码处理。
图1 光学相机通信系统整体结构示意图
2.1.1 信息帧结构的设计
对于OCC系统,视频中每两帧图像之间存在间隔(gap)时间,即图像传感器读出并存储图像所需要的工作时间。本文使用IQOO Z5手机进行拍摄条纹信息实验过程中,发现在30 fps的相机帧率下,发射端连续发送PWM信号时,图像帧与帧之间存在读出时间,连续帧图片之间存在条纹信息缺失。且将1行像素视作1个采样点,按照香农定理,最少需要2行像素才可完成信号恢复,所以LED状态需要持续一定时间才能保证相机准确接收信息,本实验中设定每bit数据周期时间为600 μs。改进信息帧结构进而降低间隔时间影响是实现正确通信的关键,本文在保证信息传输速率的同时,保证信息可以实现成功解码,进而对信息帧结构进行设计。Li等人[10]针对帧间间隔时间提出基于Beacon的设计思路及拼接方法较为新颖,但所提方案复杂度较大。
基于上述数据周期时间考虑,并且保证单帧图像中可以包含1个信息帧的全部数据,设计了如图2(a)系统信息帧结构:帧同步头、数据、帧尾3部分。经实验确定帧同步头采用1 bit二进制“0”作为起始标志,数据由14 bit二进制符号表示,帧尾由1 bit二进制“1”表示。此方法的优点在于白黑条纹顺序明显,有利于判断照片成像时的扫描方向,有效避免反向读取信息,从而降低数据解码错误率,该信息帧结构在满足接收时间超过帧间间隔时间的情况下,避免1帧数据被2帧图像记录,同时增强帧与帧之间的隔离作用,使帧同步头检测更简单,以免所有条纹信息混淆而无法正确区分数据信息。为防止信息传输过程遇到帧间间隔时,相机丢失LED状态信息,设定每个数据包中有3个相同信息帧,如图2(b)所示,确保完整传输。
图2 系统信息帧结构设计及发送图
所提出的信息帧方案实验效果如图3所示,系统相隔10 cm进行发送信息,在拍摄的视频帧中,存在gap时间,LED在此时间内仍发送信息,而相机无法进行接收,造成部分信息在相邻帧之间存在缺失。信息帧重复3次作为数据包发送后,可观察到在接收图中具有完整信息数据,可供系统后续解调处理,并且数据处理过程中可以有效区分帧同步头、帧尾和数据。
图3 系统距离10cm接收数据“2”和“3”时存在帧间间隔示意图
2.1.2 调制格式
目前OCC系统大多调制方法为二进制开关键控(On-Off Keying, OOK)[11]调制,可以直接调制管控LED的光照强度,但可能导致明显的闪烁效果,影响正常照明,甚至对人眼造成干扰。对此,本文提出使用PWM调制,通过将满幅值的直流供电实现全通(ON)或者全断(OFF)。以重复通断的脉冲序列加载到模拟负载,有效降低OOK调制可能造成的频闪。本文将数据、帧同步头和帧尾分别设置不同的占空比,分辨帧同步头和帧尾更容易,可快速确定数据信息位置。如图4所示,帧同步头和帧尾分别设定“0”占空比为0%和“1”占空比为100%(如图4(a));如图4(b)所示有效数据信息设定“0”占空比为25%,“1”占空比为50%。整体信息帧的PWM信号如图4(c)所示。
图4 本文系统提出的调制方案图
与传统光电二极管接收器不同,CMOS光学相机具有独特的卷帘快门效应[12]。每一帧图像中获取一段时间光源变换的状态(开或关),同样可看作每行像素按时间顺序对LED灯具状态进行采样,记录成相应的明暗条纹。通常情况下,黑白条纹的宽度不会随着相机接收方向而变化,而是由相机本身相机帧率Cr和 LED的发送频率Fs共同决定。Li[13]认为每帧图像的完全成像时间为Tim,由全部图像传感器扫描时间Ts和帧间处理间隔时间Tg构成。式(1)为Tim的计算公式。
光学相机能否获取信息依赖于通信系统发送比特速率Sf与手机成像速率和行扫描频率是否相匹配。当通信比特速率低于手机成像速率时,使用多帧图像表示LED同一状态,将严重限制传输速率;而当通信比特速率远高于行像素扫描频率,又将会造成传输信息丢失,增大误码率。式(3)为系统正常通信的比特率条件。
最终图像传感器接收处理后的画面所呈现为黑白条纹相间图案。在理想状态下,相机完美捕获LED状态变化,获取条纹图片效果如图5(a)所示,收到干扰的实际条纹图像效果如图5(b)所示。图像中较粗的黑色条纹代表帧同步头,较粗的白色条纹代表帧尾,中间存在次数较多的黑白转换的条纹是有效数据信息。
图5 接收黑白条纹图
饱和灰度值和较高条纹对比度,选取排序后灰度值中200到400列共200列灰度值数据,求取平均值Y,作为候选列矩阵数据,如图7(c)。该灰度数据
(3)构建列矩阵。在图片边缘区域中选取一列数据,该列像素点灰度值如图7(a)所示,灰度值偏低,条纹信息不明显,对比度较小;而在受过度曝光影响的中心区域选取一列数据,如图7(b)所示,较多灰度值趋近饱和,以及出现白色条纹污染周围黑色条纹,即灰度值为0的数据大幅上移,灰度条纹宽度缩减,影响后续正确解码。本文将每行像素进行按灰度值高低排序,为保证候选列中存在较少既能满足黑白条纹的强烈对比要求,又降低了过饱和导致的曝光溢出现象。式(8)为候选列灰度值数据表达式
图6 接收图像灰度值分布图
图7 边缘列、中间列、候选列灰度值对比图
(4)平滑滤波处理。针对候选列矩阵数据中,存在部分“毛刺”和波动问题,提出使用指数加权平均算法进行滤波平滑处理,使数据在符合原数据走向趋势的同时,降低局部波动,降低误码率;
(5)条纹宽度解码。与传统的基于最小二乘法准则的多项式拟合解码算法、分段自适应阈值算法等不同。本文在列数据经增大峰值与谷值对比的平滑滤波处理后,通过使用黑白条纹宽度对比,与系统调制的PWM信号相对应,以确定有效数据;
(6)1维解码信息。通过步骤(5)解调解码后,原每周期数据恢复成单个bit值,即1维信息,不需要进行额外的下采样操作,便可得到14 bit有效数据;
(7)误比特率分析。在信号传输过程中,通信距离、发送频率、解调解码性能都可能更改信号逻辑值,产生误码。本文将发送的数据与解码后的数据进行对比,使用较为精确的误比特率作为指标,衡量所提出的算法在OCC系统中规定发送速率下,不同通信距离的信息传递可靠性。式(9)为误比特率计算公式。
在信号解调过程中,发现用于信号解调的图片信息中的灰度值数据存在严重的随机噪声干扰和波动,每比特对应的像素数不是固定值,并且存在偶尔的畸变,这一问题会降低后续灰度值数据处理判断为相应逻辑值的正确率,进而提高误码率。目前针对随机噪声,常见有效的方法为小波降噪[14]对此,本文将结合上述方法进行对比分析。
经过两种对比算法与本文算法处理之后的归一化列灰度值,见图8。虽然经过本文算法后,整体归一化值低于0.8,但曲线中较高灰度值与较低灰度值之间仍然存在强烈对比效果,可以进行后续解码。并且与小波滤波方法[14]进行对比分析发现:(1)小波降噪处理后,信号存在失真,可能是分解层数过大导致,但分解层数越小,信号与噪声之间的小波系数难以区分;(2)本文采用指数加权均值算法对于小的变化比较灵敏,灰度值数据峰值较为均匀,原波动严重的灰度值曲线变得较为平滑,“毛刺”也较少,既可保证邻近像素行对估计灰度值的影响,又能反应目标像素行邻近区域的变化趋势。
图8 种滤波方式处理后的灰度值曲线图
在OOC系统的解调解码中,其合理的阈值选择方案决定分辨bit“1”和bit“0”的准确性,类似于图像处理中进行图片二值化。本文对滤波后灰度值曲线的波形分析,发现在接收到的灰度值分布中,灰度值曲线在峰值与谷值处,含有曲线数据点最多,对此,本文从数据点个数入手,结合图像象素点分析条纹宽度,实现条纹解调解码,恢复原始数据。
在遍历整个信号曲线后,得以寻找帧同步头(含“0”最多的数据段)与帧尾(含“1”最多的数据段),帧同步头可由一个设定周期内获取“0”的近似像素点个数Lb进行表示,帧尾则由一个设定周期内获取“1” 的近似像素点个数Lw进行表示,接着以L~=(Lb+Lw)/2作为每个“0”或“1”的周期范围(像素点个数),在此范围内寻找逻辑值“1”与逻辑值“0”转换点。本文考虑可能存在的噪声干扰,以转换点之间的数据点个数作为判断该周期内条纹是否为有效数据的凭证,周期范围内逻辑数据“1”的个数为L1, “0”的个数为L0,对同一周期内L0和L1进行判断逻辑值数量是否符合合理范围。若是存在畸变(灰度值波动)造成逻辑值误判,则其条纹长度远小于求取的周期内数据数量范围。
并对L0和L1进行分析,判断该周期内,接收信号的占空比大小,判断该周期范围代表的比特信息为“1”或“0”,最终实现解码。流程图如图9所示。
图9 条纹宽度解调解码流程图
表1给出实验的具体设置参数。实验过程中,在发送端由上位机发送1000个数据,转换成14 bit二进制数据,并将二进制数据视为有效数据封装在带有帧同步头和帧尾的数据帧中,每个数据帧都以PWM生成调制信号,该信号通过LED驱动电路控制单个白光LED状态;在接收端处,经过自由信道,调制后的光信号被CMOS型的光学相机(手机摄像头)接收,以多帧条纹图片形式进行保存LED是否点亮的状态,再由MATLAB进行解调解码处理。
表1 实验参数设置
系统在30 cm内等距离下进行实验。上位机在每个距离下发送1000个十进制字符,重复发送3次进行平行实验的接收比较。每个十进制字符在上位机处转换成14 bit二进制数作为发送帧的有效数据,固定每比特数据的周期时间为600 μs。在解码后,与发送数据进行对比,如果存在字符错误,则记录二进制比特数的错码个数,得出3次实验误比特率的算术平均值。
为了更好地验证本文所提方法的性能,选取多项式拟合解码算法[17,18]和分段自适应阈值算法[19,20]作为对比算法。从图10(a)所示的实验结果可以看出,球形LED与方形LED的BER性能不同。当传输距离较短时,相同解码算法情况下,球形LED的BER性能比较差。这是因为球形LED在较近范围内,产生较强的光晕效应,导致白色条纹增大,黑色条纹缩短,可能造成有效数据的占空比分析模糊,或对帧同步头帧尾的判断有误;信道距离较远时,不同像素点接收到的球形LED所发光功率不如方形LED所发光功率均匀,存在较大误差。
在使用球形LED进行通信时,在系统BER性能满足前向纠错 (Forward Error Correction, FEC)阈值条件下,多项式拟合解码算法能实现的传输距离为26.7 cm;分段自适应阈值算法可以实现的传输距离为27.9 cm;所提算法可以实现的传输距离为28.1 cm。
当方形LED作为发射端时,与多项式拟合解码算法[17,18]和分段自适应阈值算法[19,20]相比,本文所提参考条纹宽度判决算法在较短距离时的解码性能优势比较明显。并且在方形LED发送的OCC系统的BER性能满足FEC要求时,所提算法可以实现在30 cm的传输距离,优于多项式拟合解码算法[17,18]和分段自适应阈值算法[19,20]。光学相机应用的解调解码算法处理速率与处理时间成反比,比较每种算法在方形LED发射端情况下的解码处理时间,不同距离的3次实验记录时间的算术平均值结果如图10(b)所示。传统多项式拟合解码算法、分段自适应解码算法和本文参考条纹宽度解码算法的解码时间中位数分别为:732.31 ms, 347.44 ms和279.77 ms。本文算法无需使用最小二乘法对灰度阈值进行曲线拟合判决和多次迭代以求取灰度值阈值,数据解码处理效率高,执行时间较低,证明参考条纹算法可以有效地提升OCC系统的通信性能。
图10 不同距离下实验测量的BER性能
以方形LED作为发送端,在距离13 cm时,使用同一帧图像经过本文滤波后的灰度值进行逻辑值判断。分段自适应阈值解码效果如图11(a)所示,图11(a)中绿色框图区域的放大效果为图11(b)。图11(b)中显示使用步长设定为特定值的分段自适应阈值法有较多误码,即逻辑值与灰度值不匹配,该算法在灰度值具有波动时,其抗干扰能力较差,存在本该为明条纹的灰度值将其误判为逻辑“0”以及本该为暗条纹的灰度值将其判断为逻辑“1”,导致在后续下采样恢复中产生错码,并且该解码参数设置需要人为设定,需根据实际情况进行修改参数。相较之下,本文算法在解码处理中,虽然在两侧丢失部分灰度值较小的条纹信息(如图11(c)),但本文通过提出的算法利用含有较多像素点的灰度等级进行重构PWM信号,逻辑值与灰度值较为匹配,可实现恢复信息逻辑操作,在接收到重复发送的信息情况下,仍可满足正常通信的要求,并且通过同时设定参考周期进行去除极小数量判断错误的逻辑值,可将干扰逻辑值滤除,具有更好的鲁棒性。
图11 解码方法效果对比图
为了降低室内光学相机通信中由于灰度值波动产生较高误码率的问题,考虑整体趋势和邻近细节进行曲线平滑处理,本文提出基于指数加权滤波的方法分配抽样行和测试行不同权重进行预测灰度值,抑制灰度值波动的干扰。在此基础上,本文提出的基于参考条纹宽度判决的解调方法,在去除较少错误逻辑值的同时优化了解码时间。本文搭建OCC相关实验平台,方形白光LED通过PWM信号传输上位机发送的数据。光学相机接收数据并离线进行恢复数据。通过设定帧同步头、数据及帧尾的占空比进行识别和分离信息,结合不同等级下像素点的个数,进行解调恢复PWM信号。实验结果表明,当距离为25 cm时,本文设计的OCC系统使用两种不同LED时,均可实现正常通信;使用方形LED时,可达到30 cm的有效传输距离。本文可作为未来OCC系统的解调解码提供了一种参考。