在已知的生成矩阵对数字序列进行编码后,可对编码后的序列进行伴随式的译码。方法原理为根据已有的生成矩阵G写出对应的校验矩阵H,对输入译码器的二元序列进行逐块译码。
每次取出n个二元符号,记为 r,利用c’计算伴随式 s: s= r HT,如果伴随式s为全0,则认为r中无错,即错误向量e为全0,直接将r作为译码结果 c。如果伴随式s非全0,则认为r中有错。如果有错则找出校验矩阵H中与伴随式s完全相同的列,记为第m列,认为错误向量e的第m个元素为1,则对r的第m个元素进行翻转处理,将此结果作为译码结果c’,这便是伴随式译码的原理。
2.5最小汉明距离译码的原理
根据已有的生成矩阵G写出该码的2k个n长许用码字,每次取出n个二元符号,记为r ,分别计算r与2k个许用码字的汉明距离,选择与r的汉明距离最小的码字作为译码结果c’ 。
这种译码方法的原理是根据原后的序列一定存在于2k个许用码字的序列之中,只要比较编码后的序列与许用码字的不同数字的数量,选择不同数字最少的许用码字序列,即与原序列最接近的序列作为他的译码序列,这样便完成了译码。
3.程序设计 3.1重复码仿真实验 流程图:
计算错误概率并绘制译码错误概率图 采用择多判决法对序列译码 序列通过特定转移概率的bsc信道 采用(4,1)重复码对序列进行编码 产生序列 程序:
n=10000; A=zeros(0,3); x=0.08:0.01:0.1;
for i=1:3
a = randi([0,1],1,n);%传输的序列 a1 = ones(1,4)' * a; a2 = a1(:) ; a3 = a2';%4,1重复码
p = 0.01 * i + 0.08;
[b,err] = bsc(a3, p); %b 传输后的序列 b1= reshape (b,4,n); b2 = ones(1,4) * b1 / 4; b3 = round(b2); %译码后的序列
c = find(a~=b3); c1 = length(c);
c2 = c1 / n; %错误的概率 A(i) = c2; end
subplot(1,1,1); plot(x,A);
xlabel('错误转移概率'); ylabel('译码错误概率');
结果:
相关推荐: