Presentation is loading. Please wait.

Presentation is loading. Please wait.

Viterbi 算法 viterbi 实验要求:见 experiment3.doc – 将 TRUNC_LENGTH 取值为 4 , 8 , 16 , 32 , 64 ,看看程序运行结果会有什么变化并分析原 因。 – 将 NUMSIM 取值为 10 1 , 10.

Similar presentations


Presentation on theme: "Viterbi 算法 viterbi 实验要求:见 experiment3.doc – 将 TRUNC_LENGTH 取值为 4 , 8 , 16 , 32 , 64 ,看看程序运行结果会有什么变化并分析原 因。 – 将 NUMSIM 取值为 10 1 , 10."— Presentation transcript:

1 viterbi 算法 jingxi@ustc.edu.cn

2 viterbi 实验要求:见 experiment3.doc – 将 TRUNC_LENGTH 取值为 4 , 8 , 16 , 32 , 64 ,看看程序运行结果会有什么变化并分析原 因。 – 将 NUMSIM 取值为 10 1 , 10 2 , 10 3 , 10 4 , 10 5 , 10 6 , 10 7 , 10 8 ,看看程序运行结果会有什 么变化并分析原因。

3 viterbi Viterbi 算法,它是一种最大似然译码算法 ,即寻找寻找译码器接收序列和卷积编码 器的输出序列的最大似然函数的过程。在 码的约束度较小时,它的译码效率很高、 速度很快、译码器的设计也较为简单 Viterbi 算法是对卷积码在 AW GN( 加性高 斯白噪声 ) 信道下的的最佳译码算法。

4 viterbi 算法的输入 –sscanf(argv[1],"%s", name2); 输出文件的名字 –sscanf(argv[2],"%ld", &TRUNC_LENGTH); 路径长度 –sscanf(argv[3],"%lf", &INIT_SNR); 初始化信噪比 –sscanf(argv[4],"%lf", &FINAL_SNR); 最大信噪比 –sscanf(argv[5],"%lf", &SNR_INC); 信噪比增量 –sscanf(argv[6],"%ld", &NUMSIM); 模拟量

5 viterbi

6 Y 根据输入决定状态数及路径 长度 Num_STATES=4 TRUNC_LENGTH=4 画出初始向量表 snr<FINAL_SNR 产生随机数并加入高斯白噪声进行 编码 将编码后的数据用 viterbi 算法译码 (计算错误比特率并输出) snr+SNRINC 退出程序

7 viterbi 初始向量表 0 1 2 3 00 11 00 01 10 01

8 viterbi trellis[1][0].init = 1; // initial state trellis[1][0].data = 0; // input data trellis[1][0].final = 2; // final state trellis[1][0].output[0] = 1; // bit 0 output trellis[1][0].output[1] = -1; // bit 1 output

9 viterbi 01 10 0 01001 10

10 viterbi trellis[1][1].init = 1; // initial state trellis[1][1].data = 1; // input data trellis[1][1].final = 3; // final state trellis[1][1].output[0] = -1; // bit 1 output trellis[1][1].output[1] = 1; // bit 0 output

11 viterbi 01 10 1 11011

12 viterbi


Download ppt "Viterbi 算法 viterbi 实验要求:见 experiment3.doc – 将 TRUNC_LENGTH 取值为 4 , 8 , 16 , 32 , 64 ,看看程序运行结果会有什么变化并分析原 因。 – 将 NUMSIM 取值为 10 1 , 10."

Similar presentations


Ads by Google