Dálkoměrný signál služby SPS systému GPS: vlastnosti, měření zpoždění a výpočet polohy

Podobné dokumenty
Primární zpracování radarového signálu dopplerovská filtrace

SEMESTRÁLNÍ PRÁCE Z X37SAS Zadání č. 7

VUT Fakulta Elektrotechnická Katedra m ení Technická 2, Praha 6 ZPRACOVÁNÍ SIGNÁLU V GNSS BAKALÁ SKÁ PRÁCE. Vedoucí práce: Dr. Ing.

1) Sestavte v Matlabu funkci pro stanovení výšky geoidu WGS84. 2) Sestavte v Matlabu funkci pro generování C/A kódu GPS družic.

Rozprostřené spektrum. Multiplex a mnohonásobný přístup

MRAR-L. Družicové navigační systémy. Č. úlohy 4 ZADÁNÍ ROZBOR

Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

MATLAB. F. Rund, A. Novák Katedra radioelektroniky, FEL ČVUT v Praze. Abstrakt

Úloha 3: Určení polohy z kódových měření

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

l, l 2, l 3, l 4, ω 21 = konst. Proved te kinematické řešení zadaného čtyřkloubového mechanismu, tj. analyticky

MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH. Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Reference 10. Předpokládejme stavový popis spojitého, respektive diskrétního systému

GPS. Uživatelský segment. Global Positioning System

Vlastnosti a modelování aditivního

Regresní analýza 1. Regresní analýza

Matematika (a fyzika) schovaná za GPS. Global Positioning system. Michal Bulant. Brno, 2011

11MAMY LS 2017/2018. Úvod do Matlabu. 21. února Skupina 01. reseni2.m a tak dále + M souborem zadané funkce z příkladu 3 + souborem skupina.

Úvod do mobilní robotiky AIL028

13. Elektronická navigace od lodní přes leteckou po GPS principy, vlastnosti, technické prostředky

GPS - Global Positioning System

Principy GPS mapování

Simulace. Simulace dat. Parametry

Zada ní 1. Semina rní pra ce z pr edme tu Matematický software (KI/MSW)

BPC2E_C08 Parametrické 3D grafy v Matlabu

REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB

Nastavení parametrů PID a PSD regulátorů

cv3.tex. Vzorec pro úplnou pravděpodobnost

Úvod do zpracování signálů

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

kamerou. Dle optických parametrů objektivu mohou v získaném obraze nastat geometrická

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

Numerické metody a programování. Lekce 7

VLASTOSTI DRUŽICOVÉHO NAVIGAČNÍHO SYSTÉMU GPS-NAVSTAR

Motivace příklad použití lokace radarového echa Význam korelace Popis náhodných signálů číselné charakteristiky

oblasti je znázorněn na obr Komplexní obálku můžeme rozepsat na její reálnou a

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Software pro modelování chování systému tlakové kanalizační sítě Popis metodiky a ukázka aplikace

Mechanika II.A Třetí domácí úkol

y (5) (x) y (4) (x) + 4y (3) (x) 12y (x) 45y (x) 27y(x) (horní indexy značí derivaci) pro 3. y(x) = x sin 3x 4. y(x) = x cos 3x 9.

Univerzita Pardubice Fakulta chemicko technologická Katedra analytické chemie Licenční studium Management systému jakosti

základní vlastnosti, používané struktury návrhové prostředky MATLAB problém kvantování koeficientů

v Praze mezi kanály EEG Ondřej Drbal 5. ročník, stud. sk. 9

Modulace 2. Obrázek 1: Model klíčování amplitudovým posuvem v programu MATLAB

Fyzikální korespondenční seminář MFF UK

Signálové a mezisystémové převodníky

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Návrh konstrukce odchovny 3. dil

Časové řady, typy trendových funkcí a odhady trendů

Princip řešení soustavy rovnic

íta ové sít baseband narrowband broadband

Časové řady, typy trendových funkcí a odhady trendů

Modulační parametry. Obr.1

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

NUMERICKÝ MODEL NESTACIONÁRNÍHO PŘENOSU TEPLA V PALIVOVÉ TYČI JADERNÉHO REAKTORU VVER 1000 SVOČ FST 2014

oddělení Inteligentní Datové Analýzy (IDA)

Kombinatorika, výpočty

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

