?? untitled.m
字號:
M=textread('M1.txt') %從文件中讀取信息元序列M
H=textread('H1.txt') %從文件中讀取一致校驗矩陣H
m=length(H(:,1)) %求解校驗位m
k=length(M) %求解信息位數k
n=k+m %求解碼長n
%生成發送碼字C
G=[eye(k),H(:,[1:k])'] %計算生成矩陣G
C=M*G; %產生碼字,該碼字為發送碼字C
C=mod(C,2) %求模2運算,即變成二進制數
%生成接收碼字R
E=randint(1,n) %產生只錯一位的隨機錯誤圖樣E
sum=0;
for i=1:n
sum=sum+E(i)
end
R=xor(C,E); %由發送碼字C和錯誤圖樣E進行異或運算
R=mod(R,2) %求模2運算,即變成二進制數
%計算伴隨式S
S=R*H'; %計算伴隨式S,H'為H的轉置
S=mod(S,2) %求模2運算,即變成二進制數
%糾錯譯碼,根據伴隨式S查找錯誤圖樣,然后糾錯譯碼
for i=1:n
if S==H(:,i)' %判斷S與H矩陣的哪一列相同
b=zeros(1,n);
b(:,i)=1
X=xor(R,b) %Y為糾錯后的碼字
end
end
%判斷錯誤位數,并顯示相應上的文字說明
if sum==0
fprintf('無錯誤位,即碼字無錯\n');
elseif sum==1
fprintf('錯一位,糾正后可以得到正確碼字\n');
elseif sum>=2
fprintf('錯誤位大于1,糾錯后得到的碼字仍不是正確碼字\n');
end
%判斷糾錯后的碼字是否仍是許用碼字
Y=X*H';
Y=mod(Y,2)
if Y==0
fprintf('該碼字仍屬于許用碼組\n')
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -