Advertisement
Guest User

Untitled

a guest
Jun 2nd, 2015
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.46 KB | None | 0 0
  1. function [stat] = odbiornik
  2.  
  3. in=textread('out.txt','%d')';
  4. n=length(in);
  5.  
  6. out=[];
  7.  
  8. sekFile = fopen('sekwencja.txt','r')';
  9. sekwencja=fscanf(sekFile,'%d')'; %wczytanie sekwencji synchronizacji
  10. s=length(sekwencja); %dlugosc sekwencji/bufora
  11.  
  12. zle=0%ilosc zlych bitow wiadomosci
  13. dobre=0; %ilosc dobrych bitow
  14.  
  15. bufor=zeros(1,s); %bufor (rejestr przesowny)
  16.  
  17. klucz=[1 0 0 1 0 1 0 1 0 0 0 0 0 0 0]; %klucz descramblera
  18. scram=klucz; %bufor descramblowania
  19. m=length(scram); %dlugosc bufora scramblera
  20.  
  21. for i=1:s
  22.     bufor(1,i) = in(1,i);   % wczytaj pierwsze bity (dlugosc sekwencji)
  23. end
  24.  
  25. zamek=s; % zabezpieczenie przed descramblowaniem sekwencji synchronizacyjnej
  26.  
  27. Z=false; % flaga oznaczajaca utrate synchronizacji
  28.  
  29. for i=s+1:n+s
  30.     if(bufor==sekwencja)
  31.         Z=false;
  32.         scram=klucz; %reset descramblera
  33.         zamek=s;
  34.     end
  35.     if(bufor(1)==0 && bufor(2)==0 && bufor(3)==0 && bufor(4)==0 && bufor(5)==0)
  36.         Z=true;
  37.     end
  38.  
  39.     if (zamek<1)
  40.         if(Z==false)
  41.             dobre=dobre+1;
  42.         else
  43.             zle=zle+1;
  44.         end
  45.         a=xor(scram(m),scram(m-1)); %xor 2 ostatnich bitow
  46.         if(isempty(out))
  47.             out=xor(a,bufor(1));
  48.         else
  49.             out=[out,xor(a,bufor(1))];
  50.         end
  51.         tmp=a;
  52.         for j=1:m-1
  53.             tmp=[tmp,scram(j)]; %przesuniecie o 1 bit
  54.             end
  55.         scram=[tmp];
  56.     end
  57.     zamek=zamek-1;
  58.     for j=1:s-1
  59.         bufor(j)=bufor(j+1); %przesuniecie o 1 bit
  60.         end
  61.     if(i<=n)
  62.         bufor(s)=in(i);
  63.     end
  64. end
  65.  
  66. id = fopen('odkodowany.txt', 'w');
  67. fprintf(id, '%d ',out);
  68. fclose(id);
  69.  
  70. stat=[zle, dobre];
  71.  
  72. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement