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

📄 linblock.m

📁 this file consists of many matlab programs
💻 M
字号:
%%linear block coder%%
clc;
clear all;

%ENCODER SECTION
disp('ENCODER SECTION')
n=input('ENTER THE VALUE FOR CODE LENGTH n:');
k=input('ENTER THE VALUE FOR CODE DIMENSION k: ');
q=n-k;
fprintf('\n ORDER OF THE PARITY MATRIX %d x %d\n',k,q)
p=input('ENTER THE PARITY MATRIX P: \n');
disp('p=')
disp(p);
disp('THE GENERATOR MATRIX IS:');
G=horzcat(eye(k),p)
fprintf('\n THE NO. OF MESSAGE BITS ARE %d',k);
m=input('\n ENTER THE MESSAGE BITS:');
for i=1:1:q
   code(1,i)=0;
   for j=1:1:k
       code(1,i) = rem((code(1,i) + m(1,j)*p(j,i)),2);
   end
end
fprintf('\nTHE CODEWORD FOR ENTERED MESSAGE IS:')
c=horzcat(m,code)

%DECODER SECTION
disp('DECODER SECTION')
p1=p';
fprintf('\nTHE PARITY CHECK MATRIX IS')
H=horzcat(p1,eye(q))
h1=H';

%CALCULATION FOR Dmin
disp('ERROR CORRECTION')
k2=2^k-1;
for d=1:1:k2
    u = de2bi(d,k,'left-msb');
    for i=1:1:q
        co(1,i)=0;
        for j=1:1:k
            co(1,i)=rem((co(1,i) + u(1,j)*p(j,i)),2);
        end
    end
    w(d)=sum(u)+sum(co);
    a1(1,:)=[u co];
    w1(d,:)=a1(1,:);
end
disp('THE WEIGHTS OF THE CODEWORD IS GIVEN AS:')
fprintf('\n\t          CODEWORD                    WEIGHT\n')
disp([w1 w'])
Dmin=w(1,1);
for i1=1:1:k2
    if w(1,i1)<Dmin
        Dmin=w(1,i1)
    elseif w(1,i1)>Dmin
        Dmin=w(1,1);
    end
end

disp('THE VALUE FOR Dmin IS:')
disp(Dmin)
disp('NO. OF ERRORS DETECTED:')
a2=Dmin-1;
disp(a2)
disp('MINIMUM NO. OF ERRORS CAN BE CORRECTED:')
disp(floor(a2/2))

%ERROR CORRECTION
E=input('\nENTER 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:')
disp(s)


 s1=bi2de(s,'left-msb');
 s2=syndtable(H);
 disp('THE CORRECTION VECTOR IS')
 Y=s2(s1+1,:)
 disp('THE CORRECTED CODE IS:')
 xor(Y,E)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -