可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读

之前博客《可见光通信》较为详细的介绍了可见光通信技术。而本博文则是对OCC(optical camera communication)或称可见光成像通信进行深入的介绍

目录

引言

可见光成像通信(OCC)

基于CCD的OCC

基于CMOS的OCC

OCC的关键参数分析

照相机快门速度(Camera Shutter Speed)

感光度(ISO)

速率(Camera Frame Rate)

卷帘快门的扫描速率(Camera Rolling Rate)

焦距(Focal Length)

OCC的优缺点分析

插曲:可见光成像定位技术

IEEE 802.15.7

Dimming by adding compensation symbols

RS-FSK tutorial

RS-FSK发射波形

Relation between signal frequency and the observed strip width in the captured image

Survey of parameters of commercially available image sensors

Transmitted signal frequency(preamble frequency)

Symbol duration(符号持续时间)

关于标准中的PHY

OCC waveforms decoding guide

CSK

UFSOOK

S2-PSK decoding method

DS8-PSK decoding method

HS-PSK decoding method

C-OOK decoding method

A-QL decoding method

Offset-VPWM decoding method

VTASC decoding method

SS2DC decoder

IDE decoder

参考资料


 

 

引言

可见光通信(visible light communication,VLC)是通过以人眼识别不了的高频(>200HZ)来控制LED的亮度变换。在照明的同时实现通信。对于VLC的接收端可以分为两周类型:PD和camera。传统的意义的VLC可以认为是以PD为接收端的非成像通信。而OCC则是以camera为接收的成像通信。与此同时,由于OCC需要考虑frame数据的丢失以及接收端快门的速度,在调制方式、数据帧结构上,VLC和OCC还是有比较大的区别的。下面先介绍一下OCC。

可见光成像通信(OCC)

可见光成像通信指的是利用图像传感器作为可见光通信的接收端接收端。图像传感器主要分为CCD(电荷藕合器件)图像传感器和CMOS(互补金属氧化物半导体)图像传感器。两者除了在工艺与材料上的区别外,最重要的是成像原理的区别(又或者说快门的工作机制)。如下图所示。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第1张图片

基于CCD的OCC

CCD采用的是全局快门(global shutter mechanism),即图像传感器的每行像素在同一时间段内曝光。对于基于CCD图像传感器的VLC系统,每幅图像一般只能获得一位的数据。根据奈奎斯特定理(Nyquist sampling),其通信速率必定低于帧速率(图像传感器的帧速率在30~60fps之间),因此不足以传送数据。虽然也可以采用特制的高速CCD图像传感器以提高通信速率。但是这种特制的传感器制作成本高,不适用于实际的定位场景。此外,采用LED阵列以实现MIMO调制技术,也可以实现CCD图像传感器单帧传送多位的数据。然而LED的驱动频率需要配合CCD图像传感器的采样率,可能导致人眼可感知的LED闪烁。除此以外,也可以采用降采样调制方式,以一定时间间隔来捕获光信号。

基于CMOS的OCC

CMOS采用的是卷帘快门(Rolling Shutter Mechanism),如上图(b)所示。卷帘效应采用逐行曝光的形式,利用这一特性可以提高可见光成像通信的数据速率。每个时刻,CMOS图像传感器只有一行(Row)曝光。当图像所有行都曝光结束后,再将不同时刻捕获的所有行曝光的数据合并在一起形成图像。这种逐行曝光方式导致在拍摄快速闪烁的LED灯具时,图像出现明暗相隔的条纹(本文将其称为光条纹码),如上图(a)所示。灯具闪烁越快,条纹数量越多。通过对图像中明暗相隔的条纹解码,可以传递若干位的信息,进而可实现可见光成像通信。灯具的闪烁频率必须小于CMOS行扫描的频率,否则就会导致数据的丢失。因为当LED灯闪烁频率大于行扫描的频率时,CMOS传感器只能获得LED所发射的平均光强,而不能获得LED像素区域的明暗条纹。CMOS图像传感器的曝光时间(Exposure Time)与感光度(ISO)会影响到LED-ID光条纹码的获取。

 

OCC的关键参数分析

对于OCC,相机参数都会大大的影响通信的性能。除此以外,相机的参数与OCC的性能之间存在一个trade-off的关系。因此,非常有必要研究清楚每个参数对于OCC的影响。

照相机快门速度(Camera Shutter Speed)

数字相机通过将来自目标的光线转换为CCD或CMOS图像传感器的电信号。因此,图像传感器需要快门(Shutter)打开让光子进入到感光元件所用的时间。这一过程也可以称为:曝光时间(Exposure time is the period of time when the camera shutter opens at capturing time.),曝光时间决定像素收集光子的时间。当每个像素的感光元件积累电子到饱和时,电荷会溢出到相邻像素的感光元件中。因此,如果曝光时间太长,会导致LED-ID光条纹码中亮条纹的宽度变宽(如下图所示)。所以,通过把CMOS图像传感器的曝光时间调低,即可获取清晰的光条纹码。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第2张图片 以CMOS图像传感器为例:不同曝光度下的光条纹码的效果 (a)1/4000, (b)1/2000, (c)1/1000 (d)1/200题

