📄 cyclic1.asv
字号:
%SYSTEMATIC CYCLIC CODE
clear;
clc;
%ENCODER SECTION
n = input(' ENTER THE LENGTH OF CODEWORD n:')
k = input(' ENTER THE LENGTH OF MESSAGE k:')
q=n-k;
disp('THE GENERATOR POLYNOMIAL IS')
gpoly=cyclpoly(n,k)
[parmat,genmat] = cyclgen(n,gpoly);
h1=parmat(:,k:1:end);
g2=genmat(:,1:1:n-k);
disp('THE GENERATOR MATRIX IS')
G=horzcat(eye(k),g2)
fprintf('\nTHE MESSAGE IS OF %d BITS\n',k)
m=input('ENTER THE MESSAGE BITS ')
code = encode(m,n,k,'cyclic',gpoly);
c1=zeros(1,q);
c1(1,:)=code(1:1:q,:);
disp('THE CODEWORD FOR THE MESSAGE IS')
c=horzcat(m,c1)
%DECODER SECTION
disp('THE PARITY CHECK MATRIX IS')
H=horzcat(h1,eye(q))
k2=2^k-1;
for d=1:1:k2
u = de2bi(d,k,'left-msb');
code1=encode(u,n,k,'cyclic',gpoly);
c2=zeros(1,q);
c2(1,:)=code1(1:1:q,:);
a1(1,:)=[u c2];
w1(d,:)=a1(1,:);
w(d)=sum(u)+sum(c2);
end
disp('THE WEIGHTS OF THE CODEWORD IS GIVEN AS:')
fprintf('\n\t CODEWORD WEIGHT\n')
disp([w1 w'])
disp('THE MINIMUM DISTANCE OF CYCLIC CODE IS')
Dmin=gfweight(gpoly,n)
disp('NO. OF ERRORS DETECTED:')
a2=Dmin-1;
disp(a2)
disp('MAXIMUM NO. OF ERRORS CAN BE CORRECTED:')
disp(floor(a2/2))
h1=H';
E=input('ENTER THE RECIEVED CODE ')
for x=1:1:q
s(1,x)=0;
for y=1:1:n
s(1,x) = rem((s(1,x) + E(1,y)*h1(y,x)),2);
end
end
fprintf('\nTHE SYNDROME IN BIT ERROR IS\n')
disp(s)
e1=E(:,k+1:1:end);
code1=horzcat(e1,m);
%ERROR CORRECTION
s1=bi2de(s,'left-msb');
s2=syndtable(H);
disp('THE CORRECTION VECTOR IS')
Y=s2(s1+1,:)
disp('THE CORRECTED CODE IS:')
disp(xor(Y,E))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -