if (bit_na_symbol >= 4){ sym = 0;
for (int 1=0; 1 < bit_na_symbol; 1++, wsk++)
sym = sym + (skramb[1]Apakiet[wsk])*((int)(pow(2,(1)))); zakodowanedane.write(sym);
//przesunięcie for(int 1=0; {
skramb[9] skramb[0] skramb[1] skramb[2] skramb[3] skramb[4] skramb(5] skramb[6] skramb[7] skramb[8]
w rejestrze skramblera 1 < bit_na_symbol; 1++)
= skramb[0 = skramb[1 = skramb[2 = skramb[3
= skramb[4 = skramb[5 = skramb[6 = skramb[7 - skramb[8 = skramb[9
//rejestr przesuwny
'skramb[4];
3.1.5. Modulacja i filtracja
Zrealizowany w technice SDR modem HF wykorzystuje kilka schematów modulacyjnych (patrz tabl. 3.1). Zostały one jednak zrealizowane przy wykorzystaniu tego samego algorytmu [22] zgodnego z schematem przedstawionym na rys. 3.6. Na wejście modulatora doprowadzony jest strumień symbolowy z bloku skramblera. Każdemu symbolowi przyporządkować można n-elementowy ciąg bitów. Wartość n zależy od wartościowości modulacji. Ponieważ M=2n, mamy 2" różnych «-elementowych ciągów (symboli). Na podstawie tych ciągów generator poziomów ustala znak i poziom amplitudy (zgodnie z odpowiednią konstelacją modulacji) dla modulowanych sygnałów przetwarzanych w kanałach synfazowym (wyższym) i kwadraturowym (niższym) (na rys. 3.6 poziomy są oznaczone jako odpowiednio A*/ i A/a). Następnie, po procesie kształtowania impulsów, sygnały te modulują dwie nośne: cos0)ct oraz -sincoct. Suma tych dwóch zmodulowanych składników stanowi ostateczny sygnał zmodulowany.
W aplikacji stworzonej w języku JAVA w pierwszej kolejności zainicjalizować należy konstelacje odpowiednich modulacji, co dla przypadku 16QAM przedstawiono poniżej:
double [] _16qam = {0.866025,0.5,0.5,0.866025,1,0,0.258819,0.258819,-0.5, 0.866025,0,1,-0.866025,0.5,-0.258819,0.258819,0.5,-0.866025,0,-1,0.866025,
-0.5,0.258819,-0.258819,-0.866025,-0.5,-0.5,-0.866025,-1,0,-0.258819,-
0.258819);
kon = new double[32];
17