对于CMOS与CCD而言,不同的地方在于它们快门的工作机制(在上一个部分已经进行了介绍)基于曝光时间,相机的快门速度可以计算。曝光时间影响着信号比。曝光时间越长,信噪比越高(The higher SNR achieves, the longer exposure time are configured),然而当曝光时间足够长,光噪声会降低通信带宽(同时对于CMOS而言,曝光时间越高,获得的条纹越不清晰,提升解码难度)

感光度(ISO)

ISO。即图像传感器中感光元件的感光速度。ISO值越高,感光元件的感光能力越强,像素达到饱和所需的光子就越少。这意味着在相同曝光时间内饱和像素的概率增加,会导致捕获图像中LED-ID光条纹码的亮条纹的宽度增加,当ISO高于一定值时,将不会产生光条纹码。要获取清晰的光条纹码,需要将ISO的值也调低。如下图所示。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第3张图片 以CMOS图像传感器为例:不同IOS值下的LED-ID光条纹码的效果 (a) 50, (b) 100, (c) 1000 (d) 5000

速率(Camera Frame Rate)

所谓的相机的帧速率是指:一秒相机可以捕获的图片的数目(fps)。对于帧速率,主要则是影响了OCC的通信速率了。OCC的通信速率可以为帧速率*每帧携带的信号

目前市面上一般的camera为30~60fps左右。因此这会大大的限制了OCC的通信速率。除此之外,目前的相机还存在帧速率的差异(frame rate variation),就是说帧速率并不是固定不变的。因此大大加深了采样与解码的难度。

卷帘快门的扫描速率(Camera Rolling Rate)

在OCC中,发射端不同的optical clock rate,会导致接收的图像中条纹的宽度不一样。而条纹的宽度也由图像传感器的分辨率来确定。条纹的宽度(pixel)可以通过下式计算

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第4张图片

Fs is camera rolling rate, fTx is Tx optical clock rate.对于CMOS图像传感器,需要知道相机的rolling rate来获取正确的信号采样。然而,相机的rolling rate不会被提供的,因此需要通过实验来测试。为了测试相机的rolling rate,LED发送一个已知的optical clock rate(通过多个不同的optical clock rate可以保证测试结果的准确性)测试的流程图如下图所示。

首先,获得2D图像。然后通过一些图像处理的技术提取一维的矩阵向量。de-trending之后,一维的向量矩阵通过zero crossing detector来计算每条条纹的像素数目。更高的optical clock rate,更宽的条纹宽度。因此,对于对于基于rolling shutter effect的调制方法,应该设计为可以在合适的optical clock rate(对应不同的相机的快门扫描速率)下工作的,以免产生采样错误。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第5张图片 Camera rolling rate measuring diagram

焦距(Focal Length)

焦距(mm为单位)如下图所示。焦距影响了捕获图像的尺寸以及相机的FOV。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第6张图片 Illustration of the focal length of the camera

焦距与捕获图像的距离的关系如下公式所示。根据LED灯的尺寸以及焦距,可以计算出OCC的最远通信距离。

Where f is focal length, d is capturing distance, HLED is practical LED size, and hLED is LED size in the captured image.

根据Nyquist采样定理,当拍摄图像中的LED尺寸仅为2像素时,OCC仍然可以工作:

HLED is practical LED size (in m), N is the number of pixel rows of an image, hIS is image sensor size (in mm).

 

OCC的优缺点分析

之前博文《基于图像传感器的可见光通信的优缺点分析》已经介绍过OCC的优缺点了。此处就不再阐述了、

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第7张图片 距离变化对LED-ID光条纹码调制解调算法的影响 (a) 10cm; (b) 20cm; (c) 50cm; (d) 80cm; (e) 100cm; (f) 150cm

 

插曲:可见光成像定位技术

对于可见光定位技术一样也是分为基于PD的非成像定位,以及基于camera的成像定位技术。

由于基于PD的VLC定位系统实现简单,不需要涉及图像处理的手段,成本较低,因此,前期大多数VLC定位技术的研究都以PD接收为主。然而,基于PD的VLC定位研究大多数却局限于仿真层面。由于实际环境中,基于PD的非成像定位技术依赖于角度或接收信号强度的测量、环境光强的变化等,会导致定位误差较大。与此同时,常用的基于PD的VLC定位的信道模型是理想化模型,系统的相关参数的误差均会引起较大的定位误差。

而基于图像传感器的成像定位技术,则是通过可见光成像通信技术来获得ID信号,同时通过接收到的二维图像进行相应的图像处理将二维图像转换为接收终端与LED参考点光源的三维的位置信息,即利用图像传感器中所接收的LED图像距离几何关系计算出目标位置。虽然基于图像传感器的VLC定位技术需要相应的图像处理技术以及会受限于图像传感器的视场角,但其受系统及外界影响因素较少,定位精度比基于PD的VLC定位方案要高,且图像传感器可以与智能手机等智能移动设备相结合,真正实现了VLC定位技术从实验室走到商业应用(而基于PD的VLC定位方案,需要外置PD传感器才可以实现定位)。

除此之外,由于基于PD传感器的定位本质上是检测光强,因此容易受到反射光信道的影响,进而在实际应用中会大大影响定位性能,特别是在室外的场合或者有强背景光源干扰的情景。而VLC成像定位技术则可通过图像传感器的空间分离特性,既可以将不同的LED信源以及背景光源分离开来,从而有效地避免多径干扰以及背景干扰,同时也可以接收到来自空间不同位置LED定位节点发射的ID位置信息。进一步地,随着智能移动终端及可穿戴设备上图像传感器的普及,基于图像传感器的VLC定位技术比基于PD的VLC定位技术更加具备商业化的潜力。

下面给出本人搭建的基于图像传感器的可见光定位系统的实验视频。图像传感器安装在移动机器人上(基于ROS开发可见光定位算法)。仅仅利用两盏LED灯具即可以实现高精度的三维定位(定位误差为厘米级别)

简易可见光定位系统

对应的理论介绍可以参考本人的硕士论文

 

IEEE 802.15.7

该标准是局域网和城域网的通信标准,其中part 15.7为短距离无线光通信。标准中主要给出了OWC的物理层(physical layer,PHY)和媒体访问控制(medium access control,MAC),同时还包含了OCC。而本博文主要对OCC部分进行介绍。也有基于显示器的VLC介绍。

下面对IEEE 802.15.7中跟OCC相关的部分写出来。可能解读得不够全面,欢迎各位指正与交流哈~

Dimming by adding compensation symbols

做过OCC实验的朋友会发现,无论是CSK还是OOK调制,都会出现灯具的亮度有波动的情况,这在照明中,是不允许的。因此,通过添加补偿符号进行调光。由于OOK调制以及镜脉冲调制MPM都需要保证一个symbol周期内的亮度恒定,因此需要将补偿的时间插入数据帧中,来校正平均亮度(如下图所示)。关于调光还有很多介绍,针对不同的调制技术有不同的补偿方法,本博文就不一一介绍了,有兴趣的可以原文。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第8张图片 OOK dimming structure

 

RS-FSK tutorial

RS-FSK即基于rolling shutter effect的FSK(Frequency Shift Keying)。下图为2FSK的原理

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第9张图片

RS-FSK发射波形

从发射机的观点来看,RS-FSK使用简单的频移键控信号格式(frequency shift keying signal format)。首先,许多K频率用于表示log2K位的位模式。其次,发射机采用方波(square wave pulse shaping),发送0、1两种等级的信号,因此不用采用复杂的数模转换。同时可以获得更清晰的条纹。RS-FSK如下图所示。其实可以理解为简单的频率调制

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第10张图片 RS-FSK signal waveform and camera-captured image

Relation between signal frequency and the observed strip width in the captured image

对于相同的距离的情况下,频率越高,可以认为每个信号的持续时间越小,这样条纹的宽度越窄,同时在ROI区域内的条纹数目也会越多。

(The strip width is defined as the number of pixels occupied by a set of bright strip (exposure during the transmitter is in the ON state) and a dark strip (exposure during the transmitter is in the OFF state) in a received image.)对于一个频率为f HZ的方波,一个完整的周期的持续时间是1/f s,因此,对于相机的曝光而言,每1/f s都应该读出一对明与暗的条纹。在另一方面,相机读出一行pixel的时间为read-out duration,。对应的亮条纹的宽度为Wb,暗条纹的宽度为Wd,因此,一对明暗条纹的宽度为W=Wb+Wd。而理论上,一对明暗条纹的宽度应该为(如下图所示):

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第11张图片 Relationship between RS-FSK signal frequency and the strip width

实际上,接收器需要观察大量条带对的宽度,以计算一对条带占用的平均行数,

Survey of parameters of commercially available image sensors

下面是一些手机的参数

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第12张图片 Read-out duration of cameras

 

Transmitted signal frequency(preamble frequency)

RS-FSK的preamble frequency为2.2KHZ,而一般的商业相机的read-out time 是20 μs~30 μs,通过上面分析,亮暗条纹的宽度约为15pixel与23pixel左右。除此以外,从preamble frequency接收到信号可以用于矫正read-out duration,减少误差。

