+ All Categories
Home > Documents > Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency...

Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency...

Date post: 28-Mar-2018
Category:
Upload: phungtu
View: 223 times
Download: 1 times
Share this document with a friend
67
TECHNICKÁ UNIVERZITA V KOŠICIACH FAKULTA ELEKTROTECHNIKY A INFORMATIKY Katedra elektroniky a multimediálnych telekomunikácií Spracovanie FSK signálov s využitím princípov softvérového rádia FSK signal processing based on software defined radio principle DIPLOMOVÁ PRÁCA 2006 Michal Aftanas
Transcript
Page 1: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

TECHNICKÁ UNIVERZITA V KOŠICIACH

FAKULTA ELEKTROTECHNIKY A INFORMATIKY

Katedra elektroniky a multimediálnych telekomunikácií

Spracovanie FSK signálov s využitím princípov

softvérového rádia

FSK signal processing based on software defined radio principle

DIPLOMOVÁ PRÁCA

2006 Michal Aftanas

Page 2: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,
Page 3: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,
Page 4: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

Čestné vyhlásenie

Čestne vyhlasujem, že som celú záverečnú prácu vypracoval samostatne a literatúru, ktorú som použil, uvádzam v zozname.

Ďalej vyhlasujem, že nemám námietky proti zapožičaniu, alebo zverejneniu mojej záverečnej práce, alebo jej časti, so súhlasom katedry.

..........................................

vlastnoručný podpis

Page 5: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

Poďakovanie

Ďakujem doc. Ing. Milošovi Drutarovskému, CSc., vedúcemu diplomovej práce za jeho cenné a podnetné rady. Taktiež ďakujem katedre ISTASE na univerzite Jeana Moneta v Saint Etienne vo Francúzsku, že mi umožnila vypracovať túto diplomovú prácu vo svojich priestoroch s použitím jej vybavenia.

Page 6: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

ABSTRAKT Úlohou diplomovej práce je implementovanie algoritmov na prenos informácie

pomocou frekvenčného kľúčovania (FSK) opísaného v knihe Porat, B.: A Course I Digital Signal Processing, s.566-580. Navrhnutie algoritmov a implementovanie programových prostriedkov umožňujúcich demonštráciu príjmu a vysielania dát pomocou FSK s využitím modulu softvérového rádia na báze obvodov Analog Devices ADSP 2181, špecializovaného signálového procesora AD6620 a DDS modulátora AD7008, ktoré boli vyvinuté na KEMT FEI TU v Košiciach. Programové prostriedky realizovať v Assembleri signálového procesora ADSP 2181. Porovnať výsledky simulácie algoritmov v Matlabe a v prostredí VisualDSP++ pre processor ADSP2181. Analyzovať vplyv obmedzenej presnosti a rýchlosti cieľového procesora na dosiahnuté výsledky.

ABSTRACT The aim of a diploma thesis is implementing algorithm for transmit information

by frequency shift keying (FSK), that is described in book Porat, B.: A Course I Digital Signal Processing, page 566-580. Propose algorithms and implementing software products that allows demonstrate receiving and transmiting data through FSK with utilize modules software defined radio principle on Analog Devices ADSP 2181 base, specialistic signal procesor AD6620 and DDS modulator AD7008, that was developed in KEMT FEI TU in Košice. To realize software products in asembler of signal procesor ADSP 2181. Compare results of simulation algorithm in matlab and VisualDSP++ for procesor ADSP 2181. Analyse influence of delimited precision and speed procesor on attained results

Page 7: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

Obsah

Zoznam použitých skratiek............................................................................................ 1

Úvod ................................................................................................................................. 3

1 Teória softvérového rádia...................................................................................... 4

2 Modul SDR vyvinutý na KEMT FEI TUKE ....................................................... 6

2.1 Syntezátor AD7008 .......................................................................................... 6

2.2 Špecializovaný príjmový procesor AD6620..................................................... 7

2.3 SDR modul ....................................................................................................... 7

2.4 DDS karta ......................................................................................................... 9

3 FSK Modulácia..................................................................................................... 11

3.1 Vlastnosti FSK................................................................................................ 12

3.2 Použitie FSK v praxi....................................................................................... 12

3.3 Rozbor 4FSK prijímača podľa knihy Porat, B.: A Course I Digital

Signal Processing............................................................................................ 13

3.3.1 Vysielaný 4FSK signál.......................................................................................13

3.3.2 Prijímaný signál..................................................................................................14

3.3.3 Zvolenie vzorkovacej frekvencie .......................................................................15

3.3.4 Generovanie kvadratúrneho signálu...................................................................16

3.3.5 Komplexná demodulácia....................................................................................16

3.3.6 Symbolová detekcia: úvodná diskusia................................................................16

3.3.7 Prevod FM na AM..............................................................................................17

3.3.8 Obnova taktovania..............................................................................................18

3.3.9 Prispôsobené filtre pre detekciu symbolov.........................................................21

3.3.10 Obnovenie nosnej frekvencie a symbolová detekcia.................................21

3.3.11 Inicializačný mód ......................................................................................21

3.3.12 Rozhodovací mód......................................................................................22

3.3.13 Vylepšená obnova nosnej frekvencie a symbolová detekcia ....................22

3.3.14 Odlišnosti voči reálnemu hardvéru............................................................23

4 Realizácia 4FSK vysielača ................................................................................... 24

4.1 Požiadavky na 4FSK vysielač ........................................................................ 24

4.2 Programová Koncepcia 4FSK vysielača ........................................................ 24

4.3 Hlavný program TX (P1)................................................................................ 25

Page 8: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

4.4 Podprogram pre vysielanie IRQ_TX (P2) ...................................................... 26

4.5 Softvérový UART IRQ_UART (P3) .............................................................. 28

4.6 Podmienky pre korektný chod vysielača ........................................................ 29

5 Realizácia 4FSK prijímača.................................................................................. 30

5.1 Požiadavky na 4FSK prijímač ........................................................................ 30

5.2 Programová koncepcia 4FSK prijímača ......................................................... 30

5.3 Hlavný program RX (P5)................................................................................ 31

5.4 Podprogram AD6620_Init (P6) ...................................................................... 32

5.5 Podprogram init_2181 (P7) ............................................................................ 33

5.6 Podprogram init_codec (P8) ........................................................................... 34

5.7 Podprogram cordic (P9).................................................................................. 34

5.8 Podprogram filter (P10).................................................................................. 35

5.9 Podprogram peakdetector (P11) .....................................................................36

5.10 Podprogram InitMode (P12)........................................................................... 38

5.11 Podprogram DDCMode (P13)........................................................................ 40

5.12 Podprogram synch_out (P14) ......................................................................... 41

5.13 Definovanie konštánt (konstanty.h) (P15)...................................................... 43

5.14 Využitie pamätí procesora .............................................................................. 43

5.15 Podmienky pre korektný chod prijímača........................................................ 44

6 Testovanie a meranie 4FSK prenosu.................................................................. 45

6.1 Testovanie prijímača s využitím kodeku ........................................................ 45

6.1.1 Výsledky testovania ...........................................................................................47

6.1.2 Zhodnotenie testovania.......................................................................................51

6.2 Testovanie 4FSK prenosu na reálnom hardvéri.............................................. 52

6.2.1 Výsledky testovania ...........................................................................................52

6.2.2 Zhodnotenie testovania.......................................................................................56

7 Záver...................................................................................................................... 57

Zoznam použitej literatúry .......................................................................................... 58

Zoznam príloh ............................................................................................................... 59

Page 9: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Zoznam použitých skratiek KEMT

1

Zoznam použitých skratiek

4FSK 4 level Frequency Shift Keying, 4 stavové frekvenčné kľúčovanie

A/D Analog to Digital converter, analógovo digitálny prevodník

AM Amplitude Modulation, amplitúdová moduláciá

ASK Amplitude Shift Keying, amplitúdové kľúčovanie

CORDIC COordinate Rotation DIgital Computer, digitálny výpočet

koordinovanou rotáciou

DDC Decision DireCted mode, rozhodovací mód

DDS Direct Digital Synthesis, priama číslicová syntéza

DECT Digital Enhanced Cordless Telecommunications, rozšírené digitálne

bezšnúrové telekomunikácie

DSP Digital Signal Processor, digitálny signálový procesor

EDGE Enhanced Data rates for Global Evolution, zvýšená prenosová rýchlosť

pre GSM siete

FCC Federal Communications Commission, spolková komunikačná komisia

FIR Finite Impulse Response filter, filter s konečnou impulzovou odpoveďou

FM Frequency Modulation, frekvenčná modulácia

FPGA Field Programmable Gate Array, programovateľné logické polia

FSK Frequency Shift Keying, frekvenčné kľúčovanie

GFSK Gaussian Frequency Shift Keying, gausovské frekvenčné kľučovanie

GMSK Gaussian M inimum Shift Keying, Gausovské kľučovanie s minimálnym

zdvihom

GPRS General Packet Radio Service, štandard dátových prenosov GSM

GPS Global Position System, globálny pozičný systém

GSM Global System for Mobile communications, globálny systém pre

mobilné komunikácie

LUT LookUp Table, vyhľadávacia tabuľka

Page 10: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Zoznam použitých skratiek KEMT

2

MSK M inimum Shift Keying, frekvenčné kľúčovanie s minimálnym zdvihom

MSPS M ilion Samples Per Second, milión vzoriek za sekundu

PSK Phase Shift Keying, fázové kľúčovanie

QPSK Quadrature Phase Shift Keying, 4 stavové fázové kľučovanie

RCF RAM Coeficient FIR filter, FIR filter s programovateľnými koeficientmi

RX Receiver, prijímač

SDR Softvare Defined Radio, softvérovo definované rádio

SNR Signal to Noise Ratio, pomer signál k šumu

SPORT Serial PORT, sériový port

TX Transmitter, vysielač

UART Universal Asynchronous Receiver Transmitter, univerzálne asynchrónne

prijímanie a vysielanie

WLAN Wireles LAN , bezdrôtová sieť

Page 11: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Úvod KEMT

3

Úvod

Bezdrôtový prenos vynašli dvaja vedci súčasne a to Alexander Stepanovitch Popov a Guglielm Marconi v roku 1897, patent bol však pridelený Talianovi Marconimu. Už vyše storočie sa formuje táto vedná oblasť pomenovaná ako bezdrôtové komunikačné systémy. Počas jej vývoja sa prešlo obrovskými zmenami, no jej možnosti nie sú zďaleka vyčerpané. Azda najväčší prelom v bezdrôtových komunikačných systémoch nastal pri prenášaní dát za pomoci digitálnych modulácií.

Digitálna modulácia ma voči svojmu predchodcovi analógovej modulácií nesporne veľa výhod. Medzi najdôležitejšie z nich patria: vyššia odolnosť voči rušeniu, nižší vysielací výkon, možnosť bezstratového prenosu a možnosť prenášania väčšieho množstva dát na rovnakej šírke pásma.

Pre rôzne komunikačné systémy sú vhodné rôzne digitálne modulácie. Neexistuje najlepšia digitálna modulácia pre všetky komunikačné systémy. Pri výbere najvhodnejšej modulácie pre daný systém je treba brať ohľad na požadovanú dátovú rýchlosť, maximálne akceptovateľné oneskorenie, šírku pásma, rušenie v prenosovom kanály a v neposlednom rade na celkovú cenu komunikačného systému.

V tejto diplomovej práci sa budeme venovať 4FSK modulácií, ktorá je s pomedzi digitálnych modulácií pomerne jednoduchá, no veľmi rozšírená. Jej podstatou je prenášanie informácie pomocou štyroch nosných frekvencií s konštantnou amplitúdou.

Úlohou tejto diplomovej práce je vytvoriť softvérové prostriedky umožňujúce prenos dát 4FSK moduláciou s využitím modulu softvérového rádia na báze obvodov Analog Devices ADSP 2181, špecializovaného signálového procesora AD6620 a DDS modulátora AD7008. Výsledkom tejto práce má byť prenesenie minimálne 1MB súboru z jedného počítača na druhý pomocou 4FSK modulácie tak, aby pri prenose nedošlo k informačnej strate. Taktiež je potrebné zhodnotiť vlastnosti navrhnutého systému.

Page 12: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

4

1 Teória softvérového rádia

Softvérovo definované rádio (SDR) je rýchlo sa rozvíjajúca technológia, ktorá prináša obrovské možnosti a vytvára rozsiahly záujem v telekomunikačnom priemysle. V priebehu pár posledných rokoch sú analógové rádiové systémy vytláčané rôznymi digitálnymi rádiovými systémami v armáde, civilnom aj komerčnom sektore. Okrem toho sa v digitálnych systémoch stále viac začínajú používať programovateľné hardvérové moduly na vyšších úrovniach. Technológie SDR sa usilujú využiť výhody týchto programovacích modulov na vytvorenie reprogramovateľnej softvérovej architektúry rádiových systémov.

Technológia SDR umožňuje vytvorenie niektorých modulov v rádiových systémoch ako napríklad modulátor/demodulátor, generátor signálu, kóder a protokol na linkovej vrstve softvérovo. To pomáha vytvárať rekonfigurovateľné rádiové systémy, ktoré majú možnosť dynamicky meniť ktorýkoľvek z týchto parametrov v širokom rozsahu, na rozdiel od rádiových systémov na hardvérovej báze, ktorých parametre sú pevne dané daným zapojením.

Vývoj komerčných bezdrôtových komunikačných systémov je momentálne postavený pred problém stále sa rozvíjajúcich protokolov linkovej vrstvy štandardov 2.5G, 3G a 4G, existencie nekompatibilnosti technológií bezdrôtových sieti v rôznych krajinách blokujúcich zavedenia svetového roamingu a obrovskou rýchlosťou sa rozvíjajúceho priemyslu mobilných telefónov. Technológia SDR by mala pomôcť tieto problémy vyriešiť implementovaním softvérových modulov na všeobecný hardvér, ktorý sa bude dať použiť na viacero aplikácií, ba dokonca aj na viacero štandardov. Nový softvér sa bude dať prijať a nainštalovať priamo z bezdrôtovej siete, na ktorej zariadenie pracuje, a tým sa dokáže prispôsobiť miestnym štandardom, poprípade odstrániť chyby programu bez zásahu do hardvéru.

SDR najčastejšie pracuje na báze digitálnych signálových procesorov (DSP), alebo iných procesorov na báze hradlových polí a podobne. Možnosti SDR nie sú zďaleka vyčerpané a postupne sa zakomponúvajú do oblasti ako napríklad Bluetooth, WLAN, GPS, Radar, GSM, GPRS, EDGE a podobne.

Doteraz SDR v praxi najčastejšie pracovalo na nie úplne ideálnom princípe softvérového rádia, pretože bolo potrebné pre zariadenia pracujúce na vyšších frekvenciách použiť analógové vstupné obvody, ktoré zmiešali spracovávaný signál na nižšiu medzi frekvenciu, a až potom bol prevedený na digitálny. Takáto bloková schéma je na obr. 1.1. Tento štýl sa volil kvôli nedostatočnej rýchlosti dostupných A/D prevodníkov a nízkom výpočtovom výkone signálových procesorov, či FPGA obvodov.

V apríli roku 2005 Ronald M. Hickling zverejnil článok [7] o novej technológii, ktorá výrazne pomôže priblížiť sa k ideálnemu softvérovému rádiu, ktoré podľa Federal Communications Commission (CFF), alebo SDR fórum [8] je zadefinované ako funkčný blok pracujúci na nosnej frekvencii bez obmedzení štandardizovaných protokolov, ktorý prekonvertuje signál z nosných frekvencií do základného pásma a naopak na softvérovej báze. Bloková schéma ideálneho softvérového rádia je na obr. 1.2. Citát z [7]: „Priemysel už disponuje A/D prevodníkmi na báze sigma delta, ktoré dokážu spracovať signál s nosnou frekvenciou 5GHz a šírkou pásma 100 MHz, taktiež procesormi, ktoré dokážu tento signál prekonvertovať do základného pásma.“ Takýto

Page 13: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

5

systém dokáže naplno využiť obrovskú výhodu rekonfigurovateľnosti softvérového rádia. Jeho bloková schéma je na obr. 1.3.

Obr. 1.1 Softvérové rádio v doterajšej praxi

Obr. 1.2 Ideálne softvérové rádio

Obr. 1.3 Novodobé softvérové rádio

Page 14: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

6

2 Modul SDR vyvinutý na KEMT FEI TUKE

Keďže úlohou tejto diplomovej práce je implementovať 4FSK moduláciu (vysielač aj prijímač) pomocou hardvéru vyvinutého na KEMT FEI TU v Košiciach [1], táto podkapitola sa bude venovať jeho zbežnému opisu.

Hardvér pozostáva z dvoch častí: SDR modul, ktorý je podrobne opísaný v [1] a DDS karta, ktorá bola vytvorená inžinierom Vladimírom Nohajom až po odovzdaní jeho diplomovej práce, preto modulu DDS karty sa bude táto podkapitola venovať konkrétnejšie.

SDR modul pozostáva z dosky EZ-kit lite ADSP-2181 [6], syntezátora AD7008 [4] a príjmového procesora AD6620 [5]. DDS karta pozostáva z dosky EZ-kit lite ADSP-2181 a syntezátora AD7008.

2.1 Syntezátor AD7008

Syntezátor AD7008JP50 [4] pracuje na princípe DDS. Obsahuje sínusové a kosínusové vyhľadávacie tabuľky, 32 bitový fázový akumulátor a 10 bitový DAC na jednom CMOS čipe v puzdre PLCC so 44 vývodmi. Maximálna taktovacia frekvencia obvodu je 50 MHz. Na tejto frekvencii pracuje aj integrovaný DA prevodník, teda poskytuje šírku pásma 25MHz.

Blokový diagram AD7008 je obr. 2.1. AD7008 pozostáva z týchto základných blokov: digitálny oscilátor (NCO) a fázový modulátor, sínusové a kosínusové vyhľadávacie tabuľky (LUT), sufázový a kvadratúrny amplitúdový modulátor a digitálno-analógový prevodník.

Obr. 2.1 Bloková schéma AD7008

Page 15: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

7

2.2 Špecializovaný príjmový procesor AD6620

AD6620 [5] je špecializovaný digitálny signálový procesor. Jeho funkciu možno obecne opísať ako digitálny homodynný frekvenčný konvertor s komplexným zmiešavaním. Obvod je schopný spracovávať dátový tok maximálne 67 miliónov vzoriek za sekundu (MSPS) pri maximálnom takte obvodu 67 MHz. Na obr. 2.2 je bloková schéma obvodu. Vstup do obvodu predpokladá vysokorýchlostný, resp. širokopásmový AD prevodník o maximálnom rozlíšení 16 bitov.

