本文假设读者对卷积码原理及viterbi解码原理有基本的认识。
关于硬译码的函数参考传送门
软信息的概念
在数模转换、模数转换过程中,常有对信息的判决过程。根据信息量的丰富程度可分为硬判决和软判决。一般来说,硬判决系统实现简单,但性能会因为信息损失而下降;软判决保留更多的原始信息,性能提高的同时系统开销增大。
在卷积码的译码中,软译码和硬译码的不同主要在于最短路径的距离计算上。
软译码采用欧氏距离,硬译码采用汉明距离
根据MATLAB官网对vitdec的说明
卷积码的译码函数为vitdec()
软译码调用格式为
decodedout = vitdec(codedin,trellis,tbdepth,opmode,'soft',nsdec)
其中需要注意的是
变量名 | 软译码模式下含义 |
---|---|
codedin | 输入数据。[0, 2^nsdec-1]整数,即有限位宽整数:00…0代表十分确定是0,11…1代表十分确定是1 |
nsdec | 输入数据位宽 |
相比较硬译码的程序, 软译码需对输入数据进行量化,使其符合函数调用规范。
量化过程也有多种形式,如直接量化和似然比量化。前者对采样值/模拟值/真实值进行幅值放缩可完成;后者则需在已知随机事件分布的前提下,将变量转化为累积分布函数CDF(似然函数)上的概率,再进一步对概率进行量化。
例程如下
clear;clc
input = randi([0,1],