对于使用频率的建议是:For the set of frequencies used by the data symbols, it is recommended to use frequencies between 500 Hz and 1.4 kHz. The former corresponds to a strip width of 66 pixels to 100 pixels, while the latter corresponds to a stripe width of 23 pixels to 36 pixels.

Symbol duration(符号持续时间)

RS-FSK所采用的信号符号持续时间应该等于接收相机的帧持续时间。由于大多数相机在录制视频时,帧速率为30fps,因此,默认的信号持续时间也应该是1/30s

 

关于标准中的PHY

在这个标准中,一共有6个PHY。PHY负责下面几种任务:

  • OWC收发器的激活和停用
  • 接收帧的WQI
  • 信道的选择
  • 数据传输与接收
  • 纠错
  • 同步
可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第13张图片 PHY I operating modes
可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第14张图片 PHY II operating modes
可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第15张图片 PHY III operating modes
可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第16张图片 PHY IV and PHY V operating modes
可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第17张图片 PHY VI operating modes

不同的PHY对应不同的调制技术以及信道。由于本博文篇幅有限。后面会写博客对几个PHY进行介绍。

 

OCC waveforms decoding guide

下面的几种解码其对应的编码都在标准中有介绍。除了下面列出来的,还有基于CCD的OCC。在本博文就先不展开介绍。有兴趣的读者可以看原文哈~

CSK

CSK信号由七个色带中的三个彩色光源产生。CSK星座三角形的三个顶点通过三种颜色的中心波长来决定。有些光源有可能会在不同频率处有峰值而不是带宽计划的中心。光源的频频也有可能分布在多个频带上。CSK系统的实现者可以根据实际光源的中心波长来选择色带。下图显示xy色坐标值,假设选择的光源光谱峰值出现在七个色带的中心。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第18张图片 xy color coordinates

上图对应的色坐标:

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第19张图片 Center of color bands on xy color coordinates

4-CSK星座图的设计规则

4CSK symbol 点由下图定义。点I、J、K是上图所定义的三种颜色带。下图中,x和y都是相对值。S0~S3是是4-CSK的4个symbol点。s1~s3是三角形的三个顶点,S0是三角形的中心。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第20张图片 Constellation design rule for 4-CSK
可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第21张图片 Data mapping for 4-CSK

8-CSK的设计规则

如下图所示。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第22张图片 Constellation design rule for 8-CSK
可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第23张图片 Data mapping for 8-CSK

16-CSK的设计规则

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第24张图片 Constellation design rule for 16-CSK
可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第25张图片 Data mapping for 16-CSK

Valid color band combinations (有效色带组合)

CSK星座由三个色带的组合决定。排除了某些不能在xy颜色坐标上形成三角形的组合,例如 (110-101-100) 或 (100-011-010).

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第26张图片 Valid color band combinations for CSK

下图为当采用color codes (110, 010, 000)时候的CSK星座图

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第27张图片 Valid CSK constellation example for codes (110, 010, 000)

下图展示了,当采用color codes (110, 010, 000)时的颜色带的结合以及xy坐标值

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第28张图片 Color band combination example for (110, 010, 000)

下图为使用color codes (110, 010, 000) 时的CSK星座点

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第29张图片 CSK constellation made by color band combinations

CSK color mapping

在色坐标上,4-CSK的颜色映射如下图所示

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第30张图片 CIE 1931 xy color coordinates

点i、j、k是三种光源的xy坐标。而点p是4-CSK分配的颜色点(allocated color points)之一.点p的强度由i、j、k产生。他们之间坐标以及强度的关系如下所示。在接收端,xy的值通过计算三种颜色的光功率获得,而xy的值也通过解码为接收数据。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第31张图片

CSK calibration(校准) at the receiver

OWC会有一定程度的退化。例如,多种颜色的不平衡,多种颜色之间的干扰,或者由于光设备的特性或环境光源的干扰导致xy色坐标的错误。因此采用颜色校准来实现CSK补偿

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第32张图片 CSK system with color calibration

在数据通信前,系统可以通过正交序列来估算信道传输矩阵

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第33张图片

传播偏差可以通过信道矩阵的逆乘以接收信号来补偿

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第34张图片

可以采用Walsh code来进行信道估计,如下图所示。在传输信道估计序列期间,光源会根据walsh code来进行OOK调制。三个长度为4的walsh code 序列(W(1,4) = {1,–1,1,–1}, W(2,4) = {1,1,–1,–1}, W(3,4) = {1,–1,–1,1})用于信道估计。walsh code的每位都被传送2次,通过获得两个bits的平均来进行精确的信道估计。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第35张图片 Walsh codes for color calibration

 

UFSOOK

UFSOOK的前导码(preamble)是一个帧首定界符(start frame delimiter,SFD)由两个连续的视频帧的高频OOK加上UFSOOK逻辑单频连续两帧视频组成,如下图所示

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第36张图片 UFSOOK SFD