AD6620 je pripojený k ADSP-2181 pomocou sériového výstupného portu v režime BUS MASTER a taktovacou frekvenciou rovnou polovici taktovacej frekvencie obvodu AD6620. Bloková schéma pripojenia AD6620 k ADSP-2181 je na obr. 2.3.

Obr. 2.2 bloková schéma AD6620

Obr. 2.3 Bloková schéma pripojenia obvodu AD6620 k ADSP-2181

2.3 SDR modul

SDR modul je zariadenie schopné samostatnej funkcie softvérového transreceivera v režime plne duplexnej prevádzky umožňujúceho modulácie z analógových aj digitálnych zdrojov modulačných signálov. Jadrom celého zariadenia je digitálny

Page 16: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

8

signálový procesor firmy Analog Devices ADSP-2181. Jeho implementácia je realizovaná pomocou vývojovej dosky tohoto procesora ADSP-2181 EZ-KIT Lite. Ostatné obvody softvérového rádia sú implementované na oddelených doskách plošného spoja, s ktorými je ADSP-2181 prepojené. Tieto obvody realizujú rádiový vysielač a prijímač, vstupno-výstupné obvody pre vstup modulačného a výstup demodulovaného signálu v analógovej a digitálnej forme, ovládanie displeja, klávesnice a napájacie obvody. Boková schéma je znázornená na obr. 2.4.

Obr. 2.4 Bloková schéma navrhnutého modulu softvérového rádia

Integrované obvody AD7008 a AD6620, umožňujú v základnom režime DA a AD prevodníkov spracovať signály s maximálnou šírkou pásma 25 MHz pre AD7008 a 25 MHz pre AD6620. Z tejto šírky pásma vyplýva generovanie a spracovanie medzifrekvenčných signálov, resp. signálov do 25 MHz. Za podmienky použitia úzkopásmového vzorkovania a modulácie na vyšších harmonických, môže obvod AD7008 pomocou vhodného filtra na výstupe generovať signály s nosnou frekvenciou rádovo stovky MHz. Vlastnosti prijímacej časti v tomto smere ovplyvňujú vlastnosti použitého AD prevodníka. Použitý je AD prevodník AD6640. Podobne ako v prípade AD7008 jeho parametre umožňujú úzkopásmové vzorkovanie signálov približne do 80 MHz pre aplikácie s viacnásobnými nosnými, pre aplikácie s jedinou nosnou je použiteľná šírka pásma AD6640 až 200 MHz.

Výstup z obvodu AD7008 a vstup AD6640 nie sú v moduloch filtrované, vstupné a výstupné obvody pre tieto obvody majú šírku pásma minimálne 200 MHz a zabezpečujú len impedančné prispôsobenie, prispôsobenie vlastností signálov pre tieto obvody a tiež ochranu pred ich poškodením. Vstup a výstup modulov je impedančne prispôsobený na charakteristickú impedanciu 50 Ω a vyvedený na konektory typu BNC.

Pre správnu funkciu je však potrebná filtrácia signálov, preto navrhované riešenie počíta s použitím externých filtrov. Tieto filtre môžu byť realizované formou adaptérov s BNC konektormi, ktoré je možné pripojiť medzi modul softvérového rádia a konkrétnu aplikáciu. Keďže takéto adaptéry môžu okrem filtrov obsahovať aj iné aktívne obvody napr. zmiešavače, navrhované moduly softvérového rádia poskytujú možnosť napájania takýchto adaptérov vhodnými napájacími konektormi. Tieto napájacie konektory poskytujú jednosmerné symetrické napájacie napätie.

Page 17: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

9

Vysielacia časť modulu softvérového rádia je realizovaná pomocou obvodu Analog Devices AD7008, ktorý je riadený procesorom ADSP-2181. Rozhranie medzi obvodom AD7008 a signálovým procesorom je riešené tak, aby bolo dostatočne rýchle bez použitia čakacích stavov DSP a zároveň komfortné z pohľadu jeho ovládanie procesorom. AD7008 realizuje funkciu modulátora, frekvenčného konvertora a DA prevodníka. V bežných aplikáciách, u ktorých je známa konkrétna aplikácia, musí za prevodníkom nasledovať rekonštrukčný filter. Navrhované moduly softvérového rádia majú mať čo najširšie možnosti aplikácie, z toho dôvodu nie je výstup filtrovaný rekonštrukčným filtrom, výstup je ošetrený z hľadiska impedančného a výkonového vhodným operačným zosilňovačom so šírkou pásma viac ako 200 MHz schopného dodávať výkon do záťaže 50Ω. Výstupný konektor je typu BNC.

Vstupný analógový signál je digitalizovaný rýchlym 12-bitovým AD prevodníkom Analog Devices AD6640. Vstupné analógové obvody zabezpečujú impedančné prispôsobenie vzorkovaného signálu k vstupnej impedanciu obvodu AD6640. Vstupné obvody neobsahujú antialiasingový filter. Digitalizovaný signál je ďalej spracovaný obvodom Analog Devices AD6620. Je to špecializovaný signálový procesor pre digitálne rádiové prijímače. Rozhranie medzi obvodom AD6620 a ADSP-2181 je navrhnuté tak, aby bolo možné obvod AD6620 programovať z ADSP-2181 a tiež zabezpečuje synchrónny tok spracovaných dát do ADSP-2181.

Rozhrania modulov k ADSP-2181 sú bližšie popísané v [1].

Tranceiver je napájaný z externého jednosmerného napájacieho zdroja. Napájacie obvody zabezpečujú ochranu pred prepólovaním, stabilizáciu a filtráciu napájacieho napätia. Poskytujú všetky napájacie napätia pre logické obvody a symetrické napájacie napätie pre analógové časti transceivera. Toto symetrické napájacie napätie je tiež vyvedené na dva napájacie konektory. Tým je zabezpečená možnosť napájania externých adaptérov pripájaných na vysokofrekvenčný vstup a výstup modulu softvérového rádia.

Všetky informácie potrebné k programovaniu SDR modulu sú konkrétne rozpísané v [1] v tabuľkách 4.2, 4.4, 4.5 a 4.7, taktiež je potrebné dôkladne preštudovanie katalógových listov AD7008 [4] a AD6620 [5].

2.4 DDS karta

Pozostáva z dosky EZ-kit lite ADSP-2181 a syntezátora AD7008. Cieľom bolo navrhnúť digitálny modulátor a vysielač tak, aby sa z hľadiska hardvérových možností a programovania čo najmenej líšil od vysielača v SDR module. Hlavný rozdiel medzi DDS kartou a vysielačom v SDR module je že DDS karta nepoužíva hradlové polia Altera na komunikáciu AD7008 s procesorom, ale syntezátor je priamo pripojený na výstupy dosky EZ-kit lite. To sa dosiahlo tým, že nieje potrebné k ADSP-2181 pripájať príjmový procesor AD6620 a tým je možne použiť všetky piny procesora pre pripojenie AD7008. Značne to uľahčilo konštrukciu, no má to za následok o niečo zložitejšie programovanie. Technické možnosti hardvéru sa ničím nelíšia od vysielača v SDR module a sú opísané v kapitole 2.3. Schéma DDS karty je na obr. 2.5.

DDS karta používa rovnaké zapojenie dátových signálov ako SDR modul, nemá však obvody pre generovanie signálu 7008_WR. Tento signál je odvodený od signálov ADSP IOMS a WR pomocou dvoch NOR hradiel, teda jeho trvanie je rovné trvaniu

Page 18: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

10

signálu ADSP WR. Preto je pre splnenie požiadavky na trvanie signálu 7008 WR nutné nastaviť jeden čakací stav. Signály TC0-2 sú zapojené na programovateľné piny PF0-2 ADSP-2181 a signál LOAD na programovateľný pin FL0. Teda obsluha týchto signálov je nutne softvérová a náročnejšia na počet inštrukcií. Signál FSELECT je priamo zapojený na programovateľný pin FL2, čomu zodpovedá jeho ovládanie.

V tabuľke 2.1 sú prehľadne popísané zmeny v programovaní DDS karty voči SDR modulu.

Tab. 2.1 Rozdiely v programovaní SDR modulu a DDS karty

SDR modul DDS karta

nastavenia ADSP

ax0=0; DM(0x3FFE)=ax0;

ax0=1; DM(0x3FFE)=ax0;

ax0=7;

dm(0x3FE6)=ax0;

reset FL0;

je nutný 1 čakací stav

nastavenie PF[0:2] do funkcie výstupov

vynulovanie signálu LOAD

Zápis do AD7008

IO(0)=ax0; IO(x)=ax0; DDS karta nepoužíva adresové signály, takže nezáleží na adrese zápisu

nastavenie TC[0:2]

dm(0x3FE5)=ax0; zápis na PF[0:2]

generovanie signálu LOAD

IO(1)=ax0;

Set fl0;

nop;nop;

reset fl0;

DDS karta nemá obvody na generovanie signálu LOAD. Tento je priamo zapojený na FL0, preto je nutné generovať signál LOAD softvérovo

nastavenie

FSELECT

ax0=1; IO(2)=ax0; set fl2;

nulovanie FSELECT

ax0=0; IO(2)=ax0; reset fl2;

Obr. 2.5 Schéma DDS karty

Page 19: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

11

3 FSK Modulácia

Jednou z najjednoduchších digitálnych modulácii je FSK – Frequency shift keying, inak nazývane frekvenčné kľúčovanie. FSK je jednou z najbežnejších digitálnych modulácií používaných vo vyššom frekvenčnom spektre a zohráva veľkú úlohu v telekomunikáciách.

Najjednoduchším prípadom FSK modulácie je binárna (dvoj stavová) FSK. Binárnym dátam (0 alebo 1) sa priradia nosné frekvencie f1 a f2, tie sa potom vysielajú podľa toho aké dáta sa prenášajú. Typicky príklad FSK modulácie je na obr. 3.1

Obr. 3.1 FSK modulácia

Časový priebeh signálu dvoj stavovej FSK:

1

2

sin(2πf t) pre bit 1FSK(t)=

sin(2πf t) pre bit 0

FSK modulácia môže biť s kontinuálnou, alebo skokovou zmenou fázy, pri skokovej zmene fázy sa vytvára širšie frekvenčné spektrum.

Výrazné potlačenie bočných zložiek frekvenčného spektra FSK signálu sa dosiahne MSK moduláciou (Minimum Shift Keying – frekvenčné kľúčovanie s minimálnym zdvihom), kde k zmenám nosných frekvencií f1 a f2 dochádza v okamžiku, kedy nosný signál prechádza nulou, tým sa odstráni nespojitosť v časovom priebehu modulovaného signálu. Bitová perióda modulačného signálu musí byť rovná celistvému násobku polovíc periód T1 a T2 (periódy nosných frekvencií). Teda frekvencie f1 a f2 sa v tomto prípade odvádzajú od modulačnej rýchlosti.

Iná metóda, ktorá sa používa na zmenšenie šírky pásma potrebnej na prenos FSK signálu je Gaussovské minimálne frekvenčné kľúčovanie GFSK (Gaussian Frequency Shift Keying). Podstata spočíva v zaradení Gaussového filtra pred modulátor FSK, ktorý „zaobľuje“ hrany vstupnej postupnosti a tým výrazne znižuje šírku frekvenčného spektra potrebného pre vysielanie.

Page 20: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

12

Spojením týchto dvoch modulácii sa dosiahol silný nástroj v digitálnych komunikáciách: GMSK (Gaussian Minimum Shift Keying – Gaussova modulácia s minimálnym zdvihom), je to dvojstavová modulácia so spojitou fázou a našla široké uplatnenie v praxi.

3.1 Vlastnosti FSK

Keďže je to modulácia s konštantnou amplitúdou, je necitlivá na zmeny amplitúdy na rozdiel od ASK a pod.

FSK so skokovou zmenou fázy má nižšiu efektivitu využitia šírky pásma ako ASK, alebo PSK, no tento nedostatok odstraňuje GMSK so spojitou zmenou fázy.

4 stavová FSK modulácia dokáže preniesť približné 1.3 bitu / Hertz, pre porovnanie QPSK dokáže preniesť 1.5 bitu / Hertz.

FSK modulácia je však najjednoduchšie realizovateľná s pomedzi digitálnych modulácií s podobnými vlastnosťami, preto sa v praxi často využíva.

3.2 Použitie FSK v praxi

- Mikrovlné bezdrôtové siete - 4FSK

- Bezdrôtové siete štandardu IEEE 802.11 - GFSK

- HIPERLAN/1 (európska alternatíva IEEE 802.11) – FSK a GMSK

- GSM siete – GMSK

- Bluetooth – GMSK

- GPRS – GMSK

- EDGE (do protokolu MCS4) – GMSK

- DECT (Digital Enhanced Cordless Telecommunications) - GFSK

- Družica TUBSAT – FFSK a GMSK

- STL (Studio To Transmiter Digital Video) – 4FSK

- Profibus protokol (rozšírená priemyselný protokol) – FSK

- HART protokol (rozšírený priemyselný protokol) - FSK

- Packet rádio (prenos v občianskom CB pásme) – AFSK

- RFID (bezdrôtový identifikačný systém) – FSK

- PLC (Power Line Communications) – prenos dát po elektrickej sieti – FSK

- PNC – (Paging Network Controller) – vyhľadávanie osôb – 2FSK, 4FSK

- WCT – (Wireless Cable Technology) - GMSK

- A mnoho iných

Page 21: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

13

3.3 Rozbor 4FSK prijíma ča pod ľa knihy Porat, B.: A Course I Digital Signal Processing

Táto kniha je v použitej literatúre [4], taktiež jej strany 566 až 579 sú v (P20).

V 4 stavovej FSK modulácií spájame bity do párov, označme preto tieto páry symboly. Priraďme symbolom -3, -1, 1, 3 bitové páry 00, 01, 10, 11 v danom poradí. Pre priradenie frekvencií týmto symbolom potrebujeme štyri rôzne frekvencie. Predpokladajme, že chceme vysielať rýchlosťou f0 symbolov za sekundu, čo je rovné 2f0 bitov za sekundu. Potom časový interval potrebný na každý symbol je T0 = 1/f0. Počas každého intervalu o veľkosti T0 prenesieme signál o frekvencií priradenej danému symbolu. Úlohou prijímača je nájsť každý interval, ktorá frekvencia bola prenášaná, a priradiť ju danému symbolu.

3.3.1 Vysielaný 4FSK signál

Signál v základnom pásme je po častiach konštantný, reprezentujúci každý symbol konštantnou hodnotou. Na obr. 3.2 je znázornený typický signál v základnom pásme. Matematický je popísaný takto:

0

m=- 0

t-mTs(t)= u[m]rect

T

∑ (3.1)

Kde u[m] je postupnosť symbolov a rect(.) je obdĺžníková funkcia

Obr. 3.2 Modulačný signál 4FSK

Frekvenčná modulácia je definovaná vzťahom 3.2:

cx(t)=cos[2πf t+Φ(t)] , kde t

f

0

Φ(t)=2πK s(τ)dτ∫ (3.2)

fc je nosná frekvencia, Kf je konštanta. Okamžitá frekvencia signálu x(t) je daná časovou deriváciou okamžitej fázy, podelenej 2π :

c ff(t)=f +K s(t) (3.3)

Page 22: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

14

Frekvenčný zdvih FSK signálu je definovaný ako maximálna hodnota z fK s(t) .

Keďže v našom prípade maximum z s(t) je rovné 3, frekvenčný zdvih je 3Kf. Teda:

c 0f(t)=f +(β/3)f s(t) (3.4)

Parameter β kontroluje šírku pásma modulovaného signálu. Čím väčšia je β , tým väčšia je šírka pásma. Ak si zvolíme β =1.5, bude to mať špeciálny význam. Keďže vzdialenosť medzi susednými hodnotami s(t) je rovná 2, vzdialenosť medzi príslušnými frekvenciami pri β =1.5 je presne f0, preto budeme používať β =1.5.

Obr. 3.3 ukazuje spektrum FSK signálu x(t) okolo nosnej frekvencie fc:

Obr. 3.3 Spektrum 4FSK signálu

Na obrázku je vidno štyri spektrálne čiary na frekvenciách c 0f =±0.5f a c 0f =±1.5f .

Šírka pásma signálu x(t) je približne 0±2f okolo nosnej frekvencie.

3.3.2 Prijímaný signál

Prijímaný signál je oneskorený voči vysielanému signálu, je to spôsobené posunutím času o neznámu fázu. To je dané týmto vzťahom:

