一、误码测试基础

1.1 误码率(BER)定义

误码率,英文叫 Bit Error Rate,简称 BER。说白了,就是传了那么多比特,到底错了多少。

公式很简单:

BER = 错误比特数 / 总传输比特数

举个例子。我发了一百万个比特过去,对方收到了,发现有 10 个是错的。那 BER 就是 10-5。

嗯,这里要注意。BER 是个统计值。你测 1 秒和测 1 小时,结果可能不一样。我见过不少新手,测了 10 秒就说 BER 达标了,结果一上真实链路就崩了。

核心要点:BER 反映的是链路质量,不是瞬时值。时间太短,统计没意义。

1.2 误码测试的目的与意义

为什么要测误码?你想想看,你花了几十万建了条链路,结果传数据老出错,那还玩什么?

我个人习惯,把误码测试的目的归纳为三点:

  • 评估链路质量 —— 这条链路到底能不能用?
  • 定位故障点 —— 哪里出了问题?是光模块?是光纤?还是接口?
  • 验证系统余量 —— 现在能跑,以后老化了还能不能跑?

我在项目中遇到过一件事。某次验收测试,链路 BER 测出来是 10-12,看起来很好。但我坚持加测了 24 小时,结果发现凌晨 3 点 BER 会突然跳到 10-6。后来查出来是某个设备散热有问题,温度一高就出误码。

所以,误码测试的意义不只是「测一下好不好」,而是「确保它一直好」。

我的建议:验收测试至少跑 24 小时。别嫌慢,出一次问题你就知道值了。

1.3 误码测试的基本原理

误码测试的原理,其实特别简单。就三步:

  1. 发已知序列 —— 发送端发出一串已知的比特流,比如 PRBS(伪随机二进制序列)。
  2. 收并对比 —— 接收端收到后,跟本地生成的同样序列做对比。
  3. 数错误 —— 不一样的地方,就是误码。数一数,算一算,BER 就出来了。

为什么会用 PRBS?因为它是伪随机的,看起来像真实数据,但又可预测。你想想看,如果发全 0 或全 1,那测出来肯定没误码,但实际跑业务时数据是随机的,那就不准了。

我曾经吃过这个亏。早期做项目时,为了省事,用固定码型测误码,结果 BER 漂亮得很。一上真实业务,丢包丢到怀疑人生。后来才明白,固定码型测不出码间干扰。

注意:不要用固定码型(如全 0、全 1、交替 01)做误码测试。一定要用 PRBS 或类似随机序列。

下面这张图,是我画的一个误码测试系统的基本结构。你看一眼就明白了。

误码测试系统基本结构 发送端 PRBS 发生器 发送已知序列 传输信道 光纤 / 电缆 / 无线 引入噪声与干扰 接收端 PRBS 同步 比特对比 发送序列 接收序列 误码计数器 统计错误比特数 本地 PRBS 发生器 生成参考序列 参考序列 BER = 错误数 / 总比特数

你看,发送端发 PRBS,经过信道后,接收端收到信号。接收端自己也生成了一个同样的 PRBS 序列,然后拿收到的跟本地的一比特一比特对比。不一样,就是误码。

这里有个关键点:接收端必须跟发送端同步。如果不同步,那对比出来的全是错的,BER 直接 0.5,毫无意义。

我早期做测试时,就遇到过同步丢失的问题。信号质量差的时候,接收端会失步,然后误码率突然飙升。嗯,这时候你要先判断:是真的误码多了,还是同步丢了?

小技巧:看误码的分布。如果是随机分散的,那是真误码。如果是一段一段的连续错误,大概率是同步丢了。

最后,说一个常见的误区。很多人觉得 BER 测到 10-12 就万事大吉了。其实不是。10-12 的意思是,每传 1 万亿比特,可能错 1 个。听起来很少对吧?但如果你传的是 100Gbps 的信号,1 秒钟就传了 1000 亿比特。也就是说,10 秒钟就可能错 1 个比特。

对于语音通信,错 1 个比特无所谓。但对于文件传输,错 1 个比特,整个文件就坏了。所以,不同的业务,对 BER 的要求是不一样的。

业务类型 典型 BER 要求 说明
语音通信 ≤ 10-3 人耳对少量误码不敏感
视频传输 ≤ 10-6 误码会导致画面花屏
数据通信 ≤ 10-9 文件传输要求高可靠性
光纤骨干网 ≤ 10-12 高速长距离传输

好了,误码测试的基础就这些。记住一句话:误码测试不是走过场,它是链路质量的照妖镜。你认真测,它就能帮你发现问题。你敷衍它,它就在关键时刻给你颜色看。

可可精品资料库