UFSOOK的调制框图如下图所示

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第37张图片 UFSOOK block diagram

UFSOOK编码器将bits编码为OOK形式

  •  Logic zero: represented by a OOK frequency that is an integer multiple of the camera frame rate.
  •  Logic one: represented by an OOK frequency that is an integer multiple + 1/2 of the camera frame rate.

UFSOOK spatial(空间) FEC

空间冗余的FEC通过在多个LED重复数据帧来应用到UFSOOK中,每个均有轻微的时间延迟。这些延迟是由于时钟打滑(clock phase slippage)产生的。i.e., the RX clock is not synchronized to the TX clock。但对于大多数数据帧,只需要足够防止在数据帧的持续时间内出现位边界滑动。虽然实际延迟量取决于实现,但大于四分之一位持续时间的时间延迟通常是足够的。如下所示

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第38张图片 UFSOOK spatial FEC

UFSOOK temporal(时间) FEC

FEC时间的冗余可以通过单个LED连续重复每个数据帧来应用于UFSOOK,每个重复的都有轻微的时延。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第39张图片 UFSOOK temporal FEC

关于UFSOOK还有很多的介绍,在这里就不阐述了,有兴趣的读者

 

S2-PSK decoding method

关于S2-PSK调制如下图所示。通过FEC编码,然后输出数据输入到1/2-rate线性编码器。比特序列最后被映射到一对LED上。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第40张图片 S2-PSK block diagram

如下图所示,两个波形驱动一对LED来获得相同或相反的波形。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第41张图片 S2-PSK bit-to-symbol mapping

在一个采样时间,相机捕获两个灯源(LED1和2)。如下图所示。接收端通过XOR 操作来检测LEDs的信号。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第42张图片 An example of S2-PSK decoding

 

DS8-PSK decoding method

每三个bits会被映射到一对两组的波形来驱动一对光源。因此,DS8-PSK的一个工作周期内的时隙(time slots)数目为8。为了将一个DS8-PSK的工作周期传进8个时隙中,每个光源都应该包含最小8个LEDs。驱动LED的波形应为矩形,调制速率相同,但相位不同。对于驱动一个光源内的LED的一组波形来说,第个波形应该比第个波形延迟1/8工作周期。如下图所示。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第43张图片 Waveforms to drive a group of eight LEDs within a light source (example of 25% dimming)

通过使用一对光源(每个光源包含8个LEDs),通过控制波形的相位的移位值(S_Phase_Shift)来驱动两个LED光源,每个光学时钟会传送三个bits的数据。通过保持第一组波形的所有相位为0; T/8; 2T/8; 3T/8; …; 7T/8,同时移动第二组的所有波形一个相移(S_Phase_Shift = i × T/8)来实现。将3个bits映射到S_Phase_Shift如下所示:

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第44张图片 Mapping table from bits to S_Phase_Shift

对于解码:

在一个采样时间里,相机捕获两组信号源。每一组形成8种 ON/OFF的状态。如下图所示。设为S_Phase

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第45张图片 S-Phase representing the captured set of states of a light source under dimming

同时,对于bad-sampling (当摄像机捕捉到LED组中单个LED的转换时间)会产生不清晰的状态(x_state) ,如下图所示

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第46张图片 S-Phase representing the captured set of states of a light source (with x_state) under dimming

从一张图像中,两组的光源会产生一对 S_Phase values (S_Phase(1) representing the captured state of the group 1 and S_Phase(2) representing the captured state of the group 2). 然后,S_Phase_Shift的值为

下图展示了DS8-PSK的解码过程

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第47张图片

 

HS-PSK decoding method

HS-PSK调制的实现过程如下图所示。首先两个数据流分别由低速的S2-PSK以及高速的DS8-PSK调制。其中,S2-PSK的输出用于调制DS8-PSK的亮度水平。因此,输出的波形属于两者的混合调制。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第48张图片 HS-PSK block diagram

正如上一节中描述的那样,DS8-PSK调制器会将3个bits的信息映射到一对两组的波形中,驱动一对光源在较高的optical clock rate(如10KHZ)。同时,它定期将调光级别从选定的低调光级别更改为选定的高调光级别。在DS8-PSK改变调光水平期间,会由S2-PSK modulator.控制产生一个低频的AM新号。结果是,S2-PSK的时钟间隔将会是DS8-PSK时钟间隔的几倍。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第49张图片 HS-PSK waveform to modulate vehicular light sources

对于解码:

通过双摄像头(dual-camera)来接收。混合调制信号将通过下面的方式来解码:

  • 采用低速相机(low frame reta camera,但帧速率也应该大于S2-PSK的optical clock rate)来检测S2-PSK信号,可以使用CCD或CMOS
  • 采用global shutter and high-speed camera(帧速率应该大于DS8-PSK的optical clock rate)来解调DS8-PSK信号

 