c 0 0 0 c 0 0r(t)=cos[2πf (t-t )+Φ(t-t )+Φ' ]=cos[2πf t+Φ(t-t )+Φ ] (3.5)

Kde t0 je neznáme oneskorenie a 0 0 c 0Φ =Φ' -2πf t je neznáma fáza. Ak je vysielač aj

prijímač stacionárny oneskorenie je konštantné. No ak je prijímač, alebo vysielač v pohybe, môže sa oneskorenie meniť. Napríklad ak je prijímač umiestnený v aute, ktoré sa pohybuje rýchlosťou 30m/s, keďže rýchlosť svetla je 3 x 108 m/s, oneskorenie sa bude meniť približne o 0.1 mikrosekundy za sekundu. Ak vysielač je umiestnený na satelite, ktorý sa pohybuje rýchlosťou 7000 m/s, t0 sa môže meniť o viac ako 20 mikrosekúnd za sekundu.

Page 23: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

15

Keďže digitálna technika ešte stále nie je dosť rýchla na to, aby sme mohli spracovávať priamo modulovaný signál, musíme ho pretransformovať na nižší medzifrekvenčný kmitočet analógovo. Predpokladajme, že budeme používať vzorkovaciu frekvenciu A/D prevodníka Lf0, kde L je celé číslo. Je vhodné zvoliť si medzi frekvenciu rovnú 0.25f0 nakoľko neskôr pre vytváranie sufázovej a kvadratúrnej zložky bude použitý Hilbertov transformátor, a ten sa značne zjednoduší touto voľbou. Frekvencia lokálneho oscilátora by preto malá byť fc-0.25f0. Avšak fyzický oscilátor nikdy nieje dokonalý, jeho frekvenčná odchýlka je bežne rádovo desiatky až stovky hertzov. To nie je zanedbateľné vzhľadom na f0, ktorá je rádovo v kilohertzoch. Preto neskôr vysvetlíme problém odhadovania stredu frekvencie prijímaného signálu, vzhľadom na frekvenciu prijímača.

Demodulovaný signál bude mať potom tvar:

0 0 0y(t)=cos[2π(0.25Lf +∆f)t+Φ(t-t )+Φ ] (3.6)

Kde ∆f je frekvenčná odchýlka, spôsobená frekvenčnou chybou. Medzi frekvenčný signál v diskrétnom čase potom bude mať tvar:

0 0 0 0 0y[n]=y(n/Lf )=cos[2π(0.25+∆f/Lf )n+Φ(n/Lf -t )+Φ ] (3.7)

3.3.3 Zvolenie vzorkovacej frekvencie

Je nutné aby vzorkovacia frekvencia bola celočíselným násobkom f0. Pre určenie parametra L je nutné zadefinovať horný limit z ∆f , označme ho max∆f . Šírka pásma

FSK signálu je 0±2f okolo medzifrekvencie, teda po navzorkovaní bude 2/L± . Keďže

medzifrekvencia je rovná 00.25+ f/Lf∆ , signál zaberá pásmo:

0 0

∆f 2 ∆f 2[0.25+ - ,0.25+ + ]

Lf L Lf L (3.8)

Z tohto vyplýva vzťah pre L:

max

0

∆fL>4 2+

f

(3.9)

Predpokladajme že max 0∆f = f , potom z 3.9 dostaneme že L > 12. My si zvolíme

L = 16.

Page 24: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

16

3.3.4 Generovanie kvadratúrneho signálu

Informácia o symboloch je v časovej derivácii fázy funkcie y(t). Detekcia symbolov je zložitá, pretože v prijímanom signále sa vyskytujú tri neznáme parametre: fáza 0Φ , oneskorenie t0 a frekvenčný posun ∆f . Všeobecný spôsob ako realizovať

prijímač necitlivý vzhľadom na neznámu fázu je vygenerovanie kvadratúrnej zložky:

q 0 0 0 0y [n]=sin[2π(0.25+∆f/Lf )n+Φ(n/Lf -t )+Φ ] (3.10)

Signál y [n] sa nazýva sufázová zložka a dokopy zložky y[n], yq [n] sa nazývajú I-Q signál.

3.3.5 Komplexná demodulácia

Získaním súfazovej a kvadratúrnej zložky sme získali komplexný signál, ktorý môžeme opísať týmto vzťahom:

a q 0 0 0 0y [n]=y[n]+jy [n]=expj[2 π(0.25+∆f/Lf )n+Φ(n/Lf -t )+Φ ] (3.11)

Signál ya[n] je analytický signál y[n].

Spektrum analitického signálu zaberá iba kladné frekvencie, preto je vhodné ho teraz posunúť do základného pásma. Ideálne by bolo posunúť ho o 02π(0.25+∆f/Lf ) ,

potom by bol signál centrovaný okolo nuly. Avšak keďže ∆f je neznáme, posunieme ho iba o 0.5π . To dosiahneme vynásobením signálu ya[n] o -j0.5πne . Keďže -j0.5πn ne =(-j) :

n

qz[n]=(y[n]+jy [n])(-j) (3.12)

Tato operácia nevyžaduje žiaden výpočet, len preusporiadanie signálu a zmenu znamienok. Je to preto, že sme zvolili medzi frekvenciu 0.25 zo vzorkovacej frekvencie.

3.3.6 Symbolová detekcia: úvodná diskusia

Získanie informácie o symboloch z postupnosti z[n] je vcelku komplikované, nakoľko stále mame neznáme časové oneskorenie a frekvenčné posunutie. Ak by tieto dva neznáme parametre boli nulové, na demoduláciu by sa použili štyri prispôsobené filtre s impulzovými odpoveďami:

k

0.5(L-1-n)g [n]=exp -j2π ,0 n L-1

L ≤ ≤

(3.13)

Page 25: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

17

Kde k = -3, -1, 1, 3.

Konvolúciou vstupnej postupnosti z[n] s impulzovými odpoveďami filtrov by sme dostali:

0jΦ

k

Le , pre k = u[m] z*g [Lm+L-1]=

0, v opačnom prípade

(3.14)

Na zistenie, ktorý symbol sme prijali, by sme porovnali absolútne hodnoty výstupov zo štyroch prispôsobených filtrov, a ktorý z nich by bol najväčší, jemu prislúchajúci symbol by bol demodulovaný symbol. Tento spôsob by bol z hľadiska schopnosti demodulovať zašumený signál optimálnejší, avšak, keďže časové oneskorenie a frekvenčné posunutie nie je nulové, nie je možné použiť túto metódu, kým tieto parametre nie sú známe. Spoľahlivá detekcia časového a frekvenčného posunutia je hlavným problémom v digitálnych komunikáciách.

3.3.7 Prevod FM na AM

Jedným spôsobom ako odhadnúť časové a frekvenčné posunutie je realizovať deriváciu fázovej funkcie 0 0Φ(n/Lf -t ) z funkcie z[n] a použiť deriváciu na odhadnutie

týchto dvoch parametrov. Na tento proces sa používa FM diskriminátor. Má horšie vlastnosti pri demodulovaní zašumených signálov, no je jednoduchý, preto ho použijeme. Označme signál na pravej strane tohto vzťahu:

0

2∆f L imagz[n]z[n-1]u[m]+ = arcsin

f π z[n]z[n-1]

(3.15)

ako s[n] , pretože odhaduje s(t-t0) mimo frekvenčného posunutia 02∆f/f . Signál s[n]

definuje náš digitálny FM diskriminátor. Obr. 3.4 vykresľuje signál s[n] vzhľadom na signál s(t) z obr. 3.2.

Obr. 3.4 Výstup signálu z FM diskriminátora a) SNR = ∞ , b) SNR = 12dB

Page 26: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

18

3.3.8 Obnova taktovania

Obnovou taktovania sa myslí nájdenie periódy medzi symbolmi. Keďže signál je vzorkovaný L krát počas trvania jedného symbolu, naším cieľom je nájsť počet vzoriek po nasledujúci symbol. Týmto sa dopustíme chyby maximálne 0±0.5T /L.

Jednoduchý a účinný obvod obnovy taktovania je znázornený na hornej časti obrázku 3.5. Na spodnej časti obrázku je obvod súvisiaci so symbolovou detekciou.

Obr. 3.5 Obnova taktovania a prispôsobené filtrovanie

Prenosová funkcia z1H je rovná:

z -1 -(0.5L-1)1H (z)=1+z +L+z (3.16)

Označme s1[n] ako výstup z odčítačky v hornej časti obr. 3.5, potom prenosová funkcia od s[n] k s1[n] bude:

z z -0.5L

1H (z)=H (z)[1-z ] (3.17)

Z toho s1[n]:

0.5L-1 L-1

1k=0 k=0.5L

ˆ ˆs [n]= s[n-k]- s[n-k]∑ ∑ (3.18)

Predpokladajme, že symbolové zmeny sa nachádzajú v intervale medzi n0T0 a (n0+1)T0 a hodnoty symbolov boli u[m-1] a u[m] v tomto poradí. Potom:

1 0 1 0 1 0s [n ]=0, s [n +0.5L]=0.5L(u[m]-u[m-1]), s [n +L]=0 (3.19)

s1[n] sa mení lineárne medzi n0 a n0+0.5L, taktiež medzi n0+0.5L+1 a n0+L. Obr. 3.6 ukazuje operáciu filtra Hz(z) na postupnosti s[n] . s1[n] vykazuje lokálne maxima v čase, keď sa mení hodnota symbolu. Maximum nastane 0.5L časových okamihov po zmene. Je Kladné ak u[m] > u[m-1] a záporné v opačnom prípade.

Page 27: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

19

Obr. 3.6 Filter Hz(z)

V praxi sa s[n] líši od s[n] pôsobením šumu a nedokonalosťou FM diskriminátora. V tomto prípade obe polovice filtra Hz(z) utlmujú šum príslušného symbolu spriemerovaním 0.5L vzoriek. Filter z1H môže byť implementovaný takto:

-0.5L

z1 -1

1-zH (z)=

1-z (3.20)

Symbolovú periódu principiálne môžeme nájsť hľadaním lokálneho maxima z |s1[n]|. Ideálne by tieto maximá boli presne L vzoriek od seba. Avšak, keď dva susedné symboly sú rovnaké, nenastane tu lokálne maximum, taktiež šum môže spôsobiť, že lokálne maximum sa bude pohybovať náhodné od jeho správnej polohy, tento jav sa nazýva časová nestabilita. Preto je nutné filtrovať túto časovú nestabilitu spriemerovaním predpokladaných symbolových periód v čase. Táto operácia sa vykoná filtrom z

2H (z). Impulzová odpoveď filtra z2H (z) je postupnosť impulzov vzdialených L

vzoriek od seba:

2k=0

h [n]= δ[n-kL]∞

∑ (3.21)

Konvolúcia tejto postupnosti s |s1[n]| nám ukáže špičky z |s1[n]| a taktiež spôsobí spriemerovanie, ak nastane časová nestabilita. Problémom je veľká pamäť h2[n]. V praxi nechceme, aby pamäť h2[n] bola tak veľká, nakoľko časové oneskorenie sa mení pomaly, vzhľadom na pomaly sa meniacu vzdialenosť medzi prijímačom a vysielačom.

Toto sa dá jednoducho odstrániť takouto postupnosťou:

k2

k=0

h [n]= α δ[n-kL], 0 < α < 1∞

∑ (3.22)

Ak zrealizujeme konvolúciu takejto postupnosti s |s1[n]|, vynuluje to predchádzajúce špičky exponenciálnym spôsobom. Čím viac sa α bude blížiť k jednotke, tým väčšia bude pamäť filtra z

2H (z). Prenosová funkcia takéhoto filtra bude:

Page 28: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

20

z2 -L

1H (z)=

1-αz (3.23)

Označme výstup filtra z2H (z) s2[n]. Jeho lokálne špičky budú väčšinu času

vzdialené od seba práve o L. Tento signál vstupuje do detektora špičiek, ktorý má za úlohu nájsť polohu týchto špičiek. Na začiatku nájde maximum s pomedzi posledných L za sebou idúcich vzoriek s2[n] a označí čas maxima. Potom čaká L-M-1 vzoriek, pričom M je malé číslo typický 1, alebo 2. Potom prehľadá 2M+1 za sebou idúcich vzoriek s2[n]. Najčastejšie nájde maximum v M+1, teda v strede hľadaného intervalu, čo je o L vzoriek vzdialené od predošlej špičky. Celý cyklus potom priebežne opakuje. Maximum sa bude pohybovať vzorku, alebo dve dopredu, alebo dozadu. Ak je tento posun spôsobený šumom, väčšinou sa opraví sám neskôr. Ak je tento posun spôsobený fyzickým pohybom vysielača, alebo prijímača, detektor špičiek začne pracovať s novou, správnou symbolovou periódou. Výstupom detektoru špičiek je postupnosť hľadaných symbolových periód, ktoré sa použijú v obvode premenného oneskorenia, ktorý bude vysvetlený následné.

Obr. 3.7 ukazuje typické priebehy signálov v obvode obnovy taktovania.

Obr. 3.7 Signály obvodu obnovy taktovania a prispôsobeného filtrovania:

a) signál s1[n] pri SNR= ∞ , b) signál s1[n] pri SNR=6dB,

c) signál s2[n] pri SNR= ∞ , d) signál s2[n] pri SNR=6dB,

e) signál s3[n] pri SNR= ∞ , f) signál s3[n] pri SNR=6dB,

Page 29: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

21

3.3.9 Prispôsobené filtre pre detekciu symbolov

Signál s[n] má tú vlastnosť, že je rovnaký pre všetky štyri symboly, mení sa iba jeho amplitúda vzhľadom na prijímaný signál. Preto namiesto štyroch prispôsobených filtroch spomínaných v časti 3.7 potrebujeme iba jeden pre s[n] . Symboly sú potom

detekované na základe amplitúdy výstupu prispôsobeného filtra zG (z).

z -1 -(L-1)G (z)=1+z +L+z (3.24)

Ak berieme do úvahy vzorec 1.16, zG (z)môžeme upraviť takto:

z z -0.5L

1G (z)=H (z)[1+z ] (3.25)

Výstup z filtra zG (z) môžeme označiť s3[n], je to výstup zo sčítačky na spodnej časti obr. 3.5.

Správny čas na vzorkovanie výstupu prispôsobeného filtra je na konci trvania symbolu. Ten nastane vždy po 0.5L vzorkách po každej špičke s2[n]. Prácou obvodu premenného oneskorenia by malo byť vykonanie posunutí signálu s3[n] o symbolové periódy určené obvodom detektoru špičiek. Oneskorený signál s3[n] je potom vzorkovaný raz za L vzoriek a výsledný signál u[m] je hľadaný už zdemodulovaný symbol.

3.3.10 Obnovenie nosnej frekvencie a symbolová det ekcia

Hľadaný symbol u[m] je okrem šumu rovný 0u[m]+2∆f/f , teda frekvenčná

odchýlka ∆f sa javy ako jednosmerná zložka. Po odstránení tejto jednosmernej zložky budeme môcť symbol u[m] detekovať ako číslo blízke k u[m] z rozsahu -3, -1, 1, 3. Obvod obnovenia nosnej frekvencie a symbolová detekcia ma dva operačné módy: inicializačný a rozhodovací.

3.3.11 Inicializa čný mód

Prijmeme postupnosť vzoriek u[m] o veľkosti M, kde M je približne 100 a viac. Ak sú prenášané symboly dostatočne náhodné, priemer zo správnych hodnôt u[m] musí byť blízky nule. Podľa tohto odhadneme ∆f týmto vzťahom:

M

0

m=1

fˆ∆f = u[m]

2M∑ (3.26)

Page 30: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

22

Vytvoríme upravenú postupnosť:

10

2∆fˆu [m]=u[m]-

f (3.27)

a použijeme ju na detekciu symbolov, podľa kvantizačných pravidiel:

2 1u [m]=2round0.5u [m]+1.5-3 (3.28)

3 2u [m]=maxminu [m],3,-3 (3.29)

3u [m] sú čísla najviac podobné k 1u [m] z rozsahu -3, -1, 1, 3 a slúžia nám k

odhadovaniu hodnôt u[m]. Frekvenčnú odchýlku ešte spresníme vzťahom:

M

03

m=1

fˆ∆f = (u[m]-u [m])

2M∑ (3.30)

3.3.12 Rozhodovací mód

Vždy, keď sa vygeneruje nová hodnota u[m], dostaneme novú informáciu o frekvenčnej odchýlke ∆f . Táto informácia bude použitá na upravovanie odhadovanej hodnoty ∆f . Na obr. 3.8 je schéma obvodu pre rozhodovací mód. Počiatočná hodnota ∆f sa získa z inicializačného módu. Kvantizátor je určený vzťahmi (3.28) a (3.29). η je malé kladné číslo, viac informácií o η a celom obvode rozhodovacieho módu je v prílohe.

Obr. 3.8 Rozhodovací mód obnovovania nosnej frekvencie

3.3.13 Vylepšená obnova nosnej frekvencie a symbolo vá detekcia

Obvody na obr. 3.8 a 3.5 nevykazujú najlepšie vlastnosti ak sa prijíma signál s nízkym pomerom signál / šum. Hlavným dôvodom je veľká citlivosť FM diskriminátora na šum a nespojitosť okamžitej frekvencie. Tento obvod nám však poskytuje dostatočne presnú informáciu o časovej a frekvenčnej odchýlke, ktorá bude využitá na vylepšenie symbolovej detekcie. Podstata spočíva v použití štyroch

Page 31: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

23

prispôsobených filtrov na vstupnú postupnosť I a Q vzoriek. Túto metódu už môžeme použiť, nakoľko je nám známa časová aj frekvenčná odchýlka. Výstup z filtrov zdecimujeme L krát práve za pomoci informácie o časovej odchýlke a posunieme ho o ∆f , získanej z obvodu na obr. 3.8. Takýto spôsob vykazuje lepšie vlastnosti pri prijme viac zašumených signálov, no je náročnejší na výpočtový výkon procesora. Viac informácií o vylepšenej detekcií signálu v prílohe.

3.3.14 Odlišnosti vo či reálnemu hardvéru

Hlavný rozdiel medzi vyššie popísaným teoretickým postupom a spôsobe prijímania 4FSK modulácie na reálnom hardvéry je vytváranie komplexného signálu (I a Q vzorky) priamo príjmovým procesorom AD6620. Taktiež spracovávaný signál sa analógovo nepretransformuje na medzi frekvenciu 00.25+ f/Lf∆ , ale signál sa

pretransformuje priamo do základného pásma digitálne, pomocou príjmového procesora AD6620. Celé spracovanie signálu sa realizuje pomocou procesora ADSP-2181, ktorý využíva aritmetiku s pevnou radovou čiarkou, teda všetky výpočty sa robili s hodnotami v rozsahu <-1, 1) so 16 bitovou presnosťou. Vylepšená symbolová detekcia sa vzhľadom na krátkosť času neimplementovala, no prijímač vykazuje pomerne dobre vlastnosti pri spracovávaní zašumeného signálu aj s pôvodnou metódou detekcie. Viac informácií o rozdielnostiach teoretického postupu voči implementovaní na signálovom procesore sú rozobraté v konkrétnych blokoch prijímača a vysielača.

Page 32: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

24

4 Realizácia 4FSK vysiela ča

4FSK vysielač sa realizoval na DDS karte a nie na SDR module, nakoľko bolo za potreby testovať cely prenos, teda aj vysielač aj prijímač súčasné. Hoci SDR modul umožňuje plne duplexný prenos, z hľadiska komplikovanosti softvéru prijímača by nebolo vhodne aby jeden procesor riadil naraz aj vysielač aj prijímač, hlavne z hľadiska efektivity. Keďže DDS karta sa líši od SDR modulu z programátorského hľadiska len nepatrne, v tejto kapitole bude uvedené aké zmeny treba vykonať v programe vysielača, aby fungoval na SDR module.

4.1 Požiadavky na 4FSK vysiela č

Požiadavky na 4FSK vysielač vyplynuli zo zadania diplomovej práce.

Celý 4FSK prenos ma umožňovať asynchrónny prenos dát z jedného PC do druhého pomocou rozhrania RS-232 protokolom UART. Teda vysielač ma umožniť asynchrónne načítavanie vstupných dát z PC pomocou protokolu UART, spracovať ich do formátu vhodného na 4FSK prenos a postupne vysielať tak, aby prijímač bol schopný ich konkrétne detekovať.

4.2 Programová Koncepcia 4FSK vysiela ča

Vysielač pozostáva z troch hlavých blokov: Hlavný program (TX.asm) P1, podprogram na vykonávanie vysielania (IRQ_TX.asm) P2 a podprogram na načítavanie vstupných dát z PC pomocou rozhrania UART (IRQ_UART.asm) P3.

V programe vysielača bolo potrebné vysporiadať sa z problémom prijímania vstupných dát z UART rozhrania, ktoré je asynchrónne a synchrónnym vysielaním dát pomocou 4FSK modulácie. Taktiež bolo potrebné vymyslieť slovnú synchronizáciu, pretože 4 FSK je štvorstavová modulácia, teda posiela bity zlúčené do dvojbitov. Keďže zo zadania vyplynula potreba prenášať 8 bitové slová, slovná synchronizácia musí zabezpečiť, aby prijímač vedel spätne poskladať 8 bitové slovo zo správnych štyroch dvojbitov.

