Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [stat] = odbiornik
- in=textread('out.txt','%d')';
- n=length(in);
- out=[];
- sekFile = fopen('sekwencja.txt','r')';
- sekwencja=fscanf(sekFile,'%d')'; %wczytanie sekwencji synchronizacji
- s=length(sekwencja); %dlugosc sekwencji/bufora
- zle=0; %ilosc zlych bitow wiadomosci
- dobre=0; %ilosc dobrych bitow
- bufor=zeros(1,s); %bufor (rejestr przesowny)
- klucz=[1 0 0 1 0 1 0 1 0 0 0 0 0 0 0]; %klucz descramblera
- scram=klucz; %bufor descramblowania
- m=length(scram); %dlugosc bufora scramblera
- for i=1:s
- bufor(1,i) = in(1,i); % wczytaj pierwsze bity (dlugosc sekwencji)
- end
- zamek=s; % zabezpieczenie przed descramblowaniem sekwencji synchronizacyjnej
- Z=false; % flaga oznaczajaca utrate synchronizacji
- for i=s+1:n+s
- if(bufor==sekwencja)
- Z=false;
- scram=klucz; %reset descramblera
- zamek=s;
- end
- if(bufor(1)==0 && bufor(2)==0 && bufor(3)==0 && bufor(4)==0 && bufor(5)==0)
- Z=true;
- end
- if (zamek<1)
- if(Z==false)
- dobre=dobre+1;
- else
- zle=zle+1;
- end
- a=xor(scram(m),scram(m-1)); %xor 2 ostatnich bitow
- if(isempty(out))
- out=xor(a,bufor(1));
- else
- out=[out,xor(a,bufor(1))];
- end
- tmp=a;
- for j=1:m-1
- tmp=[tmp,scram(j)]; %przesuniecie o 1 bit
- end
- scram=[tmp];
- end
- zamek=zamek-1;
- for j=1:s-1
- bufor(j)=bufor(j+1); %przesuniecie o 1 bit
- end
- if(i<=n)
- bufor(s)=in(i);
- end
- end
- id = fopen('odkodowany.txt', 'w');
- fprintf(id, '%d ',out);
- fclose(id);
- stat=[zle, dobre];
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement