可见光通信中曼彻斯特编码抗频闪研究
2024-03-10刘正翔
刘正翔
(福州职业技术学院 智能工程系,福州 350108)
LED可见光通信系统(VLC)利用LED器件对亮灭状态能高速响应的特点,将LED点亮状态用“1”表示,将LED熄灭状态用“0”表示,通过快速切换亮灭进行信息传递。由于LED闪烁频率大于100 Hz以上时,人眼的感光细胞就难以分辨,并认为是持续常亮状态,因此,LED在用于传递信息的同时,亦不影响照明功能,且该技术具有传输数据速率高、不受电磁波干扰、频谱无需授权、保密性好等优势,目前,已成为无线通信领域的一个研究热点,得到飞速发展[1-6]。但该技术在全球引起众多关注的同时,也给予研究者巨大的挑战,其中之一即为可见光通信频闪效应带来的影响不容忽视。IEEE对LED等照明设备频闪有专门的评价,并在IEEE Std 1789-2015标准中规定了照明设备的频闪风险等级[7-8]。文献[9]指出照明设备的频闪控制不当会使人出现不适并造成错觉,甚至引发头痛、癫痫等症状。文献[10]对于有效改善频闪效应,提出一种基于8B/10B的信道编码解决方案,但由于8B/10B信道采用既定的查表方式,若可见光通信过程传输大量相同的码元段,则编码输出也相同,亦可能出现频闪。文献[11]提出一种基于4B/6B的信道编码方案,也采用查表方式,将从0000-1111的16种4B数据转为固定的6B数据,思路与文献[10]类似,因此也存在频闪可能性。为了改善可见光通信的频闪效应,文献[12]提出一种频域信号处理方法来削弱LED的闪烁,通过傅里叶变换提取3~70 Hz的低频分量,并逆向恢复,但该方法也因此增加了微控制器的代码复杂度。
一、可见光通信的频闪现象
LED可见光频闪现象(LED灯出现闪烁并被人感知到)产生的原因是发光二极管的PN结存在动态电阻和结电容。当LED端电压输入的高电位或低电位时间不均匀时,内部等效电容充电或放电的时间发生改变,即LED端电压上升/下降时间发生改变。也即LED驱动板的码元序列均匀传输“0”和“1”电平时,LED端电压上升/下降的频率维持恒定,当该频率大于100 Hz以上时,人眼识别不出其闪烁状态,也对人体没有影响;若传输码元序列不均匀,出现连续多个的“0”或“1”,必然使得LED端电压出现持续的高或低电平状态,LED在此刻明显出现亮暗交替,即出现了LED频闪现象。
二、曼彻斯特编码抗频闪原理
由于出现频闪的原因在于发射码元序列出现多个连续的“0”或“1”,若将它们按一定规则,编码成均匀出现的“0”或“1”序列,即可消除频闪效应。曼彻斯特编码完美地“拆散”连续的“0”“1”序列,它将每个二进制码元用电平跳变的方式来表示,即将数据位“0”编码为电平从高到低的跳变:“高—低电平”;将数据位“1”编码为电平从低到高的跳变:“低—高电平”。如图1所示,把4个连续的“0000”编码成“10101010”。
图1 曼彻斯特抗频闪编码
曼彻斯特编码虽然设计简单,且有效解决频闪问题,但它将1个bit变成2个bit,也即要传输的码元序列由原来的N个变成2*N个,传输效率大大降低,仅为编码前的50%。
三、本文编码的改进思路
在LED可见光通信系统中,理论上同样的数据码元传输序列,传输速率越高,产生频闪现象的概率越低,一般通信系统的传输速率大于500 bps。本文为验证编码改进方案能否有效改善频闪效应,假定该系统码元传输速率仅约为500 bps,则该系统只要出现连续“0”或“1”的码元个数大于4,就可能导致LED闪烁频率在100 Hz左右,从而被人眼识别到频闪。
现将LED要发送的码元序列按字节存储(软件设计以字节为单位发送),当要传输的下一个字节8bit中,若出现连续“0”或“1”的bit个数大于4,则将该字节进行曼彻斯特编码后再发送,其他情况均不做曼彻斯特编码,如图2所示。以传输100个字节数据为例(软件设计以字节为单位),若出现4个以上连续的“0”或“1”的字节数为5,则改进的曼彻斯特编码抗频闪方案一共传输的字节数为105个,传输效率约为95.24%,较曼彻斯特编码的50%,大大提高了传输效率。
图2 抗频闪编码改进流程图
四、抗频闪改进编码测试
(一)实验装置搭建
为验证本文改进方案对抗频闪效应的改善是否有效,搭建可见光通信中的LED发射测试平台,如图3所示。
图3 可见光抗频闪测试实验装置图
图3为LED可见光抗频闪测试装置图,图中上方为普中STC89C52系列单片机开发板,晶振频率12 MHz,最小识别时间1 us,完全满足本实验发射频率要求。该单片机软件对数据进行编码,输出码元序列传输至LED发射模块。图中下方为LED可见光发射模块,其接收CPU传输来的码元序列,通过LED发射出去。该模块灯珠采用5 mm高亮LED,型号为NSPB500AS;驱动LED的三极管则采用高频功率管,其型号为MRF284,开关速度最高达到2 GHz,满足本实验发射频率要求。图中对LED灯珠外加聚光透镜,以获得更好的聚光效果。
(二)实验数据与分析
为测试方案的有效性,实验降低传输速率,先用STC89C52系列单片机产生速率为500 bps、宽度2 ms的循环码元序列(固定5个字节,其中有1个字节连“0”个数超过4),这意味着未编码前LED发射频率可能小于100 Hz。根据IEEE Std 1789-2015标准,存在小于100 Hz的信号会引起高风险频闪现象,也即可能产生频闪效应,使人眼感觉不适。
实际上,因本实验装置在编码前循环发送的码元序列存在4个以上连“0”或连“1”情况,肉眼即可辨别其存在明显频闪现象。为记录编码前后频闪现象的差异,本实地场景测试使用4K高速摄像机,以每秒超过300帧的速率进行高速摄影,对编码前后的LED频闪情况分别进行录制,将其视频文件截取约550帧数据进行分析,并将图像序列导入Matlab处理。Matlab读取MP4格式视频文件并计算帧的总数,将每个视频帧转为灰度图像,进而逐帧计算平均灰度值,取相同坐标点灰度值进行对比,即将编码前后的闪频与否情况,转化为灰度值的对比。
出现频闪现象的LED视频必然出现图像画面的快速亮暗交替,导致视频帧转为灰度图像后,其灰度值出现快速波动变化,而频闪改善后的视频灰度值则相对稳定。
如图4所示,由于编码前的序列存在频闪现象,其灰度值的峰—峰值呈现“毛刺”频繁出现,且灰度值在55至70之间上下波动剧烈。而编码方式改进后的序列中,对应的视频帧灰度值均化程度大大优于编码前的灰度值曲线,且灰度值大部分稳定在60至65的范围内,也不再出现大范围“毛刺”现象。由此得出,本系统的改进编码对抗频闪起到较好的抑制作用。
图4 编码前后视频灰度对比
为更好地测试改进编码效果,调整光照强度并编程将数据传输速率设置为1 Kbps,分别录制编码前后的视频并导入Matlab分析。如图5所示,测得编码前图像帧的灰度值依旧在22至27之间波动,但波动较为平稳。虽然肉眼无法察觉闪烁,但摄像头依旧可检测出其闪烁传输状态。而该速率下的编码改进效果较为明显,编码后的灰度值几乎稳定在25~27。由此得出,编码后的LED可见光在该速率下传输信息非常稳定,不会造成LED端电压异常波动。
图5 编码前后录制视频的灰度对比
进一步测试表明,当LED可见光通信传输速率从1 Kbps向2 Kbps增加过程中,图像帧灰度值在25至27范围的2个灰度值间波动,变到2 Kbps速率下时,几乎成为一条稳定直线。只有当约第80帧时出现轻微波动,如图6所示。由此可见,LED可见光通信中,以字节为单位的发射序列下,当传输速率超过2 Kbps后,使用本编码改进方法即便打开高速摄像机观察,也几乎可以忽略频闪现象,不会对人体造成不适。
图6 传输速率大于1 Kbps的灰度对比
五、结束语
本文通过分析现有的基于曼彻斯特编码的抗频闪编码方法,搭建LED可见光通信发射平台验证本文编码改进方案的可行性。通过高速摄像机录制编码前后的视频,导入Matlab进行分析图像帧的灰度值。实验表明,当传输速率在500 bps时,编码前的灰度值在55~70间呈现“毛刺”状剧烈波动,即由频闪导致;而编码后视频帧灰度值均化程度大大优于编码前的灰度值曲线,该值稳定在60~65,由此频闪现象得到改善。而该方法中,将传输速率增加至2 Kbps后,灰度值波动十分稳定,即便在高速摄像机下观察,也不会出现LED频闪现象,由此验证了本文编码改进的有效性。