每日精学 033|Viterbi 译码与加比选运算

2026-09-25

← 技术专题 · 每日精学目录

雷达 · 通信 · 电子战 / 基础精学 033

卷积编码把合法码字限制在格形路径集合中。逐段穷举全部信息序列的复杂度随帧长指数增长,Viterbi 算法利用相同状态后的未来行为相同,只保留每个状态当前最优路径。

硬件译码器的主要数据通路包括分支度量、加比选、幸存路径存储和回溯。路径度量位宽有限,需要周期归一化或饱和处理。

01
模型与符号

λk:时刻 k 的分支度量(非负数)

Γk(s):到状态 s 的路径度量(非负数)

πk(s):幸存前驱状态(状态)

D:回溯深度(级)

Lc:软输入可靠度(无量纲)

S:格形状态数(正整数)

02
动态规划递推

若状态 s 有若干前驱 s',Viterbi 递推为

\Gamma_k(s)=\min_{s'\rightarrow s}\left[\Gamma_{k-1}(s')+\lambda_k(s',s)\right].

同时记录达到最小值的前驱 πk(s)。

被淘汰路径无需继续扩展。

03
硬判决与软判决度量

硬判决二进制对使用汉明距离

\lambda_H=d_H(\bm r_k,\bm v_k).

若接收未量化 BPSK 样本

\bm y_k

可用

\lambda_E=\|\bm y_k-\bm x_k\|^2

作为欧氏分支度量。

04
回溯与归一化

处理完整帧或达到固定延迟后,从最小路径度量状态沿幸存前驱反向回溯。为避免度量溢出,可在每一级减去所有状态度量的最小值;该共同偏移不改变路径比较结果。

05
物理含义

加比选把指数数量的完整路径压缩为每个状态一条幸存路径。幸存关系在短距离内仍可能变化,因此实时译码通常等待若干倍约束长度后再输出较稳定的比特。软判决利用样本离判决边界的距离,通常优于只保留零一结果的硬判决。

06
固定参数算例

验证对 (7,5)8 编码序列注入确定位置的硬比特错误,逐级记录四个状态的路径度量并完成终止状态回溯。另在多个 Eb/N0 点比较未编码 BPSK、硬判决 Viterbi 和软判决 Viterbi 的固定帧误码统计。

独立双精度参考计算结果
量数值
known information bits10110100
injected hard error positions3 9 14
decoded information bits10110100
译码比特错误数0
simulation information bits per snr5000
hard viterbi ber at 3 db0.0308
soft viterbi ber at 3 db0.003
uncoded ber at 3 db0.0208
图 1:Viterbi 路径度量 幸存路径 回溯结果与硬软判决误码率(子图 1)图 1:Viterbi 路径度量 幸存路径 回溯结果与硬软判决误码率(子图 2)图 1:Viterbi 路径度量 幸存路径 回溯结果与硬软判决误码率(子图 3)图 1:Viterbi 路径度量 幸存路径 回溯结果与硬软判决误码率(子图 4)

图 1 Viterbi 路径度量 幸存路径 回溯结果与硬软判决误码率

图表保留原报告的独立双精度参考结果。本次补充运行同参数 MATLAB 脚本并通过数值断言;随机算例比较统计关系,参考程序与 MATLAB 的随机样本不作逐点相同的假设。

07
数字实现的边界

模块 acs_unit.sv 接收两条前驱路径度量和对应分支度量,执行扩位加法、比较与选择,输出幸存度量和选择位。testbench 覆盖两条路径胜出、相等时固定选择、近满量程饱和和复位。

RTL 只实现本课中可明确量化的确定性数据通路或控制功能。概率分布拟合、浮点函数求值和图形生成留在 MATLAB 参考程序中,防止把软件统计功能误认为可综合硬件。

08
适用范围

Viterbi 译码适用于状态数可控的卷积码和有限记忆序列检测。设计需要同时规定度量格式、回溯深度、帧终止方式、吞吐率和存储架构。

09
工程上需要注意

  • 状态数随约束长度指数增长,长约束码硬件成本迅速上升。

  • 回溯深度过短会增加判决错误,过长会增加延迟和存储。

  • 软度量缩放错误或饱和会损失预期编码增益。

  • 突删和插入错误破坏格形时序,普通 Viterbi 不能直接处理。

Viterbi 算法通过每状态保留一条最小度量幸存路径完成最大似然序列搜索。加比选是核心递推单元,回溯恢复输入比特;软判决度量保留置信度,通常比硬判决具有更低误码率。

内容依据:每日精学第 33 课《Viterbi 译码与加比选运算》。图表沿用原课固定参数数值结果,属于数值验证,不代表设备实测。

阅读7
分享
写评论...