Oba tieto problémy sa elegantne vyriešili zvolením jedného dvojbitu v prenášanom slove za synchronizačný. Teda každé prenášané 8 bitové slovo potrebuje na prenos 5 symbolov, teda 10 bitov, pričom prvý symbol je vždy synchronizačný. Za synchronizačný symbol bol zvolený dvojbit 01. Prijímač na začiatku každého slova očakáva synchronizačný symbol. Ak vysielač nemá prístupné nové dáta z UART rozhrania, musí ďalej vysielať dáta do prijímača, pretože ak by na tú chvíľu, kým znovu nebudú prístupné dáta nevysielal, cely algoritmus v prijímači by sa rozsynchronizoval a prijímali by sa nekonkrétne dáta. To bolo vyriešené tak, že v čase pokiaľ nie sú prístupné nové dáta z UART rozhrania, vysielač vysiela rôzne dáta bez synchronizačného slova, teda prijímač sa nerozsynchronizuje a ani nevytvára z týchto dvojbitov slová, pretože na ich začiatku nie je synchronizačný dvojbit.

Page 33: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

25

Tento spôsob synchronizácie je veľmi účinný aj z hľadiska rýchleho spätného zosynchronizovania sa, ak pri prenose došlo k strate dát spôsobenej šumom. Avšak nie je to najvhodnejšie riešenie z hľadiska prenosovej rýchlosti, nakoľko na prenesenie 8 bitovej informácie je potrebné preniesť 10 bitov. No napriek tomu sa zvolil tento typ synchronizácie, pre jeho výhody opísané vyššie.

4.3 Hlavný program TX (P1)

Obsahuje tabuľku prerušení, zadeklarovanie pamätí, nastavenie časovača, nastavenie procesora, nainicializovanie AD7008 a obsluhu prerušenia od časovača.

Vysielač potrebuje synchrónne vysielať dáta konštantnou rýchlosťou a zároveň načítavať dáta z UARTu. To vyžaduje synchrónne časovanie oboch týchto rutín. Keďže procesor ADSP-2181 disponuje iba jedným časovačom, bol nastavený tak, aby umožňoval odvádzanie oboch taktov potrebných pre prijímač jedným časovačom.

Vysielač umožňuje cyklické vysielanie dát z pamäte „INdata“, v tomto prípade sa nevysielajú dáta načítané z UARTu, ale priamo z pamäte, na ktorú sa nastaví smerník I0. Táto možnosť výrazne uľahčila testovanie prijímača, nakoľko neboli potrebné na testovanie 2 počítače. Zároveň sa prijímali cyklické dáta, pomocou ktorých bolo jednoduché odsledovať správnosť funkcie prijímača. Podrobný popis ako prerobiť prijímač na tento mód je uvedený v popise kódu v (P1).

Na začiatku programu sa nastaví smerník I0 na pamäť INdata, ktorá sa načíta zo súboru „INdata.dat“ a smerník I1 na pamäť NoData, ktorá sa načíta zo súboru „NoData.dat“. Smerník I1 sa používa v podprograme IRQ_TX a preto bude bližšie popísaný v nasledujúcej kapitole.

Následne sa nainicializujé procesor ADSP-2181 pre danú aplikáciu (konkrétne popísané v (P1)) a nainicializuje sa syntezátor AD7008 podľa tabuľky 2.1 pre DDS kartu:

// nastavenie AD7008 pre FSK vysielanie (1 wait state, AM disabled, Fselect=0)

ax0=7;

dm(PF_CONTROL)=ax0; // definovanie pinov PF[0:2] ako vstupy

reset fl0;

ax0=1; DM(WAIT_STATE)=ax0; // MUSI byt 1 wait state

reset fl2; // fselect = 0

ax0=1; IO(IN_REG_AD7008)=ax0; // bez AM

ax0=CONTROL_REG_AD7008; dm(PF_PINS)=ax0; // prenesenie zo vstupného registra

// AD7008 do registra freq0

nop;set fl0; nop; reset fl0; // generovanie signálu load obvodu AD7008

Pre SDR modul by inicializácia AD7008 vyzerala takto:

ax0=HODNOTA_WAIT_STATE;

DM(ADRESA_WAIT_STATE)=ax0; //nula čakacích stavov

nop; //ochranný čas

Page 34: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

26

// pomocou signálu FSELECT=0 vyberieme register „ FREQ 0"

ax0=0;

IO(FSELECT)=ax0; // prenos do FSELECT

// nastavenie command registra

ax0=HODNOTA_CONTROL_REG_AD7008; // zápis do vstupného paralelného

IO(IN_REG_AD7008)=ax0; // registra

ax0=ADRESA_CONTROL_REG_AD7008; //prenos do command registra

IO(PRENOS)=ax0;

nop; //ochranný čas

Následne sa čaká v štartovacej slučke, pokiaľ sa stlačením tlačidla IRQE nenastaví pamäť „start_status“ na 1, je to preto, aby sa začali vysielať dáta, ktoré sa načítavajú z RS-232 až po vypnutí simulačného programu Visual DSP++, ktorým sa nahrá program do procesora, pretože ten používa na komunikáciu s procesorom to isté rozhranie.

Potom sa nastaví časovač na zvolenú rýchlosť, zakážu sa všetky prerušenia okrem prerušenia od časovača a vojde sa do nekonečnej slučky.

Program opustí túto slučku jedine vyvolaním prerušenia časovačom, ktoré vyzerá takto:

IRQ_timer:

AR=dm(UART_count); // každým interuptom sa dekrementuje UART_count o 1

AR=AR-1; // ak sa znuluje, skočí sa na „ IRQ_UART" aby sa zosnímal bit z RS232

dm(UART_count)=AR;

if eq call IRQ_UART;

AR=dm(TX_count); // každým interuptom sa dekrementuje TX_count o 1

AR=AR-1; // ak sa vynuluje skočí sa na „ IRQ_TX", aby sa vyslal symbol vysielacou rutinou

dm(TX_count)=AR;

if eq call IRQ_TX;

rti;

Touto rutinou sa docieli vyvolávanie podprogramov IRQ_UART a IRQ_TX dvoma rozdielnymi frekvenciami, ktoré sa zvolia na začiatku programu správnym definovaním konštánt UART_counter a TX_counter. Konkrétna voľba týchto parametrov pre dane prenosové rýchlosti či už 4FSK prenosu, alebo UART RS-232 rozhrania sú detailne rozpísane v (P1).

4.4 Podprogram pre vysielanie IRQ_TX (P2)

Na začiatku podprogramu sa do pamäte TX_count prekopíruje hodnota z TX_counter, aby mohlo pokračovať dekrementovanie TX_count od začiatku aj po ďalšom vyvolaní prerušenia časovačom.

Page 35: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

27

Následne sa zistí, ktorý symbol v poradí sa ma vyslať, podľa toho sa skočí na dané návestie. Ak sa má vyslať prvý symbol, kontroluje sa či je prístupne nové slovo na vyslanie, teda čí je v pamäti „pristupneData“ zapísaná jednotka. Ak nie je, teda nie sú prístupne nové dáta na vyslanie, vysielač vysiela dáta z pamäte „NOdata“ na ktorú je nastavený smerník I1 a ktorá neobsahuje synchronizačný dvojbit 01. Ak sú prístupné nové dáta, načíta sa slovo z pamäte „buf_slovo“ do pamäte „slovo“ aby sa mohlo načítať ďalšie slovo z UARTu a prepíše sa pamäť „pristupneData“ na 0, aby sa nevyslalo to isté slovo ešte raz. Ak sa načíta nové slovo UARTom, znovu sa pamäť „pristupneData“ prepíše na 1. Následne sa vyšle synchronizačný dvojbit 01.

Ak sa má vyslať druhý až piaty symbol, postupne sa vysielajú dvojbity z 8 bitového slova z pamäte „slovo“ v poradí viac významové bity nazačiatku.

Samotné vysielanie dvojbitov sa vykonáva tak že do registra MR1 sa zapíše viac významove slovo frekvencie vysielaného symbolu a do registra MR0 menej významové slovo frekvencie vysielaného symbolu. Následne sa toto 32 bitové slovo zapíše do registra freq0 obvodu AD7008 touto rutinou, ktorá je odvodená z tabuľky 2.1 pre DDS kartu:

IO(IN_REG_AD7008)=mr1; // viac významové slovo frekvencie sa

// zápise do vstupného registra AD7008

nop; // ochranný čas

IO(IN_REG_AD7008)=mr0; // menej významové slovo frekvencie sa

// zapíše do vstupného registra AD7008

ax0=FREQ0; dm(PF_PINS)=ax0; // prenesenie zo vstupného registra

// AD7008 do freq0 registra

nop; set fl0; nop; reset fl0; // generovanie signálu LOAD

Ak by sa vysielač mal použiť na SDR module, použil by sa tento kód:

IO(IN_REG_AD7008)=mr1; // prvých 16 bitov MSB

nop;

IO(IN_REG_AD7008)=mr0; // druhých 16 bitov LSB

ax0=ADRESA_FREQ0;

IO(PRENOS)=ax0; // zápis do FREQ0

Frekvencie symbolov sú uložené v konštantách, ktoré sa vypočítali v súbore konštanty h P4. Je tam uvedený aj ich podrobný výpočet. Frekvencie sú závislé na nosnej frekvencií prenosu 4FSK a taktiež na prenosovej rýchlosti f0, tak ako to bolo vysvetlené v kapitole 3.

Program sa realizuje tak, aby od vyvolania podprogramu nastal vždy rovnaký počet procesorových cyklov až po dobu vyslania novej frekvencie do obvodu AD7008, aby sa zamedzilo malým zmenám prenosovej rýchlosti 4FSK prenosu vzhľadom na nie rovnaký počet cyklov pre rôzne vysielané symboly. Vzhľadom na rýchlosť procesora a rýchlosť 4FSK prenosu by táto odchýlka bola minimálna, no aj tak sa tejto odchýlke predišlo.

Page 36: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

28

4.5 Softvérový UART IRQ_UART (P3)

Z požiadavky prenášať dáta z PC pomocou rozhrania RS-232 vyplynulo použitie UART protokolu. Keďže procesor ADSP-2181 nepodporuje hardvérový UART protokol, bolo potrebné vytvoriť softvérovu simuláciu UART protokolu.

V Apliccation note od Analog Devices pre ADSP-2181 EE-89 [16] je vytvorená softvérová simulácia UART rozhrania, no je pre starú verziu Visual DSP++ (používa iný syntax aj koncepciu zdrojových súborov) a preto bola v tomto prípade nepoužiteľná, navyše bola písaná dosť neprehľadne a pomerne neefektívne, preto na tento účel bol vymyslený nový program, ktorý umožňoval načítavanie dát z rozhrania RS-232 UART protokolom.

Podstata UART spočíva v asynchrónnom posielaní 5 až 8 bitových slov (v našom prípade 8 bitových), pričom každé slovo začína START bitom a končí STOP bitom. START bit je štandardne nastavený ako logická nula a STOP bit ako logická jednotka. V čase kľudu, teda ak sa neposielajú dáta médium zostáva v stave logickej jednotky. START bit , ktorý je rovný logickej nule naznačí, že po ňom príde platné 8 bitové slovo a potom STOP bit, ktorý uvedie médium opäť do stavu kľudu. Ak sa dáta posielajú po blokoch, hneď po STOP bite nasleduje START bit, týmto sa dá docieliť maximálna prenosová rýchlosť a tá je rovná 4/5 bitovej rýchlosti UART prenosu pri 8 bitovom dátovom slove, jednom START bite a jednom STOP bite. Jednoduchá schéma postupnosti 8 bitového dátového slova UARTom je nakreslená na obrázku 4.1

Obr. 4.1 Postupnosť bitov pri UART protokole

Pre správnu funkčnosť softvérového UARTu je potrebné každý START bit snímať minimálne trojnásobnou rýchlosťou ako je bitová rýchlosť UART prenosu. Na túto rýchlosť je aj nastavená pamäť UART_counter, ktorej násobky sa potom využívajú pri snímaní jednotlivých bitov prenosu. Ak sa zosnímame START bit, určite sa zosnímal niekde v jeho prvej tretine trvania, preto po zosnímaní START bitu sa nastaví UART_count na 4 x UART_counter, aby prvý dátový bit sa zosnímal v približne jeho polke. Prvý zosnímaný dátový bit sa zapíše do pamäte „UART_buf“ a celá pamäť sa posunie o jeden bit doľava. Po zosnímaní druhého dátového bitu sa UART_count nastaví na 3 x UART_counter, aby aj nasledujúci dátový bit sa zosnímal približne v jeho polovici. Tento bit sa pridá do pamäte „UART_buf“ a znovu sa celá pamäť posunie o jeden bit doľava. Takto sa prijme všetkých 8 dátových bitov a po prijatí STOP bitu v jeho strede sa nastaví UART_count na UART_counter a znovu sa čaká na zosnímanie START bitu trojnásobnou rýchlosťou bitovej rýchlosti UART prenosu. Týmto spôsobom sa odstráni postupne rozsynchronizovanie dátového prenosu, ktoré ma za následok občasnú stratu jedného bitu, alebo prijatie jedného bitu dva krát, spôsobené nepresnosťou v rýchlostiach vysielania a prijímania dát. To bol problém pri

Page 37: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

29

prvotnom testovaní prenosu s použitím SPORTu procesora ADSP-2181 v synchrónnom režime.

Po prijatí všetkých dátových bitov aj STOP bitu sa slovo z pamäte „UART_buf“ prekopíruje do pamäti „buf_slovo“ aby sa pamäť „UART_buf“ mohla zase používať na načítavanie bitov z UARTu. Taktiež sa pamäť „pristupneData“ nastaví na 1, čím podprogram IRQ_TX vie, že sú k dispozícií nove dáta z RS-232.

Hardvérovo je RS-232 rozhranie prispôsobené na napäťové úrovne akceptovateľné pre procesor na doske EZ-kit lite integrovaným obvodom ADM232AARN. Jeho výstupný pin RXD1 je pripojený na IRQ1 pin procesora, z ktorého sa dá načítať aktuálny stav príkazom:

if FLAG_IN jump jednotka

Teda ak je na pine úroveň logická jednotka, program skočí na návestie jednotka, ak je na pine úroveň logická nula, program pokračuje vo vykonávaní ďalšieho príkazu pod ním. Tento stav sa načíta vždycky na začiatku, hneď po vstupe do podprogramu IRQ_UART, aby sa zamedzilo vplyvu nerovnakej dĺžky kódu pre rôzne poradie snímaných bitov na dobu snímania bitu, táto odchýlka by vzhľadom na frekvenciu procesora a prenosovú rýchlosť UARTu bola zanedbateľná, no aj tak sa jej predišlo.

UART rozhranie posiela ako prvý najmenej významový bit, 4FSK vysielač ho postupne posunie na najviac významovú pozíciu, teda zmení sa poradie bitov. 4FSK prijímač pošle do PC prvý najviac významový bit a PC ho príjme ako najmenej významový, teda spätne sa zmení poradie bitov, čím sa príjme to, čo sa vyslalo.

Spôsob odvádzania dvoch taktov pre vysielanie symbolov, aj príjem dát cez UART pomocou jedného taktu časovača umožňuje pomerne širokú škálu nastavenia týchto dvoch taktov, nie je to však ideálne, no pre našu aplikáciu úplne postačujúce. Podrobný popis ako voliť dane takty je rozpísaný v TX.asm (P1).

4.6 Podmienky pre korektný chod vysiela ča

Na to, aby bol chod vysielača korektný, treba splniť minimálne tieto podmienky:

1) Rýchlosť prenosu 4FSK musí byť väčšia, nanajvýš rovná rýchlosti UART prenosu dát z PC, konkrétne symbolová rýchlosť 4 FSK prenosu musí byť väčšia nanajvýš rovná dvojnásobku bitovej rýchlosti UART prenosu, čo vyplýva z použitia jedného synchronizačného symbolu 4FSK prenosu a 8 dátových, jedného START a jedného STOP bitu UART prenosu. Teda:

symbolová rychlosť 4FSK 2 x bitová rýchlosť UART≥ (4.1)

2) Symbolová rýchlosť 4FSK vysielača musí byť rovnaká, resp. málo odlišná od symbolovej rýchlosti 4FSK prijímača (bližšie informácie v popise prijímača, v nasledujúcej kapitole).

3) Frekvencie štyroch vysielaných symbolov musia byť od seba rovnako vzdialené a táto vzdialenosť musí byť zároveň symbolová rýchlosť 4FSK prenosu, tak ako to je vysvetlené v kapitole 3. Konkrétne ako sa tieto frekvencie počítajú je podrobne popísané v konstanty.h (P4).

Page 38: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

30

5 Realizácia 4FSK prijíma ča

4FSK prijímač sa realizoval na SDR module, nakoľko obsahuje špecializovaný príjmový procesor AD6620.

5.1 Požiadavky na 4FSK prijíma č

Požiadavky na 4FSK prijímač vyplynuli zo zadania diplomovej práce.

Prijímač má umožňovať prijatie 4FSK modulácie, vytvorenej vysielačom opísanom v predošlej kapitole, správne dekódovanie prijatej postupnosti, vyselektovanie informačných dát z celej postupnosti, spätné poskladanie prijatých dvojbitov do 8 bitových slov a poslanie týchto slov cez rozhranie UART do PC. Pri prenose nesmie dôjsť k rozsynchronizovaniu medzi vysielačom a prijímačom a informačné dáta sa musia preniesť z jedného PC do druhého bezchybne.

5.2 Programová koncepcia 4FSK prijíma ča

Prijímač pozostáva z 11 blokov: Hlavný program RX.asm (P5), inicializácie príjmového procesora AD6620 AD6620_Init.asm (P6), inicializácie procesora ADSP-2181 init_2181.asm (P7), inicializácie kodeku init_codec.asm (P8), podprogramu na výpočet uhlu cordic.asm (P9), podprogramu na filtrovanie filter.asm (P10), podprogramu na časovú obnovu peakdetector.asm (P11), podprogramu na výpočet počiatočnej ∆f initMode.asm (P12), podprogramu pre korekciu nosnej frekvencie DDCMode.asm (P13), podprogramu pre slovnú synchronizáciu synch_out (P14) a súboru obsahujúceho všetky konštanty pre prijímač konstanty.h (P15).

Prijímač pracuje na princípe podrobne rozpísanom v kapitole 3 s určitými zmenami. Preto väčšina blokov je veľmi podobných s teoretickými blokmi popísanými v tretej kapitole. Dodané sú bloky potrebné na inicializáciu daných procesorov, cordic, ktorý počíta uhol podľa vzťahu 3.15 a synch_out, ktorý zabezpečuje synchronizáciu, spätné poskladanie dát do 8 bitových slov a vyslanie prvého slova Sportom do PC.