C-OOK decoding method

C-OOK的全称是Camera On-Off Keying,是一种基于OOK调制的降采样调制技术。

其编码框架如下图所示

C-OOK block diagram

首先,数据由FEC编码,然后asynchronous bits(异步位)插入到包中,异步位是用于支持rolling shutter相机的帧速率变动以及检查包的序列。再采用FEC对包进行再次的编码。FEC可以分类为三代。第一代的FEC主要有Elementary Hamming code, Bose–Chaudhuri–Hocquenghem (BCH), Reed-Solomon (RS), or convolutional code (CC)这几种。第二代的FEC可以认为是RS+CC或者两个RS结合。第三代FEC则是使用先进的解码技术,如turbo codes 和LDPC。

在OCC中,run-length-limited (RLL)编码被用于许多调制中以为此发射光强的DC平衡,提供错误检测的能力,以及提供时钟恢复。Manchester, 4B6B or 8B10B coding均是常用的RLL编码。通过下面公式来计算编码效率

不可否认的是,Manchester编码仅仅只有50%的编码效率。4B6B coding 效率为 75%. 8B10B 编码效率可以高达 80% 然而它需要每个包10bits。因此,对于camera而言,有限的shutter speed 以及 frame rate,选择合适的RLL应该是需要达到不降低带宽同时不会导致人眼感知闪烁的需求。此处采用Manchester 以及 4B6B coding

而对于数据帧结构(Data packet structure),如下图所示。该数据帧结构通过重复发射子包来解决帧速率波动性以及time gap的问题(A packet is the number of multiple repetitions of a data sub-packet to avoid missing data in between the gap time of adjacent images.)。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第50张图片 Packet & Data sub-packet (DS) structures

Where NrepetitionDS is the number of repetition sub-packet per packet, DS_rate is the C-OOK sub-packet rate, and packet_rate is the C-OOK packet rate, which is the number of different packet that is transmitted during a period.

下面表格表述了RLL编码的结构。同时采用Manchester 以及4B6B coding是因为它适用于所设计的包

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第51张图片 DS detailed packet structure

数据子包(data sub-packet, DS)包括:前导码和有效载荷部分(a preamble symbol and a payload section)。其中有两个前置的异步位(asynchronous bits),一个后方的异步位,均包含2bits。

DS 的负载数目决定了使用哪个C-OOK的模式,在IEEE 802.15.7-2018 standard中,有4种C-OOK的模式。如下表所示(决定了重复传送多少次子数据包)。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第52张图片 C-OOK suggested working mode

对于C-OOK的解码:先通过基本的图像处理以及下采样来提供1维的数据。然后通过de-trended来降采样,从数据中去掉trend可以使得接收端解码器关注数据关于trend的波动。然后再通过SF检测过程,采用匹配滤波器来实现SF检测以及解调过程。解调程序包括两个并行解码器,前向与后向解调器(forward and backward decoder),可以通过检测SF以及Ab 位的位置来实现。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第53张图片 C-OOK Rx decoding procedure

Matched filtering decoder

匹配滤波器可以应用于bit detection。如果Tx的脉冲响应与Tx的脉冲形状相匹配,则可以通过提高输入信号的信噪比来帮助Rx以较小的误差对输入信号进行采样。匹配滤波器也可以通过去除一些噪声来提升系统整体的信噪比。

Data fusion algorithms

C-OOK是一种欠采样调制(undersampled modulation)通过提供包恢复过程的数据融合技术,来减轻帧速率变化的影响。当相机的rolling rate大于发射端的optical clock rate时,采样的过程可以被称为过采样(oversampling scheme)。在过采样中,如果图形的行数目远远大于DS的数目,那么可以较为简单的恢复所有的bit。在另一方面,我们也可以说DS可以被完全的恢复,如果每一个DS都被一张图片所捕获。可以完整恢复数据帧结构的条件是:

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第54张图片

Where NDS is number of pixels per DS, NCam is the total number of pixel rows per captured image, Fs is camera rolling rate, and fTx is Tx optical clock rate.

而对于C-OOK的解调

要解调一个完整的DS(data sub-packet),LED与camera的距离应该足够的近。如下图所示。跟前面提到过的一样。距离影响了条纹的数目,进而影响了数据帧结构的完整性。所能传输的最大距离应该为刚好图像能捕获完整的数据帧(the maximum distance achieved is the distance at which the camera can get the amount of data equal to the amount of the sub-packet)

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第55张图片 Decoding scenario

Decoding case 1: Fuse incomplete parts of a sub-packet into a complete one.