N Á V R H. OPATŘENÍ OBECNÉ POVAHY ze dne 2005, o rozsahu požadovaných údajů v žádosti o udělení oprávnění k využívání rádiových kmitočtů

Vektorové obvodové analyzátory

Statika. fn,n+1 F = N n,n+1

Global Positioning System

ADA Semestrální práce. Harmonické modelování signálů

BPC2E_C09 Model komunikačního systému v Matlabu

Experimentální realizace Buquoyovy úlohy

MATLAB PRO PODPORU VÝUKY KOMUNIKAČNÍCH SYSTÉMŮ

Matematika I A ukázkový test 1 pro 2014/2015

Nelineární obvody. V nelineárních obvodech však platí Kirchhoffovy zákony.

Úloha A - Měření vlastností digitální modulace

Sítě SFN Systém pro analýzu a vizualizaci pokrytí a rušení vysílacích sítí

Identifikace a řízení nelineárního systému pomocí Hammersteinova modelu

5. Lokální, vázané a globální extrémy

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

Kapitola 6. Jak funguje GPS. Historický úvod- obsah. Historickýúvod Měření zeměpisné délky a šířky. Zeměpisná šířka je snadná

Monte Carlo. Simulační metoda založená na užití stochastických procesů a generace náhodných čísel.

Jak funguje GPS. Kapitola6. Jak funguje GPS 6-1

Úloha - rozpoznávání číslic

DRN: Soustavy linárních rovnic numericky, norma

Fakulta chemicko-technologická Katedra analytické chemie. 3.2 Metody s latentními proměnnými a klasifikační metody

Numerické metody a programování. Lekce 8

základy astronomie 2 praktikum 5 Dynamická paralaxa hvězd

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

K metodám převodu souřadnic mezi ETRS 89 a S-JTSK na území ČR

4. Na obrázku je rozdělovací funkce (hustota pravděpodobnosti) náhodné veličiny X. Jakou hodnotu musí mít parametr k?

14. přednáška. Přímka

AVDAT Nelineární regresní model

Elektronické obvody analýza a simulace

výsledek 2209 y (5) (x) y (4) (x) y (3) (x) 7y (x) 20y (x) 12y(x) (horní indexy značí derivaci) pro 1. y(x) = sin2x 2. y(x) = cos2x 3.

1. Vlastnosti diskretních a číslicových metod zpracování signálů... 15

Kombinatorická minimalizace

Fyzikální praktikum I

Fyzikální laboratoř. Kamil Mudruňka. Gymnázium, Pardubice, Dašická /8

vzorek vzorek

Hledání kořenů rovnic jedné reálné proměnné metoda sečen Michal Čihák 23. října 2012

lní model gravitačního pole z inverze dráhových dat družic CHAMP, GRACE a GOCE

Transkript:

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE K13137 - Katedra radioelektroniky A2M37RSY Jméno Stud. rok Stud. skupina Ročník Lab. skupina Václav Dajčar 2011/2012 2. 101 - Datum zadání Datum odevzdání Klasifikace 29.11.2011 13.12.2011 Číslo úlohy 2 Dálkoměrný signál služby SPS systému GPS: vlastnosti, měření zpoždění a výpočet polohy