Celý prijímač spracováva vzorky blokovo, pričom jeden blok spracuje naraz K1 I a K1 Q vzoriek. Tento spôsob bol zvolený z dôvodu efektivity, nakoľko pri blokovom spracovaní dát nie je potrebné toľkokrát meniť pomocné pamäte z dôvodu obmedzeného počtu registrov a taktiež požičiavanie smerníkov nie je tak časté. Požičiavaním smerníkov sa myslí použitie daného smerníka pre čítanie alebo zápis z alebo do inej pamäte, na akú je momentálne nastavený. Pri tejto operácií je potrebné uložiť aktuálnu polohu smerníka do pomocnej pamäte, nastaviť ho na novú potrebnú polohu pre dané použitie a po použití mu znovu spätne vrátiť polohu, na ktorú ukazoval pred použitím. Takto sa dá obsluhovať viac pamätí pomocou smerníkov, ako je počet smerníkov v danom type signálového procesora.

Page 39: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

31

5.3 Hlavný program RX (P5)

Hlavný program ma za úlohu zadefinovanie pamätí, vyvolanie inicializačných rutín, počiatočné nastavenie potrebných smerníkov a registrov, obsluhu prerušení a cyklické vyvolávanie podprogramov pre správnu funkčnosť prijímača.

Register AR v sekundárnych registroch sa využíva pre kontrolu či už prebehla všetka potrebná inicializácia. Na začiatku programu sa nastaví na 0 a po nainicializovaní všetkých procesorov a nastavení potrebných registrov sa nastaví na 1, čím sa v rutine prerušenia IRQ2 od AD6620 povolí zapisovanie prijatých vzoriek do cirkulačnej pamäte „IQvstup“. Tu je potrebne poznamenať že aj pred povolením zapisovania vzoriek do pamäte „IQvstup“ sa v rutine prerušenia IRQ2 od AD6620 musí načítať údaj z registrov:

IO(OUT_REG_AD6620_I) - I vzorka a IO(OUT_REG_AD6620_Q) - Q vzorka

MX0=IO(OUT_REG_AD6620_I); // nacitanie I zlozky z AD6620

MY0=IO(OUT_REG_AD6620_Q); // nacitanie Q zlozky z AD6620

hoci sa tento údaj nikde nepoužije, pretože následné za ním sa opusti prerušenie. Je to dané programom v CPLD obvodoch Altera, ktoré slúžia na komunikáciu medzi AD6620 a ADSP-2181. Ako náhle sa príjme I a Q vzorka od AD6620 do CPLD obvodu, ten vygeneruje prerušenie IRQ2 procesoru ADSP-2181 aby sa mohli tieto vzorky načítať, avšak pokiaľ nedôjde k ich načítaniu do procesora vyššie uvedenými príkazmi (môžu sa načítať aj do iných registroch), obvody CPLD nechajú IRQ signál na pine IRQ2 v aktívnej úrovni. Tento signál sa zruší až po načítaní z registrov IO(OUT_REG_AD6620_I) a IO(OUT_REG_AD6620_Q).

Po nainicializovaní všetkých procesorov sa čaká v slučke „start_loop“ pokiaľ sa stlačením tlačidla IRQE nenastaví pamäť „start_status“ na 1, potom sa pokračuje ďalej v programe. Je to nutné z dôvodu používania SPORT1 rozhrania procesora pre komunikáciu s programom Visual DSP a zároveň na posielanie spracovaných dát do PC. Po nahraní programu do procesora a jeho spustení sa Visual DSP vypne, až potom sa stlačením tlačidla IRQE začnú prijímať, spracovávať a posielať dáta do PC.

V hlavnom programe sa nastavia registre smerníkov I, M, a L, potom sa skočí do nekonečnej slučky dogtail. V nej sa kontroluje pamäť „IQ_stat“, táto pamäť sa nastaví na 1 po prijatí nových K1 vzoriek v podprograme input_samples a opustí sa slučka dogtail. Začnú sa spracovávať novoprijaté vzorky, ak sa dokončí ich spracovanie, opäť sa skočí na slučku dogtail a kontroluje sa pamäť „IQ_stat“. Spracovanie vzoriek sa musí dokončiť skôr ako sa príjme nových K1 vzoriek, inak by dochádzalo k strate vstupných vzoriek a celý chod prijímača by nebol korektný. Toto je kritická podmienka určujúca maximálnu rýchlosť vstupných vzoriek z AD6620, tým aj prenosovú rýchlosť celého 4FSK prenosu.

Spracovanie vzoriek začína slučkou CordicFilter, ktorá sa vykoná K1 krát. V nej sa z pamäte „IQvstup“ načíta nová I a Q vzorka, vynásobí sa komplexné číslo podľa vzťahu 3.15, vyvolá sa podprogram cordic a podprogram filter. Táto slučka je časovo najkritickejšia a zaberá najviac výpočtového výkonu celého prijímača. Je to spôsobené najmä podprogramom cordic, ktorý počíta funkciu arcsin(A/B) iteračnou metódou CORDIC.

Page 40: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

32

Vzhľadom na nedostatok smerníkov procesora ADSP-2181 bolo nutné si ich požičiavať medzi rôznymi podprogramami. Všetky požičiavania smerníkov sa vykonávajú vzhľadom na ich pozíciu v slučke CordicFilter, teda po vstupe do tejto slučky musia byť všetky smerníky nastavene na pozície potrebné pre túto slučku. Je to takto najefektívnejšie z hľadiska rýchlosti, nakoľko táto slučka sa vykoná najviackrát z pomedzi ostatných podprogramov, preto sa v nej požičiavajú smerníky čo najmenej.

Po dokončení výpočtu v slučke CordicFilter sa vyvolá podprogram peakdetector, po ňom InitMode, alebo DDCMode, tak synch_out a následné sa skočí späť na slučku dogtail.

V programe prijímača sa kontinuálne so spracovaním dát vykonáva aj prijímanie vstupných vzoriek z AD6620 a vysielanie výstupných dát cez rozhranie UART do PC, je preto potrebné pre korektný chod zabezpečiť aby po vyvolaní podprogramov prerušením sa nepremazali hodnoty v používaných registroch ani pozície smerníkov. Pre tento účel bolí použite v každom podprograme vyvolanom prerušením sekundárne registre a pred použitím smerníkov sa ich pozície ukladali do pomocných pamätí, z ktorých sa následne obnovili pred opustením podprogramu.

V podprograme input_samples sa po každom vyvolaní prerušenia od AD6620 načíta hodnota I a Q vzorky z registrov IO pre I a Q vzorku. Tieto dve vzorky sa zapíšu do pamäte „IQ_vstup“, v poradí prvé I a potom Q vzorka, ktorá je cirkulačná a má veľkosť 4 krát K1. Ak sa načíta K1 I a K1 Q vzoriek, nastaví sa pamäť „IQ_stat“ na 1 a zapisovanie vzoriek pokračuje do druhej polovici pamäte. Zapisovanie I aj Q vzorky do jednej pamäti bolo nutné z dôvodu nedostatku smerníkov, no nijako to neovplyvnilo efektívnosť prijímača. Každý smerník, ktorý sa požičiava, musí vždy ukazovať na pamäť s rovnakou veľkosťou, teda L register prislúchajúci danému smerníku sa nesmie počas programu meniť.

V podprograme serial_out vyvolané prerušením od vysielania SPORT1 sa zistí, či ešte sú vzorky na vyslanie do PC, ak áno, vyšle sa daná vzorka pomocou SPORT1 cez RS-232 do PC.

5.4 Podprogram AD6620_Init (P6)

Tento podprogram má za úlohu nainicializovať príjmový procesor AD6620.

Používa sa ako súčasť knižničnej funkcie Initialization.dlb. Túto knižničnú funkciu vytvoril Vladimír Trojanovič a je popísaná v jeho diplomovej práci [2]. Pred jej použitím je potrebné knižničný súbor Initialization.dlb skopírovať do adresáru Visual DSP konkrétne do c:\Program Files\Analog Devices\VisualDSP 3.5 16-Bit\218x\lib\. Taktiež zdrojový súbor AD6620_Init.asm je potrebné skopírovať do adresara: c:\Program Files\Analog Devices\VisualDSP 3.5 16-Bit\218x\lib\src\initialization_src\.

Pre použitie tejto funkcie je ešte potrebné zadefinovať konštanty, ktoré táto funkcia používa a taktiež jej premenné, celý postup je konkrétne popísaný v [2].

Vstupom tejto funkcie je súbor „koef_pre_AD6620.dat“, ktorý sa vytvorí pomocou matlabovskej funkcie „AD6620_init.m“, oba tieto súbory sú popísané v [2]. Matlabovská funkcia „AD6620_init.m“ spracuje dáta z vyexportovaného súboru z programu Filter Design, ktorým sa dá navrhnúť decimácia obvodu AD6620, teda jej výstupná rýchlosť, jej FIR filter a jej škálovacie koeficienty. Pri použití matlabovskej

Page 41: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

33

funkcie „AD6620_init.m“ je potrebné zadať ako input_level hodnotu 0.4, je to vstupná úroveň, ktorú vyprodukuje výstup z DDS karty. Taký istý input_level vyprodukuje aj SDR modul. Táto hodnota zabezpečí nastavenie škálovacích koeficientov v AD6620 na také maximálne zosilnenie, aby registre v obvode ešte nepretiekli.

Prijímaciu frekvenciu obvodu AD6620 je potrebné nastaviť tak, aby bola centrovaná v strede okolo vysielacích frekvencií symbolov vo vysielači. Tento obvod teda posúva prijímanú frekvenciu priamo na nulovú frekvenciu, čo je rozdiel voči teórii v kapitole 3.

Keďže hodnota konštanty L sa podľa kapitoly 3.3.3. zvolila 16, rýchlosť výstupných vzoriek z AD6620 je potrebné nastaviť na L krát symbolová rýchlosť 4FSK prenosu.

V kapitole 3.3.1 je približný vzťah na výpočet šírky pásma potrebného na prenos 4FSK moduláciou 0B 2f≅ .

FIR filter v obvode AD6620, ktorý je tvorený 256 koeficientmi je potrebné nastaviť tak, aby zabraňoval zrkadlovému efektu, takzvaný „aliasing effect“, no zároveň tak, aby sa prijímala čo najmenšia šírka pásma potrebná na kvalitný príjem podľa vzťahu 0B 2f≅ . Takto úzko navrhnutým filtrom maximálne zabránime rušivému

vplyvu susedných vysielacích staníc, ktoré by mohli nepriaznivo ovplyvniť celý 4FSK prenos. Taktiež je potrebné, aby navrhnutý filter mal čo najmenšie zvlnenie v pásme priepustnosti, a čo najväčšie tlmenie v pásme nepriepustnosti. Pre každú prenosovú rýchlosť 4FSK prijímača je potrebné navrhnúť nový FIR filter a taktiež decimačné a škálovacie koeficienty obvodu AD6620. Ukážka navrhnutého FIR filtra bude v kapitole 6.

5.5 Podprogram init_2181 (P7)

Tento podprogram slúži na nainicializovanie oboch sériových portov procesora ADSP-2181 SPORT0 a SPORT1 a nastavenie registrov tohto procesora potrebných v programe prijímača.

SPORT0 slúži na komunikácia ADSP-2181 s kodekom na doske EZ-kit lite, ktorý je tvorený čipom AD1847JP. Tento kodek slúži na načítavanie analógových signálov k procesoru a na vysielanie analógových signálov od procesora. V prijímači bol použitý na testovanie a ladenie pomocou analógových I a Q vzoriek vytvorených programom matlab. Tento spôsob testovania bude popísaný v kapitole 6. Kodek bol štandardne nastavený na vzorkovaciu frekvenciu 32 000 vzoriek za sekundu, stereo, 16 bit bez kompresie. Komunikácia s kodekom je tvorená v autobuffering móde, preto bolo nutné tejto komunikácií priradiť dva smerníky, ktoré sa počas celého chodu prijímača nesmú požičiavať, nakoľko nie je možné tesne pred ich použitím zálohovať do pomocnej pamäte ich pozíciu a následne im ju vrátiť. Je to spôsobené zvoleným autobuffering módom, ktorý umožňuje prácu s kodekom bez jeho priamej softvérovej obsluhy, teda nevyžaduje na svoj chod ďalší výkon procesora navyše.

SPORT1 slúži na komunikáciu dosky EZ-kit lite s PC, pomocou rozhrania UART. Daný procesor rozhranie UART nepodporuje, preto pri komunikácií s PC sa musí UART rozhranie simulovať softvérovo, ako to bolo ukázané v kapitole 4. V programe prijímača je SPORT1 použitý na posielanie spracovaných dát do PC. Podrobnejšie bude

Page 42: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

34

táto aplikácia opísaná pri popise podprogramu synch_out, ktorý tento prenos zabezpečuje.

V tomto podprograme je ešte zakázané vnáranie prerušení, nastavené čakacie stavy, ALU, MAC a DAG jednotky. Konkrétne nastavenia sú opísané priamo v podprograme init_2181.asm (P7).

5.6 Podprogram init_codec (P8)

Tento podprogram slúži na nainicializovanie kodeku na doske EZ-kit lite. Celý podprogram je prebratý z odporúčaní Analog Devices pre inicializáciu kodeku na doske EZ-kit lite z Application Note EE-91 ktorý je na adrese: www.analog.com/UploadedFiles/Legacy_Application_Notes/834819440ee_91.pdf. V tomto podprograme sa pomocou desiateho slova pamäte „init_cmds“ dá nastaviť vzorkovacia frekvencia kodeku, formát a kompresia dát. Po nainicializovaní kodeku sa pred opustením tohto podprogramu povolí registrom IMASK prerušenie od SPORT0, SPORT1, IRQE a IRQ2, ktoré predstavuje prerušenie od obvodu AD6620. Podrobnejší popis tohto podprogramu je priamo v init_codec.asm (P8).

5.7 Podprogram cordic (P9)

Tento podprogram ma za úlohu vypočítať uhol podľa vzťahu:

ˆimagz[n]z[n-1]Uhol = arcsin

ˆ|z[n]z[n-1]|

, z[n] = I[n] + jQ[n], z[n] = I[n] - jQ[n] (5.1)

Keďže výpočet ˆ ˆimagz[n]z[n-1] a z[n]z[n-1] sa vykonal už pred vstupom do podprogramu a výsledok tohto výpočtu sa označil ako ˆQ = imagz[n]z[n-1] a

ˆI = z[n]z[n-1], tento podprogram vykonáva už len výpočet Q

arcsin = |I|

.

Podprogram cordic bol nazačiatku vytvorený a zefektívnený pre výpočet funkcie Q

arctan = I

, ktorá bola za potreby pri demodulovaní analógových modulácií AM

a FM, preto sa pre našu aplikáciu musel prispôsobiť. Cele prispôsobenie spočívalo vo výpočte absolútnej hodnoty z I vzorky, tým sa výpočet obmedzil na dva z pôvodných štyroch kvadrantov, čím sa zjednodušila počiatočná podmienka pre zisťovanie kvadrantov.

Pre našu aplikáciu bolo z podprogramu vypustené rozčlenenie tohto podprogramu do viacerých podprogramov, ktoré sprehľadňuje celý kód, no ma za dôsledok menšiu efektivitu výpočtu. Keďže tento algoritmus zaberá najviac výpočtového výkonu v programe prijímača, nakoľko je potrebné ho vykonať pre každú vstupnú vzorku I a Q, táto úprava o niečo zvýšila maximálnu prenosovú rýchlosť 4FSK prenosu.

Page 43: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

35

Podprogram využíva smerníky I0 a I4, ktoré sú nastavené na pamäte I0 = coeftan, I4 = pomcoef, a načitávajú sa zo súborov pomcoef.dat a coeftan.dat. Tieto pamäte sú potrebne pri výpočte uhlu a absolútnej hodnoty iteračnou metódou cordic, Pre našu aplikáciu počíta tento algoritmus iba veľkosť uhlu, medzi vstupnou I a Q vzorkou a zapíše ho do pamäte „Uhol“.

Výstupný uhol je z dôvodu formátu pevnej radovej čiarky použitého procesora v rozsahu ±π/8 a predstavuje štvrtinu reálneho uhlu medzi I a Q vzorkou.

Vstupná I a Q vzorka nesmie presahovať hodnotu ±0.6, aby pri výpočte nedošlo k saturácii. Pre dodržanie tejto podmienky je potrebné zabezpečiť, aby výstupné I a Q vzorky z AD6620 nepresahovali hodnotu 0.54± , nakoľko pri najnepriaznivejšom prípade by počítanie ˆ ˆjz[n]z[n-1] a z[n]z[n-1] mohlo spôsobiť zväčšenie vstupnej I a Q vzorky do cordicu nad ±0.6.

Samotný výpočet uhlu pomocou algoritmu cordic je v podstate iteračná numerická metóda, ktorá na výpočet uhlu používa iba aritmetické operácie súčtu a násobenia. Každou ďalšou iteráciou sa zmenší chyba výsledku na polovicu, preto jeho presnosť priamo ovplyvňuje počet iterácií, ktoré boli vykonané. Náš procesor je 16 bitový, no maximálnu presnosť dosiahneme už pri 14 iteráciách. Pri väčšom počte iterácií sa už presnosť výstupného uhla nezlepšuje.

Keďže 4FSK je digitálna modulácia, na bezstratový prenos nie je potrebná maximálna presnosť, dokonca je postačujúca aj dosť mala presnosť. Touto témou sa bude zaoberať kapitola 6.

Konkrétny postup pre výpočet uhlu a absolútnej hodnoty I a Q vzorky algoritmom cordic na našom procesore je podrobne rozpísaný a otestovaný v diplomovej práci Vladimíra Trojanoviča [2].

5.8 Podprogram filter (P10) Tento podprogram vykonáva výpočet s1, s2 a s3 vzorky podľa obrázku 3.5. Teda

obsahuje filter z1H (z) a z

2H (z), oneskorovač -L/2z a sčítačky na výpočet s1 a s2.

Na začiatku podprogramu sa veľkosť uhlu, ktorý predstavuje vstup s[n] podľa

schémy na obrázku 3.5 vynásobí konštantou 1

K3 = 10π

, ktorá je menšia ako jedna, teda

výsledok sa zmenší, je to potrebne z dôvodu použitia procesoru s pevnou radovou čiarkou, ktorý je obmedzený na prácu s číslami z rozsahu <-1,1). Ak by sa vstup

nezmenšil 10π krát, došlo by k prekročeniu rozsahu <-1,1) pri filtrácií filtrami z1H (z) a

z2H (z). Hodnota 10π bola zvolená tak, že sa zväčšovala pokiaľ filtre z

1H (z) a z2H (z)

neprestali saturovať a potom sa zväčšila ešte kúsok, aby sa docielil určitý násobok voči reálnemu uhlu, teda aj voči hodnotám symbolov -3, -1, 1, 3. Vo vzorci 3.15 sa

vynechalo násobenie konštantou L

π a zisk filtra z

1H (z) je L krát menší ako podľa vzorca

3.16. Teda ak zvolíme 1

K3 = 10π

hodnoty vzoriek s3 budú 40 krát menšie ako

Page 44: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

36

v kapitole 3 a tým pádom aj symboly v našom prípade budú nadobúdať hodnoty -0.075, -0.025, 0.025, 0.075.

Výstupne vzorky s2 a s3 sa zapíšu do pamätí „S2“ a „ S3“.

Výpočet ˆ ˆjz[n]z[n-1] a z[n]z[n-1] podľa vzťahu 3.15, výpočet uhlu algoritmom cordic a výpočet vzoriek s2 a s3 v podprograme filter tvorí jeden blok. Tento blok zaberá najväčší výpočtový výkon procesora, pretože sa musí vykonávať K1 krát, teda pre každú vzorku. Preto bola snaha o čo najväčšiu efektivitu tejto časti kódu, hoci za úkor menšej prehľadnosti. Aj napriek tomu v podprograme filter sa nevyhlo požičiavaniu smerníkov, je to spôsobené potrebou použitia rovnakých veľkosti pamätí pre daný smerník, teda hodnota registra L pre daný smerník sa nesmie počas programu meniť.

V tabuľke 5.1 sú znázornené približné počty cyklov jednotlivých podprogramov prijímača pre spracovanie jedného bloku, teda K1 = 640 I a Q vzoriek .

Tab. 5.1 Počty cyklov podprogramov prijíma ča pre spracovanie jedného bloku veľkosti 640 vzoriek

Podprogram Načítanie vzorky

Cordic 14

iterácií Filter

Násobenie komplexného

čísla

peak detector

DDCMode Synch

out Iná

obsluha Dokopy

Počet cyklov 14000 96000 21000 6500 2000 920 280 30000 170700

Inou obsluhou sa myslí posielanie Dát do PC, vchádzanie a vychádzanie z podprogramov a ostatné cykly, ktoré niesu priradené k žiadnemu podprogramu. Z tabuľky 5.1 vyplýva aj maximálna prenosová rýchlosť 4FSK prenosu. Keďže na spracovanie K1 vzoriek je potrebných 170700 cyklov, na spracovanie jednej vzorky je potrebných 170700/640 = 266,71 cyklov. Pri použití procesora s taktovacou frekvenciou 33,34 MHz je možne spracovať 33,34E6 / 266,71 = 125 000 vzoriek za sekundu, čo predstavuje maximálny prenos 125000/L = 7812 symbolov za sekundu, pri 14 iteráciach v podprograme cordic.

5.9 Podprogram peakdetector (P11)

Tento podprogram je zo všetkých podprogramov celého 4FSK prenosu najzložitejší, preto mu bude venovaná patričná pozornosť.

Jeho stručný teoretický popis je v kapitole 3.3.8. Úlohou tohto obvodu je korigovanie rozdielnej symbolovej rýchlosti vysielača od prijímača. Tvoria ho bloky zakreslené v blokovej schéme na obrázku 3.5 s názvami „detektor špičiek“, „premenné oneskorenie“ a „ L↓ “.

Úlohou podprogramu peakdetector je pomocou vzoriek S2 vybrať správne vzorky S3 a uložiť ich do pamäte Um. Táto zdanlivo jednoduchá úloha sa pomerne skomplikuje pri potrebe vykonať ju na signálovom procesore a taktiež pri použití blokového spracovania dát.

Podprogram má vyhľadať najväčšiu vzorku z pamäte S2 s pomedzí prvých 16 vzoriek a označiť ju ako „peak“ - špičku. Následné nekontrolovať ďalších L-M-1 = 13 vzoriek, kde L= 16 a M= 2, podľa teórie z kapitoly 3.3.8. a potom vyhľadať najväčšiu vzorku s pomedzi nasledujúcich 2M+1 = 5 vzoriek, ktorú označí za ďalšiu špičku.

Page 45: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

37

Takto sa proces opakuje, až kým neprehľadá celú pamäť S2. Nájdeným špičkám sa priradia hodnoty pamäte S3, ktoré sú voči pozíciám špičiek S2 posunuté o L/2 = 8 pozícií dozadu. Tieto hodnoty pamäte S3 sa zapíšu do pamäte Um a predstavujú hľadaný symbol, ktorý ešte treba ošetriť v podprograme DDCMode, ktorý bude opísaný v kapitole 5.11.

Keďže dáta spracovávame po blokoch, je treba pamätiam S2 a S3 určiť správne veľkosti. Správna vzorka S3 leží o 8 miest dozadu voči nájdenej špičke S2, preto pamäť S3 musí byť väčšia ako pamäť S2, z dôvodu, ak by špička pamäte S2 sa našla hneď na začiatku pamäte. Preto je potrebné pamätať si minimálne posledných 8 vzoriek S3, teda ak podprogram filter zapíše nove S2 a S3 vzorky nesmie prepísať všetky S3 vzorky, ale 8 posledných sa musí uložiť. Tento problém sa vyriešil tak, že veľkosť pamäte S2 sa zvolila K1 a veľkosť pamäte S3 sa zvolila K1+20. Ďalej bolo za potreby zabezpečiť, aby podprogram filter zapisoval do pamäte S3 nové vzorky kontinuálne, teda nie aby nové vzorky začal zapisovať od začiatku pamäte.

Keďže jeden blok spracuje presne K1 I a Q vzoriek, podprogram filter vytvorí K1 vzoriek pamäte S2, preto na začiatku podprogramu peakdetector sa smerník I5 nastaví na začiatok pamäte S2.

Pred opustením podprogramu je nutné zapamätať si pozíciu nasledujúceho začiatku hľadania a na začiatku ďalšieho spracovania nastaviť pozície smerníkov ukazujúcich na pamäte S2 a S3 podľa tohto parametra. Na tento účel sa použila pamäť „pociatok“ ktorá vždy ukazuje na začiatok nasledujúceho hľadania, pred opustením podprogramu.

Na určenie správnej hodnoty S3 podľa pamäte S2 sa používa pamäť „korekcia“ ktorá hovorí o koľko je nájdená špička posunutá voči predpokladanej špičke, taktiež pamäť „pomS2“ ktorá ukazuje vždy na nasledujúcu predpokladanú špičku. Tieto pamäte sa používajú aj pri počiatočnom nastavení smerníkov, vždy pri vstupe do podprogramu peakdetector. Konkrétne nastavovanie všetkých smerníkov, spôsob vyhľadávania špičiek a k ním zodpovedajúcim miestam pamäte S3, je podrobne popísané v podprograme peakdetector.asm (P11).

Je však treba poznamenať, že v prípade ak sa nasledujúca predpokladaná špička nachádza na pamäťovom mieste K1-3 až K1, teda tesne pred koncom pamäte, špička sa už nehľadá, ale priamo sa určí na predpokladanú pozíciu. Je to z dôvodu nedostatku vzoriek S2, ktoré sú potrebne na hľadanie maxima, teda piatich vzoriek. Tento krok nepodstatne obmedzil možnosti rozdielnosti prenosovej rýchlosti vysielača od prijímača, ktoré ma práve tento obvod korigovať, no podstatne zjednodušil už aj tak dosť zložitú koncepciu tohto obvodu.

V praxi sa prenosová rýchlosť vysielača od prijímača líši len nepatrne, tento obvod

koriguje odchýlku vysielacej symbolovej rýchlosti až o 15

±16

prijímanej symbolovej

rýchlosti.

Taktiež podľa teórie je potrebné z prvých 16 vzoriek nájsť maximum a podľa neho hľadať nasledujúce. V tomto podprograme sa maximum z prvých 16 vzoriek nehľadá, ale rovno sa začne hľadať maximum z piatich vzoriek od začiatku pamäte. Dopustíme sa tým chyby, no táto chyba sa sama opravy behom prvých zopár vzoriek Um (maximálne štyroch Um) čo je nepodstatné, nakoľko pre prenos signálu je potrebné počiatočne zosynchronizovanie prijímača s vysielačom, až tak sa dajú prenášať dáta.

Page 46: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

38

Toto zosynchronizovanie trvá pri prenosovej rýchlosti 1000 symbolov za sekundu oveľa menej ako sekundu, preto je zanedbateľné. Navyše tým, že sa počiatočné maximum nehľadá z prvých L = 16 vzoriek sa taktiež značne zjednoduší podprogram peakdetector.

Pri počiatočnom nastavovaní smerníkov podprogram peakdetector zapíše do pamäte „aktualnyUm“ polohu smerníka I0, ktorý ukazuje na pamäť „Um“ ešte pred tým, než do tej pamäte zapíše novo vytvorené vzorky Um. To umožní neskôr podprogramu DDCMode nastaviť smerník ktorý načítava z pamäte „Um“ tak aby začal načítavať od prvej novovytvorenej vzorky Um v danom bloku.

Pri každom zapísaní vzorky Um do pamäte „Um“ sa k registru AF pripočíta jednotka. Na konci podprogramu sa hodnota z registra AF zapíše do pamäte „pocetUm“. To umožní podprogramu DDCMode spracovať správny počet vzoriek Um v danom bloku.

5.10 Podprogram InitMode (P12)

Tento podprogram ma za úlohu vypočítať hodnotu frekvenčnej odchýlky ∆f potrebnú na korekciu v podprograme DDCMode.

InitMode sa vykoná 3 krát na začiatku programu prijímača, počas toho sa nevykonávajú podprogramy DDCMode ani synch_out. Počas prvých 2 vykonávaní podprogramu InitMode sa len zdekrementuje pamäť „ktoryMod“, ktorá slúži na zistovanie koľko krát sa už vykonal InitMode. Pri poslednom treťom vykonaní podprogramu InitMode sa vypočíta hodnota ∆f . V ďalších blokoch sa už podprogram InitMode nespustí, namiesto neho sa vyvolávajú podprogramy DDCMode a synch_out.

Počas spracovania prvých troch blokov vstupných I a Q vzoriek sa v podprograme peakdetector vytvorí približne K2 nových vzoriek u[m], ktoré sa zapíšu do pamäte „Um“.

V podprograme InitMode sa vypočíta ich priemerná hodnota podľa tohto vzorca:

M

m=1

1ˆ∆f = u[m]

2∑ (5.2)

Tento vzťah je odvodený zo vzťahu (3.26), z ktorého sa vynechalo vynásobenie

konštantou 0f

2, opäť z dôvodu obmedzenia pevnou radovou čiarkou. Tento vzťah sa

počíta v procesore pomocou nasledujúcich príkazov:

MY0=0.999999r;

MX0=dm(I0,M1);

CNTR=K2; // sucet sa vykona K2 krat

DO sucet until CE;

MR=MR+MX0*MY0(SS), MX0=dm(I0,M1);

sucet: nop;

Page 47: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

39

Pričom smerník I0 ukazuje na pamäť Um a M1 = 1. Použitie MAC jednotky procesora na výpočet sumy oproti použitiu ALU jednotky, ktorá je prispôsobená na vykonávanie súčtu sa zvolilo kvôli 40 bitovej veľkosti MR registra, do ktorého ako jediného v celom procesore sa dá zapísať aj číslo väčšie ako jedna. Týmto spôsobom sa predíde pretečeniu registra počas súčtu K2 vzoriek Um.

Následne sa zistí či počas výpočtu došlo k pretečeniu registra MR, ak áno musí sa podeliť celý obsah registra MR (MR2 aj MR1) jeho posunutím o „posunutie“ = 6 bitov do pravá takto:

SR=ASHIFT MR2 by posunutie (Hi);

AX0=SR0;

SR=LSHIFT MR1 by posunutie (lo);

AY0=SR0;

AR=AX0 OR AY0;

MX0=AR;

MY0=K4;

MR=MX0*MY0(SS);

dm(df)=MR1;

Následným logickým súčinom registra AX0 a AY0 dostaneme zo 40 bitového čísla opäť 16 bitové. Posunutím o 6 bitov do pravá sa podeli register číslom 62 = 64, čo ešte nieje celkove podelenie potrebné pre výpočet sumy, nakoľko sčítalo sa K2 vzoriek, čo je konkrétne 120. Treba teda výsledok ešte vynásobiť konštantou K4, ktorá je rovná

posunutie2 /K2 = 0.533333. Konštanta K4 sa definuje v súbore konstanty.h P15 a je potrebné pri zmene konštanty K2 ju ručne prepočítať.

Ak nedošlo k pretečeniu registra MR počas súčtu K2 vzoriek Um, posúva sa iba register MR1 o posunutie a následne sa výsledok vynásobí konštantou K4.

Táto hodnota ∆f sa použije na výpočet u1[m] podľa vzťahu:

1 ˆu [m]=u[m]-∆f (5.3)

Tento vzťah je odvodený od vzťahu (3.27), z ktorého sa vynechalo vynásobenie

konštantou 0

2

f, čím sa vykorigovala zmena vo vzorci (5.2). Hodnoty 1u [m] sa zapíšu do

pamäte „U123m“. Následne by sa mal vypočítať signál 2 3u [m] a u [m] podľa vzťahov

(3.28) a (3.29).

Tieto signály sa v procesore počítajú úplne inač ako podľa vzorcov. Je to dané nedostupnosťou funkcií round, max a min v procesore. Signál 3u [m] je vlastne

zaokrúhlená hodnota signálu 1u [m] , tak aby výstupný signál 3u [m] obsahoval iba štyri

signály a to -3, -1, 1, 3 teda pre náš prípad -0.075, -0.025, 0.025, 0.075.

Page 48: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

40

Teda na začiatku sa signál 1u [m] porovná z nulou, ak je väčší ako nula môže

nadobúdať hodnoty 0.025 alebo 0.075, v tomto prípade sa ešte porovná či je väčší ako 0.05 teda 0.075 – 0.025, ak je väčší priradí sa mu symbol 0.075, ak je menší symbol 0.025. Tak podobne sa postupuje aj pre signály menšie ako nula a priradia sa im symboly -0.075 alebo -0.025. Tieto symboly sa zapíšu znovu do pamäte U123m, čím premažú hodnoty 1u [m] , nieje to však kritické, nakoľko hodnoty 1u [m] už niesu

potrebné pre ďalší výpočet.

Aby sa čo najviac obmedzil vplyv nerovnakej pravdepodobnosti prvých prijatých symbolov, z ktorých sa počítala ∆f pomocou vzťahu (5.2) skoriguje sa ∆f ešte podľa tohto vzorca:

M

3m=1

1ˆ∆f = (u[m]-u [m])

M∑ (5.4)

Tento vzťah je odvodený od vzťahu (3.30), z ktorého sa vynechalo vynásobenie

konštantou 0f

2. Keďže sa táto konštanta vynechala vo všetkých vzťahoch, neovplyvní to

výsledok.

Vzťah (5.4) sa v procesore realizuje postupne a to tak, že najprv sa vypočíta

3u[m]-u [m] , výsledná hodnota sa opäť zapíše do pamäte „U123m“, nakoľko hodnoty

3u [m] už niesu pre ďalší výpočet potrebné a z tohto sa vypočíta suma podobne ako sa

počítala zo vzťahu (5.2).

Výsledná ∆f sa zapíše do pamäte „df“ a bude použitá v podprograme DDCMode na výpočet výsledných symbolov v nasledujúcom bloku.

5.11 Podprogram DDCMode (P13)

Podprogram DDCMode priradzuje signálu u[m] hodnoty symbolov z množiny -0.075, -0.025, 0.025, 0.075 a zároveň koriguje posunutie nosnej frekvencie prijímaného signálu voči vysielanému, ktoré sa prejaví ako jednosmerná zložka v u[m].

Jeho bloková schéma je na obrázku 3.8.

Dôležitou premennou v tomto podprograme je pamäť „pocetUm“, do ktorej podprogram peakdetector zapíše počet novovytvorených hodnôt Um v danom bloku a pamäť „aktualnyUm“, pomocou ktorých podprogram DDCMode správne nastaví smerník I0 ukazujúci na pamäť Um na začiatku podprogramu a spracuje všetky novovytvorené Um v danom bloku.

Výstupne vzorky 3u [m] sa zapíšu do pamäte „U123m“ smerníkom I4. Pred

začatím zapisovania nových vzoriek 3u [m] sa poloha smerníka I4 zapíše do pamäte

„I4pom_synch“, ktorá bude slúžiť podprogramu synch_out na správne počiatočné nastavenie smerníku na pamäť „U123m“.

Page 49: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

41

Blok kvantizátor sa vykonáva podobne ako v podprograme Init_mode, s tým rozdielom že výstupne vzorky 3u [m] sa do pamäte „U123m“ nezapisujú v tvare

-0.075, -0.025, 0.025, 0.075, ale jednotlivým symbolom sa priradia dvojbity 00, 01, 10, 11 v danom poradí. Je to opačný proces ako sa vykonal v modulátore, kde sa dvojbitom 00, 01, 10, 11 priradili frekvencie symbolov -3, -1, 1, 3.

Pre výpočet stále sa meniacej frekvenčnej odchýlky nosnej frekvencie prijímača od vysielača ∆f počas prenosu, ktorá môže byť spôsobená vzájomným pohybom vysielača alebo prijímača, sa využíva slučka spätnej väzby v blokovej schéme obvodu DDCModu na obrázku 3.8.

Slučka spätnej väzby je tvorená blokom -1

η

1-z, odčítačkou u[m] - f[m]∆

a odčítačkou 1 3u [m] - u [m]. V celom bloku DDCModu je opäť vynechaná konštanta 0

2

f

z dôvodu pevnej radovej čiarky použitého procesora. Hodnota η má byť podľa teórie malé, kladné číslo. Testovaním sa došlo k hodnote η = 0.65. Táto hodnota sa mení v súbore konstanty.h (P15).

5.12 Podprogram synch_out (P14)

Tento blok sa nenachádza v teórii v kapitole 3, jeho potreba vyplynula zo zadania diplomovej práce. Úlohou tohto bloku je spätne poskladať symboly do 8 bitových slov pomocou slovnej synchronizácie, týmto slovám priradiť tvar vhodný na posielanie sériovým portom cez rozhranie UART a vyslať prvé z novo vytvorených slov v danom bloku.

Podprogram na začiatku nastaví pozície smerníkov I0 a I4. I0 sa nastaví vždy na začiatok pamäte „Out“, do ktorej sa budú zapisovať výstupné 8 bitové slova upravené do formátu vhodného na posielanie UARTom. I4 sa nastaví na pamäť „I4pom_synch“, teda na začiatok novo vytvorených vzoriek 3u [m] . Pozícia tohto smerníku sa však ešte