对于一个较远的距离(如上图的d1)摄像机可以检测前导码符号(preamble symbol),然后解调子数据包的一部分数据;然而,从前导码的位置计数的前向部分和后向部分是否属于子分组的不确定性是有问题的。当发送的子包很长时,在较短的距离上,也会发生少量数据的问题。(the uncertainty of whether the forward part and the backward part counted from the position of the preamble belong to a sub-packet is problematic. The problem of a small amount of data also happens at a shorter distance when the transmitted sub-packet is long.)

而代表时钟信息的异步位可以用于这种情况下的异步解调

下图描述了当LED的尺寸在图像中较小时,用于通过图像的前面部分与后面部分恢复一个数据包的解调算法。通过观测preamble的前面与后面异步位的值,融合子包的这两个部分策略可以为:

  • case 1:帧间(Interframe)数据的融合:在两张图片中,融合一个包的两个部分为一个完整的包。当一张图片中的两个Ab位不一样时,采用这种方法
  • case 2:帧内(Intraframe)数据的融合:在一张图片中,恢复一个完整的包。用于一种图片两个Ab位是相似的情况下。
可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第56张图片 Decoding algorithm at a far distance

由于帧速率波动而导致的TX与RX的异步,一个DS可能不会完全的出现在一张图片中。此处,可以通过2种融合算法来恢复所有的DS。如下图所示。

  • 帧间数据融合:在不同的图片中,从两个bit序列来恢复一个DS。在这个场景中,每个bit序列的异步位用来相互比较,如果他们是相同,两个bit的序列将会融合到一起成为一个完整的DS。
  • 帧内数据融合:在同一张图片中,从两个不同的bit序列中恢复一个完整的DS。通过比较两个bit 序列中Ab位的相似性,RX可以决定需不要将他们融合到DS中
可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第57张图片 C-OOK data fusion techniques: (a) Inter-frame data fusion, (b) Intraframe
data fusion

在一个DS中,每个前置或后置的异步位都会携带两个bit(Ab1 和 Ab2),前置与后置异步位携带相同的信息。Ab1 和 Ab2都是方形脉冲。当一个DS信号传输时,Ab1在每个阶段都会从0/1转换为1/0,而Ab2只会在每传输两个DS才转换。

Decoding case 2: Combine data fusion and majority voting

当相机距离LED足够近的时候,每张图片中捕获的数据会大于一个子数据包。因此,多出来的数据可以通过majority vote(多数票),被用于矫正可能的错误。

下图给出了帧内数据融合的例子。融合一个子包后,额外多出来的数据会被用于矫正误码。假设,camera的帧速率可能会不同,但大于包的传输速率。因此,任何融合后的额外的数据都可以用于误差矫正。将属于子包的多个图像分组以进行投票

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第58张图片 An example of decoding employing intraframe fusion along with error correction

Asynchronous bits (异步位) Missing packet detection on frame rate drop

asynchronous bits are proposed to support frame rate variation when recovering data packet。异步位不仅可以用于恢复DS,也可以用于检测丢失的数据包。下图展示了采用异步位来检测丢失的C-OOD数据

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第59张图片 An example of the detection of a missed symbol by using two Ab inserted

在一些场景下,帧速率可能会降低深圳低于包速率,而这可能会导致某个包完全的丢失。例如两个bits (Ab1, Ab2)被插入到数据位的前面及后面

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第60张图片 Data sub-packet structure

Ab1,和Ab2都是方波信号,结合两个Ab(Ab1, Ab2)会产生四个不同的值,00,01,10,以及11。因此,使用这两个Ab可以最多检测两个连续的丢失的包。换言之,可以成功检测丢失的包,只要帧速率不要低于1/3的包速率。

 

A-QL decoding method

A-QL系统的框架如下图所示,驱动三色LED(band i, j, k)。数据序列包括:PHR, PSDU, and Ab bits都会被输入到信道编码器中。该A-QL信达编码器会基于输入的bits数据来控制RGB信道的强度(Pi, Pj, and Pk)。不同于CSK,A-QL的各个颜色信道的强度调制是相互独立的。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第61张图片 A-QL system diagram

三种band的不同选择方案如下所示

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第62张图片 Color band combination example for (110, 010, 000)

Two-dimensional (2D) color code design

A-QL编码的2D设计如下图所示。码的外部区域用于支持码的检测(类似于QR code),而内部的区域则是调制数据,

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第63张图片 (a) Design example of 16x16-cell A-QL code
(b) allocation of bits onto A-QL code

对于m*n单元矩阵有:

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第64张图片

当每个角均有4个参考单元(一共16个参考单元),对应的4*4参考单元为

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第65张图片

信道编码

编码位块应映射到强度值(binary values)矩阵中以驱动数据单元分别通过三个颜色信道(R、G、B)

对于一个m*n的TX,(m*n-16)的数据单元可以携带3*(m*n-16)的二进制信号

采用二值矩阵来驱动所有m*n的单元的过程如下:

对于驱动4*4参考单元的强度矩阵是恒定的

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第66张图片

