?? untitled.asv
字號:
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==1
fprintf('錯一位,可以糾正得到正確碼字');
elseif sum==0
fprintf('碼字無錯');
elseif sum>=2
fprintf('錯誤位大于1,糾錯后仍然得不到');
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -