ý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. Pavel KováĜ
Autor: Tomáš Kopecký Praha, 2007
1/33
$127$&( Tato práce se zabývá problematikou zpracování a detekce slabých signálĤ v GNSS. Pojednává obecnČ o zpĤsobu zpracování signálĤ a dále pak o algoritmech k jejich úspČšné detekci. Úkolem této práce bylo taktéž naprogramovat a vyzkoušet funkci jednoho z algoritmĤ.
2/33
$1127$7,21 This project contains basic informations about processing and detection of weak signals in GNSS. The part of this work contains also information about the algorithms to detection those weak signals. The task of this project was also to programm and test one of that algorithms.
3/33
4/33
32'ċ.29É1Ì DČkuji Dr. Ing. Pavlovi KováĜovi za hodnotné rady a odborné vedení bČhem mé práce.
5/33
352+/Éä(1Ì Prohlašuji, že jsem svou bakaláĜskou práci vypracoval samostatnČ a použil jsem pouze podklady (literaturu, projekty, SW atd.) uvedené v pĜiloženém seznamu.
Tomáš Kopecký
6/33
2%6$+ Seznam obrázkĤ …………………………………………………………………
8
1. Úvod ………………………………………………………………………….
9
2. GNSS …………………………………………………………………………
9
2.1 Historie družicové navigace ………………………………………… 10 2.2 Aplikace navigaþních systémĤ ……………………………………… 12 2.3 DálkomČrná metoda ………………….……………………………… 13 2.4 GPS ………………………………….………………………………. 14 2.4.1 Kosmický segment ………………………………………… 14 2.4.2 ěídící a kontrolní segment ………………………………… 15 2.4.3 Uživatelský segment ……….……………………………… 16 2.5 Signál GPS ………………………………………………………….. 16 2.5.1 Pseudonáhodný kód ……….………………………………. 16 2.5.2 DálkomČrné kódy …………..……………………………… 17 2.5.3 Navigaþní zpráva …………..……………………………… 18 2.5.4 Složení signálu GPS ……….……………………………… 20 2.5.5 Modulace signálu ………..………………………………… 20 2.5.6 Útlum signálu …..…………………………………………. 21 3. Detekce slabého signálu ……………………………………………………. 22 3.1 CCMDB algoritmus ………………………………………… 22 3.1.1 DopplerĤv efekt …………………………………... 23 3.1.2 Hledání poþátku zprávy …………………………... 24 3.1.3 Hledání datových hodnot …………………………. 24 3.1.4 Implementace CCMDB algoritmu ………………... 25 3.1.5 Zdrojové kódy z Matlabu …………………………. 26 3.1.6 Popis programu …………………………………… 29 3.1.7 Simulace ………………………………………….. 30 4. ZávČr ………………………………………………………………………… 31
LITERATURA ………………………………………………………………… 32 OBSAH PěILOŽENÉHO CD …………………………………………………. 33
7/33
6(=1$02%5É=.ģ 1. RozdČlení družic dle výšky …………………………………………………
10
2. Princip systému Transit …………………………………………………….
11
3. Struktura systému SBAS ……………………………………………………
12
4. Princip dálkomČrné metody ………………………………………………...
13
5. Spektrum signálu GPS ……………………………………………………...
18
6. Struktura navigaþní zprávy …………………………………………………
19
7. Konstrukce signálu GPS …………………………………………………....
20
8. Modulace BPSK ……………………………………………………………
21
9. Postup algoritmu CCMBP ………………………………………………….
23
10. Autokorelaþní funkce ….………………………………………………….
30
8/33
ÒYRG Cílem této práce je seznámit se s obecným principem zpracování signálĤ v GNSS, navrhnout a implementovat algoritmus zajišĢující detekci slabého signálu a tento algoritmus vyzkoušet. V první þásti práce je pojednáváno obecnČ o GNSS, signálech, jejich zpracování, o struktuĜe a zpĤsobu konstrukce navigaþních signálĤ. ZamČĜil jsem se konkrétnČ na americký GPS, protože je v souþasnosti jako jediný celosvČtovČ používaný. Ve druhé þásti práce se vČnuji algoritmĤm, sloužícím k detekci slabého signálu. Pro správné pochopení tČchto algoritmĤ je tĜeba znát obecné vztahy a souvislosti uvedené právČ v þásti první .
*166 Obecný název, pĜidČlený navigaþním systémĤm, které pro navigaci užívají umČlých družic, obíhajících kolem zemČ, je Družicové rádiové systémy urþování polohy (RDSS – Radio Determination Satellite Systems). Na rozdíl od pozemních systémĤ je jejich velkou výhodou potĜeba relativnČ nízkého poþtu vysílaþĤ, pro pokrytí relativnČ velkého území. Družice lze rozdČlit dle nadmoĜské výšky obČžné dráhy na: •
GEO (geostacionární obČžná dráha Geostationary Earth Orbit) nehybné vzhledem k zemskému povrchu, výška 36000 km
•
MEO (stĜední obČžná dráha Medium Earth Orbit) s obČhem 4-6x dennČ, ve výškách 1200 až 35286 km nad zemským povrchem
•
LEO (nízká obČžná dráha Low Earth Orbit) s dobou obČhu 80-130 minut, ve výšce 200 až 1200 km nad zemí
9/33
Obr.1 RozdČlení družic dle výšky
Systémy pracující na nižších drahách pokrývají signálem menší území a mají krátkou dobu obČhu kolem ZemČ, tedy i dobu pĜeletu nad obzorem. Z toho vyplývá, že výhodnČjší je pro navigaci užívat družice s vyšší nadmoĜskou výškou. U vyšších družic se však zvyšuje doba šíĜení signálu od družice.
+LVWRULHGUXåLFRYpQDYLJDFH
V roce 1964 byl uveden do provozu první skuteþnČ družicový navigaþní systém Transit. Výpoþet polohy probíhal na základČ mČĜení Dopplerovy frekvence
[1]
. Jinými slovy
poloha byla poþítána na základČ vzájemné zmČny frekvence signálu mezi družicí a pĜijímaþem v dĤsledku jejich vzájemného pohybu. Pro vypoþtení 3 souĜadnic je tĜeba
=?2QMWFUGFTWĿKEGRĚKDNKĿWLGMWĿKXCVGNKHTGMXGPEGRĚKL®OCPªJQUKIP¢NWLGX[ĢĢ®PGĿX[U®NCPªJQ0CQRCMRQMWF UGX\FCNWLGHTGMXGPEGRĚKL®OCPªJQUKIP¢NWUGUPKĿWLG
10/33
Ĝešit soustavu 3 rovnic o 3 neznámých, jejichž koeficienty získáme trojím mČĜením frekvence k jedné družici. NejvČtší nevýhodou tohoto systému byla skuteþnost, že sice zajišĢoval celosvČtové pokrytí, ale signál nebyl dostupná nepĜetržitČ, protože používal pouze 6 družic, umístČných na nízkých orbitálních drahách LEO s obČžnou dobou 106 minut. To znamená, že doba výskytu družice nad obzorem rovníku je maximálnČ 18 minut s periodou proletu 2 hodiny. Nad místem se zemČpisnou šíĜkou 45° jednou za 45 minut. Nad zemČpisnou šíĜkou 70° pak družice prolétala každých 25 minut. Systém Transit byl ukonþen v roce 1996.
Obr.2 Princip systému Transit
Družicové systémy se nazývají GNSS (Global Navigation Satellite Systems), pokud zajišĢují celosvČtové pokrytí signálem. Patrí mezi nČ americký GPS, který byl budován od roku 1973 a v roce 1978 došlo k vypuštČní první družice, ruský GLONASS, i oþekávaný evropský GALILEO. Všechny 3 systémy pracují na principu pasivní dálkomČrné metody (viz kapitola 2.3) urþování polohy a pohybují se ve výšce MEO družic. Jejich nesporné výhody mĤžeme najít ve schopnosti urþit polohu libovolného místa na Zemi s vysokou pĜesností, þi zavedení jednotného souĜadného systému pro celou ZemČkouli. Dále se v této práci zamČĜím jen na systém GPS, který jak jsem již uvedl výše je jediným spolehlivČ fungujícím (díky tomu, že jej spravuje Ministerstvem Obrany USA, která do jeho vývoje i údržby investuje nemalé þástky). Tento systém byl uveden do plného provozu 17.1.1994 vypuštČním poslední
11/33
24. družice nutné k pokrytí celé zemČkoule, tak aby bylo z každého místa na zemi v jeden okamžik viditelných aspoĖ 4 a více družic. V souþasné dobČ jich je na orbitu 27. 3 slouží jako záložní.
$SOLNDFHQDYLJDþQtFKV\VWpPĤ
Navigaþní systémy dnes nacházejí v moderní spoleþnosti mnoho uplatnČní a na základČ této skuteþnosti se rychle rozrĤstá jejich poþet. Dnes už není vzácností najít navigaci v autech, na kole, na lodích þi u turistĤ. Se stejným úspČchem se navigaþních systémĤ užívá pro lokalizaci rĤzných pĜedmČtĤ (kradená auta, vlaky, Ĝízení dopravy). Naopak pĤvodní zámČr užít GPS þi GLONASS jako jediný navigaþní prostĜedek v letectví se zatím nepodaĜilo zrealizovat. Tyto systémy zatím nespĖují dostateþnČ požadavky na jejich nasazení do letového provozu, zejména integritu zpráv a pĜesnost pro pĜesné pĜiblížení na pĜistání. Z tohoto dĤvodu se na nČkterých místech budují lokální rozšíĜující systémy, využívající geostacionární orbity. Jejich obČžná doba je stejná jako rotace ZemČ. S nimi je pak dosaženo právČ potĜebné pĜesnosti a integrity. Výhoda v použití geostacionárních družic je pokrytí rozsáhlého území jednou družicí, tudíž potĜeba menšího poþtu družic. Tyto družice pak komunikují s pozemními stanovištČmi a GPS þi GLONASS družicemi a na základČ doplnČných informací poþítají korekce polohy. Tyto rozšiĜující systémy jsou známy pod názvem SBAS.
Obr.3 Struktura sytému SBAS 12/33
'iONRPČUQiPHWRGD
V navigaþních systémech se nejvíce osvČdþila pasivní dálkomČrná metoda. Pasivní se nazývá proto, že uživatel data pouze pĜijímá a žádná nevysílá. Existuje i aktivní dálkomČrná metoda, pro její užití musíte ale vlastnit odpovídaþ. Další nevýhodou užití této metody je horší schopnost utajení, která ji vyluþuje z vojenského užití. Princip pasivní metody je znázornČn na obrázku þ. 4. Spoþívá v mČĜení vzdáleností od jednotlivých družic. Tato vzdálenost je poþítana z rychlosti informace (šíĜící se rychlostí svČtla) a doby nutné pro pĜekonání této vzdálenosti. Pokud budeme mít v daném okamžiku na dohled 3 družice, pĜijmeme informace o jejich poloze a na základČ tČchto informací mĤžeme sestavit 3 rovnice o 3 neznámých (x,y,z) :
d i = cτ i = ( xi − x) 2 + ( yi − y ) 2 + ( zi − z ) 2 i = 1,2,3
Obr. 4 Princip dálkomČrné metody Jedním z hlavních požadavkĤ na moderní navigaþní systémy je hlavnČ pĜíznivá cena pĜijímaþĤ. Z tohoto dĤvodu a z dĤvodu kompaktní velikosti neobsahují pĜijímaþe
13/33
pĜesné atomové hodiny tak jako družice, jejichž hodiny jsou sledovány a korigovány. Vzniká tak problém se synchronizací þasové základny uživatele a systému. Uživatel tedy mČĜí tzv. zdánlivou vzdálenost Di (Pseudorange), resp. jim odpovídající doby iξ , které jsouv dĤsledku nepĜesnosti hodin pĜijímaþe posunuty o stejný neznámý þasový interval ¨t oproti skuteþné dobČ šíĜení iIJ. Musíme proto pĜijímat signál minimálnČ od 4 družic a Ĝešit 4 rovnice o 4 neznámých. Modifikace pĤvodní soustavy rovnic je pak následující:
d i = cτ i = c(ξ i + Δt ) = Di + cΔt = ( xi − x) 2 + ( yi − y ) 2 + ( zi − z ) 2
i = 1,2,3
*36
GPS (Global Positioning Systém) je vojenský navigaþní družicový radiový dálkomČrný systém provozovaný Ministerstvem obrany USA. Tento systém lze rozdČlit do 3 segmentĤ: -
kosmický
-
Ĝídící
-
uživatelský
.RVPLFNêVHJPHQW Jak je uvedeno ve Wikipedii [7] kosmický segment tvoĜí 24 družic, ze kterých jsou tĜi záložní družice, které obíhají Zemi na šesti drahách (sklon dráhy 55°) vzájemnČ posunutých o 60° ve výšce 20 200 km nad povrchem ZemČ (obČžná doba je tedy 11h a 58 min - pozemský pozorovatel vidí každý den stejnou dráhu, avšak družice vychází vždy o 4 minuty dĜíve). Na palubČ družic NAVSTAR jsou 3 až 4 velmi pĜesné (10-13) atomové hodiny (nezbytné pro funkci systému), s cesiovým a rubidiovým oscilátorem, a dále pak detektory, kontrolující dodržování zákazu zkoušek nukleárních zbraní. Navigaþní signál je vysílán v pásmu L (2000-1000 MHz).
14/33
Družice vysílají na nČkolika kmitoþtech, které jsou zvoleny zámČrnČ, aby byly odolné vĤþi meteorologickým vlivĤm. •
„L1“ (1575,42 MHz), kde je vysílán C/A kód je dostupná pro civilní uživatele systému GPS.
•
„L2“ (1227,62 MHz), kde je šíĜen vojenský P/Y kód, který je šifrovaný, je pĜístupná pouze pro tzv. autorizované uživatele (napĜ. vojenské služby USA).
•
„L3“ (1381,05 MHz) obsahuje signály, které souvisí s další funkcí systému GPS, odhalováním startĤ balistických raket (þímž doplĖuje satelity náležící k
Defense
Support
Program),
jaderných
výbuchĤ
a
dalších
vysokoenergetických zdrojĤ v infraþerveného záĜení. •
„L4“ (1841,40 MHz) se využívá pro mČĜení ionosferického zpoždČní. PrĤchod signálu ionosférou zpĤsobuje totiž pĜidání dodateþného zpoždČní ke zpoždČní zpĤsobenému vzdáleností, které se promítne do chyby polohy. Toto ionosférické zpoždČní lze eliminovat, jestliže mČĜíme zpoždČní na dvou kmitoþtech.
•
„L5“ (1176,45 MHz) se plánuje jako civilní safety-of-life (SoL) signál. Tato frekvence spadá do mezinárodnČ chránČné oblasti letecké navigace, ve které je malé nebo žádné rušení za všech podmínek. S vypuštČním prvního Block IIF satelitu, který bude poskytovat tento signál se v tomto roce (2007).
ětGtFtDNRQWUROQtVHJPHQW Po svČtČ je rovnomČrnČ rozmístČno 5 monitorovacích stanic a 3 povelové stanice, které kontrolují a korigují vysílané zprávy i polohy (pomocí motorĤ umístČných na družicích) družic.
15/33
8åLYDWHOVNêVHJPHQW Hlavní souþástí tohoto segmentu je GPS pĜijímaþ signálu s rozprostĜeným spektrem. Tento pĜijímaþ pĜijímá data v jednom momentu od 3 až 12 družic. Pro urþení polohy nám postaþí pouze 3 satelity, pokud se obejdeme pouze s údajem o poloze bez výšky – jedná se tedy pak o 2D navigaci. Pokud chceme znát naši polohu v prostoru je tĜeba pĜijímat signál aspoĖ od 4 satelitĤ.
6LJQiO*36 3VHXGRQiKRGQêNyG
Jednou ze složek signálu vysílaného družicí je pseudonáhodný kód. Každá družice používá jiný kód, pĜiþemž tyto kódy se vybírají z množiny Goldových posloupností. To jsou posloupnosti, které jsou vzájemnČ málo korelované a pĜitom vedlejší maxima autokorelaþní funkce jsou zanedbatelná. Tyto vlastnosti jsou požadovány z tČchto dĤvodĤ: Autokorelaþní funkce s malými vedlejšími maximy je výhodná na mČĜení zpoždČní signálu, což je nutný pĜedpoklad dobrého fungování systému. Slabá vzájemná nekorelovanost je zase základem CDMA. V pĜijímaþi probíhá pĜed vlastní demodulací BPSK nejprve pĜenásobení pĜijímaného signálu kódem té družice, jejíž signál chceme demodulovat. PĜenásobení zpĤsobí, že signál požadované družice se plnČ obnoví (protože 1 * 1 = 1 a − 1 * − 1 = 1 a tedy druhým násobením se úplnČ zruší vliv prvního násobení na družici). Signál nechtČné družice se díky nekorelovanosti neobnoví a ,protože vypadá jako šum, je následnými obvody v pĜijímaþi jako šum také potlaþen. Tento pseudonáhodný kód je náhodná posloupnost jedniþek a nul. Tento signál je každou družicí generován na konrétní frekvenci, má periodu P a je þásteþnČ modulován. Stejná pseudonáhodná posloupnost je generována také v pĜijímaþi. Synchronizací obou signálĤ pak získáme potĜebný posuv o p bitĤ kopie signálu vĤþi signálu pĤvodnímu. Doba šíĜení iξ se urþí jako souþin posuvu p a doby trvání jednoho bitu IJ. PĜesnČ o tolik je tĜeba zpozdit kopii signálu, aby byla synchronizována s pĜijímaným signálem. Každý pĜijímaþ obsahuje
16/33
korelátor, který poþítá korelaci obou pseudonáhodných kódĤ. Pomocí této korelace jsme schopni uþit právČ potĜebný posuv p bitĤ. Uvažujeme zde posuv pouze o celý poþet bitĤ. MĤžeme pak konvoluþní integrál korelaþní funkce nahradit sumou souþinĤ jednotlivých bitĤ. Korelátor však ve skuteþnosti pracuje spojitČ. Každý pĜijímaþ obsahuje tzv. diskriminátor zpoždČní, který Ĝídí generátor kopií signálĤ napČtím u(p). Toto napČtí a jeho velikost a znaménko odpovídá potĜebnému posuvu p. PĜi kladném napČtí kopii zpožćuje o odpovídající velikost, pokud záporné, naopak. Diskriminátor je složen ze dvou korelátorĤ, jednoho zpoždČného a druhého pĜedbíhajícího a odeþítá od sebe jejich výstupy. Tak je získávána potĜebná závislost napČtí na posuvu signálĤ.
'iONRPČUQpNyG\ DálkomČrné kódy GPS jsou oznaþovány také jako PRN kódy (Pseudo Random Noise), protože jsou podobné náhodnému šumu. Jedná se unikátní pseudonáhodné posloupnosti, které v sobČ nesou pĜesné informace o družici která jej vyslala, její poloze i korekci þasu.
C/A KÓD Jak je uvedeno na gpswebu.cz [8], tento kód není šifrován a vzniká binárním souþtem výstupĤ ze dvou registrĤ. Tím, že není šifrován je urþen pro civilní použití. Jeho pĜesnost je v Ĝádu nČkolika metrĤ. Je oznaþován jako kód pro hrubé mČĜení (Coarse Acquisition). Jelikož je vysílán na frekvenci 1023 MHz a má délku 1023 bitĤ, je opakován každou tisícinu vteĜiny. P(Y) KÓD Tento kód je urþen výhradnČ pro vojenské úþely. V nČkterých zemích je povoleno jeho užívání pro geodetické úþely. Je nazýván P z anglického Protected. Je 10x rychlejší než C/A kód, þímž dochází ke zvýšení pĜesnosti mČĜení. Další zvýšení pĜesnosti je zpĤsobeno tím, že moduluje obČ nosné frekvence L1 i L2. Tím se eliminuje vliv ionosférických a troposférických refrakcí na chybu urþení vzdálenosti. GPS pĜístroje pracující s tímto kódem tak dokáží pracovat s pĜesností v Ĝádech milimetrĤ. Není
17/33
uvolnČn pro bČžné použití právČ kvĤli možnému vojenskému zneužití (napĜ. navádČní
Ĝízených stĜel). StejnČ jako C/A kód není šifrován, proto je místo nČj vysílán Y kód, který je šifrován. Klíþem k rozluštČní je W kód, který je obsažen ve vojenských pĜijímaþích a pomocí kterého je možné zpČtnČ rekonstruovat pĤvodní P signál. Tento zpĤsob ochrany je nazýván A-S (Anti-Spoofing). Je vytváĜen kombinací bitových sekvencí dvou registrĤ. Touto kombinací vzniká kód o délce 2,3547 x 1014 bitĤ. Tím je urþena perioda opakování P kódu na 266,4 dne. Na obrázku þ.5 je znázornČno spektrum signálu GPS s jednotlivými dálkomČrnými kódy.
Obr.5 Spektrum signálu GPS
1DYLJDþQt]SUiYD V almanachu katedry fyziky [4] je uvedeno, že navigaþní zpráva obsahuje informace o telemetrii, dráze jednotlivých družic a nejrĤznČjší korekþní data. Je vysílána frekvencí 50 Hz, její délka je 1 500 bitĤ a skládá se z pČti þástí (subframĤ), každé po 300 bitech. Jednotlivé subframy jsou tvoĜeny desítkou tĜicetibitových slov. První v každém subframu je telemetrické slovo TLM, nesoucí synchronizaþní vzor a diagnostické zprávy. Za ním následuje slovo HOW (hand-over word), které kromČ identifikaþních údajĤ subframu a nejrĤznČjších indikátorĤ nese i þasovou hodnotu TOW (time of week) platnou pro zaþátak dalšího subframu. Hodnota TOW pĜedstavuje poþet þasových úsekĤ dlouhých 1,5 s uplynulých od zaþátku týdne GPS.
18/33
Další slova jsou urþena pĜedevším pro navigaþní data, ale najdeme zde i nejrĤznČjší vojenská data, kontrolní údaje, data o stavu družic, informace o stavu ionosféry a další údaje. První subframe navigaþní zprávy obsahuje údaje o týdnu GPS, stavu družice (jinak také SV – Space Vehicle) a další parametry jako napĜíklad odhad zpoždČní vysílaného signálu nebo kontrolní údaje atomových hodin. Druhá a tĜetí þást jsou vyhrazeny pro vysílání efemerid. Zatímco první tĜi subframy navigaþní zprávy jsou pro každou družici unikátní, data ze þtvrtého a pátého subframu jsou u všech družic stejná. ýtvrtý subframe je rezervován pĜedevším pro vojenské údaje, kromČ nich však obsahuje data o stavu ionosféry a provizornČ i almanachAlmanach – jedna ze složek signálu GPS – souþást navigaþní zprávy. Obsahuje ménČ pĜesná data o poloze družic GPS. Aktualizován je jednou za šest dnĤ. Všechny družice vysílají stejný almanach, který nese data o poloze všech družic GPS na obČžné dráze. nejnovČjších družic, které pĜesahují poþet tvoĜící FOCFOC – Full Operational Capability, plná operaþní schopnost globálního polohového systému GPS. Byla vyhlášena 17. þervence 1995, po dosažení poþtu 24 družic Bloku II a IIA na obČžné dráze a jejich dĤsledném testování. V obecném pojetí oznaþení pro dostupnost dané technologie (frekvence, kódu) na 24 plnČ funkþních družicích GPS na obČžné dráze. . Tím byl vyĜešen problém, jak zajistit vysílání almanachu pro 25. a následující družice, se kterými se pĜi vzniku GPS poþítalo jen jako se zálohami, a pĜesto jsou v souþasnosti plnČ funkþní. Poslední subframe navigaþní zprávy tvoĜí almanachAlmanach – jedna ze složek signálu GPS – souþást navigaþní zprávy. Obsahuje ménČ pĜesná data o poloze družic GPS. Aktualizován je jednou za šest dnĤ. Všechny družice vysílají stejný almanach, který nese data o poloze všech družic GPS na obČžné dráze. pro nejdéle sloužících 24 družic.
Obr.6 Struktura navigaþní zprávy
19/33
6ORåHQtVLJQiOX*36 Každá družice generuje 2 signály na frekvencích L1 (1575,42 Mhz) a L2 (1227,6 Mhz). Konstrukce signálu je následující. NejdĜíve je vygenerována navigaþní zpráva s frekvencí 50 Hz, která je sestavena na základČ dat pĜijatých z Ĝídícího stĜediska. Tato zpráva je binárnČ sþítána s C/A kódem, který má frekvenci 1,023 MHz. Binární souþet je nakonec modulován na frekvenci L1. Stejným zpĤsobem je navigaþní zpráva sþítána i s druhým dálkomČrným kódem P, s desetkrát vČtší frekvencí. Konstrukce signálu je zobrazena na obr. 7. Tento signál je pak pomocí pole spirálových antén s pravotoþivou polarizací vysílán smČrem k Zemi.
Obr.7 – Konstrukce signálu GPS
0RGXODFHVLJQiOX Jak je uvedeno výše vysílaný signál je modulován. Používá dvoustavové fázové klíþování BPSK (Bipolar Phase Shift Keying). Výhodou BPSK je, že dokáže pĜenést signál na velkou vzdálenost i pĜi minimálním vysílacím výkonu. Jednotlivé stavy jsou od sebe totiž vzdálené o 180°, což jej þiní odolný vĤþi chybám. Binární jedniþka je reprezentována +1 a binární nula hodnotou -1. Princip BPSK je znázornČn na obrázku
þ.8 (v nesprávném mČĜítku – 1 bit signálu (C/A kód) je ve skuteþnosti reprezentován 1540 periody nosné L1)
20/33
Obr.8 Modulace BPSK
ÒWOXPVLJQiOX Specifikace služby SPS (Standard Positioning Service) [3] uvádí, že signál C/A L1 je družicemi GPS vysílán s dostateþným výkonem, aby na výstupu lineárnČ polarizované antény se ziskem 3 dB na zemském povrchu mČl výkon alespoĖ -160 dBW (jednotka výkonu udávaného v decibelové míĜe vztažené k 1 wattu) za pĜedpokladu ztrát v atmosféĜe 2 dB a minimální elevaci 5°. Signál je tedy velmi slabý. ÚroveĖ -160 dBW odpovídá výkonu 10-16 W. Moderní pĜijímaþe, se kterými se dnes na trhu setkáváme jej pĜesto dokáží bez problémĤ detekovat. Pokud signál však ještČ oslabíme dojde ke ztrátČ signálu. Pokud signálu postavíme do cesty pĜekážku dojde buć k prĤchodu, odrazu nebo pohlcení signálu pĜekážkou. O tom jak se signál zachová rozhoduje pĜedevším materiál a tloušĢka pĜekážky. Sklo nebo textil jej napĜíklad moc neutlumí. K útlumu však dochází pokud signál prochází skrz beton, zdivo, kov þi vodu. Voda pohltí toto elektromagnetické záĜení tak spolehlivČ, že jej naprosto vyĜazuje z možného použití jako navigaþního prostĜedku pro ponorky. PĜedevším proto, že tlustČjší stČna mČstské zástavby signál taktéž natolik utlumí nebo dokonce úplnČ pohltí, není zatím možné GPS systém použít pro automatické Ĝízení vozidel. StejnČ tak je signál tlumen vegetací, napĜ. korunami stromĤ. Naopak je jen málo závislý na poþasí. Udává se, že silný déšĢ zpĤsobí útlum
21/33
signálu 0,02 dB/km. Útlum nebo výpadek signálu mĤže být také zpĤsoben silným elektromagnetickým polem generovaným jiným elektrickým pĜístrojem.
'HWHNFHVODEpKRVLJQiOX V GNSS Receivers for Weak Signals [1] je popisován zpĤsob jak detekovat a zpracovávat signál, který je oslabený, pĜípadnČ poblíž jiného silnČjšího signálu. StejnČ tak je zde pomýšleno na detekci signálu, jehož zdroj se vĤþi pĜijímaþi pohybuje s velkým zrychlením. Z diskutovaných algoritmĤ jsem se zamČĜil na algoritmus CCMDB (Circular Correlation with Multiple Data Bits), který k výpoþtu užívá kruhové korelace (FFT/IFFT [2]). Existují i další algoritmy pro detekci slabého signálu jako napĜ. MDBZP (Modified Double Block Zero Padding), které však nebudou dále v této práci zkoumány.
&&0'%DOJRULWPXV Princip CCMDB je následující. PĜijatý vzorek dat o délce T1 je složen z množiny Nt intervalĤ bitĤ o délce periody Tdms. Z tohoto vzorku vypoþítáme Nb souþtových nespojitých integrálĤ a tyto integrály neustále aktualizujeme po každé spojíté integraci. Každá integrace zaþíná pĜi potencionální zmČnČ bitu z 1 na 0 nebo naopak. Po koneþném poþtu L nespojitých integrací je algoritmus ukonþen pokud integrace pĜekroþí pĜednastavenou hodnotu Ȗ þasového zpoždČní a Dopplerova posuvu. T1 a Tdms jsou definovány v ms. Všechny frekvence jsou poþítány v Khz. Celý tento cyklus je zobrazen na obrázku þíslo 9.
=?((6– Fast Fourrier Transform – Rychlá Fourierova Transormace +((6– Inverse Fast Fourrier Transform – Inverzní Rychlá Fourierova Transormace
22/33
20 ms (1)
20 ms (2)
………..
PĜijaté vzorky
20 ms (Nt)
Korelace 20 ms vzorkĤ dat – VytvoĜení Nb množin výsledkĤ. Každá skupina zaþíná na potencionální zmČnČ hrany bitu a obsahuje Nt bodĤ 1
2 …… Nt
..........................................
1
2 …… Nt
Nb množin
Vynásobení všech Nt bodĤ každé množiny Nb s nejpravdČpodobnČjší kombinací bitĤ. Spojitá integrace Nt bodĤ za dobu 20 ms 1
2
................................
2Nt-1
1
2
2Nt-1
Výsledky zmČnČné dle možných kombinací dat
PĜidání každého spojitého výsledku k pĜedchozímu souþtu. Uchování výsledku, který se nejvíce podobá pĤvodní datové kombinaci bitĤ. 1
................................
Nb
Opakovat L-krát
Obr.9 Postup algoritmu CCMBD
V prĤbČhu zpracovávání tohoto algoritmu narazíme na 4 problémy.
•
DopplerĤv efekt týkající se délky kódu
•
neznámá pozice poþátku zprávy
•
neznámé hodnoty datových bitĤ
•
zvýšené požadavky na výpoþetní výkon a pamČĢ, kvĤli zvČtšenému souboru zpracovávaných vzorkĤ a kvĤli poþtu všech možných Dopplerových posuvĤ.
'RSSOHUĤYHIHNW Tento efekt nám zkomplikuje výpoþet v pĜípadČ, že pĜijímaþ a vysílaþ jsou ve vzájemném pohybu. PĜijímaný kód totiž pak nemá konstantní periodu. Jeho perioda se buć prodlužuje, pokud se od sebe vzdalují nebo zkracuje, pokud se pĜibližují. Naopak replika kódu vytváĜená v pĜijímaþi má periodu konstantní. Proto nejsme schopni najít maximum na korelaþní funkci a najít tak požadované zpoždČní. Tento problém jsme nuceni Ĝešit vytváĜením repliky kódu pro všechny možné Dopplerovy
23/33
posuvy. Algoritmus pak odhaduje relativní zpoždČní upravené repliky a pĤvodního kódu na nČkolika místech kódu a na základČ tohoto výpoþtu dokáže zkrátit výpoþet Dopplerova posuvu na nČkolik málo sekund.
+OHGiQtSRþiWNX]SUiY\ Pokud pĜijímáme zprávu na frekvenci 50 Hz, máme 20 možných poloh poþátku zprávy. Každá z nich znaþí start 1 ms dlouhé periody PRN kódu. Pokud zaþneme se spojitou integrací v jiný moment než je poþátek zprávy, nebude mít výsledek smysl. Z tohoto dĤvodu je vytváĜeno Nb polí nespojitých integrací. Každé z tČchto polí zaþíná v jedné z možných poloh zaþátku zprávy. Pro urychlení výpoþtu je poþet Nb omezen na minimální poþet 4 maximální poþet 20. Všechna tato pole jsou pak násobena s nejpravdČpodobnČjší kombinací bitĤ Nt.
+OHGiQtGDWRYêFKKRGQRW V každém kroku algoritmu je odhadována nejpravdČpodobnČjší kombinace bitĤ Nt. Tato kombinace je poté použita pro odstranČní znamének bitĤ pĜed provedením spojité integrace. Tato operace je použita v každém kroku na každé pole Nb. Postup pro vybrání nejpravdČpodobnČjší kombinace bitĤ je následující: Je provedena spojitá integrace každého Nt intervalu pĜes Tdms. Takto vytvoĜíme Nt matic, každá o velikosti Nt
x Nfd
(þasový posun a DopplerĤv posun). Tyto matice jsou pak násobeny
s možnými kombinacemi bitĤ, aby došlo k vyruþení znamének. Zbytek matic po násobení je pak seþten dohromady pro vytvoĜení celkové spojité integrace. Úþelem je sþítat data se stejným znaménkem na každém úseku spojíté integrace. Z toho vyplývá, že nám zbývá pouze 2
Nt-1
možných datových kombinací bitĤ. Všechny tyto
kombinace jsou pĜidány k pĜedchozí nespojité integraci a nakonec je z nich vybrána matice s nejpravdČpodobnČjší kombinací bitĤ a ta je použita jako nová celková nespojitá integrace. Ostatní matice jsou zapomenuty. Jako nejpravdČpodnČjší kombinace bitĤ je vybrána ta, která maximalizuje celkovou nespojitou integraci. Tento proces je zopakován pro každé pole Nb.
24/33
,PSOHPHQWDFH&&0'%DOJRULWPX Tento algoritmus je implentován ve dvou modulech. První z nich je generátor repliky signálu a druhý je získání hodnoty zpoždČní. Algoritmus je zamČĜen na nalezení zpoždČní kódu na zaþátku intervalu zdroje signálu. Jakmile je þasové zpoždČní urþeno mĤže být jeho zmČna vzhledem k poþátku intervalu zdroje signálu aproximována za pomoci odhadu Dopplerova posuvu ze vztahu:
Λτ = −Tt
fd f L1
Kde Tt je celkový þas zpracování signálu.
=GURMRYpNyG\]0DWODEX M-file run.m % Vygenerovani signalu s=sGPSGen(1,200,8,2000); % Vygenerovani repliky r=sGPSGen(1,200,1,0); % Vypocet korelacni fce c=cor2D(s,r,8); % Zobrazeni korelacni fce surf(c)
M-file sGPSGen.m function s = sGPSGen(PRN, Npc, Np, fd); % PRN - Cislo PRM kodu % Npc - pocet vzorku na bit kodu % Np - pocet period % fd - doppler;v kmitocet v Hz PRN = CAcode(PRN); for i = 1:Npc*Np; sc(i) = PRN.PRN11(floor(mod(i*1023/Npc,1023))+1); fn(i) = exp(2*pi*1j*i*fd/1000/Npc); end s = sc.*fn ;
25/33
M-file Cacode.m % 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 % 3. sequence is looked at as a binary stream and its hexadecimal representation is given % sequence is padded with one '0' therefore the 1024th bit has to be ommited % % 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 % PRNhex - hexadecimal string - Gold code in representation ad 3 % % See also: % CAcode2, CAcodes, CAautocorr, CAcrosscorr function PRN = CAcode(PRNno) % Jiri Fajt, October 2001 if (PRNno<1) | (PRNno>37) msgbox('Wrong PRN number requested.', 'Error', 'error'); exit; end G1SR = G2SR = G1mask G2mask
ones(1,10); % G1 shift register initial ones(1,10); % G2 shift refister initial = [0 0 1 0 0 0 0 0 0 1]'; % Shift register masks = [0 1 1 0 0 1 0 1 1 1]';
G2jmask = zeros(10, 37); G2jmask([2, 6], 1) = 1; G2jmask([3, 7], 2) = 1; G2jmask([4, 8], 3) = 1; G2jmask([5, 9], 4) = 1; G2jmask([1, 9], 5) = 1; G2jmask([2, 10], 6) = 1; G2jmask([1, 8], 7) = 1; G2jmask([2, 9], 8) = 1; G2jmask([3, 10], 9) = 1; G2jmask([2, 3], 10) = 1; G2jmask([3, 4], 11) = 1; G2jmask([5, 6], 12) = 1; G2jmask([6, 7], 13) = 1; G2jmask([7, 8], 14) = 1; G2jmask([8, 9], 15) = 1; G2jmask([9, 10], 16) = 1; G2jmask([1, 4], 17) = 1; G2jmask([2, 5], 18) = 1; G2jmask([3, 6], 19) = 1; G2jmask([4, 7], 20) = 1; G2jmask([5, 8], 21) = 1; G2jmask([6, 9], 22) = 1; G2jmask([1, 3], 23) = 1;
% % % % %
PRN = 1 PRN = 2 PRN = 3 PRN = 4 PRN = 5 % PRN = 6 % PRN = 7 % PRN = 8 % PRN = 9 % PRN = 10 % PRN = 11 % PRN = 12 % PRN = 13 % PRN = 14 % PRN = 15 % PRN = 16 % PRN = 17 % PRN = 18 % PRN = 19 % PRN = 20 % PRN = 21 % PRN = 22 % PRN = 23
26/33
G2jmask([4, G2jmask([5, G2jmask([6, G2jmask([7, G2jmask([8, G2jmask([1, G2jmask([2, G2jmask([3, G2jmask([4, G2jmask([5, G2jmask([4, G2jmask([1, G2jmask([2, G2jmask([4,
6], 24) = 1; 7], 25) = 1; 8], 26) = 1; 9], 27) = 1; 10], 28) = 1; 6], 29) = 1; 7], 30) = 1; 8], 31) = 1; 9], 32) = 1; 10], 33) = 1; 10], 34) = 1; 7], 35) = 1; 8], 36) = 1; 10], 37) = 1;
shift(1:10) = [5, 6, shift(11:20) = [252, shift(21:30) = [473, shift(31:37) = [861,
7, 8, 17, 254, 255, 474, 509, 862, 863,
% % % %
PRN = 24 PRN = 25 PRN = 26 PRN = 27 % PRN = 28 % PRN = 29 % PRN = 30 % PRN = 31 % PRN = 32 % PRN = 33 % PRN = 34 % PRN = 35 % PRN = 36 % PRN = 37 18, 139, 140, 141, 251]; 256, 257, 258, 469, 470, 471, 472]; 512, 513, 514, 515, 516, 859, 860]; 950, 947, 948, 950];
% 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)];
PRN(i) = xor(G1(i), G2j); end % time alignment of CA code (viz Navstar standard) PRN = [PRN(1, 1023 - shift(PRNno)+1 :1023), PRN(1, 1: 1023 shift(PRNno))]; % conversion to 1, -1 sequence PRN10 = PRN; PRN11 = 2 * PRN - 1; % conversion from matrix representation to binary sequence in hexadecimal representation hlpstr = num2str([PRN, 0]); hlpstr = strrep(hlpstr, ' ', ''); PRNhex = bin2hex(hlpstr); PRN.PRN10 = PRN10; PRN.PRN11 = PRN11; PRN.PRNhex = PRNhex; %%%%%% end of CAcode.m %%%%%%
27/33
M-file cor2D.m function R2D = cor2D(s, r, Ndp) % s - signal % r - replika (1 perioda) % Ndp - pocet useku deleni periody % pocer vzorku na periodu Np = length(r); % delka dilciho useku Nu = Np/Ndp; if Nu ~= floor(Nu) disp('Chybna delka useku'); brak; end % pocet useku Pu = Ndp * floor(length(s)/Np); % rozdeleni signalu na useky j = 1:Nu; for i = 1:Pu; su(i,j) = s((i-1)*Nu+j); end; % rozdeleni repliky na useky for j = 1:2*Nu; for i = 1: Ndp; k = (i-1)*Nu+j; if k>Np k=k-Np; end ru(i,j) = r(k); end end % Urceni delky FFT Nfft = 2; while Nfft<2*Nu Nfft = Nfft*2; end Nfft % Prevod useku signalu do spektra for i = 1:Pu; SU(i,:) = fft(su(i,:),Nfft); end; % Prevod useku repliky do spektra for i = 1: Ndp; RU(i,:)=fft(ru(i,:), Nfft); end % vypocet dilcich korelaci for m = 1:Ndp; for i = 1:Pu n = mod(i+(m-1)-1,Ndp)+1; rfu = ifft(SU(i,:).*RU(n,:)'.',Nfft); RFU(i,:,m)=rfu(:); end end % FFT v kmitoctu % Urceni velikosti FFT Nfft = 2; while Nfft < Pu Nfft = Nfft*2; end for m = 1:Ndp
28/33
for j = 1:Nu for i = 1:Pu pom(i)=RFU(i,j,m); end h = (abs(fft(pom,Nfft))).^2; R2D(j+(m-1)*Nu,:)=h; end end
3RSLVSURJUDPX Skript run.m se postará o spouštČní jednotlivých skriptĤ. Proto nejdĜíve zajistí vytvoĜení zdrojového signálu i s Dopplerovským posuvem, poté vytvoĜení repliky kódu a na závČr z tČchto 3 kódĤ za pomoci kruhové korelace vypoþítá délku FFT a zobrazí jejich autokorelaþní funkci, ze které je vidČt požadované þasové zpoždČní. Skript sGPSGen.m se stará o vytvoĜení zdrojového kódu i repliky. Používá k tomu skript Cacode.m, který umí generovat všechny PRN kódy, dle zadaného þísla. Skript cor2D.m postupuje dle algoritmu uvedeného výše a provede tak samotnou kruhovou korelaci z obou signálĤ a jako výsledek vrátí graf autokorelaþní funkce a délku FFT.
29/33
6LPXODFH
Obr.10 Autokorelaþní funkce Na obrázku mĤžeme vidČt, že poþet vzorkĤ na bit kódu je 200 a že þasové zpoždČní repliky vĤþi zdroji je cca 17 ms.
30/33
=iYČU Cílem této práce bylo prozkoumat a pĜiblížit strukturu signálu používaného pro navigaci, jeho vytváĜení i detekci. Navigaþní systémy nacházejí v dnešní dobČ šíroké využití, zejména v oblasti dopravy a letecké techniky. Dochází k rychlému rozšiĜování této techniky mezi veĜejnost a díky tomu, že pĜístroje jsou vyrábČny s velmi pĜívČtivým uživatelským rozhraním, stává se tato technika nedocenitelným každodenním pomocníkem ĜidiþĤ, turistĤ, pilotĤ, detektivĤ, ale i vojákĤ a geodetĤ. Poslední þást této zprávy se zabývá také detekcí signálu v obtížných podmínkách a proto obsahuje taktéž algoritmus sloužící k detekci signálu s neznámým Dopplerovým posuvem a jeho simulace. Jedná se o oblast, kterou þeká v blízké budoucnosti veliký rozvoj.
31/33
/,7(5$785$ [1]
Nesreen I. Ziedan: GNSS Receivers for Weak Signals, Artech House Inc. London 2006, ISBN 1-596393-052-7
[2]
Kaplan D.: Understanding GPS Principles and Applications. Artech House Inc. London 1996. ISBN 0-89006-793-7
[3]
Global Positioning System SPS Signal Specification. Druhé vydání, 1995
[4]
www.aldebaran.cz – Server katedry fyziky ýVUT FEL
[5]
www.zidek.cz – GPS pro každého
[6]
JiĜí Slavíþek: Absolventská práce – Navigaþní systémy
[7]
www.wikipedia.cz – Internetová encyklopedie
[8]
www.gpsweb.cz – Internetový portál zabývající se tématikou GPS
[9] www.kowoma.de – NČmecký internetový portál zabývající se tématikou GPS
32/33
2%6$+3ě,/2æ(1e+2&' BakaláĜská práce.pdf -
Vlastní bakaláĜská práce v elektronické podobČ
Bak.doc -
BakaláĜská práce v editovatelné podobČ
Run.m -
Skript pro spuštČní simulace v Matlabu
sGPSGen.m -
Pomocný skript pro vytvoĜení kódu
cor2D.m -
Pomocný skript pro provedení korelace
CAcode.m -
Pomocný skript pro vytvoĜení PRN kódu
33/33