基本设计思路及要求:
(1) 读入不少于 100 字符的文本文件作为数据源,可以将 ASCII 码转化为二
进制再使用。也可以随机产生一组不少于 1000 码元的二进制序列(提
示:randint)。
(2) 采用 1/3 码率的 Turbo 码,通过高斯白噪声(AWGN)信道,分别采用 LOG-
MAP 和 SOVA 译码,迭代 1-5 次。
加入噪声的方法供参考。
方法 1:直接仿真二进制序列噪声,原理与循环码相同,即给定 Pe,产生一组
符合 Pe 的二进制序列。噪声序列与卷积码序列相加之后送入 Viterbi 译码器进
行硬判决译码。
方法 2,用 BPSK 调制方式调制信号,加入信道噪声(高斯白噪声,给出信噪比
SNR)后再经过 BPSK 解调制后送入 Viterbi 译码器进行硬判决译码。
(3) 误码统计后输出。
(4)分别画出两种译码算法的误码率曲线。
(5)编码算法需要自己实现,译码算法可以直接调用现有的代码。
附录:例程
% This script simulates the classical turbo encoding-decoding system.
% It simulates parallel concatenated convolutional codes.
% Two component rate 1/2 RSC (Recursive Systematic Convolutional)
component encoders are assumed.
% First encoder is terminated with tails bits. (Info + tail) bits are
scrambled and passed to
% the second encoder, while second encoder is left open without tail
bits of itself.
%
% Random information bits are modulated into +1/-1, and transmitted
through a AWGN channel.
% Interleavers are randomly generated for each frame.
%
% Log-MAP algorithm without quantization or approximation is used.
% By making use of ln(e^x+e^y) = max(x,y) + ln(1+e^(-abs(x-y))),
% the Log-MAP can be simplified with a look-up table for the correction
function.
% If use approximation ln(e^x+e^y) = max(x,y), it becomes MAX-Log-MAP.
%