1. Úvod Služba SPS (Standard Positioning Service) využívá dálkoměrných signálů družic GPS na kmitočtu L1 s modulací kódem C/A (Coarse Acquisition). Zpracování dálkoměrných signálů v kanálech přijímače GPS probíhá korelační metodou. Výrazné maximum korelační funkce se využívá pro udržování synchronizace mezi přijímaným signálem a lokálně generovaným signálem referenčním. Přítomnost signálu družice je možné identifikovat na základě výpočtu vzájemné korelační funkce (modelu) přijímaného signálu a repliky generované přijímačem. Poloha maxima této korelační funkce určuje fázi kódu. Fáze kódu odpovídá zpoždění signálu během šíření od družice k přijímači. Přijímač GNSS musí vyhledat signály družic, tedy zjistit přítomnost signálu a určit pro signál každé družice zpoždění kódu a Dopplerův kmitočet. Tím jsou vytvořeny počáteční podmínky pro algoritmy sledování signálů družic. Parametry přijímaného signálu musí být určeny s takovou přesností, aby následně došlo k zavěšení zpětnovazebních obvodů pro sledování signálu. Nalezení správného odhadu dvou parametrů signálu si můžeme představit jako prohledávání dvourozměrného prostoru. Fáze kódu se vyhledává přes celou periodu kódu obvykle s krokem 1/2 chipu (dáno tvarem autokorelační funkce C/A kódu). Dopplerův kmitočet se prohledává v symetrickém intervalu, který pokrývá rozsah radiálních rychlostí daných součtem příspěvku z pohybu družice po oběžné dráze a příspěvku z pohybu přijímače (dle předpokládané maximální rychlosti). Rozsah prohledávaných kmitočtů je také ovlivněn kvalitou lokálního oscilátoru přijímače. Krok prohledávání ve zpoždění i v kmitočtu se v angličtině označuje slovem bin. 2. Úkoly 1. Vypočtěte a vykreslete autokorelační funkci signálu s C/A kódem. 2. Vykreslete vzájemnou korelační funkci dvou signálů s různými C/A kódy. Pro body 1 a 2 zvolte vzorkování jeden vzorek na jeden bit kódu. 3. Určete jaké C/A kódy se vyskytují v signálu ze souboru (záznam o délce 1 ms) a jaké jsou fáze kódů přítomných signálů. 4. Implementujte iterační algoritmus výpočtu polohy v programu Matlab. Odhadněte polohu přijímače použitou při generování modelu signálu. K dispozici máte polohy vysílačů (pro jednoduchost uvažujeme místo družic nepohyblivé vysílače nazývané pseudolity), které spolu se změřenými fázemi kódů (viz bod 3.) použijte pro výpočet polohy. Zaznamenejte, jak se s každou iterací zmenšuje vzdálenost odhadu polohy rˆ od bodu r0. 3. Postup řešení Zadané datové soubory obsahují: funkce pro generování signálu s GPS kódy soubor s modelem přijímaného signálu a. Řešení úkolu 1 V tomto bodě byla vypočtena a vykreslena (viz obr. 1) autokorelační funkce signálu s C/A kódem. K výpočtu byla použita funkce korelace implementující standardní funkci xcorr z Matlabu. Jako parametry byly funkci zadány vygenerované komplexní obálky signálu s C/A kódem GPS, které byly získány pomocí funkce sgpsgen a Cacode (viz příloha). Z výsledného průběhu je možné odečíst maximum autokorelační funkce. function Rp=korelace(s1,s2) N=length(s1); Rp2=xcorr([s1 s1], s2)/n; Rp=Rp2(2*N:3*N-1);

Obr. 1 Autokorelační funkce signálu s C/A kódem b. Řešení úkolu 2 Na obrázku č. 2 je zobrazen průběh vzájemné korelační funkce signálu s různými C/A kódy. Různé kódy zajistí, aby vzájemná korelační funkce neměla maximum. Obr. 2 Vzájemná korelační funkce s různými C/A kódy

c. Řešení úkolu 3 Pro určení, jaké kódy se vyskytují v přijatém signálu, bylo nutné provést vzájemnou korelační funkci mezi přijatým signálem a 12 vygenerovanými GPS signály odlišenými použitým PRN kódem. Z celkových dvanácti průběhů vykazovali 4 viditelné maximum, z něhož se dala odečíst fáze, která odpovídá zpoždění signálu během šíření od družice k přijímači. Obr. 3 Korelační funkce dálkoměrného signálu GPS s C/A kódem č. 1 Obr. 4 Korelační funkce dálkoměrného signálu GPS s C/A kódem č. 2

Obr. 5 Korelační funkce dálkoměrného signálu GPS s C/A kódem č. 6 Obr. 6 Korelační funkce dálkoměrného signálu GPS s C/A kódem č. 12 Jednotlivá maxima průběhu vzájemné korelační funkce umožnila určit následující zpoždění ke sledovaným družicím: 1 0,1117ms, 2 0,0782ms, 3 0,1020ms, 4 0,1040ms.

