仿真(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
案例2:仿真未编码和进行(7,4)Hamming码的编码的QPSK调制通过AWGN信道后的误比特性能比较
https://editor.csdn.net/md/?articleId=111461238

你可能感兴趣的:(通信原理,信息论与编码,信息传输,数字通信)