室内可见光通信(VLC)这几年在无线接入、智能照明、室内定位几个方向都被讨论得很多,但真要把一套系统从方案落到可复现的性能指标,最绕不开的就是误码率仿真。我自己在评估一套基于LED的室内通信链路时,也反复跑过Lambertian直射信道模型下的仿真,一开始曲线乱跳,怎么调都对不上理论值。后来把参考噪声地板方法用顺了,误码率曲线才终于稳定下来,跟理论结果基本贴住。这篇文章就把整个研究过程的思路、公式推导、仿真实现和踩过的坑完整整理一遍。
这篇文章适合通信专业的研究生、做光学无线接入的工程师,以及所有想快速建立VLC系统仿真能力的人。你不需要先看懂一大堆光学理论,我尽量把每个环节讲成“能直接上手抄作业”的形式。核心内容就是三件事:怎么建立室内可见光信道模型,怎么设置噪声地板,以及怎么把误码率仿真跑可信。读完之后,你至少能自己复现一套“发射机—信道—接收机—误码统计”的完整仿真链路。
1. 可见光通信误码率仿真到底在做什么
1.1 一盏LED灯既是光源又是发射机
可见光通信的基本思路并不复杂:把需要传输的二进制数据调制到LED的驱动电流上,灯光的明暗变化速度远远超过人眼能感知的频率,接收端的光电二极管(PD)把这些光信号重新转换成电流,再经过放大、判决,恢复出原始比特。车灯、室内照明灯、显示屏都可以变成信息发射源,这是它和传统射频通信最大的区别。
但这里有个很现实的问题:LED本身是一个非相干光源,我们没有办法像射频系统那样调制载波的相位和幅度,主流方案是采用强度调制/直接检测(IM/DD),也就是光功率直接携带信息。最常用的调制方式是OOK(开关键控),亮代表“1”,灭代表“0”,或者用反向归零等方式做变化。既然是强度调制,接收端采到的是光功率的绝对值,那么信道衰减、背景光、光电转换效率以及接收机噪声都会直接作用在信号电平上。
所以在做性能评估的时候,不能只把注意力放在LED驱动电路上,还需要建立一个能准确描述“光从LED出发,经过室内空间传播,最后被PD接收”的数学模型。这个模型的好坏,直接决定了误码率仿真结果是否接近实测。
1.2 误码率仿真在系统设计中的定位
误码率(Bit Error Rate,BER)是数字通信系统最直观的性能指标,它的含义就是传输的比特中有多少比例被判错了。室内VLC系统在实际部署前,往往需要在不同房间尺寸、不同LED布局、不同接收机位置下反复调整方案,如果每次都搭一套真实硬件来测,成本高、周期长,而且很难覆盖所有空间位置。
仿真解决的就是这个问题。在软件里把信道算出来,把噪声按模型加进去,然后统计判决错误的比例,就能提前看到系统性能随参数变化的趋势。这里尤其要注意一个观点:误码率仿真不是追求“代码跑出来一个数”,而是要追求“这个数能够被理论解释”。如果仿真结果跟理论曲线对比对不上,那一定是有哪个环节没建模对,最常见的原因就是信道增益公式有误、噪声功率归一化搞错、采样点数不足,后面我会逐个展开。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Lambertian直射信道模型的建模要点
2.1 为什么非要用Lambertian辐射模型
室内VLC的信道建模有很多种方式,从最简化的直射路径,到考虑墙壁反射的多次反射模型,再到结合光线追踪的高精度模型,复杂度差别非常大。对于第一次做系统级性能评估来说,Lambertian直射信道模型是使用最广泛、也最容易被接受的一个起点。
这个模型的核心假设是:把LED看作一个朗伯辐射体(Lambertian emitter)。朗伯体的辐射强度不是各方向均匀的,而是遵循余弦幂次规律:
I(φ) = I₀ · cos^m(φ)
其中φ是发射角,也就是发光方向和LED法线方向的夹角。m是朗伯辐射阶数,它决定了光束的方向性。m的取值和LED的半功率角(半角,即辐射强度下降到最大值一半时对应的角度)直接相关,计算公式是:
m = -ln2 / ln(cos(Φ₁/₂))
举个例子,如果LED的半功率角是60°,那么cos(60°)=0.5,分母是ln(0.5)=-0.693,分子是-0.693,算出来m=1。如果半功率角是30°,cos(30°)≈0.866,ln(0.866)≈-0.144,m≈4.82。半功率角越小,m越大,光束越集中,直射方向的光强越大,但覆盖范围也越窄。
这个模型最让人省心的地方是它只需要一个参数m,就能描述大多数商用LED的辐射特性。你在选型时如果找不到厂商给出的辐射曲线,用半功率角来反推m,通常已经足够满足仿真精度要求。
2.2 直射链路直流增益的计算公式
在只考虑直射链路(即光从LED直接到达PD,没经过墙壁反射)的情况下,信道直流增益H(0)可以写成下面这个经典形式:
`H(0) = (m+1) * A_r / (2πd²) * cos^m(