musí skorigovať, nakoľko v predchádzajúcom bloku sa nemuseli spracovať všetky vzorky 3u [m] . Je to spôsobené tým, že na vytvorenie jedného 8 bitového slova je

potrebných 5 symbolov, teda 10 bitov, keďže prvý symbol je synchronizačný.

Pred vytváraním nového slova sa vždy kontroluje či je ešte dostupných 5 vzoriek, ktoré sú potrebné na vytvorenie jedného slova. Ak je k dispozícií menej ako 5 vzoriek, nove slovo sa už nevytvára a do pamäte „nespracovane“ sa uloží počet nespracovaných vzoriek 3u [m] . Pozícia smerníka I4 sa preto musí posunúť dozadu práve o hodnotu

uloženú v pamäti „nespracovane“.

Pre správnu funkčnosť tohto bloku je tiež potrebné disponovať informáciou koľko je vzoriek 3u [m] v tomto bloku na spracovanie, táto informácia sa získa korekciou

údaju v pamäti „pocetUm“, v ktorej je uložený počet novovytvorených 3u [m] , nakoľko

počet 3u [m] je rovnaký ako počet u[m], o údaj v pamäti „nespracovane“. Výsledok sa

zapíše do pamäte „pocetDvojbitov“.

Page 50: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

42

Register AF sa pri každom zapísaní nového slova do pamäte „Out“ zinkrementuje. Pred opustením podprogramu sa jeho hodnota zapíše do pamäte „na_vyslanie“ a udáva počet novo vytvorených slov v podprograme synch_out, ktoré je potrebne vyslať rozhraním UART do PC.

Algoritmus slovnej synchronizácie plní 2 úlohy súčastne. Prvá je vytvárať 8 bitové slová z dvojbitov tak, aby prvý dvojbit vytváraného slova bol aj prvým dvojbitom v slove ktoré sa vyslalo. Ak by sa 8 bitové slovo vysielalo bez tejto synchronizácie, nebolo by možne na strane prijímača odhadnúť ktorým dvojbitom začína slovo. Druhou úlohou je odseparovať prenášané dáta na strane prijímača od dát, ktoré sa vysielajú v čase neprístupnosti dát vo vysielači. Obe tieto úlohy sa vyriešili vysielaním synchronizačného dvojbitu 01 pred každým 8 bitovým slovom, ako je to popísané v kapitole 4.

Na strane prijímača sa kontroluje či sa prijal synchronizačný dvojbit, ak sa prijal, zo štyroch nasledujúcich dvojbitov sa vytvorí 8 bitové slovo. Ak sa neprijal, kontroluje sa, či nasledujúci dvojbit je synchronizačný. Takto sa skontrolujú všetky dvojbity, ktoré je v tomto bloku potrebné spracovať.

Vytvorené 8 bitové slovo sa ešte musí upraviť do formátu potrebného pre vyslanie rozhraním UART do PC. Keďže použitý procesor nepodporuje UART rozhranie, je potrebné simulovať dané rozhranie softvérovo. Pri posielaní dát do PC v prijímači je táto simulácia podstatné jednoduchšia ako pri prijímaní dát z PC vo vysielači. Osem bitovému slovu sa priradí START a STOP bit a nastaví sa SPORT1 rozhranie procesora tak, aby vysielalo 10 bitové slová s bitovou rýchlosťou rovnakou ako je bitová rýchlosť UART prenosu na strane PC. V tomto prípade nie je potrebné sa starať o synchronizáciu potrebnú kvôli nerovnakej prenosovej rýchlosti vysielania a prijímania dát, táto starosť pripadla PC.

Pred opustením podprogramu sa kontroluje, či sa v danom bloku vytvorilo aspoň jedno slovo na vyslanie do PC, ak áno, je potrebné vyslať prvé z nich. To sa robí takýmto spôsobom:

AR=dm(na_vyslanie);

AR=AR-1; // odpocitame jedno vyslane slovo z poctu slov na vyslanie

dm(na_vyslanie)=AR;

dm(I0poma)=I0; // pozicanie pozicii smernika I0

I0=dm(I0pom);

AR=dm(I0,M1); // nacitanie slova na vyslanie

TX1=AR; // vyslatie slova na Sport1

reset FL1; // zhasnutie ledky pre kontrolu

dm(I0pom)=I0; // vratenie pozicii smerniku I0

I0=dm(I0poma);

Zdekrementuje sa pamäť „na_vyslanie“, pred vyslaním slova z pamäte „Out“ sa požičia pozícia smerníka I0, a po vyslaní sa mu jeho pozícia vráti.

Page 51: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

43

Rovnakým spôsobom sa vyšlú zvyšné novovytvorené slová z pamäte „Out“ v rutine serial_out, ktorá je v hlavnom programe a vyvoláva sa prerušením od vysielania SPORTom 1. V tejto rutine sa pred vyslaním slova kontroluje, či sú ešte nové slová na vyslanie. Ak už niesu, nezapíše sa nove slovo do vstupného registra SPORT1 TX1, teda nevyvolá sa už toto prerušenie a preto sa už nevyšlú žiadne slova SPORTom až pokiaľ sa znovu nespustí vysielanie nasledujúceho bloku slov v podprograme synch_out vložením slova do vstupného registra TX1.

5.13 Definovanie konštánt (konstanty.h) (P15)

Všetky potrebné konštanty pre hlavný program prijímača, aj ostatné podprogramy prijímača sú zadefinované v súbore konstanty.h (P15).

Pomocou týchto konštánt sa dajú meniť všetky ovplyvniteľné parametre prijímača, no ich zmenu treba dobre zvážiť, nakoľko veľa z týchto konštánt je vzájomne prepojených a ak sa zmení jedna z nich, je potrebne zmeniť aj všetky konštanty s ňou súvisiace.

Podrobný popis, ktoré konštanty súvisia s ktorými, a ako je napísaný v popise tohto súboru.

5.14 Využitie pamätí procesora

Signálový procesor ADSP-2181 disponuje 16K slov dátovej pamäte a 16K slov programovej pamäte priamo na čipe. Jedno slovo obsahuje 16 bitov.

V tabuľke 5.2 je opísane využitie programovej pamäte prijímača jednotlivými podprogramami.

Tab. 5.2 Využitie programovej pamäte PM

Názov podprogramu

Prerušenia Cordic DDCmode Filter Init_2181 Init_codec

Veľkosť podprogramu

[slov] 48 127 45 32 39 30

Názov podprogramu

Initialization Init_Mode Peakdetector RX Synch_out Spolu

Veľkosť podprogramu

[slov] 187 101 163 139 62 973

V tabuľke 5.3 je opísane využitie dátovej pamäte prijímača v jednotlivých pamäťových sekciách.

Page 52: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

44

Tab. 5.3 Využitie dátovej pamäte DM

Sekcia pamäte seg_data1 seg_bufvar1 seg_bufvar2 seg_bufvar3 seg_data3 Spolu

Využitá veľkosť [slov]

1723 3 3 13 2680 4422

Z tabuľky 5.2 vyplýva celkové využitie programovej pamäte na 5.94 %. Z tabuľky 5.3 vyplýva celkove využitie dátovej pamäte prijímača na 26.99 %.

Vysielač zaberá veľmi málo dátovej aj programovej pamäte, rádovo desatiny percent, preto sa využitím pamäte vo vysielači nebudeme zaoberať

5.15 Podmienky pre korektný chod prijíma ča

Na to, aby bol chod prijímača korektný, treba splniť minimálne tieto podmienky:

1) Rýchlosť prenosu 4FSK musí byť menšia, nanajvýš rovná rýchlosti prenosu UART na posielanie dát do PC, konkrétne symbolová rýchlosť 4 FSK prenosu musí byť menšia nanajvýš rovná dvojnásobku bitovej rýchlosti UART prenosu, čo vyplýva z použitia jedného synchronizačného symbolu 4FSK prenosu a 8 dátových, jedného START a jedného STOP bitu UART prenosu. Teda:

symbolová rychlosť 4FSK 2 x bitová rýchlosť UART≤ (5.5)

2) Prijímacia frekvencia obvodu AD6620 musí byť centrovaná okolo štyroch nosných frekvencií priradených daným symbolom.

3) Rýchlosť vzoriek z obvodu AD6620 musí byť rovná L krát symbolovej rýchlosti prenosu 4FSK

Page 53: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

45

6 Testovanie a meranie 4FSK prenosu

Táto kapitola sa venuje testovaniu a meraniu výsledného produktu vysielača a prijímača, ako aj ladeniu jeho podprogramov. Obsahuje aj postup ako sa jednotlivé podprogramy testovali za pomoci iných nástrojov, ktoré boli potrebné pred finálnym pospájaním podprogramov do výsledného programu.

6.1 Testovanie prijíma ča s využitím kodeku Všetky bloky prijímača okrem podprogramu synch_out bolo potrebné otestovať

a odladiť predtým než bol k dispozícií hardvér SDR modul a DDS karta. Nakoľko tento hardvér bol k dispozícií až mesiac a pol pred odovzdaním diplomovej práce, bolo potrebné navrhnúť spôsob, akým by sa dali tieto bloky prijímača otestovať a odladiť bez pomoci tohto hardvéru. Keďže bol k dispozícií modul EZ-kit lite, ktorý obsahuje kodek, ako veľmi vhodný spôsob sa ukázalo načítavanie vstupných I a Q vzoriek namiesto z príjmového procesoru AD6620 z kodeku na doske EZ-kit lite. Táto metóda samozrejme nedokáže nahradiť reálnu prevádzku, no ako testovacia metóda pre odladenie zdrojových kódov sa ukázala ako veľmi vhodná, najmä z dôvodu jednoduchého a rýchleho generovania presne požadovaných typov I a Q vzoriek, ktorých zmenou sa dali podstatne jednoduchšie eliminovať chyby v zdrojových kódoch, ktoré bolo treba odstrániť.

Ako zdroj signálu do kodeku dosky EZ-kit lite sa použila zvuková karta PC. Keďže je potrebné prijímať I aj Q vzorku, zvolil sa stereo prenos, pričom I zložku predstavoval ľavý kanál a Q vzorku pravý kanál. Na vygenerovanie zvukového wav súboru, ktorý obsahuje I a Q vzorky sa vytvoril matlabovský program, ktorého zdrojový kód je v súbore IQ.m (P16). Tento program je z veľkej časti odvodený z matlabovského programu simulacia_4FSK.m (P17), ktorý bol vytvorený podľa návodu z knihy Porat, B.: A Course I Digital Signal Processing, s. 566-580 ešte pred začatím programovania signálového procesora a slúžil na detailné pochopenie algoritmov opísaných v tejto knihe. Neskôr sa ukázal ako kľúčový pre správne implementovanie týchto podprogramov do assemblerovského prostredia programu Visual DSP.

Program IQ (P16) na začiatku načíta symboly zo súboru „Symboly.dat“, tieto symboly sa cyklický nakopírujú do pamäte „Symboly“, pre zväčšenie počtu vstupných dát. Z týchto symbolov sa vytvorí I a Q zložka, ktorá sa následne zapíše do výstupného wav súboru. Výstupné I a Q vzorky zodpovedajú signálu, ktorý by sme dostali priamo z obvodu príjmového procesora AD6620, pre dane parametre prenosu.

V tomto programe sa zadávajú parametre pri volaní funkcie ako: nosná frekvencia, veľkosť šumu, z ktorého sa na konci programu vypočíta pomer signál / šum vygenerovanej I a Q vzorky, počiatočný frekvenčný offset (odchýlka nosnej frekvencie), konečný frekvenčný offset a vzorkovacia frekvencia výstupného wav súboru. Pre zmenu nie často sa meniacich parametrov, ako napríklad počet bitov výstupného wav súboru (štandardne nastavený na 16), dĺžka wav súboru, alebo parameter L (štandardne nastavený na 16), je potrebné prepísať tieto parametre priamo v zdrojovom súbore IQ.m.

Page 54: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

46

Ak sa veľkosť nosnej frekvencie nastaví na hodnotu inú ako 0, program počíta výstupné I a Q zložky podstatne zložitejšie a dlhšie, každopádne následne pri simulovaní demodulácie sa táto nosná frekvencia preloží spätne na nulovú frekvenciu, tak ako to realizuje obvod príjmového procesora AD6620. Tento spôsob nemá hlbší význam, preto pri všetkých testovaniach sa bude generovať I a Q vzorka pomocou nosnej frekvencie nastavenej na 0.

Týmto testovaním sa dajú overiť, ba dokonca presne zistiť hraničné podmienky korektného fungovania oboch najdôležitejších blokov prijímača, a to korekcie frekvenčnej odchýlky nosných frekvencií prijímača od vysielača a taktiež korekcie rozdielnych symbolových rýchlosti v prijímači a vysielači. Taktiež sa dá zistiť kvalita respektíve chybovosť symbolovej detekcie. Takéto podmienky by sa na reálnom hardvéri dali len ťažko realizovať s využitím pre mňa dostupného hardveru.

Korekciu odchýlky nosných frekvencií, ktorú vykonáva podprogram DDCMode P13 je možne otestovať zvolením nenulových parametrov df_start a df_end. Tieto parametre simulujú frekvenčné posunutie štyroch nosných frekvencií vo vysielači o hodnoty 0(df_start)f na začiatku a 0(df_end)f na konci vysielania symbolov. Zmena

frekvencie medzi začiatkom a koncom vysielania symbolov je plynulá a mení sa od

0(df_start)f po 0(df_end)f a následné spätne od 0(df_end)f po 0(df_start)f .

Korekciu rozdielnych symbolových rýchlosti vysielača od prijímača je možné simulovať rozdielnou vzorkovacou frekvenciou vytvoreného wav súboru a vzorkovacou frekvenciou v kodeku na doske EZ-kit lite. Tento rozdiel sa prejaví na signále s[n] , ktorý už nebude obsahovať presne L = 16 krát navzorkovaný jeden symbol, ale jeden symbol bude reprezentovaný na viacej alebo menej vzorkách, v závislosti na rozdielnosti týchto vzorkovacích frekvencií. Ak nasimulovaná vzorkovacia frekvencia vysielača vzf TX bude väčšia ako vzorkovacia frekvencia kodeku na doske EZ-kit lite

vzf RX , potom bude jeden symbol reprezentovaný na menšom počte vzoriek ako L,

a naopak. Keďže vzorkovacia frekvencia kodeku vzf RX sa nedá meniť plynule, ale má

iba 14 možnosti nastavenia, prenos sa bude testovať na vzf RX = 32 kHz. Meniť sa bude

frekvencia vzf TX a to v okolí 32 kHz.

Vo všetkých meraniach sa zvolia rovnaké vysielané symboly, ktoré sa budú cyklicky opakovať, je to z dôvodu jednoduchej a prehľadnej kontroly prijímaných signálov. Tieto symboly bude tvoriť táto postupnosť 16 vzoriek:

S = 3, 3, 1, 1, -1, -1, -3, -3, -3, -3, -1, -1, 1, 1, 3, 3

Jej časový priebeh je na obrázku 6.1.

Obr. 6.1 Cyklicky sa opakujúca postupnosť S

Page 55: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

47

6.1.1 Výsledky testovania

Prvé merania sa realizovalo s vzf RX = 32kHz, bez frekvenčného posunutia, teda

df_start = 0, df_end = 0, bez posunutia prenosovej rýchlosti, teda vzf TX = 32kHz a bez

šumu. Na obrázku 6.1 je znázornený signál Sn v diskrétnom čase, teda signál, ktorý je výstupom z podprogramu cordic a vysielané symboly, ktoré sú v pamäti U3. Tieto dáta sa snímali do PC z dosky EZ-kit lite, vyčítavaním priamo z jej vnútorných pamätí po spracovaní určitého počtu signálov.

Obr. 6.1 Signály Sn a U3, fvzTX = 32kHz, df_start = 0, df_end = 0, SNR = ∞

Z obrázku je vidno že signál Sn nieje ideálny, hoci pomer signál / šum (SNR) je nekonečno, je to spôsobene tým že I a Q vzorka sa posielajú analógovo cez kodek a tam sa nedá zabezpečiť fázové zosynchronizovanie prijímania s vysielaním analogového signálu. Zašumenie signálu Sn je však minimálne a zdemudulovaný signál U3 ja zhody z vysielaným. Signál U3 nadobúda hodnoty 0, 1, 2, 3, ktorým sa priradia dvojbity 00, 01, 10, 11, tie isté dvojbity sa priradia aj signálu S, ktorý nadobúda hodnoty -3, -1, 1, 3. Teda pri prenose nedošlo k stratám. Symboly, z ktorých sa generoval wav súbor sú rovnaké aké je vidno na obrázku 6.1 na spodnom grafe.

Ďalšie meranie sa realizovalo s vzf TX = 32kHz, df_start = -1, df_end = 1

a pomerom 1

SNR = 20logšum

= 10,45 dB (signál ma amplitúdu 1). Na obrázku 6.2

je vidno priebeh signálu Sn.

Page 56: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

48

Obr. 6.2 Signály Sn a S3, fvzTX = 32kHz, df_start = -1, df_end = 1, SNR = 10,45dB

Z obrázku 6.2 je vidno ako sa prejavy šum na signále Sn. Ak sa takto zašumený signál prefiltruje v podprograme filter, dostaneme z neho signál S3, ktorý je na spodnom grafe obrázku. Tento signál je ďalej spracovávaný a zvyšné podprogramy prijímača ho dokážu správne dekódovať, teda ani pri takto zašumenom signále Sn ešte nedochádza k chybám prenosu.

Z obrázku 6.2 ďalej vidno ako sa prejavila zmena nosnej frekvencie vysielača na prijímanom signále, ako už bolo vysvetlené v kapitole 3, táto zmena sa prejavy ako jednosmerná zložka v signále Sn a následne aj v ostatných signáloch, až pokiaľ sa táto jednosmerná zložka neodstráni v podprograme DDCMode. Výstup U3z tohto bloku je už zbavený jednosmernej zložky, a dáta ktoré sa vysielajú do PC sú opäť bez zmeny, voči vysielaným dátam.

Nasledujúce meranie sa realizovalo s vzf RX = 32kHz, vzf TX = 31kHz, df_start =

0, df_end = 0 a pomerom SNR = ∞. Na obrázku 6.3 je vidno priebeh signálu Sn.

Tento graf sa na prvý pohľad nelíši od horného grafu na obrázku 6.1. Pri jeho pozornejšom preštudovaní je však z neho zrejmé, že jeden symbol nie je reprezentovaný na L=16 vzorkách, ale na 16,5 vzorkách, čo je spôsobené rozdielnymi frekvenciami

vzf TX a vzf RX .

Page 57: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

49

Obr. 6.3 Signál Sn, fvzTX = 31kHz, df_start = 0, df_end = 0, SNR = ∞

Túto rozdielnosť symbolových frekvencií odstráni obvod peakdetector. Výsledný signál je opäť zhodný s vysielaným signálom S. Tomu podobne meranie sa realizovalo aj s vzf TX = 33 kHz a vzf RX = 32kHz, Na grafe priebehu Sn bolo vidno, že jeden

symbol bol reprezentovaný na 15,5 vzorkách a nie na L = 16 vzorkách. Výstupný signál bol opäť zhodný s vysielaným signálom S. Pre obmedzenosť rozsahu tejto diplomovej práce sa tieto grafy sa nachádzajú v prílohách (P18) v digitálnej forme, ako aj všetky ostatné grafy, ktoré boli výsledkom viacerých meraní.

Ďalšie meranie sa realizovalo s vzf TX = 32kHz, df_start = 0, df_end = 0 a

pomerom SNR = ∞. Pri tomto meraní sa úroveň vstupného signálu (I a Q vzorky) znížila z pôvodných 100 % na 5 %, teda 20 krát. Na obrázku 6.4 je vidno priebeh signálu Sn.

Obr. 6.4 Signál Sn, fvzTX = 32kHz, df_start = 0, df_end = 0, SNR = ∞, úroveň 5%

Na tomto grafe vidno, aký ma vplyv nízka vstupná úroveň na kvalitu signálu. Ak sa táto úroveň zníži 20 krát, ešte stále je tento signál správne demodulovaný a výstupný signál je zhodný z vysielaným. Grafy všetkých signálov tohto merania sú v (P18).

Nasledujúce meranie sa realizovalo s vzf TX = 32kHz, df_start = 0, df_end = 0 a

pomerom SNR = ∞. Pri tomto meraní sa v podprograme cordic vykonalo z pôvodných 14 iterácií 10 iterácií (horný graf) a 5 iterácií (spodný graf). Na obrázku 6.5 je vidno priebehy signálu Sn.

Page 58: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

50

Obr. 6.5 Signál Sn pre 5 a 10 iterácií, fvzTX = 32kHz, df_start = 0, df_end = 0, SNR = ∞

Z obrázku 6.5 vidno, že použitie 5 iterácií v podprograme cordic sa už podstatné prejavy na signále Sn, avšak aj tento signál je ešte demodulovaný bezchybne a výstupný signál je zhodný z vysielaným. Možnosť použitia len 5 iterácií podstatne zvýši celkovú maximálnu rýchlosť 4FSK prenosu, nakoľko podprogram cordic zaberal najviac výpočtového výkonu signálového procesora. Maximálna prenosová rýchlosť sa bude analyzovať v meraniach na reálnom vysielači a prijímači v nasledujúcej kapitole 6.2. Všetky ostatné priebehy z tohto merania sú v (P18).

Posledné meranie za použití kodeku sa realizovalo s vzf TX = 31,5kHz, df_start =

-1, df_end = 1, pomerom SNR = 10,45 dB a 5 iteráciách podprogramu cordic. Na obrázku 6.6 je vidno priebehy signálov Sn, S3, Um a U3.

Page 59: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

51

Obr. 6.6 Signály Sn, S3, Um, U3, 5 iterácií, fvzTX = 31,5kHz, df_start=-1, df_end=1, SNR = 10,45dB

Na tomto meraní sa súčasne otestovali všetky rušivé vplyvy prenosu 4FSK, ktoré má tento prijímač zvládnuť odstrániť, bez vyprodukovania chybovosti pri demodulácií prijímaného signálu. Z obrázku 6.6 je vidno postupne zhora nadol ako sa upravuje signál Sn až po výsledný signál U3. Výsledný signál U3 sa zhoduje z vyslaným signálom S.

6.1.2 Zhodnotenie testovania

Algoritmus prijímača spĺňa všetky podmienky, na aké bol navrhovaný podľa kapitoly 3. Obvod peakdetector dokáže odstrániť rozdielnosť prenosových rýchlosti prijímača od vysielača najmenej v rozsahu ±0.5L. Obvod DDCMode dokáže odstrániť rozdielnosť nosných frekvencií prijímača od vysielača najmenej v rozsahu ±f0 . Prijímač dokáže bezchybne spracovať signál zašumený Gaussovým šumom pri pomere signál / šum = 10 dB. Všetky tieto testy sa realizovali na malom množstve dát, počas ktorých nedošlo k chybe, avšak pri reálnom generovaní Gaussovho šumu môžu vzniknúť aj veľké špičky, ktoré sú málo pravdepodobné. Občasné chyby sú preto nevyhnutné a nulová chybovosť je nereálna. Tento problém sa v praxi rieši zavedením kontroly chybovosti prenosu, napríklad za pomoci konvolučných kóderov. Ak nastane chyba pri prenose, prijímač si vyžiada poslanie chybných dát ešte raz. V tomto prípade je už však potrebná duplexná prevádzka. Tento spôsob prenosu sa v tejto diplomovej práci nerealizoval z dôvodu nedostatku času.

Page 60: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

52

Zmenšenie presnosti výpočtu uhlu v podprograme cordic znížením počtu iterácií z pôvodných 14 na 5 má zanedbateľný vplyv na chybovosť demodulovania prijímaného signálu.

Týmto testovaním sa overili vlastnosti prijímača iba na malom počte vstupných dát, na overenie jeho vlastnosti pri prenose väčšieho množstva informácie budeme testovať jeho algoritmus na reálnom hardvéri SDR modulu v nasledujúcej kapitole 6.2.

6.2 Testovanie 4FSK prenosu na reálnom hardvéri

Pri tomto testovaní sa vysielač realizoval na DDS karte a prijímač na SDR module. Počas celého testovania sa do vysielača privádzali cyklicky štyri 8 bitové slová a to: 11111010, 01010000, 00001010 a 10101111, teda je to do slov pospájaná postupnosť S, z meraní v kapitole 6.1. Počas tohto testovania sa už nesimulovali šumy, ani posunutia frekvencií, či prenosových rýchlosti, testovali sa reálne podmienky 4FSK prenosu.

6.2.1 Výsledky testovania

Prvé meranie sa realizovalo s prenosovou rýchlosťou 7500 symbolov za sekundu na nosnej frekvencií 1,1 MHz, pri RCF filtri obvodu AD6620 nastavenom na šírku pásma B = 0±2f . Na obrázku 6.7 je znázornený signál Sn.

Obr. 6.7 Signál Sn, fc= 1,1 Mhz, f0= 7500 symb./s, B=± 2f0

Z obrázku 6.7 je vidno, že vysielač pridal pred každé slovo synchronizačný dvojbit 01, pomocou ktorého obvod synch_out spätné obnovy slovo a vyšle ho cez rozhranie UART do PC. Signál Sn je mierne skreslený, je to spôsobene RCF filtrom obvodu AD6620, ktorý je nastavený na šírku pásma B = 0±2f , táto hodnota je vypočítaná

z Carsonovho vzťahu v kapitole 3. Carsonov vzťah určuje šírku pásma, ktorá je potrebná na správnu demoduláciu signálu, táto šírka pásma však neobsahuje celý signál, ktorý sa rozprestrel do nekonečného spektra, ale iba približne 99% jeho energie. Taktiež toto skreslenie je spôsobené nepresným generovaním modulovaného signálu obvodom AD7008, respektíve vysielaním iných frekvencií okrem požadovaných. Tento problém

Page 61: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

53

je podrobnejšie analyzovaný v [2]. Pre ukážku, obrázok 6.8 vykresľuje signál 2 2ABS = I +Q , ktorý by mal byť pri akejkoľvek frekvenčnej modulácií, počas ktorej

sa nemení amplitúda modulovaného signálu konštantný. Z obrázku vidno, že tento signál nie je konštantný, obsahu určite signály s nízkou amplitúdou, ktoré ovplyvnia Sn signál ako je to vidno na obrázku 6.7.

Tieto skreslenia však neovplyvnia 4FSK prenos, prijímač posiela do PC tie isté dáta, ktoré sa posielajú druhým PC do vysielača.

Obr. 6.8 Signál ABS = 2 2I +Q

Ďalšie meranie sa realizovalo s prenosovou rýchlosťou 7500 symbolov za sekundu na nosnej frekvencií 1,1 MHz a šírkou pásma B = 0±4f a B = 0±8f . Na hornom grafe

obrázku 6.9 je signál Sn pre B = 0±4f a na spodnom obrázku je signál Sn s B = 0±8f .

Obr. 6.9 Signály Sn pre B=± 4f0 (horný graf) a B=± 8f0 (spodný graf)

Page 62: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

54

Z tohto obrázku je vidno, že pre šírku pásma 0±8f je signál Sn menej skreslený, čo

potvrdzuje, že modulovaný signál je rozprestretý na o čosi väčšom pásme než 0±2f .

Nasledujúce meranie sa realizovalo s prenosovou rýchlosťou 7500 symbolov za sekundu na nosnej frekvencií 1,1 MHz a šírkou pásma B = 0±2f . V podprograme

cordic sa zvolil počet iterácií 5. Na obrázku 6.10 sú vykreslene signály Sn, S3, Um a U3.

Obr. 6.10 Signály Sn, S3, Um a U3, pre B=± 2f0, 5 iterácií v podprograme cordic

Z obrázku 6.10 vidno reálne spracovanie signálu Sn, až po signál U3. Zo signálu S3 sa v podprograme synch_out spätne vytvoria 8 bitové slová, tie sú zhodne s vysielanými dátami. Keďže správne dekódovanie je možné s piatimi iteráciami v podprograme cordic, tým sa zvýši maximálna prenosová rýchlosť 4FSK prenosu z pôvodných 7500 symbolov za sekundu pri 14 iteráciách na 9000 až 9500 symbolov za sekundu, v závislosti na presnom naladení prenosových rýchlosti prijímača od vysielača.

Posledné testovanie sa realizovalo posielaním dát zo súboru cez rozhranie UART do vysielača a spätným zapisovaním dát do súboru z prijímača do druhého PC.

Na obrázku 6.11 je bloková schéma zapojenia jednotlivých modulov, použitá pre toto meranie. V prílohe (P19) sú fotky z tohto testovania.

Page 63: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

55

Obr. 6.11 Bloková schéma modulov pre prenos súboru

Vysielaný súbor bol textového charakteru. Pre posielanie dát z PC do prijímača sa zvolil softver HyperTerminal, ktorý je štandardne v komunikačných programoch operačného systému Windows, pracoval v režime Viewdata. Na prijímanie dát a ukladanie ich do súboru bol použitý softvér DocLight v1.6, ktorý dokáže z prijímaných dát vytvoriť priamo textový súbor. Pre vysielanie dát z PC bola zvolená bitová rýchlosť rozhrania UART 9600 bitov / sekundu, pre prijímanie dát do PC bola zvolená bitová rýchlosť rozhrania UART 38400 bitov / sekundu. Rýchlosť UART prenosu v prijímači je vyššia ako vo vysielači, aby sa zabránilo strate dát, ak by rýchlosť UART prenosu vo vysielači bola len o kúsok vyššia (spôsobené nepresnosťou oscilátorov), ako v prijímači. Prenosová rýchlosť 4FSK modulácie bola zvolená 7500 symbolov za sekundu, počet iterácií v podprograme cordic bol 5. Šírka pásma RCF filtra obvodu AD6620 bola nastavená na B = 0±2f . RCF filter sa navrhoval za pomoci

programu Filter Design, jeho frekvenčná charakteristika je na obrázku 6.12.

Týmto spôsobom bol prenesený textový súbor o veľkosti 1,3MB z jedného počítača na druhý bez akejkoľvek chyby prenosu.

Obr. 6.12 Frekvenčná charakteristika RCF filtra obvodu AD6620

Page 64: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Diplomová práca KEMT

56

6.2.2 Zhodnotenie testovania

Týmto testovaním bolo ukázané splnenie požiadaviek na 4FSK prenos vyplynuté zo zadania diplomovej práce. Systém je schopný prenášať dáta v asynchrónnom režime za pomoci 4FSK prenosu, ktorý je synchrónny. Systém je schopný takmer bezstratového prenosu pri SNR = 10dB. Maximálna prenosová rýchlosť je daná taktovacou frekvenciou signálového procesora ADSP-2181 (33,34 MHz), ktorá je rovná 9000 symbolov za sekundu, čomu zodpovedá bitová rýchlosť 18000 bitov za sekundu UART rozhrania. 16 bitová presnosť použitého signálového procesora nemá vplyv na kvalitu alebo rýchlosť prenosu.

Page 65: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Záver KEMT

57

7 Záver

Úlohy, ktoré vyplynuli zo zadania diplomovej práce boli splnené.

Boli navrhnuté programové prostriedky umožňujúce demonštráciu prenosu dát 4FSK moduláciou. Taktiež bol prenesený súbor s veľkosťou 1.3MB z jedného počítača na druhý, bez zmeny obsahu tohto súboru.

Prenosový systém je schopný samostatnej asynchrónnej prevádzky bez potreby nadriadeného člena. Umožňuje maximálnu prenosovú rýchlosť 9000 symbolov za sekundu, čomu zodpovedá bitová rýchlosť 18000 bitov za sekundu UART rozhrania. Systém je schopný takmer bezstratového prenosu pri pomere SNR = 10dB prijímaného signálu.

Aj keď 4FSK modulácia je v porovnaní s modernými digitálnymi moduláciami pomerne jednoduchá, táto diplomová práca rieši problém prenosu komplexne, teda zaoberá sa pomerne zložitou otázkou nestability oscilátorov, čo je problém všetkých digitálnych modulácií. Tento prenosový systém koriguje nepresnosti nosných frekvencií vysielača a prijímača a taktiež nerovnaké prenosové rýchlosti vysielača a prijímača a to v rozsahu plne postačujúcom bežne sa vyskytujúcim odchýlkam v praxi.

Maximálna prenosová rýchlosť by sa dala nepatrne zvýšiť využitím vyhľadavacích tabuliek v podprograme cordic, no to podstatne zvýši nároky na dátovú pamäť procesora. Iný spôsob ako zvýšiť prenosovú rýchlosť celého prenosu je použitie ďalšieho externého procesora s väčším výpočtovým výkonom. Touto témou sa budú zaoberať nasledujúci diplomanti.

Pre zabezpečenie bezstratového prenosu je potrebné pridať do vysielania redundantné bity, pomocou ktorých sa bude kontrolovať, či pri prenose nedošlo k chybe. Chybné dáta sa následne pošlú ešte raz, až pokiaľ sa neprijmú bezchybne. To však vyžaduje plne duplexný prenos a prevyšuje to rozsah tejto diplomovej práce.

Ďalším krokom by mala byť realizácia analógových časti vysielača a prijímača, aby sa dali reálne vlastnosti otestovať na väčšie vzdialenosti bezdrôtovo. To je však úloha, ktorá presahuje rozsah tejto diplomovej práce a budú sa ňou zaoberať ďalší diplomanti.

Page 66: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Zoznam použitej literatúry KEMT

58

Zoznam použitej literatúry

[1] Nohaj, Vladimír: Moduly softvérového rádia na báze signálových procesorov Analog Devices. Diplomová práca, Máj 2005.

[2] Trojanovič, Vladimír: Spracovanie AM a FM signálov s využitím princípov softvéroveho rádia. Diplomová práca, 2006.

[3] Porat, B.: A Course I Digital Signal Processing. John Wiley&Sons, Inc.1996, s.566-580

[4] Analog Devices, Inc.: AD7008 CMOS DDS Modulator Datasheet, Rev. B, http://www.analog.com, 1995.

[5] Analog Devices, Inc.: AD6620 67 MSPS Digital Receive Signal Processor Datasheet, Rev. A, http://www.analog.com, 2001.

[6] Analog Devices, Inc.: ADSP-2181 EZ-KIT Lite Evaluation System Manual, Rev. 1, http://www.analog.com, January 2001.

[7] Hickling, Ronald M.: New technology facilitates true software-defined radio, http://rfdesign.com/mag/504rfdf1.pdf, apríl 2005

[8] SDR forum: Definitions & Semantics, http://www.sdrforum.org/tech_comm/definitions.html

[9] Watson, Bob: FSK: Signals and Demodulation, http://213.250.55.85:8089/FSK_signals_demod.pdf, 2001

[10] Katz, Randy H.: CS 294-7: Digital Modulation,

http://www.sss-mag.com/pdf/1modulation.pdf, 1996

[11] Charan, Langton: Intuitive Guide to Principle of Communications,

http://www.complextoreal.com/chapters/mod1.pdf, Dec 2005

[12] California Microwawe: Microwave Radio Communications,

http://www.fedele.com/website/dtv/dig_stls.pdf, April 1997

[13] University of Hull: Appendix D – Digital Modulation and GMSK,

http://www.emc.york.ac.uk/reports/linkpcp/appD.pdf

[14] Sathapan, Ram: Today’s DSPs are ready for software-defined radio,

http://focus.ti.com/lit/ml/sprn245/sprn245.pdf, Zima 2005

[15] Analog Devices, Inc.: Digital Filter Demo for the Ez-Kit Lite EE-91,

Rev. A, http://www.analog.com, 1996.

[16] Analog Devices, Inc.: Implementing A Software UART On The ADSP-2181 EZ-KIT-LITE EE-89, http://www.analog.com, 1999

[17] Agilent Technologies: Digital Modulation in Communications Systems,

http://cp.literature.agilent.com/litweb/pdf/5965-7160E.pdf, Marec 2001

[18] Smithson, Geoff: Intorduction to digital modulation schemes,

http://www.plextek.co.uk/papers/schmsv6.pdf, Jul 2003

Page 67: Spracovanie FSK signálov s využitím princípov …diplomovka.sme.sk/zdroj/3170.pdfby frequency shift keying (FSK), ... specialistic signal procesor AD6620 and DDS modulator AD7008,

FEI TU Košice Zoznam príloh KEMT

59

Zoznam príloh

P1 zdrojový kód TX.asm

P2 zdrojový kód IRQ_TX.asm

P3 zdrojový kód IRQ_UART.asm

P4 zdrojový kód konstanty.h

P5 zdrojový kód RX.asm

P6 zdrojový kód AD6620_init.asm

P7 zdrojový kód Init_2181.asm

P8 zdrojový kód Init_codec.asm

P9 zdrojový kód cordic.asm

P10 zdrojový kód filter.asm

P11 zdrojový kód peakdetector.asm

P12 zdrojový kód InitMode.asm

P13 zdrojový kód DDCMode.asm

P14 zdrojový kód synch:out.asm

P15 zdrojový kód konstanty.h

P16 zdrojový kód IQ.m

P17 zdrojový kód simulacia_4FSK.m

P18 grafy z meraní 4FSK prenosu

P19 fotky z merania

P20 kniha Porat, B.: A Course I Digital Signal Processing, str. 566-579


Recommended