在颜色带上数据单元的强度值由bit映射。当数据的长度跟A-QL码不匹配时,会在数据的尾部插入0。

Asynchronous bits (Ab) insertion

为了支持RX处理帧速率的波动性(frame rate variation),需要将异步位插入到每个数据块中。

Bits-to-intensity mapping

i,j,k三色的调制是独立的,基于3个bit (b0b1b2)的输入,值得注意的是,调制强度的时候不需要颜色的组合(而CSK是需要的)。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第67张图片 Bits to (Pi, Pj, Pk) mapping

Channel estimation and color calibration

信道的估计序列应该添加为PHR子域之后的一个扩展子域,来支持接收器处理多个颜色的不平衡以及颜色之间的干扰。如下图所示

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第68张图片 A-QL system with color calibration

三个Walsh codes, W(1,4), W(2,4), and W(3,4),分别用于RGB,对于信道传输前的信道估计(如下图所示),每个bit的walsh  code都被传输2次

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第69张图片 A block with the preamble and Walsh code for color calibration

关于解码

对于在A-QL code的角的参考单元,旋转角度总是可以确定的

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第70张图片 The starting corner determination from reference cells under rotation

Down-sampling using Ab

A camera that has a frame rate greater than the optical clock rate (three times at least, to avoid the sampling in the symbols transition time) is to receive data. The down-sampling is challenging for a time-variant frame rate RX.

假设每个数据包有多于一张图片(采样期间,没有数据丢失),解码器从每个包中解调数据以及提取Ab位。如下图所示,相邻的blocks有相同的Ab位,将会被下采样。在下采样的过程,每组具有相同Ab的相邻的blocks会采用最大投票(majority voting)法来移除可能的错误

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第71张图片 Asynchronous decoding

Rolling effect detection and removal(消除)

当CMOS滚动快门照相机在两个相邻数据块的转换时间之间捕获时,捕获图像上四个参考单元处的四个Ab比特不应相同。如下图所示图像被检测为受旋转(rolling)影响的图像并被丢弃。

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第72张图片 Detection and removal of a rolling effected image

Also, to support a rotated camera decoding, the transmission of four rotation-indication bits via reference cells over the blue channel allows a receiver to identify the starting corner of the code. The starting corner shall have values similar to its two adjacent reference cells.

 

Offset-VPWM decoding method

 

调制框架如下图所示

Offset-VPWM block diagram

Offset-VPWM编码内置线编码,并加上最小脉冲(P)的(P+nV)进行编码,其中参考脉冲宽度(V)作为一个symbol (P > V, V > time error)。Offset-VPWM会根据所添加脉冲的数目来指定2bit的数据symbol以及4bit的数据symbol。对应的symbol map如下图所示

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第73张图片 Two-bit symbol mapping truth table
可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第74张图片 Two-bit symbol data diagram

对于Offset-VPWM,数据由偏移脉冲宽度(offset pulse width)来表达,例如:数据的4bits将会映射到16个Offset-VPWM symbol。如下图所示

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第75张图片

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第76张图片 Four-bit symbol mapping truth table (continued)

symbol阵列映射在波形图中如下

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第77张图片 Symbol array mapping timing diagram

P的最佳值是40 ms,而V是0.4~0.5*P。默认的V是0.5*P

至于解调

Offset-VPWM接收器可以同步上升沿并且检测脉冲的宽度,如下图所示

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第78张图片 Receiver detection process

 

VTASC decoding method

这部分好像是跟通显一体化相关的,还包括了显示器的编码。其结构如下所示

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第79张图片 Reference architecture for VTASC system

这里就先不对其作深入的介绍,有兴趣的读者可以看原文哈~

 

SS2DC decoder

也是属于display-to-camera communication类型的。下面给出其结构。具体的原理介绍也不深入介绍了

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第80张图片 Reference architecture for SS2DC PHY system
可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第81张图片 SS2DC receiver functional block diagram

 

IDE decoder

可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第82张图片 Reference architecture for IDE PHY system
可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读_第83张图片 IDE receiver functional block diagram

 

IEEE 802.15.7-2018标准包含的内容实在太多了,而且有很多知识点之前也不够熟悉,为此对其解读就先比较的粗略。后面涉及到相关的设计在继续深入学习好了~

 

参考资料

  • IEEE 802.15.7-2018标准。下载链接:https://download.csdn.net/download/gwplovekimi/12274495
  • Guan W, Shihuan C, Wen S S, et al. High-Accuracy Robot Indoor Localization Scheme based on Robot Operating System using Visible Light Positioning[J]. IEEE Photonics Journal, 2020.
  • 关伟鹏. 基于图像传感器的高精度室内可见光定位算法研究[D].华南理工大学,2019.
     

 

 

 

你可能感兴趣的:(可见光通信,通信技术)