其他分享
首页 > 其他分享> > 仿真(7,4)Hamming码的编码及硬判决译码过程。

仿真(7,4)Hamming码的编码及硬判决译码过程。

作者:互联网

仿真(7,4)Hamming码的编码及硬判决译码过程。

%仿真(7,4)Hamming码的编码及硬判决译码过程
clear all
N = 10;          %信息比特行数
n = 7;           %Hamming码组长度n=2^m-1
m = 3;           %监督位长度
[H,G] = hammgen(m);            %产生一个(n,n-m)Hamming码的校验矩阵和生成矩阵
x = randi([0,1],N,n-m);        %产生比特数据
y = mod(x*G,2);                %Hamming编码
y1 = mod(y+randerr(N,n),2);    %在每一个编码码组中引入一个随机比特错误
mat1 = eye(n);                 %生成n*n的单位矩阵,其中每一行的1代表错误比特位置
errvec = mat1*H';              %校验结果对应的所有错误矢量
y2 = mod(y1*H',2);             %译码
%根据译码结果对应的错误矢量找出错误比特位置,并纠错
for index = 1:N
    for index1 = 1:n
        if(y2(index,:) == errvec(index1,:))
            y1(index,:) = mod(y1(index,:)+mat1(index1,:),2);
        end
    end
end
x_dec = y1(:,m+1:end);         %恢复原始信息比特
s = find(x ~= x_dec)           %纠错后的信息比特与原始信息比特对比

具体理论与分析:
https://blog.csdn.net/qq_43520653/article/details/111407766

标签:仿真,index,end,比特,译码,Hamming,y1
来源: https://blog.csdn.net/qq_43520653/article/details/111461175