⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cyclic1.asv

📁 this file consists of many matlab programs
💻 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 + -