d. Řešení úkolu 4 Implementován byl iterační algoritmus výpočtu polohy v programu Matlab (viz příloha), díky němuž mohla být odhadnuta poloha přijímače, která byla použita pri generování modelu signálu. K dispozici byly dány polohy vysílačů (pro jednoduchost uvažujeme místo družic nepohyblivé vysílače nazývané pseudolity), které byly spolu se změřenými fázemi kódů (viz bod c.) použity pro výpočet polohy. Přijímač GNSS provádí výpočet polohy na základě změřených pseudovzdáleností. Výpočet je založen na řešení následující soustavy nelineárních rovnic. Kde di jsou pseudovzdálenosti vypočtené ze změřených zpoždění k sledovaným družicím odlišeným indexem i, 0 je chyba časové základny přijímače, wi reprezentuje chybu měření, r je hledaná poloha přijímače a si jsou polohy družic. Jednou z možností řešení dané soustavy je linearizace pomocí Taylorovy řady v okolí bodu se souřadnicemi r0. Dostaneme soustavu lineárních rovnic. Kde dio je vzdálenost mezi bodem r0 a danou družicí. Soustavu můžeme vyjádřit maticovou rovnicí: Matici A nazýváme maticí směrových kosinů. Za předpokladu nekorelovaných chyb měření vzdálenosti se stejným rozptylem pro měření ke všem družicím, je odhad: Počáteční bod byl zvolen náhodně (využit generátor náhodných čísel rand). Výsledkem je vždy pozice přijímače r0 (viz obr. 7 a 8), zelené kroužky označené S1-S4 představují vysílače.

Dále určíme matici A a b a dopočítáme odhad x^, který obsahuje ve třech prvních hodnotách vzdálenosti, které přičteme k původnímu r0 a čtvrtou hodnotou je c 0, kterou dále nepotřebujeme. Tento postup představuje jeden iterační krok. Obr. 7 Kroky iterace, r0 postupně určuje konečnou polohu (červeně) Pro představu uvádím souřadnice bodu r0 (formát x, y, z) v metrech v jednotlivých krocích iterace: r0 = [230, 485, 4117], r0 = [7250, 5748, 583], r0 = [3692, 3482, 583], r0 = [4012, 3524, 760]. zvolený počáteční bod 1. krok iterace 2. krok iterace 3. krok iterace

Obr. 8 Detail zaměřený na konečný výsledek (červeně) 4. Závěr V rámci semestrální práce byl zpracován přijatý signál (s_rec10103.mat), pomocí něhož se daly určit jednotlivé fáze(viz bod 3.c.). Ke zpracování byl využit výpočetní software Matlab, v němž byl vytvořen skript (viz příloha) implementující iterační algoritmus pro určení polohy přijímače, který již ve třetím kroku konverguje k výsledku, tzn. poloze přijímače (hodnoty v km) na souřadnicích [4.0117, 3.5236, 0.7608].Tvorba této práce přispěla k lepšímu pochopení dané problematiky, nutno však podotknout, že celá situace byla velmi zjednodušena, jelikož byly uvažovány nepohyblivý přijímač i vysílače.

Příloha skript z Matlabu, použité funkce % % % % Semestralka c. 2 - V. Dajcar % % % % % % % % % % % % %A2M37RSY% % % % % % % % % % close all; clear all; load -mat s_rec10103.mat Np0=1023; Np=4500; T=1; figure(14) plot(korelace(sgpsgen(3,np0,t,0,0),sgpsgen(3,np0,t,0,0))); title('autokorelacni funkce signalu s C/A kodem'); xlabel('tau [k]') ylabel('r(tau)') figure(15) plot(korelace(sgpsgen(3,np0,t,0,0),sgpsgen(7,np0,t,0,0))); title('vzajemna korelacni funkce signalu s ruznymi C/A kody'); xlabel('tau [k]') ylabel('r(tau)') % generovani GPS signalu s=[12 4500]; for i=1:12 a=sgpsgen(i,np,t,0,0); for j=1:4500 s(i,j)=a(j); ; % vypocet korelacnich funkci R=[12 4500]; for i=1:12 Rr=korelace(s_rec,s(i,:)); for j=1:4500 R(i,j)=Rr(j); ; osa=0:1/4500:length(r(i,:))/4500-1/4500; % zobrazeni korelacnich funkci for i=1:12 figure(i) plot(osa,abs(r(i,:)),'linewidth',1); title(sprintf('korelacni funkce dalkomerneho signalu GPS s C/A kodem c.%d',i)); xlabel('tau [ms]') ylabel('r(tau)') % urceni zpozdeni tau z vypoctenych autokorelacnich funkci for i=1:12 [pmax(i),imax(i)] = hledejmax(abs(r(i,:)),np); %#ok<agrow,agrow> if pmax(i)>0.6 tau(i) = imax(i); %#ok<agrow> tau(tau==0)=[];

%Polohy vysilacu s1 s4 (PRNs1 < PRNs2 < PRNs3 < PRNs4) v metrech %tau=sort(tau); s1 = [8000 8000 15000]; s2 = [0 0 0]; s3 = [16000 0 0]; s4 = [8000 16000 0]; c = 299792458; % vypoctene pseudovzdalenosti ze zmerenych zpozdeni k sledovanym druzicim for i=1:4 d0(i)=c*tau(i)*1e-3; %#ok<agrow> % nahodne zvolene souradnice pocatecniho bodu r0=[fix(5000*rand(1)) fix(5000*rand(1)) fix(5000*rand(1))]; r01=r0; % vypocet vydalenosti bodu r0 od jednotlivych druzic d=[sqrt((r0(1)-s1(1))^2+(r0(2)-s1(2))^2+(r0(3)-s1(3))^2); sqrt((r0(1)-s2(1))^2+(r0(2)-s2(2))^2+(r0(3)-s2(3))^2); sqrt((r0(1)-s3(1))^2+(r0(2)-s3(2))^2+(r0(3)-s3(3))^2); sqrt((r0(1)-s4(1))^2+(r0(2)-s4(2))^2+(r0(3)-s4(3))^2)]; d=d'; % vypocet matice b, tj. rozdil mezi pseudovzdalenosti a vzdalenosti bodu r0 % od druzic b=[d0(1)-d(1) d0(2)-d(2) d0(3)-d(3) d0(4)-d(4)]; % iteracni algoritmus en=3; figure(16) for i=1:en hold on grid on plot3(r01(1),r01(2),r01(3),'x') text(r01(1),r01(2),r01(3),'\leftarrow r0','horizontalalignment','left') A=[(r0-s1)/d(1) 1;(r0-s2)/d(2) 1;(r0-s3)/d(3) 1;(r0-s4)/d(4) 1]; x = ((A'*A)^-1)*A'*b'; r0=r0+x(1:3)'; d=[sqrt((r0(1)-s1(1))^2+(r0(2)-s1(2))^2+(r0(3)-s1(3))^2); sqrt((r0(1)-s2(1))^2+(r0(2)-s2(2))^2+(r0(3)-s2(3))^2); sqrt((r0(1)-s3(1))^2+(r0(2)-s3(2))^2+(r0(3)-s3(3))^2); sqrt((r0(1)-s4(1))^2+(r0(2)-s4(2))^2+(r0(3)-s4(3))^2)]; d=d'; b=[d0(1)-d(1) d0(2)-d(2) d0(3)-d(3) d0(4)-d(4)]; plot3(s1(1),s1(2),s1(3),'ogreen') text(s1(1),s1(2),s1(3),'\leftarrow S1','HorizontalAlignment','left') plot3(s2(1),s2(2),s2(3),'ogreen') text(s2(1),s2(2),s2(3),'\leftarrow S2','HorizontalAlignment','left') plot3(s3(1),s3(2),s3(3),'ogreen') text(s3(1),s3(2),s3(3),'\leftarrow S3','HorizontalAlignment','left') plot3(s4(1),s4(2),s4(3),'ogreen') text(s4(1),s4(2),s4(3),'\leftarrow S4','HorizontalAlignment','left') pause(2); if i==en plot3(r0(1),r0(2),r0(3),'xred') text(r0(1),r0(2),r0(3),'\leftarrow r0','horizontalalignment','left') else plot3(r0(1),r0(2),r0(3),'x') text(r0(1),r0(2),r0(3),'\leftarrow r0','horizontalalignment','left') title('urceni polohy prijimace'); xlabel('x [m]')

ylabel('y [m]') zlabel('z [m]') Použité funkce: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function Rp=korelace(s1,s2) N=length(s1); Rp2=xcorr([s1 s1], s2)/n; Rp=Rp2(2*N:3*N-1); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [pmax imax] = hledejmax(prubeh,npc) imax = 1; pmax = 0.001; for i = 1: length(prubeh) if abs(prubeh(i)) > pmax pmax = abs(prubeh(i)); imax = i; imax = imax/npc; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function s = sgpsgen(prnno, Npc, Np, fd, tau); % PRNno - Cislo PRN kodu % Npc - pocet vzorku na periodu kodu % Np - pocet period % fd - doppleruv kmitocet v Hz % tau - zpozdeni kodu v ms PRN = CAcode(PRNno); k = 1:Npc*Np; sc = PRN.PRN11(floor(mod((k/Npc-tau)*1023,1023))+1); fn = exp(2*pi*1j*k*fd/1000/npc); s = sc.*fn; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Function CAcode generates C/A code for a given number PRN. % It generates one period of the code. % Code is provided in three formats % 1. sequences containing 1, 0 - a vector length 1023 for each satellite % 2. sequences containing 1, -1 (mapping from ad 1: 1->1, 0->-1) % - a vector length 1023 for each satellite % % Syntax: % PRNcode = CAcode(PRNnumber) % % PRNcode - structure containing vectors PRN10, PRN11, PRNhex % PRN10(1, 1023) - Gold code in representation ad 1 % PRN11(1, 1023) - Gold code in representation ad 2 % function PRN = CAcode(PRNno) % Jiri Fajt, October 2001, Josef Spacek 2008 if (PRNno<1) (PRNno>37) msgbox('wrong PRN number requested.', 'Error', 'error'); exit; G1SR = ones(1,10); % G1 shift register initial

G2SR = ones(1,10); % G2 shift refister initial G1mask = [0 0 1 0 0 0 0 0 0 1]'; % Shift register masks G2mask = [0 1 1 0 0 1 0 1 1 1]'; G2jmask = zeros(10, 37); G2jmask([2, 6], 1) = 1; % PRN = 1 G2jmask([3, 7], 2) = 1; % PRN = 2 G2jmask([4, 8], 3) = 1; % PRN = 3 G2jmask([5, 9], 4) = 1; % PRN = 4 G2jmask([1, 9], 5) = 1; % PRN = 5 G2jmask([2, 10], 6) = 1; % PRN = 6 G2jmask([1, 8], 7) = 1; % PRN = 7 G2jmask([2, 9], 8) = 1; % PRN = 8 G2jmask([3, 10], 9) = 1; % PRN = 9 G2jmask([2, 3], 10) = 1; % PRN = 10 G2jmask([3, 4], 11) = 1; % PRN = 11 G2jmask([5, 6], 12) = 1; % PRN = 12 G2jmask([6, 7], 13) = 1; % PRN = 13 G2jmask([7, 8], 14) = 1; % PRN = 14 G2jmask([8, 9], 15) = 1; % PRN = 15 G2jmask([9, 10], 16) = 1; % PRN = 16 G2jmask([1, 4], 17) = 1; % PRN = 17 G2jmask([2, 5], 18) = 1; % PRN = 18 G2jmask([3, 6], 19) = 1; % PRN = 19 G2jmask([4, 7], 20) = 1; % PRN = 20 G2jmask([5, 8], 21) = 1; % PRN = 21 G2jmask([6, 9], 22) = 1; % PRN = 22 G2jmask([1, 3], 23) = 1; % PRN = 23 G2jmask([4, 6], 24) = 1; % PRN = 24 G2jmask([5, 7], 25) = 1; % PRN = 25 G2jmask([6, 8], 26) = 1; % PRN = 26 G2jmask([7, 9], 27) = 1; % PRN = 27 G2jmask([8, 10], 28) = 1; % PRN = 28 G2jmask([1, 6], 29) = 1; % PRN = 29 G2jmask([2, 7], 30) = 1; % PRN = 30 G2jmask([3, 8], 31) = 1; % PRN = 31 G2jmask([4, 9], 32) = 1; % PRN = 32 G2jmask([5, 10], 33) = 1; % PRN = 33 G2jmask([4, 10], 34) = 1; % PRN = 34 G2jmask([1, 7], 35) = 1; % PRN = 35 G2jmask([2, 8], 36) = 1; % PRN = 36 G2jmask([4, 10], 37) = 1; % PRN = 37 % generation G1 and G2 codes for i = 1:1023 G1(i) = G1SR(10); G2(i) = G2SR(10); G2j = mod(g2sr * G2jmask(:,PRNno), 2); G1SR = [mod(g1sr * G1mask, 2), G1SR(1:9)]; G2SR = [mod(g2sr * G2mask, 2), G2SR(1:9)]; PRN10(i) = xor(g1(i), G2j); % conversion to 1, -1 sequence PRN11 = 2 * PRN10-1; PRN.PRN10 = PRN10; PRN.PRN11 = PRN11; %%%%%% of CAcode.m %%%%%%