Proces skramblowania czyli uprzypadkowiania danych ma na celu zachowanie maksymalnie równomiernej obwiedni sygnału zmodulowanego, co jest bardzo istotnym, czynnikiem w przypadku wykorzystywania nieliniowych wzmacniaczy sygnałowych. Dodatkowo skramblowanie zapewnia równomierny rozkład widma sygnału w całym paśmie transmisyjnym, co umożliwia efektywniejszą pracę nadajnika. Zgodnie ze specyfikacją moduł skramblera oparty jest o rejestr przesuwny ze sprzężeniem zwrotnym taki jak przedstawiono na rys. 3.5. W tym miejscu należy dodać, że mechanizm skramblowania realizowany jest tylko na blokach danych. Preambuły nie podlegają temu procesowi.
Rys. 3.5. Generator sekwencji skramblującej (dla przypadku 8PSK).
Skramblowanie kolejnych bloków danych oraz inicjalizację rejestru przesuwnego w Javie zrealizowano w następujący sposób:
skramb[9] = 0; //inicjalizacja skramblera co 256 symboli
skramb[8] = 0;
skramb[7] = 0;
skramb[6] = 0;
skramb[5] = 0;
skramb[4] =0;
skramb[3] = 0;
skramb[2] = 0;
skramb[l] = 0;
skramb[0] = 1;
for (int y = 0; y < 256; y++){ //skrambling if (bit_na_symbol == 2){
gl = pakiet [wsk] "skramb [0]; wsk++; g2 = pakiet[wsk]"skramb[1]; wsk++; if ((gl == 0) & & (g2 == 0)) sym = 0;
if ((gl == 0) SS <g2 == 1)) sym = 2;
if ((gl == 1) SS (g2 == 1)) sym = 4;
if ((gl == 1) SS (g2 == 0)) sym = 6;
zakodowanedane.write(sym) ;
}
if (bit_na_symbol == 3){
gl = pakiet[wsk]"skramb[0]; wsk++; g2 = pakiet[wsk]"skramb[1]; wsk++; g3 = pakiet[wsk]"skramb[2]; wsk++; if ((gl==0) SS (g2==0) SS (g3==0)) sym = 1;
if ((gl==0) SS (g2==0) SS (g3==l)) sym = 0;
if ((gl==0) SS (g2==l) SS (g3==0)) sym = 2;
if ((gl==0) SS (g2==l) SS (g3==l)) sym = 3;
if ((gl==l) SS (g2==0) SS (g3==0)) sym = 6;
if ((gl==l) SS (g2==0) SS (g3==l)) sym = 7;
if ((gl==l) SS (g2==l) SS (g3==0)) sym = 5;
if ((gl==l) SS (g2==l) SS (g3==l)) sym = 4;
zakodowanedane.write(sym);
16