Guest User

Untitled

a guest
Jul 16th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.69 KB | None | 0 0
  1. function []=test(G)
  2. [k,N]=size(G);
  3. p = randsrc(1,k,[0 1 ; 0.5 0.5]);
  4. Ht = G2HT(G);
  5. f = mod(p*G,2);
  6. e = randerr(1,N,1);
  7. j = mod(f+e,2);
  8. disp(j);
  9. p = decode(j,Ht);
  10.  
  11. disp(p);
  12.  
  13. end
  14.  
  15. function [p] = decode(j,Ht)
  16. if (HT2G(Ht)*Ht) ==1
  17.     p = j;
  18. end
  19. [N,r]=size(Ht);
  20. s = mod(j*Ht,2);
  21. for i=1:N,
  22.    if s == Ht(i,:)
  23.         j(i) =~ j(i);
  24.    end
  25. end
  26. p = j(1:N-r);
  27.  
  28.    
  29.  
  30. end
  31.  
  32. function [G] = HT2G(Ht)
  33.  
  34. [N,r]=size(Ht);
  35. G = [eye(N-r),Ht(1:N-r,:)];
  36.  
  37. end
  38.  
  39. function [Ht] = G2HT(G)
  40.  
  41. [K,N]=size(G);
  42. Ht = [G(:,K+1:N);eye(N-K)];
  43.  
  44. end
  45.  
  46.  
  47. KODER
  48.  
  49. function [f]=koder(P,g)
  50.  
  51. k = length(P);
  52. r = length(g)-1;
  53.  
  54. f = [P zeros(1,r)];
  55.  
  56. [M,R] = deconv(f,g);
  57.  
  58. R = mod(R,2);
  59. f = f+R;
  60.  
  61. end
Add Comment
Please, Sign In to add comment