Documentation Smart Antenna
Transcription
Documentation Smart Antenna
8. August 2011 Dokumentation Mobile Pseudo Doppler Bearing System Master Thesis Fahmi Marcel Schaad fahmi.schaad(at)bfh.ch Professor: Fritz Dellsperger Experte: Dr. sc. nat. Peter Schlatter http://www.ti.bfh.ch Die Master-Thesis entwirft ein mobiles Triangulationssystem zur Ortung von beweglichen RF-Sendern. Das System verwendet zur Richtungsbestimmung ein Pseudo-Doppler-Verfahren. Die Triangulation erfolgt durch einen vollständig digitalen Empfänger und wird mit einem hierarchischen Partikel-Filter gelöst. Free your mind with LATEX2e. Zusammenfassung Die Master-Thesis stellt ein vollständig digitales, mobiles System zur Triangulation von beweglichen RF-Sendern vor. Durch die Bewegung des mobilen Triangulations-Systems wird eine Abschätzung der Trajektorie des RF-Senders ermöglicht. Das gesamte System ist in einem standardisierten Autoradio-Slot integriert und kann mit wenigen Instruktionen in Betrieb genommen werden. Das gesamte System zeichnet sich durch Kompaktheit, Präzision und günstigen Kosten aus. Als mögliches Anwendungsgebiet kann das System in der Wildtierforschung eingesetzt werden. Mit wenig Aufwand kann zusätzlich zur Triangulation eine Demodulation des Nutzsignals in den vollständig digitalen Empfänger integriert werden. Abstract This master thesis presents a fully digital, mobile bearing system for triangulating mobile RF transmitters. The movement of the mobile system faciliates the estimation of the transmitter’s trajectory. The full system is integrated in a standard-case radio slot and can be operated with a few instructions. The entire system features high compactness, high precision and low costs. As a possible application, the system can be utilized in wildlife research. As a future extension it is easily possible to integrate some demodulation schemes in addition to the triangulation algorithms. i ii Glossar Aliasing (engl.) bezeichnet Fehler, die durch das Nichtbeachten des Abtasttheorems von Nyquist entstehen Basisband bezeichnet denjenigen Frequenzbereich, in dem sich das zu übertragende Nutzsignal befindet. Durch Modulation kann ein Basisbandsignal mittels einer Trägerfrequenz spektral in einen anderen Frequenzbereich verschoben werden Bridge Eine Bridge verbindet in unserem Kontext zwei verschieden Bus-Systeme Digital Down Converter (engl.) bezeichnet einen Signalprozessor, der ein hochfrequentes, abgetastetes Signal in das Basisband heruntermischt und filtert Doppler Bearing System (engl.) bezeichnet ein Verfahren zur Richtungsbestimmung von RF-Signalen mit Hilfe eines Pseudo-Doppler-Algorithmus EIA-232 bezeichnet einen Standard für eine serielle Schnittstelle Elektromagnetische Verträglichkeit bezeichnet die Störfreiheit elektrischer Geräte mit ihrer Umgebung I2 C (engl.) Abkürzung für Inter-Integrated-Circuit und bezeichnet einen, von Philips Semiconductors entwickelten, seriellen Datenbus Konfidenz-Ellipse ist die Projektion des zweidimensionalen 95 Line-Analyzer bezeichnet ein Messgerät, das vor allem in der Hochfrequenzund Nachrichtentechnik eingesetzt wird und die Streuparameter (S- Parameter, Reflexion, Transmission) misst Monopolantenne ist eine Antenne, die im Gegensatz zur Dipolantenne nur einen «Arm» besitzt, dessen an der leitenden Erde gespiegeltes Bild den anderen Arm ersetzt Pull-Up ist eine Beschaltungsart eines Widerstands mit einer Leitung mit digitalen Signalen. Ein Pull-Up-Widerstand verbindet eine Steuerleitung mit der Speisespannung Printed Circuit Board (PCB) engl. Bezeichnung für Leiterplatte, Platine oder gedruckte Schaltung iii iv Reflexion ist eine Grösse für das Zurückwerfen von Wellen beim Übergang zweier Medien SPI (engl.) Abkürzung für Serial-Peripheral-Interface Bus und bezeichnet einen von Motorola entwickelten seriellen Datenbus Surge (engl.) bezeichnet eine Woge/Welle. In unserem Fall bezeichnet Surge eine einmalig auftretende Transiente in der Speisespannung Target (engl.) Bezeichnung für ein (Angriffs-)Ziel. In dieser Dokumentation bezeichnet das Target das zu triangulierende Objekt Transmission ist eine Grösse für Durchlässigkeit eines Mediums für jegliche Art von Wellen Tracking (engl.) Beschreibung aller Schritte eines Systems, das zur Verfolgung von Objekten dient Trajektorie (lat.) bezeichnet eine Ortsraumkurve, entlang der sich ein Körper bewegt. Abkürzungsverzeichnis ADS (engl., Software) Advanced Design System ASIR-MM (engl.) Auxiliary Sequential Importance Resampling Multiple Model (-Filter) BOT (engl.) Bearing Only Tracking CCT (engl.) Constant Clockwise Turn CT (engl.) Constant Anticlockwise Turn CIC (engl.) Cascaded Integrator Comb (-Filter) CV (engl.) Constant Velocity DBT Doppler Bearing Tracking DBS Doppler Bearing System DMA Direct Memory Access DC (engl.) Direct Current DCI (engl.) Digital Control Interface DDC (engl.)Digital Down Converter DSP (engl. )Digital Signal Processor EM (engl.) Electromagnetism EMV Elektromagnetische Verträglichkeit FM Frequenzmoduliertes Signal FIR (engl.) Finite Impulse Response I2 C (engl.) Inter Integrated Circuit IEEE (engl.) Institute of Electrical and Electronics Engineers I/Q (engl.) Inphase / Quadrature LNA Low Noise Amplifier MSE (engl.) Mean Squared Error n.c. (engl.) not connected NCO (engl.) Numerically Controlled Oszillator PCB (engl.) Printed Circuit Board PDF (engl.) Probabilty Density Function RAM (engl.) Read Access Memory Rx (engl.) Receiver RF (engl.) Radio Frequency RMS (engl.) Root Mean Square ROM (engl.) Read Only Memory SDR (engl.) Software Defined Radio SIR (engl.) Sequental Importance Resampling(-Filter) SNR (engl.) Signal to Noise Ratio SPI (engl.) Serial Peripheral Interface v vi PCB TCB ZF (engl.) Printed Circuit Board (engl.) Transfer Control Block Zwischen-Frequenz vii viii Inhaltsverzeichnis 1 2 3 Einleitung 1.1 Vorwort . . . . . . . . . . 1.2 Struktur des Dokuments 1.3 Impressum . . . . . . . . 1.4 Danksagung . . . . . . . 1.5 Kontakt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 2 2 3 System-Spezifikation 2.1 Gesamtsystem . . . . . . . . . . . . . . . . 2.1.1 Ausgangslage . . . . . . . . . . . . 2.1.2 Anforderungen . . . . . . . . . . . 2.1.3 Funktionale Anforderungen . . . . 2.1.4 Nichtfunktionale Anforderungen . 2.2 System-Architektur . . . . . . . . . . . . . 2.2.1 Beschreibung der Module . . . . . 2.2.2 Beschreibung der Funktionsblöcke 2.2.3 Schnittstellen und Bus-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 5 5 6 7 8 8 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pflichtenheft 3.1 Aufgabenstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Zielvorgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Kernziele 1. Priorität: Erweiterung des Funktionsmusters 3.2.2 Kernziele 2. Priorität: Erweiterung des Funktionsmusters 3.2.3 Kernziele 1. Priorität: Inbetriebnahme MSE-Projektarbeit 2 3.2.4 Kernziele 1. Priorität: Triangulations-Algorithmen . . . . 3.2.5 Kernziele 2. Priorität: Triangulations-Algorithmen . . . . 3.2.6 Kernziele 1. Priorität: Implementation der Triangulation 3.3 Bestandesaufnahme . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Vorarbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Infrastruktur . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3 Personelle Ressourcen . . . . . . . . . . . . . . . . . . . . 3.3.4 Finanzielle Ressourcen . . . . . . . . . . . . . . . . . . . . 3.3.5 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.6 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.7 Sorgfaltspflicht und Haftung . . . . . . . . . . . . . . . . 3.3.8 Erfindungen und gewerbliche Nutzungsrechte . . . . . . ix 11 11 12 12 12 12 12 12 13 13 13 13 13 13 14 14 14 14 x INHALTSVERZEICHNIS 3.4 4 Zeit-Management . . . . . . . . . . . . . . . . . . . . 3.4.1 Arbeitsleistung und minimale Arbeitsdauer 3.4.2 Abgabetermin . . . . . . . . . . . . . . . . . . 3.4.3 Zeitplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 15 15 16 Konzept 4.1 Pseudo-Doppler-Verfahren zur Richtungsbestimmung . . . . . 4.1.1 Grundprinzip . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2 System-Blockschaltbild des Verfahrens . . . . . . . . . . 4.2 Digitale FM-Demodulation . . . . . . . . . . . . . . . . . . . . . 4.2.1 Blockschaltbild . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Mathematische Herleitung . . . . . . . . . . . . . . . . . 4.3 Definition des Multiraten-Systems . . . . . . . . . . . . . . . . . 4.4 Modellierung des Antennen-Arrays . . . . . . . . . . . . . . . . 4.4.1 Physikalisches Modell . . . . . . . . . . . . . . . . . . . . 4.4.2 Mathematisches Modell . . . . . . . . . . . . . . . . . . . 4.4.3 Phasenhub im Antennen-Array . . . . . . . . . . . . . . . 4.5 Peilung von beweglichen Targets . . . . . . . . . . . . . . . . . . 4.5.1 Wissenschaftlicher Stand . . . . . . . . . . . . . . . . . . 4.5.2 Das BOT-Problem . . . . . . . . . . . . . . . . . . . . . . 4.5.3 Generisches Partikel-Filter zur Lösung des BOT-Problems 4.5.4 Das SIR-Filter zum BOT-Problem . . . . . . . . . . . . . . 4.5.5 Das ASIR-MM-Filter zur Lösung des manövrierenden Falles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 19 19 20 20 20 21 23 26 26 27 27 29 29 30 35 40 41 5 Algorithmen-Simulation 5.1 Bestimmung der statistischen Parameter des BOT-Algorithmus 5.2 Tracking-Szenarien . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 SIR-Filter Screenshots: Nichtmanövrierendes Target . . . 5.2.2 ASIR-MM-Filter Screenshots: Manövrierendes Target . . 5.3 Performance-Vergleich der Filter . . . . . . . . . . . . . . . . . . 5.4 Optimierung der Anzahl Partikel Np . . . . . . . . . . . . . . . . 5.5 Simulation der Filter im DDC . . . . . . . . . . . . . . . . . . . . 5.5.1 CIC-Filterstufen . . . . . . . . . . . . . . . . . . . . . . . . 5.5.2 FIR-Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.3 Kaskadierung der Filter . . . . . . . . . . . . . . . . . . . 47 47 52 52 56 60 64 66 67 68 68 6 Hardware-Design: Funktionsmuster des SDR-Receivers 6.1 System-Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Eigenschaften und Jumper-Konfiguration der Evaluationsboards 6.2.1 A/D-Wandler AD9244-Evaluationsboard . . . . . . . . . 6.2.2 DDC AD6620-Evaluationsboard . . . . . . . . . . . . . . 6.2.3 DSP ADSP21364-Evaluationsboard und Expansions-Board 71 71 74 74 77 81 7 Hardware-Design: Expansion-Card 7.0.4 Elektronische Schnittstellen . . . . . . . . . . . . . . . . . 7.0.5 Jumper-Konfiguration der Level-Shifter . . . . . . . . . . 85 86 89 INHALTSVERZEICHNIS 8 9 xi Hardware-Design: Smart Antenna 8.1 Antennen-Array . . . . . . . . . . . . . . 8.1.1 Testaufbau für immobile Tests . 8.1.2 Elektronik-Gehäuse . . . . . . . 8.1.3 Schnittstellen . . . . . . . . . . . 8.1.4 Einbau der Elektronik . . . . . . 8.2 Navigator-Print . . . . . . . . . . . . . . 8.2.1 Elektronische Schnittstellen . . . 8.2.2 Test- und Programmierpunkte . 8.2.3 EMV-Störunterdrückung . . . . 8.2.4 Speisung . . . . . . . . . . . . . . 8.2.5 I2 C,SPI-Bus und -Komponenten 8.2.6 GPS-Modul . . . . . . . . . . . . 8.2.7 Kompass-Modul . . . . . . . . . 8.3 RF-Switch . . . . . . . . . . . . . . . . . 8.3.1 Elektronische Schnittstellen . . . 8.3.2 Test- und Programmierpunkte . 8.3.3 RF-Switch mit Schottky-Dioden Firmware 9.1 Übersicht . . . . . . . . . . . . . . . . 9.1.1 Modulabhängigkeiten . . . . 9.2 Soft-Konfiguration des DSPs . . . . . 9.2.1 Konfiguration des PLLs . . . 9.2.2 DAI-Routing der Eingänge . 9.2.3 Konfiguration der SPORTs . . 9.2.4 DMA- und TCB-Strukturen . 9.2.5 Konfiguration des SPI . . . . 9.3 Firmware-Design . . . . . . . . . . . 9.3.1 Initialisierung der Hardware 9.3.2 SPORT-DMA-Interrupt . . . 9.3.3 SPI-Interrupt . . . . . . . . . 9.4 Memory-Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 91 91 94 95 97 99 100 102 103 105 106 109 111 113 114 115 116 . . . . . . . . . . . . . 129 130 130 130 130 132 133 135 138 139 139 141 142 143 10 Tests und Messungen 145 10.1 S-Parameter-Messung des RF-Switchs . . . . . . . . . . . . . . . 145 10.1.1 Messmittel . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 10.1.2 Messaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . 145 10.1.3 Messanleitung . . . . . . . . . . . . . . . . . . . . . . . . . 147 10.1.4 Messresultate . . . . . . . . . . . . . . . . . . . . . . . . . 148 10.2 Test des Pseudo-Doppler-Algorithmus zur Richtungsbestimmung153 10.2.1 Messmittel . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 10.2.2 Messaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . 154 10.2.3 Messanleitung . . . . . . . . . . . . . . . . . . . . . . . . . 155 10.2.4 Messung 1: Stabilität der Winkelabschätzung . . . . . . . 157 10.2.5 Messung 2: Winkelabschätzung über den gesamten Azimut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 INHALTSVERZEICHNIS 11 Stand der Arbeiten 167 11.1 Erreichte Ziele und Pendenzen . . . . . . . . . . . . . . . . . . . 167 11.2 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Anhang 175 A IEEE Transaction Paper 177 B LNCS Report 181 C Schema und PCB der Expansion-Card 193 D Schema und PCB des RF-Switchs 203 E Schema und PCB des Navigation-Prints 213 F Source-Code der Firmware 223 G Matlab-Simulationen 247 G.1 SIR-Partikel-Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 G.2 (engl.) Auxiliary Sequential Importance Resampling (ASIR-MM)Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 G.3 Monte-Carlo Performance-Vergleich . . . . . . . . . . . . . . . . 270 G.4 Monte-Carlo-Bestimmung des optimalen Np . . . . . . . . . . . 273 G.5 Simulation der DDC-Filter . . . . . . . . . . . . . . . . . . . . . . 276 H Software & Dokumente 279 xii Kapitel 1 Einleitung 1.1 Vorwort Die mobile Lokalisierung von RF-Sendern («Tracking») stellt auch heute noch eine grosse Herausforderung an das Equipment und dessen Benutzer dar. Obwohl viele Tracking-Anwendungen eine gewisse Mobilität und Robustheit des Gesamtsystems voraussetzen, existieren keine günstigen Systeme im nichtmilitärischen Markt mit den gewünschten Eigenschaften. In dieser Master-Thesis soll nun ein günstiges, mobiles Peilsystem entwickelt und optimiert werden. Die Peilung erfolgt dabei in einem manövrierenden Fahrzeug. Als Einsatzgebiet sollen stationäre und bewegte RF-Sender lokalisiert werden können. Es wird besonderen Wert auf die Robustheit, Kompaktheit und die Kosten des Gesamtsystems gelegt. In einer vorhergehenden MSE-Projektarbeit [32] wurde ein Konzept zur Richtungsbestimmung von RF-Signalen entwickelt. In einer vollständig digitalen Empfänger-Anordnung ((engl.) Software Defined Radio (SDR)) wurde ein PseudoDoppler-Algorithmus zur Richtungsbestimmung implementiert, der in dieser Thesis zu einem vollständigen Tracking-System ausgebaut wird. Mit dieser Empfänger-Anordnung können die Anforderungen an die Grösse und den Preis des Gesamtsystems eingehalten werden. 1.2 Struktur des Dokuments Das Dokument richtet sich an Personen mit technischem Hintergrund in SignalVerarbeitung, Elektronik und Hochfrequenztechnik. Es repräsentiert den Stand der Arbeiten zum Zeitpunkt der Abgabe der MSE-Master-Thesis vom 05. August 2011 und dient als technische Dokumentation für allfällige Weiterentwicklungen des Projekts. Der Leser wird folgendermassen durch das Dokument geführt: Sämtliche Sachworte und Abkürzungen werden im Vorspann des Dokuments erläutert. 1 KAPITEL 1. EINLEITUNG Mit einem Maus-Klick auf eine Abkürzung im Text kann direkt zu dessen Beschreibung gewechselt werden. Design-Fehler oder Abschnitte mit sicherheitsrelevanten Anweisungen sind mit einem gelben Warnkreuz gekennzeichnet. Diese Abschnitte sollen mit besonderer Beachtung gelesen werden. Das zweite Kapitel spezifiziert das System mit sämtlichen Schnittstellen. Im dritten Kapitel befindet sich das Pflichtenheft der Thesis mit definierten Zielvorgaben und Ressourcen. Das vierte Kapitel beinhaltet das Konzept mit Algorithmen zur Richtungsbestimmung und zur Lösung des Tracking-Problems. Zusätzlich wird die Struktur des Empfängers und der Frequenzplan definiert. Die Algorithmen werden im fünften Kapitel simuliert und die Resultate interpretiert. Das Design der Hardware und der Software befindet sich in den Kapitel sechs und sieben. Im achten Kapitel sind sämtliche Messresultate und Feldtests zusammengefasst. Das Kapitel 8 gibt eine Übersicht über den Stand der Arbeiten bei Abgabe der Thesis. 1.3 Impressum Hiermit bestätigt der Autor dieser Projektarbeit, dass zu deren Erstellung nur das eigene Wissen und die im Dokument beschriebenen Quellen verwendet wurden. Burgdorf, 8. August 2011 Fahmi Marcel Schaad 1.4 Danksagung An dieser Stelle möchte ich mich bei all denjenigen bedanken, die mir während dieser Master-Thesis zur Seite gestanden sind und mich unterstützt haben. Mein Dank gilt meinen Labor-Kollegen Peter Hürlimann und René Obi, die mich zu sehr konstruktiven Diskussionen herausgefordert haben, in deren Verlauf viele gute Denkanstösse entstanden sind. Mein persönlicher Dank gilt auch Fritz Dellsperger, meinem Advisor, für die gute Zusammenarbeit. Nicht zuletzt danke ich meiner Lektorin Brigitte Röthlisberger für die Korrekturen und die hilfreichen Anmerkungen zu dieser Arbeit. 2 1.5. KONTAKT 1.5 Kontakt work coordinates: Fahmi Marcel Schaad Room T205, ICT-Laboratory Jlcoweg 1 3400 Burgdorf Switzerland fahmi.schaad(at)bfh.ch +41 (0)34 426 68 95 home coordinates: Fahmi Marcel Schaad Dammweg 4 3427 Utzenstorf Switzerland fahmi.schaad(at)fahmi.ch +41 (0)76 307 59 95 3 KAPITEL 1. EINLEITUNG 4 Kapitel 2 System-Spezifikation 2.1 2.1.1 Gesamtsystem Ausgangslage In einer vorher abgeschlossenen MSE-Projektarbeit 2 wurde ein Konzept zur Richtungsbestimmung von RF-Signalen entwickelt. Nun soll das Konzept zu einem passiven Triangulations-System erweitert werden. 2.1.2 Anforderungen Die Triangulation von RF-Sendern erfolgt in einem manövrierenden Fahrzeug. Das Triangulations-System soll so aufgebaut sein, dass gängige Fahrzeuge ohne grossen Aufwand nachgerüstet werden können. Der Empfänger soll in einen Autoradio-Slot integriert werden. Die Antenne soll auf einem Dachträger platziert werden können. 2.1.3 Funktionale Anforderungen Detektierbare RF-Signale Das zu ortende Objekt soll mit einem Sender (RF-Tag) ausgestattet sein, der periodisch oder konstant einen Sinus-Träger mit 140 − 160 MHz oder 400 − 420 MHz sendet. Modulierte Signale sollen einen Träger mit denselben Eigenschaften aufweisen. Der Pegel-Dynamikbereich des empfangenen Signals wird an dieser Stelle noch nicht eingegrenzt. Darstellung der Triangulationsresultate Nach dem Aufbau und der Inbetriebnahme soll der Benutzer die Frequenz des zu triangulierenden RF-Senders einstellen können. Daraufhin soll die abgeschätzte Position des Senders, die aktuelle Einfallsrichtung und dessen 95%Konfidenzintervall (Angabe in Meter) auf dem Empfänger-Modul dargestellt werden. Optional soll mit einem Laptop die Trajektorie und einige Schätzwerte (Kovarianz der Abschätzung, Konfidenz-Ellipse) in einem GeographieProgramm dargestellt werden können. 5 KAPITEL 2. SYSTEM-SPEZIFIKATION EMV-Systemumgebung Das Gesamtsystem soll den internationalen EMV-Normen im Kfz-Bereich entsprechen [25]. Folgende Normen sind relevant: ISO 11451.1-4, ISO 11452.1-11, ISO 16750-2. Dies garantiert die zukünftige Zulassung des Systems durch die nationalen Gesetzgeber. Speisung Das Gesamtsystem soll mit 12 V gespiesen werden. Die Speisung soll resistent gegenüber Störungen eines üblichen Kfz-Bordspannungs-Systems sein. Als Steckverbinder wurde der DIN ISO 4165 Kfz-Stecker ausgewählt. 2.1.4 Nichtfunktionale Anforderungen Benutzerfreundlichkeit Das System soll intuitiv bedienbar und selbsterklärend aufgebaut sein. Der Benutzer soll es nach einer einfachen Schulung (Produkt-Anleitungen) in Betrieb nehmen können. Aufbau Beim Aufbau wird besonderen0 Wert auf Robustheit und Grösse gelegt. Da das zukünftige Einsatzgebiet in Fahrzeugen sein wird, soll das gesamte System resistent gegenüber Vibrationen sein. Die Dimension des Empfängers ohne Antenne soll nicht grösser als der Autoradio-Einschub nach ISO 7736 (Breite x Höhe x Tiefe := 180 mm x 50 mm x 160 mm) sein. 6 2.2. SYSTEM-ARCHITEKTUR 2.2 System-Architektur Das Gesamtsystem wird in zwei Module unterteilt. Das eine Modul beinhaltet sämtliche Elektronik auf dem Dach des Fahrzeugs (Navigation, Smart-AntennaElektronik). Das andere Modul besteht aus der Empfänger-Struktur innerhalb des Fahrzeuges. Die Figur 2.1 illustriert das Gesamtsystem mit den beiden Modulen. Die blauen Funktionsblöcke werden nicht im Rahmen dieser MasterArbeit implementiert, sind aber vorgesehen. Die weissen Funktionsblöcke gehören zum Funktionsmuster. Das Design der System-Architektur wurde nach der Evaluation der NavigationsSensoren (Kompass, GPS) erstellt. Die nachfolgende Grafik zeigt eine mögliche Konfiguration der Architektur, mit welche die evaluierten Sensoren eingesetzt werden können. 140-160 MHz Carrier Bursts Tx … (8 Antenna) Smart Antenna RF-Switch Compass HMC6343 GPS L1C Band NEO-6Q SPI Bus RF 50 Ω, 140-160 MHz I2C-SPI-Bridge SC18IS602 DCI Interface 3 Bit control signal A/D AD9244 DCI Interface I2C Bus Smart Antenna Module 14 Bit, 40-60 MSPS Receiver Module DDC AD6620 Inphase 32 Bit Quadrature 32 Bit SPI-I2C-Bridge SC18IS600 config SPORT DSP ADSP-21364 Implemented, part of the functional model Not yet implemented GPS L2C Band ? DAI SPI SPI Bus DAI User Control SPI-USB Bridge Display D/A Audio USB Triangulation (GIS-Software) on PC Abbildung 2.1: Blockschaltbild des Gesamtsystems inkl. Erweiterungen 7 KAPITEL 2. SYSTEM-SPEZIFIKATION 2.2.1 Beschreibung der Module Smart-Antenna-Module Die gesamte Hardware der Smart-Antenna wird dem «Smart-Antenna-Module» zugeordnet. Dieses Modul beinhaltet neben den mechanischen Komponenten der Antenna auch die Smart-Antenna-Elektronik. Darin untergebracht ist die anloge Signalvorverarbeitung und die Sensoren für die Navigation. Das Smart-Antenna-Modul ist über ein Kabel mit dem «Receiver-Module» verbunden. Receiver-Module Das Modul beinhaltet die gesamte digitale Signalverarbeitung des Empfängers. Die Hardware zur Konfiguration durch den Benutzer und die Darstellung der Tracking-Resultate werden zusätzlich in den Empfänger integriert. 2.2.2 Beschreibung der Funktionsblöcke Tx Der Transmitter entspricht einem RF-Tag, der in definierten Abständen einen Träger (140 − 160 MHz oder 400 − 420 MHz) aussendet. Die RF-Sendeleistung ist in der Spezifikation noch nicht definiert. Übertragungskanal Die Funk-Übertragung der Umgebung wird als Kanal mit additiven und multiplikativen Störungen modelliert. Dazu gehört weisses Rauschen, Freiluft-Dämpfung und Multipfadausbreitung. Smart Antenna RF-Switch Der RF-Switch soll die Antennen-Kanäle multiplexieren. Das Signal zur Multiplexierung wird vom DSP erzeugt. Das Steuersignal ist 3-Bit breit und hat 5 V-TTL-Pegel. Ist eine Signalvorverarbeitung des RF-Signals nötig (Verstärkung, Filterung), so wird diese gleich in den RFSwitch integriert. A/D Das Funktionsmuster aus der MSE-Projektarbeit 2 nützt zur A/D-Wandlung ein 14-Bit A/D-Wandler AD9244 von «Analog Devices» [D13]. Das Funktionsmuster wird übernommen. DDC Das Funktionsmuster aus der MSE-Projektarbeit 2 mischt das digitalisierte RF-Signal mit dem DDC AD6620 von «Analog Devices» [D12] herunter. Das Funktionsmuster wird übernommen. DSP Das Herzstück der Signalverarbeitung in der MSE-Projektarbeit 2 ist der digitale Signalprozessor ADSP-21364 von «Analog Devices» [D9][D10][D11]. Das Funktionsmuster wird übernommen und erweitert. So wird der DSP zusätzlich die Peripherie via SPI-Bus steuern. SPI-I2 C-Bridge Das (engl.) Digital Control Interface (DCI) ist mit dem 3Wire-Bus I2 C-Bus ausgestattet. Da der DSP nur ein SPI-Stack integriert hat, wird eine Bridge eingesetzt. 8 2.2. SYSTEM-ARCHITEKTUR I2 C-SPI-Brigde Die GPS-Module verfügen nur über eine eingeschränkte Kompatibilität zum I2 C-Standard. Das Modul kann die I2 C-Schnittstelle nur im Single-Slave-Modus genutzt werden kann. Mit der I2 C-SPI-Brigde werden die Daten wieder über SPI übertragen. Compass Das Compass-Modul wird zur eigenen relativen Ausrichtung zum Nordpol benötigt. Die Abschätzung der Einfallsrichtung gibt den Winkel zwischen Fahrtrichtung des Fahrzeuges und des einfallenden RF-Signals zurück. Daraus muss der Einfallswinkel relativ zum Nordpol berechnet werden. Das Modul HMC6343 von «Honeywell» [D6] beinhalten ein I2 C-Modul und kann direkt von der SPI-zu-I2 C-Bridge angesteuert werden. GPS L1C Band Das GPS-Modul wird zur Bestimmung der Position und der Geschwindigkeit Beobachter-Fahrzeuges benötigt. Dazu wird das Modul NEO6Q von «ublox» [D1] eingesetzt. Mit diesem GPS-Modul wurden in einigen anderen Projekten bereits Erfahrungen gesammelt. Diese Synergien sollen genutzt werden. Leider beinhaltet das Modul keine I2 C-Schnittstelle, die im MultiSlave-Modus genutzt werden kann. GPS L2C Band Geplant ist ein zweites GPS-Modul, das zum Signal des ersten Moduls unabhängige Koordinaten liefert. Dazu wird das zweite GPS-Band benützt. Bei der ersten Version des Funktionsmusters wird dieses GPS-Modul nicht eingebaut. User-Control Der Funktionsblock beinhaltet alle Taster und Druckknöpfe. SPI-USB-Bridge Die Bridge dient dazu, Resultate auf den Laptop zu übertragen. Display Der Benutzer soll den Status der Triangulation und die Konfiguration des Systems über den Display abrufen können. Zusätzlich werden die Triangulationsresultate dargestellt. D/A-Wandler Das Modulationssignal aus der Multiplexierung der AntennenSignale liegt im hörbaren Bereich. Dies kann mit einem D/A-Wandler und einem Operationsverstärker auf einen Lautsprecher ausgegeben werden. 2.2.3 Schnittstellen und Bus-Systeme DCI-Interface Das DCI-Interface bezeichnet die elektronische Schnittstelle. User Interface Das User-Interface wird in diesem Entwicklungsschritt noch nicht genauer spezifiziert. Es wird aus den Erfahrungen der ersten Tests entwickelt. 9 KAPITEL 2. SYSTEM-SPEZIFIKATION SPI-Bus im Smart Antenna Module Der SPI-Bus im Smart Antenna Module wird nur eingesetzt, weil kein GPS-Modul mit einer I2 C-Schnittstelle gefunden wurde. Da das Receiver-Module das Smart-Antenna-Module mit I2 C ansteuert, wird eine zusätzliche I2 C-zu-SPI-Bridge benötigt. SPI-Bus im Receiver Module Sämtliche Funktionsblöcke innerhalb des ReceiverModules werden mit einem SPI-BUS-System angesteuert. Bei der Evaluation von Bauteilen konnten diverse Typen von Displays, A/D-Wandler und BusBrigdes mit SPI-Schnittstelle gefunden werden. Der DSP hat einen SPI-Stack integriert. 10 Kapitel 3 Pflichtenheft 3.1 Aufgabenstellung In einer vorher abgeschlossenen MSE-Projektarbeit 2 wurde ein Konzept zur Richtungsbestimmung von RF-Signalen entwickelt. Die Richtungsbestimmung erfolgt mit einem Pseudo-Doppler-Verfahren, das in einer vollständig digitalen Empfängeranordnung implementiert wurde. Mit dem Konzept wurde die Basis für ein Triangulationssystem geschaffen, das sich durch Präzision, Kompaktheit und Sparsamkeit auszeichnen soll. In dieser MSE-Master-Thesis soll nun ein mobiles Triangulations-System entwickelt und optimiert werden. In einem manövrierenden Fahrzeug sollen stationäre und bewegte RF-Sender lokalisiert werden. Das Triangulations-System soll in drei Schritten entwickelt werden. Diese beinhalten: 1. Erweiterung und Aufbau des Funktionsmusters des gesamten TriangulationsSystems aus dem Konzept der MSE-Projektarbeit 2: • Inbetriebnahme der bestehenden Hardware aus der MSE-Projektarbeit 2 • Erweiterung der Hardware mit der Smart-Antenna-Elektronik. Diese beinhaltet ein RF-Switch und Navigationsinstrumente (GPS, Erdmagnetfeldsensor) • Freifeldtests des Algorithmus zur Richtungsbestimmung aus der MSE-Projektarbeit 2. Die Tests sollen die Performance und Stabilität des Algorithmus aufzeigen • Optimierung der bestehenden Empfängeranordnung 2. Entwicklung und Optimierung von Triangulations-Algorithmen: • Erweiterung des bestehenden Pseudo-Doppler-Algorithmus zur Richtungsbestimmung auf einem mobilen Fahrzeug • Entwicklung eines Algorithmus zur Triangulation von stationären und mobilen RF-Sendern 11 KAPITEL 3. PFLICHTENHEFT • Simulation der entwickelten Triangulations-Algorithmen 3. Aufbau eines Funktionsmusters für erste Feldtests 3.2 3.2.1 Zielvorgaben Kernziele 1. Priorität: Erweiterung des Funktionsmusters • Design der Smart-Antenna-Elektronik. Diese beinhaltet einen RF-Switch mit 8 Antennen-Ports und ein PCB mit Sensoren zur Bestimmung der Position des Fahrzeuges • Parametrisierung und Inbetriebnahme des RF-Switchs • Inbetriebnahme der Sensoren zur Bestimmung der Position des Fahrzeuges 3.2.2 Kernziele 2. Priorität: Erweiterung des Funktionsmusters • Design der Empfänger-Anordnung auf ein PCB • Design eines Null-Serie-Prototypen mit User-Interface gemäss Spezifikation 3.2.3 Kernziele 1. Priorität: Inbetriebnahme MSE-Projektarbeit 2 • Erfolgreiche Inbetriebnahme der Empfängeranordnung aus der MSEProjektarbeit 2 • Durchführung qualitativer Freifeld-Tests mit dem Algorithmus zur Richtungsbestimmung aus der MSE-Projektarbeit 2 • Extraktion statistischer Parameter aus den Freifeld-Tests 3.2.4 Kernziele 1. Priorität: Triangulations-Algorithmen • Entwicklung von Algorithmen zur Triangulation von stationären Objekten • Entwicklung von Algorithmen zur Triangulation von manövrierenden Objekten • Simulation und Performance-Abschätzung der entwickelten Algorithmen 3.2.5 Kernziele 2. Priorität: Triangulations-Algorithmen • Entwicklung von Algorithmen zur Triangulation mehrerer stationärer Objekte • Entwicklung von Algorithmen zur Triangulation mehrerer manövrierender Objekte 12 3.3. BESTANDESAUFNAHME 3.2.6 Kernziele 1. Priorität: Implementation der Triangulation • Implementation der Algorithmen auf der Hardware des Empfängers • Durchführung qualitativer Freifeld-Tests mit der gesamten Anordnung in einem Fahrzeug 3.3 3.3.1 Bestandesaufnahme Vorarbeiten Die Master-Thesis basiert auf einer im Voraus abgeschlossen MSE-Projektarbeit «Doppler Radio Bearing System» vom 06.08.2010 [32]. Diese Projektarbeit wurde vom Autor selber durchgeführt. Weiter soll das Know-How des Labors im Bereich Software-Defined-Radio, Signalverarbeitung und Hochfrequenztechnik genutzt werden. 3.3.2 Infrastruktur Dem Projekt stehen sämtliche Ressourcen des BFH-TI-Standorts Tiergarten zur Verfügung. Der Arbeitsplatz befindet sich im ICT-Labor T205. Zur Infrastruktur gehören sämtliche Mess- und Hilfsgeräte der anderen Labors. Zusätzlich können Leiterplatten-Prototypen hausintern hergestellt werden. Mechanische Arbeiten können in der Werkstatt durchgeführt werden. 3.3.3 Personelle Ressourcen Zur technischen Unterstützung stehen während der Projektarbeit folgende Personen zur Verfügung: • Prof. Fritz Dellsperger, Thesis-Advisor; Tel. extern: +41 34 426 68 38 oder +41 79 641 35 27, Tel. intern: 66838; Mail: [email protected] • René Obi, Wissenschaftlicher Mitarbeiter; Tel. extern: +41 34 426 68 52, Tel. intern: 66852; Mail: [email protected] • Peter Hürlimann, Assistent; Tel. extern: +41 34 426 69 24, Tel. intern: 66924; Mail: [email protected] Weitere Personen können EKT-intern beigezogen werden. 3.3.4 Finanzielle Ressourcen Sämtliche Beschaffungen von Bauteilen und Leiterplatten werden vom «Allgemeinen Projektkonto 313000» abgebucht. Grössere finanzielle Auslagen müssen von Prof. Fritz Dellsperger bewillgt werden. 13 KAPITEL 3. PFLICHTENHEFT 3.3.5 Hardware Das Projekt benötigt die in der MSE-Projektarbeit 2 eingesetzte Empfängerstruktur. Somit werden keine weiteren Evaulation-Boards oder JTAG-Debugger benötigt. Zusätzliche Hardware wird während des Projekts entwickelt. Dies betrifft die Smart-Antenna-Elektronik und eventuelle Interfaces zum DSP-Board. 3.3.6 Software Die nachfolgende Software steht während der Thesis lizenziert zur Verfügung: • «Matlab 7.10.0 R2010a» von the «The MathWorks, Inc.» • «Advanced Design System 2009 Update 1» von «Agilent Technologies» • «Altium Designer Build 9.4.0.20159» von «Altium Inc.» • «Smith V 3.10» von «Bern University of Applied Sciences» • «Visual DSP++ 5.0 Update 9» von «Analog Devices, Inc.» Weitere lizenzierte und nicht aufgelistete Software steht zur Verfügung und muss beim IT-Dienst der BFH-TI bezogen werden. 3.3.7 Sorgfaltspflicht und Haftung Die Sorgfaltspflicht während der Thesis ist in der Studienvereinbarung zwischen dem Studenten und der Hochschule geregelt: Art. 6 Der Student verpflichtet sich die gebotene Wissenschaftlichkeit und Sorgfalt in der Durchführung der übertragenen Aufgaben walten zu lassen. Der Student bietet Gewähr für die fachgerechte Auswertung und Übertragung der Resultate, soweit ihm das möglich ist. Im Übrigen übernimmt der Student keine Sach- und Rechtsgewährung, insbesondere keine irgendwie geartete Haftung aus der Entwicklung und der allfälligen Herstellung von Produkten. 3.3.8 Erfindungen und gewerbliche Nutzungsrechte Die Nutzungsrechte der aus dieser Thesis entstandenen Arbeiten werden in der Studienvereinbarung zwischen dem Studenten und der Hochschule geregelt: Art. 7 Alle Ergebnisse aus der Thesis durch den Studenten gehören der BFHTI oder dem Projektpartner gemäss spezieller Regelung. Der Student nimmt zur Kenntnis, dass er keinerlei Eigentumsrechte an den gemeinsam erarbeiteten Ergebnissen und Resultaten hat. Art. 11 Mit der Promotion bleibt die Pflicht der Geheimhaltung für 5 Jahre über die Beendigung des Vertrages hinaus bestehen. 14 3.4. ZEIT-MANAGEMENT 3.4 3.4.1 Zeit-Management Arbeitsleistung und minimale Arbeitsdauer Die erwartete Arbeitsleistung für die Master-Thesis beträgt 900 Stunden. Die Arbeitsdauer wird aufgrund der Studienart (Sponsored-Master) auf ein Jahr ausgedehnt. 3.4.2 Abgabetermin Die Master-Thesis ist am Freitag, 05. August 2011, elektronisch dem MSESekretariat abzugeben ([email protected]). Weiter erhalten der Advisor Prof. Fritz Dellsperger ([email protected]) und der Experte Dr. Peter Schlatter ([email protected]) eine elektronische sowie eine ausgedruckte Version der Thesis. 15 KAPITEL 3. PFLICHTENHEFT 3.4.3 Zeitplan Abbildung 3.1: Zeitplan der Master-Thesis 16 3.4. ZEIT-MANAGEMENT 17 KAPITEL 3. PFLICHTENHEFT 18 Kapitel 4 Konzept 4.1 4.1.1 Pseudo-Doppler-Verfahren zur Richtungsbestimmung Grundprinzip Das klassische Beispiel einer Dopplerverschiebung ist der Ton eines vorbeifahrenden Autos. Die Frequenzverschiebung des Audio-Signals ensteht durch die räumliche Bewegung des Autos. Die Bewegung staucht resp. verbreitert (Auto nähert sich dem Beobachter resp. entfernt sich von ihm) die Periode der Audiowelle. Somit ist die Frequenz der Audiowelle um ∆ f angehoben resp. gesenkt worden. Derselbe Effekt wird erzeugt, wenn sich eine Antenne relativ zum Sender bewegt. Abbildung 4.1: Eine rotierende Antenne erzeugt einen sinusförmigen Frequenzhub Eine rotierende Antenne erzeugt einen sinusförmigen Frequenzhub. Die Frequenz des Hubs entspricht der räumlichen Rotationsfrequenz. Aufgrund der schnellen Rotationsfrequenz ist ein mechanischer Aufbau ausgeschlossen. Durch den Bau eines radial angeordneten Antennen-Arrays und einer elektronischen Umschaltung der Antennensignale kann auf einen mechanischen Aufbau verzichtet werden. Der Frequenzhub kann durch einen Frequenzmoduliertes Signal (FM)-Demodulator [29, Kap. 3.4.3] detektiert werden. Aus den Nulldurchgängen des demodulierten Signals kann auf den Winkel des einfallenden Signals geschlossen werden. 19 KAPITEL 4. KONZEPT 4.1.2 System-Blockschaltbild des Verfahrens RF Signal N Zero crossing detector FM demod Abbildung 4.2: Prinzipschaltbild des Doppler-Empfängers, Quelle: [2] Mit einem RF-Multiplexer werden die Antennen radial angesteuert. Die Rotationsfrequenz f rot wird im hörbaren Bereich gewählt. So kann das demodulierte Signal nebst der Bestimmung des Einfallswinkels auch gleich als Kontrollton ausgegeben werden. Nach der Multiplexierung wird das gewünschte Band herausgefiltert und verstärkt. Gleich danach tastet ein A/D-Wandler das Signal ab. Die Samplingrate des A/D-Wandlers wird so gewählt, dass durch Unterabtastung das Signal in eine Zwischenfrequenz gemischt wird. Der Bitstrom des A/D-Wandlers wird mit einem (engl.)Digital Down Converter (DDC) von der Zwischenfrequenz in die Nulllage gemischt und dezimiert. Das resultierende komplexe Signal wird mit einem FM-Diskriminator demoduliert und gefiltert. Das demodulierte Signal entspricht nun einem Sinus mit f y = f rot . 4.2 4.2.1 Digitale FM-Demodulation Blockschaltbild Die resultierenden Signale des Pseudo-Doppler-Verfahrens entsprechen einem frequenzmodulierten Signal. Das Trägersignal des Burst-Transmitters s (t) wird durch die räumliche, radiale Multiplexierung im Antennenarray moduliert (Siehe Kapitel 4.1). Die digitale Demodulation von FM-Signalen ist relativ einfach zu implementieren und hat gegenüber der analogen Demodulation einige Vorteile. Das System reagiert stabiler auf Temperatur- und Alterungsveränderungen. Die daraus enstehenden Abstimmungsprobleme fallen weg. Weiter kann die Demodulation flexibel den Bedürfnissen angepasst werden, ohne die (engl. )Digital Signal Processor (DSP)-Schaltung verändern zu müssen. Nachfolgend wird eine digitale Struktur zur FM-Demodulation nach Kammeyer [27] [28][29] beschrieben. 20 4.2. DIGITALE FM-DEMODULATION e− jω0 Ts k x FM (k ) xbb (k) N z −1 y (k) 1 q N xbb (k)2 + x̃bb (k)2 z −1 x̃bb (k) e− jω0 Ts k−π/2 Abbildung 4.3: Digitale FM-Demodulation mit einem Diskriminator Das FM-Signal wird nach der Signalvorverarbeitung (Filterung, Verstärkung) mit einem schnellen A/D-Wandler abgetastet. Das abgetastete Signal x FM (k ) wird durch den DDC in die Nulllage gemischt. Der DDC erzeugt ein komplexes Signal mit Realteil xbb (t) und Imaginärteil x̃bb (t). Da die Datenrate nach der Dezimation im DDC tief ist, kann die AM-Unterdrückung und der FMDemodulator ohne Weiteres in einem µC integriert werden. 4.2.2 Mathematische Herleitung Die vollständige, mathematische Herleitung der digitalen Frequenzmodulation kann in [28] nachgeschlagen werden. Ein kontinuierliches, frequenzmoduliertes Signal mit der Trägerfrequenz f 0 kann folgendermassen beschrieben werden: Z t x FM (t) = cos 2π f 0 t + ∆Ω s NF (τ ) dτ (4.1) −∞ s NF (t) entspricht dem Modulationssignal. In unserem Falle ist das Modulationssignal ein Cosinus mit einer Kreisfrequenz, die von der Kreisfrequenz der räumlichen, radialen Multiplexierung abhängt. Die Amplitude von s NF (t) wird auf 1 normiert. ∆Ω ist der Phasenhub der Modulation. Nun wird x FM (t) diskret mit einer Samplingrate von f s = T1s abgetastet. k entspricht den diskreten Abtastzeitpunkten k ∈ N0+ . Z Ts k (4.2) x FM (k ) = cos 2π f 0 Ts k + ∆Ω s NF (τ ) dτ −∞ Das abgetastete Signal wird dem System zugeführt. Im DDC wird das Signal x FM (k ) mit einer Quadraturmischung in das komplexe Basisband xbb (k ) heruntergemischt. Anschliessend durchquert das Signal ein Tiefpassfilter, um die doppelte Trägerfrequenz zu unterdrücken. 21 arcsin (k) w (k) KAPITEL 4. KONZEPT xbb (k) = xbb (k ) + j · x̃bb (k ) Z Ts k Z xbb (k ) = cos ∆Ω s NF (τ ) dτ + j · sin ∆Ω 0 Ts k 0 s NF (τ ) dτ (4.3) Darauf wird das komplexe Signal normiert, sodass: xbb (k ) x̃bb (k ) q q + j = 1 = x k ( ) bb 2 2 xbb (k )2 + x̃bb (k )2 xbb (k ) + x̃bb (k ) (4.4) Die normierten Signale xbb und x̃bb werden auf das Multiplikationsnetzwerk geführt. Das Netzwerk bildet als Lösung: y (k ) = xbb (k − 1) x̃bb (k ) − xbb (k ) x̃bb (k − 1) Z Ts k s NF (τ ) dτ y (k ) = sin ∆Ω Ts (k −1) (4.5) Auf die Herleitung der Formel 4.5 wurde verzichtet und kann vom Leser in [28] gefunden werden. Das demodulierte Signal kann durch Bildung des Arcus Sinus aus y(t) gewonnen werden: Z w (k ) = ∆Ω Ts k Ts (k−1) s NF (τ ) dτ (4.6) Das Integral kann mit einer genügend hohen Sampling-Rate von f s > 4∆F diskretisiert werden. ∆F bezeichnet den Frequenzhub. Aus dieser Vereinfachung entsteht: Z w (k ) = ∆Ω Ts k Ts (k −1) s NF (τ ) dτ ≈ ∆ΩTs · s NF (k ) 22 (4.7) 4.3. DEFINITION DES MULTIRATEN-SYSTEMS 4.3 Definition des Multiraten-Systems Die Empfängeranordnung wird als „Software Defined Radio “ realisiert. Analoge Mischerstufen werden nicht eingesetzt. Sämtliche Mischvorgänge werden im digitalen System durchgeführt. Durch Unterabtasten wird das bandbegrenzte Signal in die Zwischen-Frequenz (ZF)-Lage heruntergemischt. Die Träger-Selektion erfolgt im DDC. Die Auflösung des abgeschätzten Einfallswinkels ist abhängig von der Anzahl Abtastungen (resp. von der eingesetzten Abtastfrequenz) pro Rotation. Somit bestimmt die konfigurierbare Auflösung die Abtastfrequenz des A/DWandlers. In der Tabelle 4.1 können gängige Konfigurationen des DDCs und des A/D-Wandlers abgelesen werden. 8x fc1 f rot fs1 fc2 IQ N fLO N FM demod fs2 f rot Abbildung 4.4: Frequenzplan des Empfängers P[] 0 20 Kehrlage fs@ 40,8 f’s 140 f’’’ s @ 161.28 RF-Band f [MHz] Abbildung 4.5: Spektrum im Empfänger mit f s = 40.8 MHz. Blau: Mischung des RF-Nutbandes durch Unterabtastung, Rot: Mischung des unterabgetasteten Signals durch die I/Q-Demodulation im DDC Frequenz und Nutzband des RF-Bursts: f c1 Der RF-Burst besteht aus einem reinen Trägersignal. Die Frequenz des Signals kann innerhalb des Nutzbandes von 140 MHz bis 160 MHz eingestellt werden. 23 KAPITEL 4. KONZEPT Rotationsfrequenz f rot der Multiplexierung Das während der Multiplexierung entstehende frequenzmodulierte Signal wird so gewählt, dass sich das Modulations-Sgnal im hörbaren Bereich befindet. Das Modulations-Signal wird durch die räumliche Rotation der Multiplexierung erzeugt. Damit das Signal zusätzlich ohne weitere Signalverarbeitung akustisch ausgegeben werden kann, wird es auf folgende Frequenz definiert: f rot = 2 kHz (4.8) Bestimmung der Datenrate f s2 aus der Winkelauflösung Durch die Multiplexierung entsteht ein sinusförmiger Frequenzhub mit einer vollständigen Periode pro Rotation. Mit der Phase des Sinus kann direkt auf die Einfallsrichtung des RF-Signals geschlossen werden. Die dezimierte Abtastrate f s2 bestimmt nun, wie viele Samples pro Periode zur Detektion der Phase zur Verfügung stehen. Die maximale Winkelauflösung q über den gesamten Azimut kann folgendermassen bestimmt werden: 360 · f rot f s2 q = [deg] q = (4.9) Somit kann aus der gewünschten Winkelauflösung q die Datenrate f s2 bestimmt werden: 360 · f rot f s2 = (4.10) q Herleitung des Dezimationsfaktors N und der Abtastfrequenz f s1 des A/DWandlers Der Dezimationsfaktor N muss so gewählt werden, dass die Abtastfrequenz f s1 des A/D-Wandlers über 40 MHz und unter der maximal möglichen Abtastfrequenz des A/D-Wandlers liegt. Liegt f s1 unter 40 MHz, so wird das RFNutzband verkleinert. Es entstehen Aliasing-Fehler. Die Abtastrate des A/DWandlers kann folgendermassen bestimmt werden: f s1 = N · f s2 (4.11) Die nachfolgende Tabelle listet einige mögliche Konfigurationen mit der jeweiligen Winkelauflösung auf: 24 4.3. DEFINITION DES MULTIRATEN-SYSTEMS q fs2 N fs1 1◦ 2◦ 3◦ 4◦ 720 kHz 360 kHz 240 kHz 180 kHz 56 120 170 224 40.32 MHz 43.2 MHz 40.8 MHz 40.32 MHz Tabelle 4.1: Mögliche Konfigurationen der Abtastraten und des Dezimationsfaktors Mischung des RF-Nutzbandes in die ZF-Lage Das RF-Signal mit Frequenzen f c1 von 140 MHz bis 160 MHz wird mit einer Frequenz abgetastet, die das Nypquist-Theorem verletzt. Durch die geschickte Wahl von f c1 kann das RF-Signal ohne Informationsverlust in das Basisband gemischt werden. Der Bereich der möglichen Abtastfrequenzen [ f smin f smax ] kann folgendermassen bestimmt werden: 2 f max m+1 2 f min = m = höchste Frequenz im Nutzband f smin = f smax f max f min = tiefste Frequenz im Nutzband (4.12) m fc1min fc1max Bemerkungen 0 1 2 3 4 5 6 7 320 MHz 160 MHz 106.66 MHz 80 MHz 64 MHz 53 MHz 45 MHz 40 MHz ∞ 280 MHz 140 MHz 93.333 MHz 70 MHz 56 MHz 46.666 MHz 40 MHz Regellage, Nyquistfrequenz Kehrlage Regellage Kehrlage Regellage Kehrlage Regellage Kehrlage Tabelle 4.2: Mögliche Abtastfrequenzen zur Unterabtastung des Signals f c1 . Wird eine Abtastfrequenz f s1 ausserhalb dieser Bereiche benutzt, so wird das Nutzband geschmälert. Die Frequenz wird vorzugsweise mit m = 6 und m = 7 gewählt. Dies verkleinert die zu bearbeitende Datenrate und die Verlustleistung der gesamten Anordnung nimmt ab. 25 KAPITEL 4. KONZEPT Trägerselektion und Bestimmung der Mischfrequenz f LO im DDC Die Trägerselektion wird mit der I/Q-Demodulation des DDC durchgeführt. Die Frequenz f c2 des unterabgetasteten Trägers entspricht auch gerade der Mischfrequenz f LO des I/Q-Demodulators: f LO = f c2 = 4 · f s1 − f c2 4.4 4.4.1 (4.13) Modellierung des Antennen-Arrays Physikalisches Modell 10 0 9 8 1 7 7 6 5 4 3 2 1 0R 2 −10 −9 −8 −7 −6 −5 −4 −3 −2 −1 0 −1 ϕs 1 2 3 4 5 6 7 8 9 6 10 −2 −3 −4 −5 −6 3 −7 5 −8 −9 −10 4 Abbildung 4.6: Kreisförmiges Antennenarray mit 8 Antennen und einem Durchmesser von 10 cm Die Antennenelemente im Array sind radial angeordnet. Der Radius des Antennenarrays ist skalierbar, wobei der Abstand zwischen benachbarten Antennen λ2 nicht übersteigen soll. Ist der Abstand grösser, so enstehen Mehrdeutigkeiten bei der Interpretation des demodulierten Signals. Der Abstand hat einen proportionalen Einfluss auf den Frequenzhub des Dopplershifts und daraus resultierend auch auf die Amplitude des demodulierten Signals. Die mittlere Antenne repräsentiert eine imaginäre Antenne R, aus deren Sicht das mathematische Modell der Systemantwort hergeleitet wird. Sie existiert im wirklichen Aufbau nicht. 26 4.4. MODELLIERUNG DES ANTENNEN-ARRAYS Der Einfallswinkel wird relativ zur vertikalen Achse berechnet und ist im Uhrzeigersinn negativ. 4.4.2 Mathematisches Modell Die Phasen der Signale zwischen der imaginären Antenne R in der Mitte des Arrays und der im Kreis liegenden Antennen ist abhängig vom Einfallswinkel des Signals und der Position der Antennenelemente. Das induzierte Signal der Antenne R wird folgendermassen definiert: x R (t) = e j · 2π f c t (4.14) Dieses Signal wird nun als Referenzsignal mit Frequenz f c angenommen und ist nur von der Zeit abhängig. Die induzierten Signale der Antennen i enthalten eine ortsbedingte Phasenverschiebung. Die Systemantwort jeder einzelnen Antenne i ist gegeben durch: x (t, i, ϕs ) = x R (t) · m (i, ϕs ) 2πr 2πi m (i, ϕ ) = e j λ cos(− Na + ϕs ) s i = Antenne i [0 ... 8] ϕs = Einfallswinkel [ rad] Na = Anzahl Antennenelemente r = Radius [ m] λ = Wellenlänge des Signals [ m] (4.15) Wobei m (i, ϕs ) die vom Ort der Antenne i abhängige Phasenverschiebung erzeugt. 4.4.3 Phasenhub im Antennen-Array Die radiale Multiplexierung der Antennen-Signale innerhalb des Antennenarrays erzeugt einen sinusförmigen Phasenhub. Der Durchmesser und die Anzahl Antennen der Anordnung wirken sich direkt auf den maximalen Phasenhub des multiplexierten FM-Signals aus. Der Phasenhub muss genügend gross sein, um eine PM-Demodulation durchführen zu können. Der maximale Phasenhub eines bestimmten Durchmessers entsteht, wenn die Ausbreitungsrichtung der elektromagnetischen Welle zweier benachbarter Antennen schneidet. Die beiden Antennen spannen den grössten Gangunterschied im gesamten Array auf (Siehe Abb. 4.7). Der radiale Winkel ϕs zwischen zwei Antennen ist: ϕs = 2π , Na wobei Na die gesamte Anzahl Antennen ist. 27 (4.16) KAPITEL 4. KONZEPT Die Distanz zwischen den beiden Antennen ~ Pi und ~ Pi+1 beträgt nun: r r · cos ( ϕs ) ~ − d = 0 r · sin ( ϕs ) q ~ r2 sin2 ( ϕs ) + r2 − 2 · r2 cos ( ϕs ) + r2 cos2 ( ϕs ) d = (4.17) ~Pi zu ~Pi+1 umgeschaltet, so entsteht ein Wird das Antennensignal von Antenne ~ Phasensprung. Aus der Distanz d kann direkt auf den resultierenden maximalen Phasensprung des RF-Signals geschlossen werden: ~ d = δ·λ 2π q δ = 2π · λ r δ (r, Na ) = 2π · r2 sin2 ( ϕs ) + r2 − 2 · r2 cos ( ϕs ) + r2 cos2 ( ϕs ) r2 sin2 2π Na + r2 − 2 · r2 cos 2π Na + r2 cos2 λ 2π Na (4.18) 10 0 9 8 1 7 7 Pi ~+ 1 6 5 |d~| 4 3 2 1 0R 2 −10 −9 −8 −7 −6 −5 −4 −3 −2 −1 0 −1 r ϕs 1 2 3 4 5 6 7 8 9 6 10 ~Pi −2 −3 −4 −5 −6 3 −7 5 −8 −9 −10 4 Abbildung 4.7: Berechnung des maximalen Phasenhubs in Abhängigkeit der Anzahl Antennen und des Radius 28 4.5. PEILUNG VON BEWEGLICHEN TARGETS 4.5 4.5.1 Peilung von beweglichen Targets Wissenschaftlicher Stand In diversen Studien wurden in den letzten Jahren Algorithmen zur Peilung von beweglichen RF-Sendern (nachfolgend Target genannt) vorgestellt [6][7][8][9]. Die meisten Algorithmen gehen von einer aktiven Peilung (Radar) mit stationärem Peilsystem aus. Eine aktive Peilung schätzt die Position und die Geschwindigkeit eines Zieles mit Hilfe von Pegeln und Frequenzverschiebungen im ausgesandten Signal ab. Eine passive Peilung beinhaltet nur die Abschätzung des Einfallswinkels des ausgesendeten RF-Signals. Aus mehreren Peil-Positionen wird die Position und der kinematische Zustand eines RF-Senders bestimmt. Diese Art von Peilung wird (engl.) Bearing Only Tracking (BOT) genannt. Dabei kann die Distanz zwischen dem Peil-System (nachfolgend Beobachter genannt) und dem Target nicht direkt beobachtet werden und muss durch statistische Methoden abgeschätzt werden. Die Abschätzung des Abstandes zwischen dem Target und dem Beobachter ist ein nichtlineares Problem und Gegenstand diverser BOT-Studien. Die meisten der propagierten Algorithmen können bei ungünstigen Peil-Szenarien stark divergieren [10]. Seit 20 Jahren werden in diversen Paper [19][21][22] Monte-Carlo-Methoden zur Lösung des nichtlinearen Problems vorgeschlagen. Sie verwenden dazu meist diverse und erweiteterte Formen von Partikel- , Kalman- oder Least-Square-Filter [8][9]. Einige Publikationen behandeln die kinematische Bewegungsanalyse zur Bestimmung der Trajektorie mit verrauschten Sensor-Werten [11][15][16][17][18]. Ist das ausgesandte RF-Signal des Targets schmalbandig, so kann zusätzlich die Frequenz und dessen Doppler-Frequenzverschiebung bestimmt werden [6][7]. Diese Form von Peilung wird Doppler Bearing Tracking (DBT) genannt. Die Doppler-Frequenzverschiebung liefert weitere Informationen zur Trajketorie des Targets. Dies ist der entscheidende Vorteil von DBT gegenüber BOT. Die meisten Studien verwenden die aus dem Doppler-Shift gewonnene, zusätzliche Information zur Bestimmung des kinematischen Zustandes des Targets nicht. Bei beiden Peil-Ansätzen (BOT, DBT) wird angenommen, dass die Ausbreitungsgeschwindigkeit des elektromagnetischen Signals wesentlich höher ist als die Geschwindigkeit des Targets. Soweit darf angenommen werden, dass sich das Target während der Dauer der Übertragung des elektromagnetischen Signals an der gleichen Position befindet. Einige praktische Beispiele zeigen, dass diese Vereinfachung zu grösseren Fehlern führen kann. So ist z.B. bei Unterwasser-Sonar die Phasengeschwindigkeit des Radar-Signals relativ langsam. Die längere Ausbreitungszeit erzeugt einen Fehler zwischen der geschätzten und der aktuellen Position des Peil-Systems. Die Publikation [6] beschreibt Algorithmen zur Minimierung des Fehlers. Da in unserem Projekt die Ausbreitungsgeschwindigkeit der RF-Signale genügend schnell ist, kann angenommen werden, dass kein Fehler durch die Ausbreitungszeit entsteht. 29 KAPITEL 4. KONZEPT Die Fallstudie zum BOT-Problem von B. Ristic et. al. in [9] soll als Grundlage zur Entwicklung des Peilungs-Algorithmus dienen. Es handelt sich um abgeänderte Formen von Bootstrap- und Multiple-Model-Partikel-Filter, welche speziell an das BOT-Problem angepasst wurden. 4.5.2 Das BOT-Problem Der Empfänger schätzt durch eine Reihe von Messwerten eines einzelnen Sensors den kinematische Zustand xtk eines zu triangulierenden Targets ab. In unserem Falle wird durch den abgeschätzten Winkel die Trajektorie des Targets abgeschätzt. Der Beobachter und das Target befinden sich in Bewegung und können theoretisch jedes beliebige Manöver durchführen. y [m] 90 80 70 60 50 40 ϕ s ( t = 0) ϕ s ( t = 1) 30 t0 t1 20 10 0 0 10 20 30 40 50 60 70 80 90 x [m] Abbildung 4.8: Beispiel eines Tracking-Szenarios. Zum Zeitpunkt t0 misst der Beobachter (rot) den Winkel ϕ0 in Richtung Target (blau). Zum nächsten Messzeitpunkt wird ϕ1 gemessen (u.s.w.) Die nachfolgenden Paragraphen basieren auf dem Buch von B. Ristic et. al. [9] und wurden weiter ergänzt. 30 4.5. PEILUNG VON BEWEGLICHEN TARGETS Der relative, kinematische Zustandsvektor Betrachten wir nun das Szenario der Figur 4.8. Beide Objekte bewegen sich in der X-Y-Ebene. Der Beobachter versucht mit periodisch wiederholten Messungen den Einfallswinkel ϕs des RF-Signals vom Target abzuschätzen. Der Beobachter versucht nun aus den gewonnenen Daten den kinematischen Zustand xtk des Targets zu bestimmen. Der Beobachter selber verändert seinen kinematischen Zustand xok kontinuierlich. Sein eigener Zustand ist bekannt. Der kinematische Zustand des Targets wird in kartesischen Koordinaten folgendermassen definiert: t xk ytk xtk = (4.19) ẋ t k ẏtk zusammengesetzt aus der Position xkt und ytk und den Geschwindigkeiten ẋkt und ẏtk . Analog dazu wird der kinematische Zustand des Beobachters definiert: o xk yok xok = (4.20) ẋ o k ẏok Der kinematische Zustand des Beobachters ist bekannt, somit kann der relative Zustandsvektor definiert werden: xk yk (4.21) xk = xtk − xkk = ẋk . ẏk Der relative Zustandsvektor beschreibt den relativen Abstand und die relative Geschwindigkeit zwischen Beobachter und Target. Die Beobachter-Gleichung Der relative Zustandsvektor kann nicht direkt gemessen werden und wird aus dem Resultat der Beboachter-Gleichung abgeschätzt. zk ist der gemessene Winkel zum Zeitpunkt k. z k = h ( xk ) + wk h (xk ) = atan2 ry (k ) , r x (k ) (4.22) atan2 ist die 4-Quadranten-Inverse-Tangens-Funktion (Siehe Matlab Ref. der Funktion atan2). Der Wertebereich des atan2 ist im Vergleich zum gewöhnli chen atan nicht beschränkt auf −2π , π2 . 31 KAPITEL 4. KONZEPT y arctan x y arctan x + π y arctan x − π atan2 ( x, y) = + π2 − π2 0 für x für x für x für x für x für x >0 < 0, y ≥ 0 < 0, y < 0 = 0, y > 0 = 0, y < 0 = 0, y = 0 (4.23) Es wird angenommen, dass die Winkelinformation durch weisses, zentriertes Rauschen wk mit einer Varianz von σ2 gestört wird. Die Varianz wird als bekannt angenommen und kann aus Tests bestimmt werden. Die Zustandsgleichung Sämtliche Bewegungen des Targets können mit Abbildungsmatrizen F beschrieben werden. Die Matrix F ist abhängig vom gewählten Bewegungsmodell. Die optimale Wahl des Bewegungsmodells muss während der Peilung abgeschätzt werden. Die iterative Bestimmung des nachfolgenden Zustandsvektors wird mit der Evolutionsgleichung des Targets beschrieben: xtk+1 = Fxtk (4.24) Die Publikationen [16][19][20] und weitere schlagen Bewegungsmodelle vor, die für die Matrix F eingesetzt werden können. Die Unsicherheit bei der Bestimmung des Zustandsvektors wird bevorzugt mit einem Beschleunigungsmodell mit weissem Rauschen modelliert [12][19]. Die Gleichung 4.24 wird mit dem Rauschvektor vk erweitert: xtk+1 = Fxtk + Γvk (4.25) vk ∼ N (0, Q) Das Beschleunigungsmodell beschreibt den nächsten Zustand des Target- Zustandsvektors mit einem normalverteilten Rauschanteil vk . Die Intensität des Rauschens ist σ. Die Matrix Q ist wie die Matrix F abhängig vom gewählten Bewegungsmodell (siehe Kapitel 4.5.2f). Die Publikationen [16][19][20] und weitere schlagen Bewegungsmodelle vor, die hier eingesetzt werden können. Analog dazu führen wir die Evolutionsgleichung des Beobachters ein: xok+1 = Fxok − uk . (4.26) uk steht für die gesteuerte kinematische Veränderung des Fahrzeuges während der Zeitperiode k bis k + 1. Werden die Gleichungen 4.26 und 4.26 in die Gleichung 4.21 eingesetzt, so folgt die Zustandsgleichung: 32 4.5. PEILUNG VON BEWEGLICHEN TARGETS xk+1 = Fxk + uk + Γvk (4.27) Die Gleichungen 4.23 und 4.27 definieren das vollständige Peilungs-Problem. Der Leser erkennt, dass es sich hier um ein hochgradig nichtlineares Problem handelt. Der zu bestimmende kinematische Zustandsvektor ist nicht direkt beobachtbar und muss mit zugehörigen Messungen und dem letzten Zustand des Vektors abgeschätzt werden. Theoretische Lösung des BOT-Problems Der wahrscheinlichste Zustand des relativen kinematischen Zustandsvektors xk zum Zeitpunkt k wird aus den vorhandenen Messungen Zk = {zi ; i = 1, ..., k } abgeschätzt. Dabei wird eine gefilterte Lösung gesucht. Nach jeder Messung wird rekursiv die a-posteriori-Wahrscheinlichkeitsdichte des nächsten kinematischen Zustandes abgeschätzt: p (xk |Zk ) (4.28) Die a-posteriori-Wahrscheinlichkeitsdichte kann durch zwei Schritte abgeschätzt werden: 1. Vorhersage: Zuerst wird aus der letzten Messung zk−1 und dem letzten Zustand des kinematischen Zustandsvektors xk−1 die Wahrscheinlichkeitsdichte des nächsten Zustandes bestimmt. Nach Chapman-Kolmogorov kann die Wahrscheinlichkeitsdichte des Zustandsvektors folgendermassen bestimmt werden: p ( x k | Z k −1 ) = Z p (xk |xk−1 ) p (xk−1 |Zk−1 ) dxk−1 . (4.29) 2. Update: Ist eine neue Messung erhältlich, so wird die im Voraus berechnete Wahrscheinlichkeitsdichte mit der Bayes-Regel neu bestimmt: p (xk |Zk ) = p ( x k | z k , Z k −1 ) p ( z k | x k , Z k −1 ) p ( x k | Z k −1 ) = p ( z k | Z k −1 ) p ( z k | x k ) p ( x k | Z k −1 ) = . p ( z k | Z k −1 ) (4.30) wobei es sich bei p (zk |Zk−1 ) um eine Normalisierungskonstante handelt: p ( z k | Z k −1 ) = Z p (zk |xk ) p (xk |Zk−1 ) dxk . (4.31) p (zk |xk ) ist durch die Beobachter-Gleichung und durch die statistische Eigenschaft wk definiert. 33 KAPITEL 4. KONZEPT Aus den Gleichungen 4.30 und 4.31 kann nun die optimalste Lösung des BOTProblems bestimmt werden. Die Abschätzung des kinematischen Zustandsvektors erzeugt den kleinsten Fehler beim Maximum der Dichtefunktion: x̂k|k = E{xk |Zk } = Z xk · p (xk |Zk ) dxk x̂k|k = max{ p (xk |Zk ) } (4.32) Die Zustandsgleichung im nichtmanövrierenden Fall Im nichtmanövrierenden Fall bewegt sich das Target nicht oder mit konstanter Geschwindigkeit. Der Beobachter befindet sich in Bewegung. Die Matrizen F und Γ der Zustandsgleichung 4.27 haben im nichtmanövrierenden Fall folgende Form: 1 0 T 0 0 1 0 T F= (4.33) 0 0 1 0 0 0 0 1 und T2 2 Γ= 0 T 0 0 T2 2 . 0 T Dabei definiert T die Zeit zwischen zwei Messungen. Die Bewegung des Beobachters wird folgendermassen approximiert: o r x (k + 1) − r ox (k) − T · vox (k ) ryo (k + 1) − ryo (k ) − T · voy (k ) . uk = vox (k + 1) − vox (k ) o o v y ( k + 1) − v y ( k ) (4.34) (4.35) Die Zustandsgleichung im manövrierenden Fall Im manövrierenden Fall ist die Geschwindigkeit des Beobachters und des Targets nicht konstant. Sämtliche Manöver werden in drei kinematische Regimes aufgeteilt: (engl.) Constant Velocity (CV), (engl.) Constant Anticlockwise Turn (CT) und (engl.) Constant Clockwise Turn (CCT). Wir nehmen an, dass das Ziel zwischen zwei Messungen eine Bewegung in einem dieser Regimes durchführt. Wir definieren nun die Gesamtheit aller Regimes mit S = {1, 2, 3} und die Regime-Variable rk während der Periode (k − 1, k ]. Die Zustandsgleichung 4.27 wird nun erweitert: xk+1 = f xk , xok , xok+1 , rk+1 + Γvk f xk , xok , xok+1 , rk+1 = F(rk+1 ) (xk ) · (xk + xok ) − xok+1 34 (4.36) 4.5. PEILUNG VON BEWEGLICHEN TARGETS F(rk+1 ) (xk ) ist die vom Regime abhängige Transition-Matrix: F1 (xk ) definiert die zum Regime CV zugehörige Matrix 1 0 F1 ( x k ) = 0 0 0 T 0 1 0 T . 0 1 0 0 0 1 (4.37) F2 (xk ) definiert die zum Regime CT zugehörige Matrix 1 0 F2 ( x k ) = 0 1 0 0 0 0 mit sin(Ωk T ) Ωk (1−cos(Ωk T )) Ωk cos (Ωk T ) sin (Ωk T ) − (1−cosΩ(kΩk T )) sin(Ωk T ) Ωk − sin (Ωk T ) cos (Ωk T ) am 2 . 2 ẋk + ẋko + ẏk + ẏok Ω= q (4.38) (4.39) F3 (xk ) definiert die zum Regime CCT zugehörige Matrix 1 0 F3 ( x k ) = 0 1 0 0 0 0 mit Ω = −q sin(Ωk T ) Ωk (1−cos(Ωk T )) Ωk cos (Ωk T ) sin (Ωk T ) − (1−cosΩ(kΩk T )) sin(Ωk T ) Ωk − sin (Ωk T ) cos (Ωk T ) am 2 . 2 ẋk + ẋko + ẏk + ẏok (4.40) (4.41) am ist die für das Target typische Beschleunigung. Der relative Zustandsvektor wird nun mit der Regime-Variablen rk erweitert: T yk = xkT , rk (4.42) Die Lösung des BOT-Problems im manövrierenden Fall bedingt die Abschätzung des erweiterten Zustandsvektors yk . Normalerweise beschränken sich die Algorithmen auf die Bestimmung von x̂ = E (xk |Zk ) und die Bestimmung der Wahrscheinlichkeit eines Modes bei einem gegebenen Einfallswinkel P (rk = {1, 2, 3}|Zk ). 4.5.3 Generisches Partikel-Filter zur Lösung des BOT-Problems Die rekursive Abschätzung der Zustände mit Hilfe einer linearen Beboachterund Zustandsgleichung kann mit optimalen Algorithmen (Kalman-Filter, GridBased-Methoden [9]) erfolgen. Sowohl die Beobachter- als auch die Zustands35 KAPITEL 4. KONZEPT gleichung (Gleichungen 4.23 und 4.26) sind beim BOT-Problem nichtlinear, somit können sie zu dessen Lösung nicht angewendet werden. Die Partikel-Filter gehören zur Klasse der suboptimalen, statistischen Filter. Sie approximieren mit einer endlichen Anzahl von gewichteten Punkten (oder Partikel) eine Dichtefunktion. Je mehr gewichtete Punkte eingesetzt werden, desto genauer wird die Approximation. Im Falle des BOT-Problems repräsentieren die Partikel Zustände des relativen kinematischen Zustandsvektors. Monte-Carlo-Integration als Grundlage des Partikel-Filters Monte-Carlo-Methoden zur Berechnung eines mehrdimensionalen Integrals [23] versuchen das Argument des Integral I= Z g (x) dx (4.43) so zu faktorisieren, dass der Teil π ( x ) als Wahrscheinlichkeitsdichte betrachtet werden kann: g (x) = f (x) · π (x) . (4.44) Die Wahrscheinlichkeitsdichte weist folgende Eigenschaften auf: π (x) ≥ 0 Z π (x) dx = 1. (4.45) Werden nun N 1 Partikel {xi , i = 1, ..., N } eingeführt, die gemäss π ( x ) verteilt sind, so kann das Integral 4.43 beliebig genau approximiert werden: I= Z f (x) · π (x) dx ≈ 1 N N ∑f xi (4.46) i =1 Importance Sampling Nun soll das Integral 4.43 direkt aus den Gewichten der Partikel approximiert werden können. Die Gewichte der Partikel werden aus der Wahrscheinlichkeitsdichte π (x) erzeugt («sampled»). Ist π (x) nicht bekannt oder dessen Berechnung sehr rechenintensiv, so kann aus einer zu π (x) ähnliche Verteilung q (x) dasselbe Integral approximiert werden, sofern die Gewichte richtig normalisiert werden. Die Fachliteratur beschreibt die Dichte q (x) als «Importance Density» [9]. Die Dichte π (x) beschreibt im BOT-Problem die berechnete a-posteriori-Wahrscheinlichkeitsdichte. Die Dichte q (x) beschreibt die «Importance-Density», die bei erweiterten Partikel-Filter zur Beschreibung von zusätzlichen Wahrscheinlichkeitsdichten benötigt wird (siehe z.B. Kap. 4.5.5). Das Integral 4.46 wird umgeschrieben: I= Z f (x) · π (x) dx = 36 Z f (x) π (x) dx q (x) (4.47) 4.5. PEILUNG VON BEWEGLICHEN TARGETS Die Monte-Carlo-Integration kann somit umgeschrieben werden: I ≈ w̃ xi = 1 N N ∑f xi w̃ xi i =1 π xi q ( xi ) (4.48) w̃ xi werden als Gewichte oder «Importance Weights» bezeichnet. Ist die Wahrscheinlichkeitsdichte π (x) unbekannt, so werden die Gewichte folgendermassen normalisiert: N 1 i i N i N ∑i =1 f x w̃ x I≈ = f x w xi , (4.49) ∑ N 1 i) w̃ x ( i =1 N ∑ i =1 wobei die normalisierten «importance weights» gegeben sind durch: w̃ xi w xi = (4.50) ∑iN=1 w̃ (xi ) Sequential Importance Sampling Die meisten Partikel-Filter basieren auf einer rekursiven Erzeugung und Gewichtung von Partikeln. Mit zufällig erzeugten und gewichteten Partikeln wird die a-posteriori-Wahrscheinlichkeitsdichte des Zustandsvektors eines nichtlinearen Systems approximiert. Daraus können Parameter, wie der Erwartungswert, das Konfidenzintervall etc abgeschätzt werden. Die Sequenz der Zustandsvektoren bis zum Zeitpunkt k wird als Xk = { Xi ; i = 1, ..., k } definiert. Die Sequenz aller Messungen Zk wurde im vorherigen Kapitel bereits eingeführt. Die a-posteriori-Wahrscheinlichkeitsdichte p (Xk |Zk ) und die marginale a-posteriori-Wahrscheinlichkeitsdichte p (xk |Zk ) der letzten Messung wurde mit der Formel 4.28 beschrieben. Nun werden N zufällig verteilte und gewichtete Partikel eingeführt. Das Set der Partikel wird folgendermassen definiert: {Xik , wik }iN=1 (4.51) Die a-posteriori-Wahrscheinlichkeitsdichte kann nun mit Hilfe der Partikel approximiert werden: N p (Xk |Zk ) = ∑ wik δ Xk − Xik (4.52) i =1 Aus der Formel 4.52 ist ersichtlich, dass die Wahrscheinlichkeit des Zustandsvektors an der Stelle Xk bei gegebener Messung Zk gerade der Summe der Gewichte sämtlicher Partikel an derselben Stelle entspricht. δ ist die DiracFunktion. Die Gewichte wik werden mit der im vorherigen Abschnitt beschriebenen «Importance Sampling»-Methode berechnet und folgen der Proportionalität: 37 KAPITEL 4. KONZEPT wik ∝ p Xik |Zk q Xik |Zk . (4.53) Zum Zeitpunkt k − 1 sind die Samples nach der Wahrscheinlichkeitsdichte p Xik−1 |Zk−1 verteilt. Ist die nächste Messung zk bekannt, so soll die Wahr scheinlichkeitsdichte p Xik |Zk zum Zeitpunkt k approximiert werden. Die Gewichte der Partikel zum Zeitpunkt k − 1 werden für den Zeitpunkt k neu berechnet: i p xi | xi p z | x k k k k −1 wik = wik−1 (4.54) q xik |Xik−1 , Zk Die Herleitung der Gleichung wird an dieser Stelle nicht behandelt und kann in [9, Eq. 3.12-3.15] nachvollzogen werden. Oft ist die «Importance-Density» nur abhängig vom letzten Zustand des Zu- standvektors xik und von der aktuellen Messung zk . So kann q xik |Xik−1 , Zk vereinfacht werden zu: q xik |Xik−1 , Zk = q xik |xik−1 , zk (4.55) Dies bedeutet, dass die Geschichte des Zustandsvektors und der Messung bis zum Zeitpunkt k = 1 nicht gespeichert werden muss. Degeneration und Resampling Wird das «Sequential Importance Sampling» merhmals durchgeführt, so explodiert die Varianz der «Importance Density». Das optimalste Partikel vergrössert dessen Gewicht; die Gewichte sämtlicher anderer Partikel werden verschwindend klein. Der Informationsgehalt der Partikel nimmt ab. Ein Mass für die effektive Anzahl informationstragender Partikel ist nach [9]: N̂e f f = 1 ∑iN=1 wik 2 (4.56) Sinkt Ne f f unter einen definierten Schwellwert (typisch: Ne f f ≤ 1/3 · N), so werden die Partikel mit den grössten Gewichten zu N neuen Partikel vervielfältigt. Die Partikel mit den kleinsten Gewichten werden gelöscht. Sämtliche neue Partikel erhalten ein Gewicht von 1/N. Dieser Schritt wird im Fachjargon «Resampling» genannt und ist Bestandteil der meisten Partikel-Filter. 38 4.5. PEILUNG VON BEWEGLICHEN TARGETS { xki , N −1 } p (zk |xk ) { xki , wik } {resampled: xki , N −1 } { xki∗+1 , N −1 } Abbildung 4.9: Ein Zyklus des Partikel-Filters mit Gewichtung und Resampling. Zusätzlich ist die Wahrscheinlichkeitsdichte p (zk |xk ) zur Gewichtung der Partikel zum Zeitpunkt k ersichtlich. Lösung des Anfangswertproblems Die Wahrscheinlichkeitsdichte des kinematischen Zustandsvektors zu Beginn der Abschätzung ist beim BOT-Problem nicht bekannt. Das Target kann sich irgendwo rund um den Beobachter befinden. Zu Beginn der Abschätzung werden nun die N Partikel in einer Kreisfläche mit Radius r rund um den Beobachter verteilt (U (r, N )). Nach einigen Filter-Rekursionen und einer günstigen Trajektorie des Beobachters sollten die Partikel bei einem Punkt konvergieren. Die Figur 4.10 illustriert den Initial-Zustand des Filters und die Zustände nach 35 resp. 60 Rekursionen. Die Trajektorie des Beobachters ist günstig, so dass die Partikel zu einem bestimmten Punkt konvergieren. Ist der Abstand zwischen Beobachter und Target grösser als der Radius r, so werden sich die Partikel in die Richtung des Targets bewegen und dessen Position schlussendlich erreichen. 39 KAPITEL 4. KONZEPT 3000 particles @ t=0 particles @ t=35 particles @ t=60 observer trajectory 2500 2000 y [m] 1500 1000 500 0 −500 −3000 −2500 −2000 −1500 −1000 x [m] −500 0 500 Abbildung 4.10: Anfangszustand mit gleichverteilten Partikel und weitere Zustände nach 35 resp. 60 Rekursionen 4.5.4 Das SIR-Filter zum BOT-Problem Das (engl.) Sequental Importance Resampling (SIR)-Filter (auch bekannt als «Bootstrap-Filter») ist das einfachste Filter zur Lösung des statischen BOTProblems. Das statische BOT-Problem geht von einem nichtmanövrienden Target aus. Die Zustandsgleichung 4.27 wird mit den Matrizen 4.33, 4.34 und 4.35 für den nichtmanövrierenden Fall eingeführt. Der SIR-Filteralgorithmus benötigt relativ wenig Informationen: die Zustandsgleichung und die Rauschstruktur der Messung. Zusätzlich muss die Wahrscheinlichkeitsdichtefunktion p (zk |xk ) punktweise berechenbar sein. Vorgehen Zu Beginn der Messung werden N Partikel gleichverteilt auf einer Kreisfläche angeordnet. Jedes einzelne Partikel repräsentiert die Position des zughörigen Zustandsvektors. i Als «Importance Density» wird die Wahrscheinlichkeitsdichte p xk xk−1 punktweise pro Partikel i berechnet. Die Evolution jedes einzelnen Partikels entsteht durch Berechnung eines zufälligen Prozess40 4.5. PEILUNG VON BEWEGLICHEN TARGETS Rausch-Vektors vik . Der nächste Zustand des Partikels wird dann mit der Zustandsgleichung 4.27 berechnet. Die Gewichtung nach dem Resampling entsteht durch die Dichte w̃ik = p zk xik w̃ik = √ zk −arctan 1 2πσ2 e − 2σ2 yt k xt k !!2 (4.57) Die Gewichte w̃ik müssen in einem weiteren Schritt normiert werden, sodass k ∑ w̃ik = 1. (4.58) i =1 Das SIR-Filter verlangt während jedem Rekursionsschritt ein Resampling der Partikel. Somit werden die Partikel gewichtet, dann daraus das Resampling durchgeführt. Das Block-Diagramm des SIR-Filters sieht folgendermassen aus: Measurement zk FOR i=1 to N Initial PDF i-th Particle Proposal i-th Weight Evaluation { xki −1 , N −1 } x̂k|k State Estimation { xki , wik } Particles Resampling Abbildung 4.11: Block-Diagramm des SIR-Filters mit «Initial PDF» 4.5.5 Das ASIR-MM-Filter zur Lösung des manövrierenden Falles Das ASIR-MM-Filter ist eine Erweiterung des SIR-Filters und wurde zum ersten Mal von Shepard et. al. [26] beschrieben. Im Gegensatz zum SIR-Filter wird nicht die Wahrscheinlichkeitsdichte des kinematischen Zustandsvektors p xk xik−1 bestimmt, sondern dessen wahrscheinlichste Trajektorie. Charakterisierung der kinematischen Regimes Der kinematische Zustand zwischen zwei Messungen wird mit den im Kapitel 4.5.2 beschriebenen kinematischen Regimes modelliert. So entspricht das Re41 KAPITEL 4. KONZEPT gime r = 1 dem kinematischen Modell CCT, das Regime r = 2 dem Modell CV und das Regime r = 3 dem Modell CT. r k +1 = 2 rk = 1 r k +2 = 3 Abbildung 4.12: Beispiel einer Trajektorie des Targets mit den zugehörigen Regimes Der Wechsel von einem Regime in ein anderes wird mit Übergangswahrscheinlichkeiten definiert: Π = πij 0.7 0.2 0.1 Π = 0.2 0.6 0.2 0.1 0.2 0.7 (4.59) Die Zeilennummer der Matrix Π entspricht gerade dem Regime rk−1 zum Zeitpunkt k − 1. Die Spaltennummer entspricht dem Regime rk zum Zeitpunkt k. Weiter muss die Summe sämtlicher Übergangswahrscheinlichkeiten pro Regime i m ∑ πij = 1 (4.60) j =1 ergeben. Die Matrix Π ist abhängig von den kinematischen Eigenschaften des Targets. So sieht Π eines Schiffes wesentlich anders aus als diejenige eines Jets. Aus dieser Matrix kann eine Markov-Kette mit Pfadkosten aufgespannt werden. Daraus kann der «günstigste» Pfad bestimmt werden. 42 4.5. PEILUNG VON BEWEGLICHEN TARGETS 0.6 0.2 CV CT 0.7 0.2 0.1 CCT 0.7 Abbildung 4.13: Markov-Kette mit Übergangswahrscheinlichkeiten der kinematischen Regimes Abschätzung der wahrscheinlichsten Trajektorie Nun soll die wahrscheinlichste Trajektorie bestimmt werden. Dazu wird die Lösung der Wahrscheinlichkeitsdichte p (xk , i, rk |Zk ) (4.61) gesucht. i bezeichnet das Partikel mit Index i; rk bezeichnet das Regime während der Zeit [k − 1 k [. Sämtliche anderen Parameter sind durch die vorhergehenden Kapitel bekannt. Aus der marginalisierten Wahrscheinlichkeitsdichte der Gleichung 4.61 kann die Dichte p (xk |Zk ) und somit auch die optimalste Lösung des BOT-Problems bestimmt werden. Die Wahrscheinlichkeitsdichte aus Gleichung 4.61 ist nach [9] proportional zu: p (xk , i, rk |Zk ) ∝ p (zk |xk ) p (xk , i, rk |Zk−1 ) p (xk , i, rk |Zk ) = p (zk |xk ) p xk xik−1 , rk p rk rik−1 wik−1 (4.62) p (zk |xk ) kann mit der Gleichung 4.57 berechnet werden und entspricht der Wahrscheinlichkeitsdichte eines Einfallswinkels zk bei gegebenem kinematischen Zustand xk . p xk xik−1 , rk entspricht der Wahrscheinlichkeitsdichte des kinematischen Zustands xk bei gegebenem kinematischen Zustand xk−1 in Abhängigkeit des Regimes r. p rk rik−1 kann direkt aus der Transition-Matrix Π abgelesen werden. Die Erzeugung der Partikel direkt aus der Wahrscheinlichkeitsdichte der Gleichung 4.62 ist zu aufwändig. Nun wird eine «Importance Density» q (xk , i, rk |Zk ) ähnlich zur eigentlichen Wahrscheinlichkeitsdichte eingeführt, aus welcher SupportPartikel erzeugt werden können. Aus diesen Support-Punkten werden dann die eigentlichen Partikel erzeugt. 43 KAPITEL 4. KONZEPT q (xk , i, rk |Zk ) µik p zk µik (rk ) p xk xik−1 , rk p rk rik−1 wik−1 (4.63) = E{ xk xki −1 , rk } ∝ Die «Importance Density» q (xk , i, rk |Zk ) unterscheidet sich von der ursprünglichen Wahrscheinlichkeitsdichte nur im ersten Faktor. Nun kann q (xk , i, rk |Zk ) umgeschrieben werden zu: q (xk , i, rk |Zk ) = q (i, rk |Zk ) q (xk |i , rk , Zk ) (4.64) Ristic et. al. [9] definieren den Faktor q (xk |i , rk , Zk ) folgendermassen: q (xk |i , rk , Zk ) ≡ p xk xik−1 , rk . (4.65) So bleibt für den Ausdruck q (i, rk |Zk ) noch q (i, rk |Zk ) ∝ p zk µik (rk ) p rk rik−1 wik−1 (4.66) übrig. Die Partikel können nun erzeugt werden. Vorgehen 1. Pro Partikel xk−1 (total N Partikel) wird für jedes einzelne kinematische Regime der neue kinematische Zustand berechnet. Es existieren nun drei Support-Partikel µ j pro Partikel. 2. Die Support-Partikel werden nach der Gleichung 4.66 gewichtet. 3. Aus den Support-Partikeln werden nun N neue Partikel xki erzeugt. (Siehe Kapitel 4.5.3) 4. Pro Partikel wird ein zufälliger Rauschvektor Γ berechnet und mit dem kinematischen Zustandsvektor addiert. 5. Die Partikel werden je mit wik p zk xik = p z k ¯i (4.67) k gewichtet. 6. Mit den gewichteten Partikeln wird ein Resampling nach Kapitel 4.5.3 durchgeführt. 7. Die Punkte eins bis sechs werden rekursiv wiederholt. 44 { xki −1 , wik−1 } Initial PDF zk Particles Resampling { xki , wik−1 } Support Points Sampling to N Particles Measurement {µ j , r j , w j } i-th Weight Evaluation Regime Propagation CT {µ j , r j } i-th Weight Evaluation i-th Weight Evaluation Regime Propagation CV FOR i=1 to N Regime Propagation CCT zk Random Particle Proposal i-th Weight Evaluation { xki , wik } State Estimation x̂k|k 4.5. PEILUNG VON BEWEGLICHEN TARGETS Abbildung 4.14: Block-Diagramm45des ASIR-Filters mit «Initial PDF» KAPITEL 4. KONZEPT 46 Kapitel 5 Algorithmen-Simulation 5.1 Bestimmung der statistischen Parameter des BOTAlgorithmus Die in den Kapiteln 4.5f beschriebenen Algorithmen benötigen statistische Parameter zur Lösung des BOT-Problems. Diese Parameter werden aus der Simulation des BOT-Algorithmus extrahiert. Die Simulation des Algorithmus wurde in der vorhergehenden MSE-Projektarbeit 2 [32] entwickelt und befindet sich auf der beiliegenden CD im Verzeichnis ~/simulations/DOA_estimation. Aus der Simulation soll die mittlere Standardabweichung σ des Algorithmus in einem (engl.) Signal to Noise Ratio (SNR)-Bereich von 0 dB bis 50 dB und über den gesamten Azimut berechnet werden. Dazu werden pro Winkel 30 unabhängige Messungen durchgeführt und daraus die Standardabweichung bestimmt. Mit Hilfe der Abbildungen 5.3 und 5.4 kann die mittlere Standardabweichung und somit die Performance des Algorithmus abgeschätzt werden. Die Einfärbung im Diagramm entspricht der Standardabweichung. Eine Standardabweichung von σ ≥ 10◦ ist Bordeaux-Rot eingefärbt. Eine Standardabweichung von 0 entspricht der Farbe Schwarz. Simulationsparameter Parameter Eigenschaften SNR Winkel Anzahl Messungen pro Datenpunkt Quantisierungsauflösung von σ [0 dB - 50 dB] [−175 ◦ - 175 ◦ ] 30 0.1 Tabelle 5.1: Simulationsparameter zur Abschätzung von σ 47 KAPITEL 5. ALGORITHMEN-SIMULATION Simulationsresultate Ein Mass für die Performance des BOT-Algorithmus ist der (engl.) Mean Squared Error (MSE). Der MSE ist folgendermassen definiert: MSE = E ( ϕ̂ − ϕ) q 2 N ∑i=1 ( ϕ̂i − ϕ) MSE ≈ N (5.1) ϕ̂i entspricht dem geschätzten Einfallswinkel während der Messung i beim eingestellten Einfallswinkel ϕ. N entspricht der Anzahl Messungen pro Datenpunkt. 50 30 45 25 40 35 20 25 15 20 10 15 10 5 5 0 −150 −100 −50 0 50 Incoming wave angle [deg] 100 150 Abbildung 5.1: MSE über den gsamten Azimut mit einer SNR von [0 dB 50 dB] 48 0 MSE [deg] SNR [dB] 30 5.1. BESTIMMUNG DER STATISTISCHEN PARAMETER DES BOT-ALGORITHMUS Der mittlere MSE mit konstantem SNR über den gesamten Azimut ergibt: Mean MSE over the full azimut range [deg] 20 18 16 14 12 10 8 6 X: 40 Y: 3.794 4 2 0 5 10 15 20 25 30 SNR [dB] 35 40 45 50 Abbildung 5.2: MSE mit konstantem SNR Der mittlere MSE bleibt ab einem SNR von ≥ 15 dB konstant. Der Dynamikumfang des Algorithmus liegt im selben Bereich. Zusätzlich zum MSE interessiert die Standardabweichung σ: q σ = Var ( ϕ̂) r σ = E ( ϕ̂ − E ( ϕ̂))2 49 (5.2) 50 10 45 9 40 8 35 7 30 6 25 5 20 4 15 3 10 2 5 1 0 −150 −100 −50 0 50 Incoming wave angle [deg] 100 150 Abbildung 5.3: Standardabweichung über den gsamten Azimut mit einer SNR von [0 dB 50 dB] Die mittlere Standardabweichung mit konstantem SNR kann in der Grafik 5.4 abgelesen werden. Die mittlere Standardabweichung über den gesamten Bereich des SNR ist rot eingezeichnet und beträgt: σ ≈ 3 ◦. (5.3) Dieser Wert wird in den Simulationen zu den Partikel-Filter übernommen. 50 0 mean standard deviation [deg] SNR [dB] KAPITEL 5. ALGORITHMEN-SIMULATION Mean standard deviation over the full azimut range [deg] 5.1. BESTIMMUNG DER STATISTISCHEN PARAMETER DES BOT-ALGORITHMUS 25 20 15 10 X: 13 Y: 3.078 5 0 0 5 10 15 20 25 30 SNR [dB] 35 40 45 Abbildung 5.4: Standardabweichung σ mit konstantem SNR 51 50 KAPITEL 5. ALGORITHMEN-SIMULATION 5.2 5.2.1 Tracking-Szenarien SIR-Filter Screenshots: Nichtmanövrierendes Target Diese Simulation befindet sich auf der beiligenden CD im M-File ~/simulations/ SIR/SIR_simulation.m. Der gesamte Tracking-Vorgang wurde im Film ~/simulations/SIR/SIR_stationary.avi gespeichert. Simulationsparameter Parameter Observer Szenario Observer Startbedingung Target Szenario Target Startbedingung σ der Messung σ der Position des Beobachters Messintervall und -Periode Anzahl Partikel Var. Matlab-Var. x0o obsStart x0t σ tgtStart sensor_stdev track_stdev t Np k N Wert ’sc2’ [800;2000;0.1;0] ’sc3’ [1200;8000;0;0] 3 5 0:10:1000 1000 Tabelle 5.2: Simulationsparameter zur Visualisierung des Partikel-Filters beim Start des Trackings Die folgenden Screenshots (Figuren 5.6 bis 5.9) illustrieren die Vorgänge des SIR-Partikel-Filters gleich nach der Initialisierung des Filters. Die Trajektorie ist zu Beginn ungünstig; die Distanz zwischen Beobachter und Target kann nicht abgeschätzt werden. Im Verlauf der Simulation verfolgt der Beobachter eine günstigere Trajektorie, die eine Abschätzung der Distanz ermöglicht. Zusätzlich wird das Szenario so gewählt, dass zum Zeitpunkt k = 73 im abgeschätzten Winkel ein Phasensprung um 180 ◦ entsteht. Die Position des Beobachters wird mit einem magenta-farbenen Kreuz gekennzeichnet und folgt von unten nach oben der schwarz eingezeichneten Trajektorie. Das Target ist mit einem grünen Kreuz eingezeichnet, dessen abgeschätze Position wird mit einem grünen Kreuz gekennzeichnet. Das Target befindet sich während der gesamten Simulation nicht in Bewegung. Die verrauschte Winkelinformation zum Szenario aus Fig. 5.6 sieht folgendermassen aus: 52 5.2. TRACKING-SZENARIEN 200 150 estimated angle [°] 100 50 0 -50 -100 -150 -200 20 40 60 Measurement No. [] 80 100 Abbildung 5.5: Verrauschte Winkelinformation zum Szenario aus Fig. 5.6 Die Triangulation beginnt mit der Anfangsverteilung des Filters. Die Partikel werden gleichverteilt in einem Kreis rund um den Beobachter platziert. Die Grafik 5.6 visualisiert die Gewichtung und die Position der Partikel nach der ersten Messung. Als nächster Schritt wird ein Resampling durchgeführt. -3 y position [m] Tracking simulation, N=1000 14000 x 10 1 12000 0.9 10000 0.8 8000 0.7 6000 0.6 4000 0.5 2000 0.4 0 0.3 -2000 0.2 -4000 0.1 -6000 -8000 -6000 -4000 -2000 0 2000 x position [m] 4000 6000 8000 10000 Abbildung 5.6: Screenshot zum Zeitpunkt k = 1 Nach dem Resampling exisitieren nur noch Partikel in der Richtung des abgeschätzten Einfallswinkels. Die Distanz zwischen Beobachter und Target kann in diesem Moment noch nicht abgeschätzt werden. Die Partikel sind noch nicht zentriert. Auch nach zehn Iterationen existiert noch keine gebündelte Partikel-Wolke. Die Lösung zum Zeitpunk k = 10 nähert sich der wahren Po53 0 KAPITEL 5. ALGORITHMEN-SIMULATION sition des Targets an. -3 Tracking simulation, N=1000 x 10 1 14000 0.9 12000 0.8 y position [m] 10000 0.7 0.6 8000 0.5 6000 0.4 0.3 4000 0.2 2000 0.1 0 600 800 1000 1200 1400 x position [m] 1600 1800 2000 0 Abbildung 5.7: Screenshot zum Zeitpunkt k = 10 Zum Zeitpunkt k = 30 ist noch keine Zentrierung der Partikel-Wolke erkennbar. Der entstehende mittlere Fehler der abgeschätzten Position vergrössert sich zu diesem Zeitpunkt. -3 Tracking simulation, N=1000 x 10 1 14000 0.9 12000 0.8 y position [m] 10000 0.7 0.6 8000 0.5 6000 0.4 0.3 4000 0.2 2000 0.1 0 600 800 1000 1200 1400 x position [m] 1600 1800 Abbildung 5.8: Screenshot zum Zeitpunkt k = 30 54 2000 0 5.2. TRACKING-SZENARIEN Nachdem der Beobachter die Schlaufe in der Trajektorie durchfahren hat, verkleinert sich die Kovarianz der Partikel-Verteilung. Die Figur 5.9 illustriert die neue Form der Partikel-Wolke. -3 Tracking simulation, N=1000 x 10 1 14000 0.9 12000 0.8 y position [m] 10000 0.7 0.6 8000 0.5 6000 0.4 0.3 4000 0.2 2000 0.1 0 400 600 800 1000 1200 1400 x position [m] 1600 1800 0 2000 Abbildung 5.9: Screenshot zum Zeitpunkt k = 70 Die effektive Anzahl Partikel und der (engl.) Root Mean Square (RMS)-Fehler während des gesamten Szenarios sieht folgendermassen aus: Der sich vergrössernde Fehler nach dem Zeitpunkt k = 60 und die sinkende Anzahl effektiver Partikel zu demselben Zeitpunkt korellieren miteinander. Steigt der Fehler, so sinkt Ne f f . 1000 Number of effective particles [] RMS error [m] 1500 1000 500 0 0 20 40 60 Estimation No. [] 80 100 800 600 400 200 0 0 20 40 60 Estimation No. [] 80 (b) Effektive Anzahl Partikel Ne f f (a) RMS-Fehler der Abschätzung Abbildung 5.10: Performance des SIR-Filters zum zuhehörigen Szenario 55 100 KAPITEL 5. ALGORITHMEN-SIMULATION 5.2.2 ASIR-MM-Filter Screenshots: Manövrierendes Target Diese Simulation befindet sich auf der beiligenden CD im M-File ~/simulations/ ASIR-MM_PF/ASIR_MM_simulation.m. Der gesamte Tracking-Vorgang wurde im Film ~/simulations/ASIR-MM_PF/ASIR_highspeed.avi gespeichert. Simulationsparameter Parameter Observer Szenario Observer Startbedingung Target Szenario Target Startbedingung σ der Messung σ der Position des Beobachters Messintervall und -Periode Anzahl Partikel Maximale Target-Geschwindigkeit Maximale Target-Drehrate Zentrum der Anfangsverteilung Radius der Anfangsverteilung Var. Matlab-Var. x0o obsStart x0t σ tgtStart sensor_stdev track_stdev t Np mSpeed a_turn k N am rad Wert ’sc2’ [500;2000;0.5;-1] ’sc3’ [1000;8000;-3;-0.1] 3 5 0:10:1000 9 5.2 Target 50 Tabelle 5.3: Simulationsparameter zur Visualisierung des Partikel-Filters beim Start des Trackings Die folgenden Screenshots (Figuren 5.12 bis 5.15) illustrieren die Vorgänge des ASIR-MM-Partikel-Filters gleich nach der Initialisierung des Filters. Die Anfangsverteilung der Partikel wird bei diesem Filter um das Target gewählt. Eine Anfangsverteilung um den Beobachter würde zu Beginn der Simulation zu grosse Fehler erzeugen und der Einschwingvorgang des Filters würde zu lange dauern. Die Trajektorie ist zu Beginn günstig; die Distanz zwischen Beobachter und Target kann mit wenigen Iterationen ageschätzt werden. Im Verlauf der Simulation wird der Winkel zwischen der Beobachter- und der Target-Trajektorie orthogonal. Eine Abschätzung der Distanz wird unmöglich. Da das Filter die höchstwahrscheinliche Trajkektorie abschätzt, kann trotzdem bis zum Ende der Simulation eine Abschätzung der Target-Position erfolgen. Die Position des Beobaschters wird mit einem magenta-farbenen Kreuz gekennzeichnet und folgt von unten nach oben der schwarzen eingezeichneten Trajektorie. Das Target ist mit einem grünen Kreuz eingezeichnet, dessen abgeschätzte Position wird mit einem grünen Kreis markiert. Das Target verfolgt dessen schwarz eingezeichnete Trajektorie von rechts nach links. Die verrauschte Winkelinformation zum Szenario aus Figur 5.12 sieht folgen56 5.2. TRACKING-SZENARIEN dermassen aus: estimated angle [°] 180 160 140 120 100 80 20 40 60 80 100 Measurement No. [] 120 140 Abbildung 5.11: Verrauschte Winkelinformation zum Szenario aus Fig. 5.12 Zum Zeitpunkt k = 1 befindet sich die Partikel-Wolke um das Target. Die Gewichtung der Partikel ist uniform. Diese Form von Initialzustand wurde gewählt, weil er ASIR-MM-Algorithmus von einer bekannten Anfangsbedingung ausgeht. Wird der Initialzustand des Filters gleich gewählt, wie der des SIR-Partikel-Filters im Kapitel 5.2.1, so dauert der Einschwingvorgang des ASIR-MMFilters länger als die betrachteten 140 Zeitpunkte. -3 Tracking simulation, N=1000 x 10 1 9000 0.9 8000 0.8 7000 y position [m] 0.7 6000 0.6 5000 0.5 0.4 4000 0.3 3000 0.2 2000 1000 -1000 0.1 -500 0 500 x position [m] 1000 1500 Abbildung 5.12: Screenshot zum Zeitpunkt k = 1 Zu Beginn der Simulation befinden sich die einzelnen Partikel des Filters in Ruhe. Ihr kinematischer Zustand enthält nur Positions-Informationen. Das Tar57 0 KAPITEL 5. ALGORITHMEN-SIMULATION get wurde beschleunigt und löst sich von der aktuellen Partikel-Wolke. Zum Zeitpunkt k = 20 bewegt sich die Wolke zu langsam, um dem Target folgen zu können. Ab dem Zeitpunkt k = 50 folgt die Partikel-Wolke dem Target -3 Tracking simulation, N=1000 x 10 1 9000 0.9 8000 0.8 7000 y position [m] 0.7 6000 0.6 5000 0.5 0.4 4000 0.3 3000 0.2 2000 1000 -1000 0.1 -500 0 500 x position [m] 1000 1500 Abbildung 5.13: Screenshot zum Zeitpunkt k = 20 und schliesst auf. Die Wolke bleibt dabei kompakt, die Kovarianz der Position sämtlicher Partikel ist wesentlich kleiner als beim SIR-Filter. Die wahre und die abgeschätzte Trajektorie stimmen praktisch überein. Zum Zeitpunkt k = 120 verfolgt die Partikel-Wolke das Target. Die Abschätzung wird genauer. Obwohl die Trajektorie nun ungünstig wird, kann das Partikel-Filter folgen. 58 0 5.2. TRACKING-SZENARIEN -3 Tracking simulation, N=1000 x 10 1 9000 0.9 8000 0.8 7000 y position [m] 0.7 6000 0.6 5000 0.5 0.4 4000 0.3 3000 0.2 2000 1000 -1000 0.1 -500 0 500 x position [m] 1000 1500 0 Abbildung 5.14: Screenshot zum Zeitpunkt k = 50 -3 Tracking simulation, N=1000 x 10 1 8000 0.9 7000 0.8 y position [m] 6000 0.7 0.6 5000 0.5 4000 0.4 0.3 3000 0.2 2000 0.1 1000 -1000 -500 0 500 x position [m] 1000 1500 Abbildung 5.15: Screenshot zum Zeitpunkt k = 120 Die Figur 5.16 illustriert die effektive Anzahl Partikel und den RMS-Fehler während des gesamten Szenarios. Der RMS-Fehler während der Simulation steigt zu Beginn an. Nachdem die Partikel den richtigen kinematischen Zustand erreicht haben, folgen sie dem Target; der MSE-Fehler verkleinert sich und stabilisiert sich. 59 0 KAPITEL 5. ALGORITHMEN-SIMULATION 400 Number of effective particles [] 1000 RMS error [m] 300 200 100 0 0 20 40 60 80 Estimation No. [] 100 120 800 600 400 200 0 0 20 40 60 80 Estimation No. [] 100 120 (b) Effektive Anzahl Partikel Ne f f (a) RMS-Fehler der Abschätzung Abbildung 5.16: Performance des ASIR-MM-Filters zum zughehörigen Szenario 5.3 Performance-Vergleich der Filter Die Simulation des Performance-Vergleichs befindet sich auf der beiligenden CD im M-File ~/simulations/MC_comparison/MONTECARLO_simulation.m. In diesem Abschnitt werden die beiden Filter (SIR- und ASIR-MM-Filter) miteinander verglichen und dessen Performance abgeschätzt. Dabei befindet sich das Target in Bewegung und führt eine Linkskurve aus. Die Geschwindigkeit des Targets ist so gewählt, dass das SIR-Filter kein optimales Resultat liefern sollte. Die beiden Trajektorien wurden so gewählt, dass gegen Ende der Simulation wenig Information über die Distanz zwischen Beobachter und Target vorhanden ist. Die Trajektorie des Targets liegt am Ende der Simulation senkrecht zur Trajektorie des Beobachters. Aus den Resultaten dürfen nur Schlüsse für das jeweilige Tracking-Szenario gezogen werden. Die Resultate können je nach Szenario stark voneinander abweichen. Das Tracking mit Partikel-Filter entspricht einem Zufallsexperiment mit gestreutem Resultat. Um die Performance beider Filter mitenander zu vergleichen wird eine Monte-Carlo-Simulation durchgeführt, d.h. es werden mehrere Durchgänge simuliert und das Resultat gemittelt. Als Mass für die Performance jedes einzelnen Filters wird der RMS-Fehler berechnet: 60 5.3. PERFORMANCE-VERGLEICH DER FILTER RMSK v u u1 M 2 2 = t ∑ x̂ki − xki + ŷik − yik M i =1 M = Anzahl Monte-Carlo-Durchgänge x̂ki = Abgeschätzte X-Koordinate des Targets x = Wahre X-Koordinate des Targets ŷik = Abgeschätzte Y-Koordinate des Targets y = Wahre Y-Koordinate des Targets k = Zeitpunkt der Messung (5.4) Simulationsparameter Parameter Observer Szenario Observer Startbedingung Target Szenario Target Startbedingung Maximale Target-Geschwindigkeit Maximale Target-Drehrate σ der Messung σ der Position des Beobachters Messintervall und -Periode Anzahl Partikel Anzahl Monte-Carlo Iterationen Var. Matlab-Var. x0o obsStart x0t tgtStart mSpeed a_turn sensor_stdev track_stdev t Np N_MC am σ k N M Wert ’sc2’ [1000;2000;0.5;-1] ’sc3’ [1000;8000;-3;-0.1] 5.2 9 3 5 0:5:800 1000 100 Tabelle 5.4: Simulationsparameter zur Performance-Abschätzung der SIR- und ASIR-MM-Partikel-Filter Screenshots Die Simulationsresultate beider Filter wurden zum Zeitpunkt k = 60 aufgezeichnet. Klar ersichtlich sind die Partikel-Wolken und deren Varianz. Der magenta-farbene Kreis repräsentiert die Position des Targets. Analog dazu wird der Beobachter mit einem magenta-farbenen Kreuz dargestellt. Das grüne Kreuz entspricht der abgeschätzten Position des Targets. Die Gewichtung der einzelnen Partikel kann mit Hilfe der «Colorbar» auf der rechten Seite des Diagramms abgelesen werden. 61 KAPITEL 5. ALGORITHMEN-SIMULATION -3 tracking simulation, n=1000 x 10 9000 1 8000 7000 y position [m] 0.8 6000 0.6 5000 4000 0.4 3000 0.2 2000 1000 -1500 -1000 -500 0 500 x position [m] 1000 1500 2000 0 Abbildung 5.17: Target-Tracking mit Hilfe des SIR-Filters. Der Screenshot wurde zum Zeitpunkt k = 60 aufgezeichnet. -3 Tracking simulation, N=1000 x 10 1 9000 0.9 8000 0.8 7000 y position [m] 0.7 6000 0.6 5000 0.5 0.4 4000 0.3 3000 0.2 2000 1000 -1500 0.1 -1000 -500 0 500 x position [m] 1000 1500 2000 Abbildung 5.18: Target-Tracking mit Hilfe des ASIR-MM-Filters. Der Screenshot wurde zum Zeitpunkt k = 60 aufgezeichnet. 62 0 5.3. PERFORMANCE-VERGLEICH DER FILTER Resultate Zu Beginn der Simulation befinden sich die Partikel gleichverteilt um das Target. Nachdem sich das Target in Bewegung gesetzt hat, brauchen die Partikel bei beiden Filter ca. 20 Iterationen, bis sie dem Target folgen können. Das ASIR-MM-Filter erzeugt dabei über einen grösseren Zeitraum einen Fehler, der sich bis zur 80. Iteration stetig verkleinert. Das SIR-Filter erzeugt bis zur 100. Iteration Fehler unter 250 m. Da das Target während der gesamten Simulation beschleunigt wird, kann das SIR-Filter ab der 100. Iteration nicht mehr folgen. Der MSE-Fehler beginnt zu explodieren. Die Partikel des ASIR-MM-Filters profitieren nun von der zusätzlichen Information über die Bewegung des Targets (Π-Matrix, maximale Drehrate am und maximale Geschwindigkeit des Targets) und können dem Target folgen. Der MSE-Fehler des ASIR-MM explodiert auch am Ende der Simulation nicht. Monte Carlo Iterations: 1000 450 SIR ASIR 400 MC MSE Estimation Error 350 300 250 200 150 100 50 0 0 20 40 60 80 Estimation No. [] 100 120 140 Abbildung 5.19: Performance-Vergleich mit Monte-Carlo-Simulation zur Berechnung des MSE Das SIR-Filter kann nicht nur für den nichtmanövrierenden Fall eingesetzt werden, es funktioniert auch mit langsam bewegenden Targets. Das kompliziertere ASIR-MM-Filter weist bei langsam bewegenden Targets keinen Performance-Vorteil auf. Erst bei schneller bewegenden Targets erzeugt das ASIR-MM-Filter bessere MSE-Werte. 63 KAPITEL 5. ALGORITHMEN-SIMULATION 5.4 Optimierung der Anzahl Partikel Np Die Simulation der Parameter-Variation mit Np befindet sich auf der beiliegenden CD im M-File ~/simulations/MC_Np_SIR/MONTECARLO_SIR_Np.m. Das SIR-Partikel-Filter kann mit steigender Anzahl Partikel den kinematischen Zustandsvektor beliebig genau abschätzen. Mit steigender Anzahl Partikel steigt auch der Rechenaufwand. Damit eine optimale Anzahl Partikel gewählt werden kann, wird die Anzahl Partikel variiert. Als Mass für die Abschätzung wird wiederum der MSE-Fehler berechnet. Simulationsparameter Parameter Observer Szenario Observer Startbedingung Target Szenario Target Startbedingung σ der Messung σ der Position des Beobachters Messintervall und -Periode Anzahl Partikel Var. Matlab-Var. x0o obsStart x0t σ tgtStart sensor_stdev track_stdev t Np k N Wert ’sc1’ [500;6000;1;0] ’sc3’ [1000;8000;0;0] 3 5 0:10:1000 50, 100, 500, 1000, 10000 Tabelle 5.5: Simulationsparameter zur Parameter-Variation des SIR-Filters Resultate Der MSE-Fehler nimmt mit der Erhöhung der Anzahl Partikel von Np = 50 auf Np = 100 und Np = 500 stark ab. Ab Np = 500 kann der MSE-Fehler nicht mehr signifikant verbessert werden. Somit wird die optimalste Anzahl Partikel im SIR-Filter auf Np = 500 geschätzt. 64 5.4. OPTIMIERUNG DER ANZAHL PARTIKEL NP -3 Tracking simulation, N=1000 x 10 1 8500 0.9 8000 0.8 0.7 y position [m] 7500 0.6 7000 0.5 0.4 6500 0.3 0.2 6000 0.1 5500 500 600 700 800 900 1000 1100 x position [m] 1200 1300 1400 1500 Abbildung 5.20: Screenshot der MSE-Abschätzung zur Bestimmung der optimalsten Anzahl Partikel des SIR-Filters 60 Np = 50 Np = 100 Np = 500 50 Np = 1000 MC MSE Estimation Error Np = 10000 40 30 20 10 0 0 10 20 30 40 50 60 Estimation No. [] 70 80 90 100 Abbildung 5.21: Variation der Anzahl Partikel Np mit einer Monte-CarloSimulation zur Berechnung des MSE 65 0 KAPITEL 5. ALGORITHMEN-SIMULATION 5.5 Simulation der Filter im DDC Die Signalvorverarbeitung des RF-Signals besteht aus einer analogen Filterund -Verstärkerstufe und einem DDC, welcher das Signal in das Basisband mischt und nochmals filtert. Die Filter-Koeffizienten und dessen Eigenschaften im DDC werden mit Matlab berechnet. Das Matlab-Skript zur Berechnung der Koeffizienten befindet sich auf der beiliegenden CD im Verzeichnis ~/simulations/DDC_filter/FIR_comp. In diesem Kapitel werden die zum Test aus Kapitel 10.2 benutzten Filter veranschaulicht. Folgende Parameter wurden spezifiziert: Filter Parameter Wert CIC2 Dezimation Ordnung Skalierung Eingangs-Wortbreite Eingangs-Fraction-Breite Ausgangs-Wortbreite 10 2 1 16 0 16 CIC5 Dezimation Ordnung Skalierung Eingangs-Wortlänge Eingangs-Fraction-Breite Ausgangs-Wortbreite 17 5 1 16 0 32 FIR Abtastfrequenz Grenzfrequenz Stopfrequenz Dämpfung Durchlassbereich Dämpfung Sperrbereich Ordnung Stabilität Phasengang 40.8 MHz 5 kHz 9 kHz 0 dB 60 dB 213 stabil linear Tabelle 5.6: Spezifikation der Filter im DDC 66 5.5. SIMULATION DER FILTER IM DDC Die Filterstruktur im DDC entspricht: Abbildung 5.22: Filter-Struktur und Signalpfad des AD6620-DDCs 5.5.1 CIC-Filterstufen Die CIC-Filterstufen werden primär zur Dezimation der hohen Abtastrate verwendet. Zusätzlich wird die Spiegelfrequenz des ursprünglichen Signals unterdrückt. Die Dezimation von 170 wird dadurch erreicht, dass die erste Filterstufe (CIC2-Filter) um den Faktor 10 und die zweite Filterstufe (CIC5-Filter) um 17 dezimiert. Magnitude Response (dB) CIC2−Filter: Quantized 0 CIC2−Filter: Reference CIC5−Fitler: Quantized CIC5−Fitler: Reference Magnitude (dB) −50 −100 −150 0 2 4 6 8 10 12 Frequency (MHz) 14 16 Abbildung 5.23: CIC2- und CIC5-Filter im DDC 67 18 20 KAPITEL 5. ALGORITHMEN-SIMULATION 5.5.2 FIR-Filter Ein nichtdezimierendes FIR-Filter am Ausgang des DDCs soll die Selektivität des dezimierten Signals verbessern und die relevanten Signalanteile herausfiltern. Magnitude Response (dB) 0 −10 Magnitude (dB) −20 −30 −40 −50 −60 −70 0 2 4 6 8 10 Frequency (kHz) 12 14 16 18 Abbildung 5.24: (engl.) Finite Impulse Response (FIR)-Filter im DDC 5.5.3 Kaskadierung der Filter Die drei Filterstufen werden kaskadiert. Die Rippel im Sperrbereich entstehen durch das CIC2-Filter. Alle Maxima mit f > f stop liegen unter 60 dB. Der resultiernde Amplitudengang ist in den beiden nachfolgenden Grafiken ersichtlich: 68 5.5. SIMULATION DER FILTER IM DDC Magnitude Response (dB) 0 Kaskadiert: Quantized Kaskadiert: Reference Magnitude (dB) −50 −100 −150 −200 −250 0 2 4 6 8 10 12 Frequency (MHz) 14 16 18 20 Abbildung 5.25: Frequenzgang der kaskadierten Filter im DDC Magnitude Response (dB) 0 Kaskadiert: Quantized Kaskadiert: Reference Magnitude (dB) −50 −100 −150 −200 −250 0 0.05 0.1 0.15 Frequency (MHz) 0.2 0.25 Abbildung 5.26: Ausschnitt des Amplitudengangs beim Grenzübergang von Durchlass- zu Sperrbereich der kaskadierten Filter im DDC 69 KAPITEL 5. ALGORITHMEN-SIMULATION 70 Kapitel 6 Hardware-Design: Funktionsmuster des SDR-Receivers 6.1 System-Übersicht Im Rahmen dieser Master-Arbeit werden die Tracking-Algorithmen im Receiver auf einem Funktionsmuster getestet. Wenn die Tests erfolgreich verlaufen, wird aus dem Funktionsmuster ein Prototyp hergestellt. Das Funktionsmuster besteht aus drei Evaulationsboards. Sie beinhalten je den A/D-Wandler, den DDC und den DSP. Zusätzlich wurde eine ExpansionCard entwickelt, welche die Smart-Antenna-Elektronik direkt mit dem DSPFunktionsmuster verbindet. Die Expansion-Card kann unter dem Board mit dem «Expansion Interface» (J1, J2, J3) des DSP-Funktionsmusters verbunden werden. Die Figuren 6.1 und 6.2 dienen als Übersicht. Details zur Beschaltung der einzelnen Boards können in den Kapiteln 6.2ff gefunden werden. 71 INPUT XFMR 72 ADC AVDD DUT AVDD GND GND DUT DVDD DVDD SECLK AD9244 Connector Board RF-Koaxial, 50 Ohm SMA Smart Antenna Electronics DDC AD6620 GS00494 3.3V 220V Parallele Programmierschnittstelle zu PC P2 P10 DAI LED 1-8 P3 12V 220V DCI Interface P1 ADSP-21364 EZ-Kit Lite DSP Expansion Card J5 JTAG H4 JTAG ADZS USB ICE J7 ZJ1 7V 220V JTAG Onboard (opt.) KAPITEL 6. HARDWARE-DESIGN: FUNKTIONSMUSTER DES SDR-RECEIVERS Abbildung 6.1: Block-Diagramm des Funktionsmusters mit sämtlichen Evaluationsboards und Erweiterungen. 6.1. SYSTEM-ÜBERSICHT Abbildung 6.2: Testaufbau des Funktionsmusters mit sämtlichen Evaluationsboards und Erweiterungen. 73 KAPITEL 6. HARDWARE-DESIGN: FUNKTIONSMUSTER DES SDR-RECEIVERS 6.2 6.2.1 Eigenschaften und Jumper-Konfiguration der Evaluationsboards A/D-Wandler AD9244-Evaluationsboard Eigenschaften Zur A/D-Wandlung wird ein AD9244-Wandler von «Analog Devices» eingesetzt. Er ist ein monolithischer 14-Bit-Wandler mit einer 10-stufigen PipelineA/D-Wandlung. Eigenschaft Wert Auflösung Bandbreite am Analog-Eingang fs Leistungsverbrauch Speisung 14 Bit, +1 Out-of-Range Bit 750 MHz 40 Msps - 60 Msps 550 mW maximal 5 V mit separater Speisung der digitalen Ausgänge (3.3 V) 1 V < Vpp < 2 V differenziell 67.2 dB −60.7 dB Vpp SNR @ 200 MHz Abstand zur stärksten Harmonischen @ 200 MHz Tabelle 6.1: Charakteristik des AD9244-Wandlers Jumper-Konfiguration Die Jumper des AD9244-Evaluationsboards müssen folgendermassen gesetzt werden: Header 45, 46 24 12, 14 Beschreibung Analoger Eingang über Transformator, erzeugt einen differentiellen Eingang Referenzspannung auf 1 V, Jumper 8 darf in dieser Konfiguration nicht überbrückt sein DUT Clock input, AD9226-kompatibel. Konfiguration für den nichtdifferenziellen CLK-Eingang Tabelle 6.2: Jumper-Konfiguration des AD9244-Evaluationsboards 74 6.2. EIGENSCHAFTEN UND JUMPER-KONFIGURATION DER EVALUATIONSBOARDS Elektrische Schnittstellen Die nachfolgende Tabelle fasst sämtliche elektrischen Eingänge zusammen: Header ID Beschreibung INPUT XFMR SECLK S4 S1 Analoger Eingang mit f > 500 kHz CLK-Eingang, 1 V max. Tabelle 6.3: Elektrische Schnittstellen des AD9244-Evaluationsboards Der analoge und digitale Teil des A/D-Wandlers soll separat gespiesen werden. Enthält die analoge Speisung transiente Signalanteile und selbsterzeugtes Rauschen, so wirkt sich dies direkt auf die Messresultate aus. Abbildung 6.3: Übersicht der Speisungs-Interfaces Die beiden Boards werden mit Hilfe einer gefrästen Steckverbindung verbunden. Da die Datenrate sehr hoch ist, müssen die Leitungen wie Transmission Lines behandelt werden. In der nachfolgenden Tabelle sind die Verbindungen vom A/D-Wandler zum DDC aufgelistet: Die Nummerierung der Pins ist bei beiden Boards unterschiedlich. Beim A/D-Wandler-Board wird zeilenweise von oben nummeriert, beim DDC-Board wird die rechte Spalte von oben nach unten und die zweite Spalte von unten nach oben durchnummeriert (siehe Datenblatt). 75 KAPITEL 6. HARDWARE-DESIGN: FUNKTIONSMUSTER DES SDR-RECEIVERS No. 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 1 3 5 ... 37 39 Bezeichnung A/D Out of (OTR) CLK MSB (D13) D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 Range No. Bezeichnung DDC 19,21 ICLK, ICLK2 n.c. → n.c. → → → → → → → → → → → → → → n.c. n.c. n.c. 2 3 4 5 6 7 8 9 12 13 14 15 16 17 I15 I14 I13 I12 I11 I10 I9 I8 I7 I6 I5 I4 I3 I2 40 39 ... 26 GND GND ... GND n.c. n.c. n.c. ... n.c. ... n.c Tabelle 6.4: Schnittstelle zwischen A/D-Wandler- und DDC-Board 76 6.2. EIGENSCHAFTEN UND JUMPER-KONFIGURATION DER EVALUATIONSBOARDS 6.2.2 DDC AD6620-Evaluationsboard Eigenschaften Der AD6620 DDC ist ein vollständig digitaler Empfänger, welcher die schnell abgetasteten RF-Signale in das Basisband mischt. Er beinhaltet vier kaskadierte Elemente zur Signalverarbeitung: eine I/Q-Mischerstufe, zwei Dezimationsfilter und ein programmierbares FIR-Filter. Der DDC wird mit einem bidirektionalen und IEEE-1284-kompatiblen Parallel-Port konfiguriert. Eigenschaft Wert Input Sample Rate 67 MSPS mit einem realen Kanal 0.02 Hz Tuning-Auflösung des (engl.) Numerically Controlled Oszillator (NCO)s Dämpfung zur nächsten erzeugten Störfrequenz im NCO Ordnung der ersten (engl.) Cascaded Integrator Comb (-Filter) (CIC)Filterstufe Dezimationsraten der ersten CICFilterstrufe Ordnung der zweiten CIC-Filterstufe Dezimationsraten der zweiten CICFilterstrufe Ordnung des FIR-Filters Auflösung der FIR-Koeffizienten Anzahl Taps pro Sekunde Leistungsverbrauch Speisung −100 dB 2 2,3,...,16 5 1,2,...,32 1,2,...256 20 Bit 134 MSPS 550 mW @ 65 MSPS 3.3 V Tabelle 6.5: Charakteristik des AD6620 DDCs Das nachfolgende Block-Diagramm des DDCs zeigt die Funktionsweise des DDCs auf. In der oberen Hälfte des Diagramms ist der vollständige Signalpfad ersichtlich. 77 KAPITEL 6. HARDWARE-DESIGN: FUNKTIONSMUSTER DES SDR-RECEIVERS Abbildung 6.4: Block Diagramm des DDCs (Quelle: [D12]) 78 6.2. EIGENSCHAFTEN UND JUMPER-KONFIGURATION DER EVALUATIONSBOARDS Jumper-Konfiguration Die Jumper des AD662-Evaluationsboards sind folgendermassen konfiguriert: Header Verbindung Pins J99 DVCC-VA 1-2 speist die Ausgangs-Treiber und die Latches am Eingang des Boards J101 BIT1-BIT1S 19-20 BIT3-BIT3S 5-6 CLK-CLKA 9-10 E0-BIT0S 15-16 wird benötigt, um die Bits in den FIFOs in das gewünschte Format zu bringen wird benötigt, um die Bits in den FIFOs in das gewünschte Format zu bringen Erzeugt ein Delay zur Triggerung der Latches am Eingang. Dies optimiert das Timing auf dem Evaluationsboard wird benötigt, um die Bits in den FIFOs in das gewünschte Format zu bringen TA_B - A_B 2-3 CLK - TCLK 4-5 SDIV0-GND SDIV1-GND SDIV2-GND SDIV3-GND AD-GND 19-22 18-23 17-24 16-25 12-29 J301 J300A Beschreibung Steuert das Timing bei komplexen A/DSignalen am Eingang Routet das CLK-Signal zum DSP SCLK Divisionswert, Bit 0 SCLK Divisionswert, Bit 1 SCLK Divisionswert, Bit 2 SCLK Divisionswert, Bit 3 deaktiviert das Senden von Config-Words vom DDC Tabelle 6.6: Jumper-Konfiguration des AD6620-Evaluationsboards 79 KAPITEL 6. HARDWARE-DESIGN: FUNKTIONSMUSTER DES SDR-RECEIVERS (a) Header 101 (b) Header 300A (c) Header 301 Abbildung 6.5: Jumper-Konfiguration des AD6620-Evaluationsboards Elektrische Schnittstellen Die Verbindung vom DDC zum DSP erfolgt über das Expansion-Board. Die Signale werden intern über die Expansion-Header auf dem DSP-Board zum Prozessor geroutet. No. 1 2 3 4 5 Bezeichnung DDC DVCC SCLK SDI SDO SDFS No. n.c. → ← → → 13 14 15 20 Pin des DSPs DAIP11 GND DAIP12 DAIP13 Tabelle 6.7: Schnittstelle zwischen DDC-Board und Expansion-Board Programmierung des DDCs Der DDC auf dem Evaluations-Board wird mit der bereitgestellten Software von «Analog Devices» konfiguriert. Die Software befindet sich auf der beiliegenden CD im Verzeichnis ~/software/AD6620_Control_Install_v2_20. EXE. Die Anleitung zur Konfiguration des DDCs befindet sich im Kapitel 10.2.3. Sämtliche Simulationen der benützten Filter befinden sich im Kapitel 5.5. 80 6.2. EIGENSCHAFTEN UND JUMPER-KONFIGURATION DER EVALUATIONSBOARDS 6.2.3 DSP ADSP21364-Evaluationsboard und Expansions-Board Eigenschaften Die gesamte Signalverarbeitung und die Steuerung der Peripherie des gesamten Empfängers erfolgt mit dem ADSP-21364-DSP von «Analog Devices». Der DSP basiert auf einer 32 Bit Super-Harvard-Architektur, welche mit zwei Speichern und je zwei Adress- und Daten-Bus-Leitungen eine effiziente Signalverarbeitung garantiert. Eigenschaft Wert Prozessortyp 32/40-Bit Floating Point Prozessor mit einer «Single-Instruction, Multiple-Data»-Architektur 3 MBit 4 MBit 333 MHz 136-Ball BGA, 144-Pin LQFP_EP 23-Bit I/O-Prozessor für externen Speicher, 6 Duplex SerialPorts, 2 SPI-Ports, 8- oder 16-BitParallel-Port, 2 Precision-ClockGeneratoren, S/PDIF-Transmitter, Signal-Routing-Unit 6 10 1.2 V 960 mW On-Chip SRAM On-Chip ROM Core-Instruktionsrate Packages Peripherie Flag-Pins Externe-Interrupt-Pins Core-Speisespannung Leistungsverbrauch Tabelle 6.8: Charakteristik des ADSP21364-DSPs Die Header zur Erweiterung des ADSP21364-Evaluationsboards befinden sich auf der Rückseite des Boards. Damit sämtliche Pins des DSPs verfügbar sind, wurde das Expansion-Board entwickelt. Im Funktionsmuster werden die SmartAntenna-Elektronik und die Signale des DSPs über das Expansion-Board auf das Evaluationsboard geführt. 81 KAPITEL 6. HARDWARE-DESIGN: FUNKTIONSMUSTER DES SDR-RECEIVERS Abbildung 6.6: SHARC-Architektur des ADSP-21364-DSPs DIP-Switches-Konfiguration Die Konfiguration der DIP-Switches ermöglicht das Ausschalten von Peripherie auf dem Evaluationsboard. Die Tabelle 6.9 beschreibt die ausgewählten Konfiuration der DIP-Switches. Sie garantieren den Betrieb mit dem ExpansionBoard. Elektrische Schnittstellen Die elektrischen Schnittstellen des Funktionsmusters befinden sich alle auf dem Expansion-Header. In der Dokumentation des Headers (Kapitel 7.0.4) sind alle Schnittstellen definiert. 82 6.2. EIGENSCHAFTEN UND JUMPER-KONFIGURATION DER EVALUATIONSBOARDS Switch Schalter Position SW6 1-4 off Der gesamte SW6-Switch wird zur Konfiguration des Mikrofon-Eingangs benutzt. SW7 1 off 2 on 3 4 on off Routing des CLKs auf den DAI_P6-Pin und MCLK des AD1835 Codecs. Diese Leitung führt auch DAIP6 Routing des CLKs auf den DAI_P17-Pin zum DSP. Diese Leitung führt auch DAIP17 AD1835 Codec als Master Routing der Datenleitnug des AD1835 Codecs zum DSP. Diese Leitung führt auch DAIP5 1 2 off off 3 off 4 off 1 2 3 4 5 off on on on off 6 off 1 off 2 3 4 on off off 1-8 off SW8 SW9 SW10 SW11 Beschreibung Routing des AD1835 Chip-Selects zum DSP Routing des ADC-CLKs zum DSP. Diese Leitung führt auch DAIP8 Routing des SPI-Flash Chip-Selects zum DSP. Diese Leitung führt auch FLAG0 Routing des ADC-BCLKs zum DSP Routing des Push-Button 1 auf FLAG1 Routing des Push-Button 2 auf FLAG2 Routing des Push-Button 3 auf DAI_P19 Routing des Push-Button 4 auf DAI_P20 (engl.) not connected (n.c.) Verbindet oder trennt den Latch-Enable Pin sämtlicher LEDs. On: Adress-gesteuerter Zugriff der LEDs mit Register 0x14000000; off: Zugriff der LEDs über die Pins AD7-0 Alle SW10 Switches konfigurieren den BootMode des DSP (Siehe [D10, 2-12]) Loopback Test-Switch der Audio-Ausgänge Tabelle 6.9: DIP-Switches-Konfiguration des ADSP21364-Evaluationsboards 83 KAPITEL 6. HARDWARE-DESIGN: FUNKTIONSMUSTER DES SDR-RECEIVERS Konfiguration der JTAG-Schnittstelle Die Firmware wird mit der Software VisualDSP++ von «Analog Devices» entwickelt. Sowohl zum Download als auch zum Debuggen der kompilierten Firmware wird die JTAG-Schnittstelle des DSPs benützt. Das Evaluationsboard hat seit der zweiten Revision den JTAG-Port auf dem Board integriert. Entweder wird es direkt per USB angeschlossen oder es wird ein externer JTAGDebugger vono «Analog Devices» benützt. In unserem Projekt wurde die externe Variante benützt. Beim Aufstarten des Programms wird die aktuelle Session ausgewählt. Es muss keine neue Session erzeugt werden, da für das ADSP-21364-Evaluationsboard bereits eine Session mitgeliefert wird. Die Figur 6.7 zeigt den Wizard mit den möglichen JTAG-Debugger. Abbildung 6.7: Wahl des EZ-Boards im Session Wizard von VisualDSP++ 5 84 Kapitel 7 Hardware-Design: Expansion-Card COP10 PAC102 PAC101 COC1 COP1 COC5 PAP1002 PAP1004 PAP1006 PAP1008 PAP10010 PAP1001 PAP1003 PAP1005 PAP1007 PAP1009 PAP302 PAP301 PAC202 PAC201 PAP1031 PAP1029 PAP1027 PAP1025 PAP1023 PAP1021 PAP1019 PAP1017 PAP1015 PAP1013 PAP1011 PAP109 PAP107 PAP105 PAP103 PAP101 PAP1032 PAP1030 PAP1028 PAP1026 PAP1024 PAP1022 PAP1020 PAP1018 PAP1016 PAP1014 PAP1012 PAP1010 PAP108 PAP106 PAP104 PAP102 COC2 COP3 COR19 COD1 PAR1902 PAR1901 PAD102 PAD101 PAR1802 PAR1801 PAD202 PAD201 COP5 COR18 COD2 PAP501 PAP502 PAP503 COR23 PAR2302 PAR2202 COR22 PAR2301 PAR2201 PAD502 COD6 PAD602 PAD601 PAD501 COD5 PAR2102 PAR2002 PAR2101 PAR2001 COR20 COR21 PAD402 PAD302 PAD401 PAD301 COD3 COD4 PAH400 PAC502 PAC501 PAH401 PAH402 PAH403 PAH404 PAH405 PAH406 COP9 COH4 PAH4012 PAH4011 PAH4010 PAH409 PAH408 PAH407 PAP906 PAP905 PAP904 PAP903 PAP902 PAP901 COR12 COR8 COR10 COR6 PAR1602 PAR1601 COR16 COH2 PAH1092 PAH2091 PAR1202 PAR1201 PAR1402 PAR1401 COR14 COH1 PAR802 PAR801 PAR1002 PAR1001 PAR402 PAR401 PAR602 PAR601 COR4 PAR202 COR2 PAR201 PAH1089 PAH1087 PAH1085 PAH1083 PAH1081 PAH1079 PAH107 PAH1075 PAH1073 PAH107 PAH1069 PAH1067 PAH1065 PAH1063 PAH1061 PAH1059 PAH1057 PAH105 PAH1053 PAH1051 PAH1049 PAH1047 PAH1045 PAH1043 PAH104 PAH1039 PAH1037 PAH1035 PAH103 PAH1031 PAH1029 PAH1027 PAH1025 PAH1023 PAH1021 PAH10 9 PAH10 7 PAH10 5 PAH10 3 PAH10 PAH109 PAH107 PAH105 PAH103 PAH10 PAH109 PAH108 PAH1086 PAH1084 PAH1082 PAH108 PAH1078 PAH1076 PAH1074 PAH1072 PAH107 PAH1068 PAH106 PAH1064 PAH1062 PAH106 PAH1058 PAH1056 PAH1054 PAH1052 PAH105 PAH1048 PAH1046 PAH104 PAH1042 PAH104 PAH1038 PAH1036 PAH1034 PAH1032 PAH103 PAH1028 PAH1026 PAH1024 PAH102 PAH102 PAH10 8 PAH10 6 PAH10 4 PAH102 PAH10 PAH108 PAH106 PAH104 PAH102 PAH1091 PAH201 PAH202 COC7 COC10 PAH203 PAH204 PAH205 PAH206 PAC701 PAC1001 PAC702 PAC1002 PAH207 PAH208 PAH209 PAH2010 PAR1301 PAU101 PAU102 PAH2013 PAH2014 COR15 PAR1501 PAU108 PAU107 PAH2015 PAH2016 PAH2017 PAH2018 PAH2019 PAH2020 PAH2021 PAH2022 COP2 PAU103 PAU106 PAU104 PAU105 PAR1502 PAR701 PAR702 PAR102 PAR301 PAR302 COR1 COR3 COC4 COR9 COR5 COR11 COR7 PAH2027 PAH2028 PAH2029 PAH2030 PAP203 PAP204 PAP205 PAP206 PAP207 PAP208 PAR101 PAR902 PAR502 PAR1101 PAR1102 PAC402 PAC401 PAU308 PAU307PAU306PAU305 PAU304PAU30 PAU302 PAU301 PAH2023 PAH2024 PAH2025 PAH2026 PAP201 PAP202 PAR901 PAR501 COR13 PAR1302 COU1 PAH2011 PAH2012 COU3 PAU309 PAU301 PAU301 PAU3012 PAU3013PAU3014PAU3015 PAU3016 PAC902PAC901 PAH2031 PAH2032 PAH2033 PAH2034 PAH2035 PAH2036 COC9 PAH2037 PAH2038 PAH2039 PAH2040 PAH2041 PAH2042 PAP209 PAP2010 PAP2011 PAP2012 PAP2013 PAP2014 PAP2015 PAP2016 PAH2043 PAH2044 PAH2045 PAH2046 PAH2047 PAH2048 PAH2049 PAH2050 PAH2051 PAH2052 COU2 PAU20P1A2U201 PAU201 PAU2P0A9U208PAU207PAU206PAU205PAU204PAU2P0A3U202PAU201 PAC302 PAH2053 PAH2054 PAH2055 PAH2056 PAH2057 PAH2058 PAP2017 PAP2018 PAP2019 PAP2020 PAP2021 PAP2022 PAP2023 PAP2024 PAC301 COC3 PAH2059 PAH2060 PAH2061 PAH2062 PAU20P1A3U2014PAU2015PAU20P1A6U2017PAU2018PAU2019PAU2020PAU20 1PAU20P2AU2023PAU20 4 PAH2063 PAH2064 PAH2065 PAH2066 PAC602 PAC601 PAH2067 PAH2068 PAH2069 PAH2070 COC6 PAH2071 PAH2072 PAH2073 PAH2074 PAH2075 PAH2076 PAH2077 PAH2078 PAH2079 PAH2080 PAH2081 PAH2082 PAH2083 PAH2084 PAH2085 PAH2086 COC8 PAC801 PAC802 PAH2087 PAH2088 PAP603 PAP403 COP4 COP6 COH3 PAH2089 PAH2090 PAH3089 PAH3087 PAH3085 PAH3083 PAH3081 PAH3079 PAH307 PAH3075 PAH3073 PAH3071 PAH3069 PAH3067 PAH3065 PAH306 PAH3061 PAH3059 PAH3057 PAH305 PAH3053 PAH3051 PAH3049 PAH3047 PAH3045 PAH3043 PAH3041 PAH30 9 PAH307 PAH30 5 PAH30 PAH30 1 PAH3029 PAH3027 PAH3025 PAH3023 PAH3021 PAH3019 PAH3017 PAH3015 PAH3013 PAH301 PAH309 PAH307 PAH305 PAH30 PAH301 PAH2092 PAH3092 PAP602 PAP402 PAP601 PAP401 PAH309 PAH308 PAH3086 PAH3084 PAH3082 PAH308 PAH3078 PAH3076 PAH3074 PAH3072 PAH307 PAH3068 PAH306 PAH3064 PAH3062 PAH306 PAH3058 PAH3056 PAH3054 PAH3052 PAH305 PAH3048 PAH3046 PAH304 PAH3042 PAH304 PAH308 PAH30 6 PAH304 PAH30 2 PAH30 PAH3028 PAH3026 PAH3024 PAH302 PAH302 PAH3018 PAH3016 PAH3014 PAH3012 PAH301 PAH308 PAH306 PAH304 PAH302 PAH3091 PAP803 PAP703 PAP802 PAP702 PAP801 PAP701 COP8 COP7 PAS101 PAR1702 PAR1701 COR17 PAS102 COS1 Abbildung 7.1: Übersicht der Expansion-Card Um sämtliche Schnittstellen des Eval-Boards „ADSP-21364 EZ-Kit Lite Rev. 2.0“ nutzen zu können, müssen die Signale der drei Header auf der Unterseite des Boards zugänglich gemacht werden. Der Connector-Print führt die wichtigsten Leitungen der unteren drei Header auf externe Header. Nun ist es möglich, direkt auf die Signale der Daten- und Adressbusse zuzugreifen. Dies ermöglicht eine Nutzung der nicht benutzten Speicherbereiche mit weiteren Devices (externe Speicher etc). Die SPI-Schnittstelle des Prozessors ist nun auch frei zugänglich. Zusätzlich sind sämtliche GPIO-Ports des Boards verfügbar. Die digitale Schnittstelle DCI (Siehe Kap. 8.2.1) zur Ansteuerung der SmartAntenna-Elektronik benötigt digitale Logic-High-Pegel von +5 V. Dazu wurde auf dem Connector-Print ein Pegel-Shifter mit konfigurierbarer Signalrichtung und ein Pegel-Shifter für I 2 C-Schnittstellen integriert. 85 KAPITEL 7. HARDWARE-DESIGN: EXPANSION-CARD Da der Prozessor ADSP-21364 keine I 2 C-Schnittstelle verfügt, wurde der Print mit einer SPI-zu-I 2 C-Bridge erweitert. Damit die fertig aufgebaute Smart-Antenna-Elektronik getestet werden kann, wurde eine 12-polige Buchse (E23 Buchse) integriert. Das vollständige PCB-Layout inkl. Bohrungs- und Platzierpläne und das Schema im Format A3 befinden sich im Anhang ??. In diesem Kapitel werden nur Teile des PCBs dokumentiert. 7.0.4 Elektronische Schnittstellen In diesem Kapitel werden nur die Stecker und Header der herausgeführten Signale beschrieben. Die Pinbelegung der Header H1, H2 und H3 kann in den Schemas des Eval-Boards [D10] nachgelesen werden. Abbildung 7.2: Schnittstellen des Connector-Prints Speisung P3 Das Board schlauft eine Speisungsleitung von +12 V auf die Buchse H3. Diese Speisung wird auf dem Board nicht verwendet. Mit Hilfe von P3 wird das Speisungkabel eingeklemmt. Das +12 V-Kabel befindet sich auf Pin 2 (näher beim ELKO-Stützkondensator). 86 Smart-Antenna Buchse H4 Die Smart-Antenna-Elektronik wird über ein 12-adriges, geschirmtes Kabel angesteuert. Alle digitalen Logic-High-Pegel sind +5 V Die Pinbelegung entspricht: No. Beschreibung 1 2 3 4 5 6 7 8 9 10 11 12 Masse (GND) SCL(I2 C) Masse (GND) SDA (I2 C) +12 V DAIP5 (Level-Shifted) (D2 MSB Antenna-Switch) +12 V DAIP4 (Level-Shifted) (D1 Antenna-Switch) Masse (GND) DAIP3 (ADC_DATA)(Level-Shifted) (D0 LSB Antenna-Switch) Masse (GND) +12 V Tabelle 7.1: Pinbelegung der Buchse H4 Level-shifted DAIP Schnittstelle P9 Drei DAI-Ports, deren Pegel auf 5 V geshiftet werden, befinden sich in der E23-Buchse H4. Weitere fünf DAI-Ports mit geshifteten Pegeln befinden sich auf dem Header P9: No. Beschreibung 1 2 3 4 5 6 DAIP6 (AD1835_MCLK) DAIP7 (ADC_BCLK) DAIP8 (ADC_LRCLK) DAIP9 (DAC_D4) DAIP10 (DAC_D3) Masse (GND) Tabelle 7.2: Pinbelegung des Headers P9 87 KAPITEL 7. HARDWARE-DESIGN: EXPANSION-CARD Adressbus P1 Der Header P1 beinhaltet den 16 Bit breiten Adressbus und einen 5 V-Pin. Die Pins sind nicht mehrfach belegt. No. Beschreibung No. Beschreibung 1 2 3 4 5 6 7 8 9 10 11 Masse (GND) +5 V AD1 AD0 AD3 AD2 AD5 AD4 AD7 AD6 AD9 12 13 14 15 16 17 18 19 20 ... 31 32 AD8 AD11 AD10 AD13 AD12 AD15 AD14 n.c. n.c. GND Masse (GND) Tabelle 7.3: Pinbelegung des Headers P1 SPI & FLAGs-Schnittstelle P10 Einige Prozessor-Flags wurden auf den Header P10 herausgeführt. Zusätzlich dient P10 als Schnittstelle zum SPI-Port des Prozessors. Einige Ports sind mehrfach belegt. Die Belegung ist abhängig von der Konfiguration des Eval-Boards. No. Beschreibung 1 2 3 4 5 6 7 8 FLAG0 (SPI_FLASH_CS) FLAG1 (SW1) FLAG2 (SW2) FLAG3 (AD1835_SPI_CS) MISO SPIDS MOSI SPICLK Tabelle 7.4: Pinbelegung des Headers P2 DAIP-Schnittstelle P2 Die DAIP-Ports des Prozessors sind direkt auf den Header P2 geroutet. Einige Pins sind doppelt belegt, die Funktion der Pins ist abhängig von der Eval88 Board-Konfiguration. Die DAIP-Ports mit veränderten Logik-Pegeln befinden sich auf dem Header P9. Einige Ports sind mehrfach belegt. Die Belegung ist abhängig von der Konfiguration des Eval-Boards. No. Beschreibung No. Beschreibung 1 2 3 4 5 6 7 8 9 10 11 12 Masse (GND) Masse (GND) DAIP1 (SPDIF_out) DAIP2 DAIP3 DAIP4 DAIP5 (ADC_Data) DAIP6 (AD1835_MCLK) DAIP7 (ADC_BCLK) DAIP8 (ADC_LRCLK) DAIP9 (DAC_D4) DAIP10 (DAC_D3) 13 14 15 16 17 18 19 20 21 22 23 24 DAIP11 (DAC_D2) DAIP12 (DAC_D1) DAIP13 (DAC_BCLK) DAIP14 (DAC_LRCLK) DAIP15 DAIP16 DAIP17 (AUDIO_OSC) DAIP18 (SPDIF_IN) DAIP19 (SW3) DAIP20 (SW4) 3.3 V Masse (GND) Tabelle 7.5: Pinbelegung des Headers P2 7.0.5 Jumper-Konfiguration der Level-Shifter Das Board kann acht DAI-Ausgänge von einem logisch-high-Pegel von 3.3 V auf einen Ausgangspegel von 5 V übersetzen. Jeder Port kann bidirektional benutzt werden und ist in beiden Signalrichtungen als Tristate-Buffer konfigurierbar. Mit den Jumpern P4 und P6 kann das Output-Enable-Bit OE entweder manuell oder mit dem DSP gesteuert werden. Mit den Jumpern P7 und P8 kann die Richtung der Signale vorgegeben werden: Der Level-Shifter SN74LVC4245A weist folgende Funktionstabelle auf: Input Output OE DIR An Bn L L H L H X A=B input Z input B=A Z Tabelle 7.6: Funktionstabelle des Level-Shifters SN74LVC4245 89 KAPITEL 7. HARDWARE-DESIGN: EXPANSION-CARD Konkret können mit den Jumpern P4 und P6 folgende Konfigurationen durchgeführt werden: Konfiguration Jumper-Stellung Konfiguration über den DSP mit DAIP11. Logic ’0’ := Ausgang aktiviert. Jumper P6 ist nicht relevant. Manuelle Konfiguration mit dem Jumper P6. Ausgang aktiviert. Manuelle Konfiguration mit dem Jumper P6. Ausgang deaktiviert. Tabelle 7.7: Jumper-Konfiguration der Level-Übersetzung auf dem ConnectorPrint Konkret können mit den Jumpern P7 und P8 folgende Konfigurationen durchgeführt werden: Jumper-Stellung Konfiguration Konfiguration über den DSP mit DAIP12. Logic ’1’ := Buffer als Ausgang definiert. Jumper P6 ist nicht relevant. Buffer als Ausgang definiert. Buffer als Eingang definiert. Tabelle 7.8: Jumper-Konfiguration der Level-Übersetzung auf dem ConnectorPrint 90 Kapitel 8 Hardware-Design: Smart Antenna 8.1 8.1.1 Antennen-Array Testaufbau für immobile Tests Der Aufbau des Antennen-Arrays für immobile Tests wurde durch Ch. Moya konstruiert. Die folgenden Kapitel wurden aus der Dokumentation [31] entnommen und ergänzt. Die mechanische Belastung des Antennen-Arrays ist begrenzt und kann nicht für mobile Tests auf Fahrzeugen benützt werden. Mechanischer Aufbau einer einzelnen Antenne Die Antennen für den immobilen Testaufbau werden als λ4 -Monopol-Antennen dimensioniert. Die Antennen werden im Kreis auf einer 0.8 m x 0.83 m x 2.5 mm grossen Aluminium-Platte montiert. Eine Gerätebuchse mit Grösse N wird mit der Platte verschraubt. Der Antennen-Stab besteht aus einem 2 mm dicken, leitenden Stahlstab. Die Länge des Stahlstabs enspricht λ4 der Wellenlänge bei 150 MHz: c 4· f l = 500 mm l = (8.1) Messungen und Tuning Nach Montage wird die Impedanz jeder Antenne optimiert, indem deren Imaginärteil minimiert wird. Dazu wird ein Line-Analyzer verwendet und eine 1-Port-Messung (S11, Reflexion) durchgeführt. Die Stäbe der Antennen werden etwas grösser als 500 mm geschnitten, dann soweit verkleinert. 91 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA Abbildung 8.1: Mechanische Befestigung der einzelnen Antenne auf der Rückseite der Aluminiumplatte mit einer N-Buchse und einem 50 Ω-Kabel Abbildung 8.2: Mechanische Befestigung der einzelnen Antenne auf der Vorderseite der Aluminiumplatte mit einer N-Buchse und verlötetem Stahlstab Abbildung 8.3: Optimierung der Impedanz einer einzelnen Antenne. Bei 150 MHz wird der Imaginärteil der Impedanz minimiert. Mechanischer Aufbau des Arrays Die Antennen des Arrays sind auf einer Aluminium-Platte montiert. Dazu wurden acht Löcher in einem Kreis mit Radius von 20 cm gebohrt. Sämtliche 92 8.1. ANTENNEN-ARRAY Ränder wurden zur mechanischen Stabilisation zwei Mal gefaltet. Abbildung 8.4: Aufbau des Antennenarrays mit acht radial angeordneten Antennen Abbildung 8.5: Mechanische Stabilisierung der Aluminium-Platte durch FaltRänder 93 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA 8.1.2 Elektronik-Gehäuse Die gesamte Elektronik des Antennenarrays ist in einem Aluminium-Gehäuse R eingebaut und wird auf die Unterseite der Smart-Antenna gevon ROLEC schraubt. Das Gehäuse weist folgende Eigenschaften auf: Eigenschaft Wert Typ EK121 Aluminium-Guss Legierung Aluminiumguss Legierung: EN AC-44300 DIN EN 1706(GD Al Si 12/DIN 1725) Schutzart Einbauten IP 66/67 EN 60529 Befestigungsmöglichkeiten M4/M6 im Oberund Unterteil zum Einbau u.a. von Leiterkarten und Montageplatten Tabelle 8.1: Eigenschaften des Elektronik-Gehäuses der Smart Antenna R Abbildung 8.6: 2D Vermassung des Gehäuses ROLEC EK121 [mm] 94 8.1. ANTENNEN-ARRAY Die nachfolgende Abbildung zeigt die maximalen Dimensionen der Leiterplatte und die Positionen der Bohrlöcher. Abbildung 8.7: 2D Vermassung der Leiterplatte [mm] 8.1.3 Schnittstellen Die Schnittstellen der Antennen-Elektronik sind aus dem Gehäuse herausgeführt. Das Potential des Gehäuses entspricht der Fahrzeugmasse. Das MassePotential der Elektronik im Gehäuse ist über das Gehäuse mit der Fahrzeugmasse verbunden. 95 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA Bez. Schnittstelle Technologie Fahrzeugmasse Fahrzeugmasse und digitale Masse 12-adriges Kabel mit digitalen Steuersignalen, Speisungs und Masseleitungen. Paarweise geschirmt. Spannungsfestigkeit von 300 V pro Ader multiplexiertes RF-Signal des RF-Switchs. 50 Ω SMA-Leitung 50 Ω SMA-Leitung zur GPSAntenne Antennensignal der [1..8]. Antenne. 50 Ω SMA-Leitung. Sämtliche Antennen-Kabel sind gleich lang DCI Digital Control Interface RF_ SW Switched RFSignal Interface GPS Antenna GPS A[1..8] AntennenSignale Tabelle 8.2: Hardware-Interfaces der Antennen-Elektronik 96 8.1. ANTENNEN-ARRAY DCI RF_SW A1 A8 A7 A2 A6 A5 A3 A4 GPS Abbildung 8.8: Schnittstellen der Smart-Antenna-Elektronik 8.1.4 Einbau der Elektronik Die Elektronik besteht aus zwei Leiterplatten. Beide Leiterplatten sind im Kapitel 8.2 und 8.3.3 dokumentiert. Die Leiterplatten werden übereinander als «Sandwich» verschraubt. Die Komponenten-Seiten sind dabei auf der Aussenseite des «Sandwichs». Abbildung 8.9: Verschraubte Leiterplatten der Smart-Antenna-Elektronik Es werden Stopp-Muttern verwendet, damit die gesamte Anordnung direkt 97 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA in das Gehäuse geschraubt werden kann. Durch die Rotation der Schrauben würden normale Muttern ihre Position verlieren. Flachbandkabel verbinden den P5 des Navigations-Prints mit dem DCI. Der Header P17 des Navigations-Prints und der Header P13 werden auch mit einem Flachbandkabel verbunden. Der GPS-Anschluss P7 des NavigationsPrints wird durch den Spalt auf der DCI-Seite auf die Rückseite geschlauft und mit einer SMA-Gehäusebuchse nach aussen geführt. 98 8.2. NAVIGATOR-PRINT 8.2 Navigator-Print COP17 COP5 PAP5011 PAP509 PAP507 PAP505 PAP503 PAP501 PAP5012 PAP5010 PAP508 PAP506 PAP504 PAP502 COP15 COS1 PAR301 PAR302 COR4 PAS102 PAL601 PAL501 PAL401 PAL201 PAL602 COC8 PAL502 PAL402 PAL202 PAC801 PAC802 COL7 COL6 COL5 COL4 PAR402 PAR401 PAR502 PAR501 COD1 PAD202 PAD101 PAD201 PAD102 COR5 COC20 PAC302 PAC702 PAU201 PAC701 COC7 COC5 PAC401 PAC402 PAD401 PAD301 PAD402 PAD302 COC4 COR2 PAU309PAU301 PAU301 PAU3012PAU3013 PAU3014PAU3015 PAU3016 PAC1302 PAC1301 COC13 COC2 COD3 PAR201 PAR101 COR1 PAR202 PAR102 COP13PAP1301 COC16 COC12PAC1201 PAC1202 PAU803 PAU802PAU801 PAU603 PAU602 PAU601 PAU705 PAU704 PAC1601 PAC1602 PAU1303 PAU1302PAU1301 PAU1 03 PAU1 02 PAU1101 PAU1205 PAU1204 PAU804 PAU805 PAU604 PAU605 PAU701 PAU702 PAU703 PAU1304 PAU1305 PAU1 04 PAU1105 PAU1201 PAU1202 PAU1203 COU13PAC1402 COU11PAC1502 COU12 COU8 PAC1002 COU6 PAC1102 COU7 PAC1101 COC11 COC14 PAC1401 PAC1501 COC10 PAC1001 COC15 COP16 PAP1601 COP20 COP19 PAP1401 COP14 COC18 COC17 PAC1701 PAC1702 COU5 PAC202 COC21 COU3 PAP1001 COP10 PAP1101 COP11 PAP1201 COP12 PAC502 PAC501 COD4 PAC201 PAC2202 PAC2201 COC22 PAC2101 PAC2102 PAU308PAU307 PAU306PAU305PAU304 PAU30 PAU302 PAU301 PAP901 COP9 PAC1901 PAC1902 COC19 PAC601 PAC602 COC6 PAU102 PAU103 PAL102 PAU203 COU2 PAP301 COP3 PAP401 COP4 COD7 COR10PAR1002 PAR1001 PAD702 PAD701 PAP601 COP6 COD8 COR11 PAR1102 PAR1101 PAD802 PAD801 PAP801 COP8 PAU101 PAC301 COL1 PAL101 COD5 COR8 PAR802 PAR801 PAD502 PAD501 COD6 COR9 PAR902 PAR901 PAD602 PAD601 PAP17012 PAP17010 PAP1708 PAP1706 PAP1704 PAP1702 COU1 PAU202 PAC2002 PAC2001 PAP17011 PAP1709 PAP1707 PAP1705 PAP1703 PAP1701 COC3 COL2 PAP1501COP2 PAU404 PAU403 PAU402 PAU401 COC9 PAP201 COU4 PAC102 PAC101 PAC901 PAP101 COP1 PAU405 PAU406 PAU407 PAU408 COC1 PAC902 COR3 PAS101 PAL701 PAL702 COD2 PAP2001 PAP1901 PAC1801 PAC1802 PAU5024 PAU5023 PAU502 PAU5021 PAU5020 PAU5019 PAU5018 PAU5017PAU5016PAU5015PAU5014PAU5013 PAU901 PAU9014 PAU902 PAU9013 COU9 PAU903 PAU501 PAU502 PAU503 PAU504 PAU505 PAU506 PAU507 PAU508PAU509PAU5010PAU501 PAU5012 COR6 PAR602 PAR601 PAC2301 COC23 COC24 PAC2401 PAC2402 PAC2302 PAL301 PAU10 24 PAU10 23 PAU10 2 PAU10 21 PAU10 20 PAU10 19 PAU10 18 COU10 PAU9012 PAU904 PAU9011 PAU905 PAU9010 PAU906 PAU909 PAU907 PAU908 PAU10 1 PAU10 2 PAU10 3 PAU10 4 PAU10 5 PAU10 6 PAU10 7 PAU10 8PAU10 9PAU10 10PAU10 1 PAU10 12 COR7PAR702 PAR701 PAC2801 COC28 COC26 PAC2601 PAC2602 PAC2802 PAL801 COL3 PAL302 PAC2502 PAC2501 COC25 COP7 PAU10 17PAU10 16PAU10 15PAU10 14 PAU10 13 COL8 PAL802 PAC2702 PAP701 COP18 PAP700 PAC2701 COC27 PAP1801 PAP1800 PAS202 PAS301 COS3 COS2 PAS201 PAS302 Abbildung 8.10: Übersicht des Navigator-Prints Zur Triangulation des RF-Senders muss die Ausrichtung und die Position des mobilen Doppler-Systems bestimmt werden. Die auf dem Navigator-Print eingebetteten GPS-Module und dem Kompass-Modul werden die benötigten Daten bestimmt. Der Navigator-Print enthält zusätzlich Elektronik zur seriellen Übertragung der Daten an den DSP im Fahrzeug. Die Spannungsversorgung der gesamten Antennen-Elektronik befinden sich zusätzlich auf dem Navigator-Print. Das vollständige PCB-Layout inkl. Bohrungs- und Platzierpläne und das Schema im Format A3 befinden sich im Anhang ??. In diesem Kapitel werden nur Teile des PCBs dokumentiert. 99 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA 8.2.1 Elektronische Schnittstellen Header P5 (Digital Control Interface DCI) Das DCI verbindet die Elektronik der Smart Antenna mit dem Empfänger im Fahrzeug. Die gesamte Kommunikation zwischen dem Empfänger und den beiden Smart-Antenna Printe erfolgt über das DCI. Sämtliche logischen HighPegel sind 5 V. No Beschreibung 1 2 3 4 5 6 7 8 9 10 11 12 Masse (GND) SCL (I2 C) Masse (GND) SDA (I2 C) +12 V D2 (MSB des Steuersignals) +12 V D1 Masse (GND) D0 (LSB des Steuersignals) Masse (GND) +12 V Tabelle 8.3: Pinbelegung des Headers P5 Header P17 (Switch-Steuersignale) No Beschreibung 1 2 3 4 5 6 7 8 9 10 11 12 Masse (GND) D0 (LSB des Steuersignals) Masse (GND) D1 Speisung (+5 V) D2 (MSB des Steuersignals) Masse (GND) Speisung (+5 V) Masse (GND) Speisung (+5 V) Masse (GND) Speisung (+5 V) Tabelle 8.4: Pinbelegung des Headers P17 100 8.2. NAVIGATOR-PRINT Die Steuersignale des RF-Switchs werden auf der Stecker-Ebene des DCIs gefiltert (Siehe 8.2.3). Nach der Filterstufe werden sie mit dem Header P17 zum RF-Switch-Print weitergeleitet. SMP-Steckverbinder P7, P18 (GPS-Signale) Die GPS-Signale werden von einer externen GPS-Antenne mit den Steckerbindern P7 und P18 mit den jeweiligen GPS-Module verbunden. Abbildung 8.11: Elektronische Schnittstellen des Navigator-Prints 101 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA 8.2.2 Test- und Programmierpunkte Der Print weist mehrere Test- und Programmierpunkte auf. Der I 2 C- und der SPI-Bus können mit Messklemmen analysiert werden. Zusätzlich können die GPS-Module über eine serielle EIA-232-Schnittstelle direkt konfiguriert werden. Ein zukünftiges Firmware-Upgrade der Module erfolgt durch dieselbe Schnittstelle (Siehe Datenblatt [D1]). No. Beschreibung P1 P2 P3 P4 P6 P8 P9 P10 P11 P12 P13 P14 P15 P16 P19 P20 SDA (I 2 C) auf der 3.3 V-Seite SCL (I 2 C) auf der 3.3 V-Seite SS0 (SPI) SS1 (SPI) SS2 (SPI) SS3 (SPI) MISO (SPI) MOSI (SPI) CLK (SPI) GND GND TxD1 (EIA-232) von GPS-Modul U5 GND RxD1 (EIA-232) von GPS-Modul U5 TxD1 (EIA-232) von GPS-Modul U10 RxD1 (EIA-232) von GPS-Modul U10 Tabelle 8.5: Testpunkte auf dem Navigator-Print Abbildung 8.12: Position der Testpunkte auf dem Navigator-Print 102 8.2. NAVIGATOR-PRINT 8.2.3 EMV-Störunterdrückung Speisungsgebundene Störungen Die +12V-Speisung wird direkt vom 12V-Bordnetz des Fahrzeugs entnommen. Das Bordnetz enthält durch die rauhe Umgebung von Zünddrosseln und Fahrzeugelektronik Transienten. Die Störungen werden durch mehrere Stufen herausgefiltert: 1. Die erste Stufe enthält eine Diode vom Typ GF1A (Vishay) als Verpolunggschutz (D1). Die Diode weist folgende Charakteristik auf: Vorwärtsstrom IF = 1 A, Vorwärtsspannung VF = 1.1 − 1.2 V, Rückwärtsstrom IR = 5 µA, Sperrspannung VRRM = 50 V (Siehe Datenblatt [D2]) 2. Überspannungen (Surges etc.) werden in einer zweiten Stufe mit dem Transzorber vom Typ SMAJ24A (D2) abgeleitet. Die Diode weist folgende Charakteristik auf: Breakdown-Spannung VBR = 26.7 − 29.5 V, maximaler Surge-Strom IPPM = 10.3 A, maximale Klemmenspannung @ IPPM VC = 38.9 V (Siehe Datenblatt [D3]) 3. Zur Unterdrückung hochfrequenter Anteile in der Speisungs-Spannung wird in Längsrichtung eine SMD-Drossel (L1) eingebaut. Die Speisung gilt nach der Drossel als sauber. 4. Ein Stützkondensator (C3) stabilisiert die Speisungsspannung nach der Filterung unerwünschter Störungen. D1 L1 1 +12 D2 SMA J24A C3 100uF 2 GF1A GND Abbildung 8.13: EMV-Störunterdrückung der +12V-Speisung Abbildung 8.14: PCB-Layout der EMV-Störunterdrückung von der +12VSpeisung Zur zusätzlichen Entkopplung der ungefilterten +12V-Speisung und den in der Schaltung erzeugten Speisespannungen wurde der Abstand zwischen diesen Planes vergrössert. 103 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA Feldgebundene Störungen der Antennen-Elektronik Die gesamte Elektronik inklusive Anschlussleitungen ist geschirmt. Der Schirm liegt auf dem Potential der Fahrzeugmasse und unterdrückt feldgebundene Störungen. Die Kabel und das Gehäuse entsprechen der Schutzart IP 66/67. Dies unterdrückt auch Emissionen der Schaltung selber. Zusätzlich wurde rund um RF-Signale und -Komponenten ein Netz aus Vias erstellt, welche zusätzlich abschirmen. Sie garantieren eine möglichst gute Masseverbindung zwischen Top- und Bottom-Layer. Die Abstände der Vias entsprechen mindestens 1/10λ des RF-Signals. Abbildung 8.15: Das Via-Netz zur Schirmung und optimaler MasseVerbindung von Top- und Bottom-Layer Leitungsgebundene Störungen im Digital Control Interface (DCI) Sämtliche Leitungen vom Digital-Control-Interface sind durch Ferrit-Induktivitäten kurz nach der Buchse geschützt. Die Ferrit-Induktivitäten unterdrücken leitungsgebundene Störungen, wie elektrostatische Entladungen auf einzelnen Pins oder Störspannungen der Speisung. Die Ferrite unterdrücken keine GleichtaktStörung. Ein Anheben des Potentials sowohl bei Masse und Speisung wird nicht unterdrückt. 104 8.2. NAVIGATOR-PRINT Abbildung 8.16: Position der leitungsgebundenen Störunterdrückung durch SMD-Ferrite 8.2.4 Speisung +3.3 V- und 5 V-Speisung Die Smart-Antenna Elektronik benötigt Speisespannungen von +3.3 V und +5 V. Zur Regelung der beiden Speise-Spannungen werden zwei lineare Spannungsregler vom Typ TS1117 (U2 für 3.3 V und U1 für 5 V) benutzt. Zur Spannungsstabilisierung wird am Speisungs-Eingang und -Ausgang je ein 10 µFKondensator (C4, C5, C19, C21) in die Nähe des Bauteils gesetzt. Zur Unterdrückung von Schwingvorgängen während der Spannungsregelung und der Ein- und Ausschaltvorgänge wird zusätzlich am Speisungs-Eingang und -Ausgang je ein 100 nF Kondensator (C5, C7, C20, C22) eingesetzt. C4 10uF U1 IN C7 100nF VCC5 3 OUT GND 4 1 C5 C6 100nF 10uF T S1117 GND C19 10uF C22 100nF IN VCC3 .3 3 OUT GND 4 1 U2 T S1117 C20 100nF C21 10uF D3 GND D4 R1 240 GND R2 560 GND Abbildung 8.17: Speisung der Smart-Antenna Elektronik Zusätzlich zu den Kondensatoren werden Speisungs-Planes eingesetzt, die zusätzliche Kapazitäten aufweisen. Die Kapazitäten wirken sich positiv zur Spannungsstabilisierung aus. Die LED’s (D3 für 3.3 V und D4 für 5 V) zeigen eine korrekt funktionierende Speisung an. 105 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA Abbildung 8.18: PCB-Layout der Speisung (Smart-Antenna Elektronik) 8.2.5 I2 C,SPI-Bus und -Komponenten Pegel-Wandler und EMV-Störunterdrückung Die I2 C-Signalleitungen des DCI werden mit einem Logic-High-Pegel von 5 V geführt. Dies garantiert eine bessere Störsicherheit für kabelgebundene Störungen (weitere Massnahmen sind im Kapitel 8.2.3 beschrieben). Die Wandlung der 3.3 V-I2 C-Pegel innerhalb der Platine und der 5 V-Pegel im DCI wird durch den Baustein PCA9505 (U4, Datenblatt [D4]) durchgeführt. U4 weist zwischen dem Port Ax und dem Port Bx eine Isolations-Spannung von 2 kV auf. Do not assemble R3, R4. T he HMC6343-eval includes pullup res. VCC3 .3 U4 VCC5 8 7 6 VCC3 .3 5 VCC_ B VCC_ A B1 A1 B2 A2 En VS S R4 10K 1 R5 10K P1 P2 2 3 4 GND PCA 9509 Abbildung 8.19: I2 C Level-Shifter und Beschaltung Der I2 C-Bus A wird durch Stromquellen mit I = 1 mA gespiesen. Auf die Pull-Up-Widerstände (R4, R5 und die beiden Pullup-Widerstände auf dem Kompass-Sensor R1 und R2) der beiden Busleitungen kann verzichtet werden. I2 C-zu-SPI-Bridge In die GPS-Module wuren keine I2 C-Schnittstellen integriert. Sie können dennoch mit I2 C angesteuert werden, indem eine I2 C-zu-SPI-Bridge (SC18IS602B, 106 8.2. NAVIGATOR-PRINT Abbildung 8.20: I2 C-Busleitungen auf dem Navigator-Print [D5]) eingesetzt wird. Die Bridge operiert als I2 C-Slave und als SPI-Master. Abbildung 8.21: Blockschaltbild der I2 C-zu-SPI-Bridge SC18IS602B Die Ein- und Ausgänge sind folgendermassen mit den SPI-Slaves beschaltet: 107 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA Symbol Pin Typ Beschreibung zur Beschaltung SS0/GPIO0 SS1/GPIO1 RESET MISO MOSI SDA SCL INT SS2/GPIO2 SPICLK SS3/GPIO3 A0 A1 A2 1 2 3 5 6 7 8 9 10 11 13 14 15 16 I/O I/O I I O I/O I O I/O O I/O I I I GPS-NEO6Q Modul 1 Select und GPIO0 Status-LED D5 GPS-NEO6Q Modul 2 Select und GPIO1 Status-LED D6 reset input (active low) SPI Master In, Slave Out SPI Master Out, Slave In I2 C-Bus Daten I2 C-Bus CLK Interrupt out (active low), nicht benutzt GPIO2 Status-LED D7 SPI clock GPIO3 Status-LED D8 Adresse Bit 0 (GND) Adresse Bit 1 (GND) Adresse Bit 2 (GND) Tabelle 8.6: Testpunkte auf dem Navigator-Print Sämtliche Bus-Signale können mit Testpunkten abgegriffen werden (Siehe Kapitel 8.3.2). Die I2 C-zu-SPI-Bridge kann mit dem Reset-Drucktaster S1 in den Initial-Zustand gebracht werden. Abbildung 8.22: I2 C-zu-SPI-Bridge mit Beschaltung 108 8.2. NAVIGATOR-PRINT Abbildung 8.23: I2 C-zu-SPI-Bridge mit Testpunkte und Reset-Taster 8.2.6 GPS-Modul Auf dem Navigator-Print befinden sich zwei GPS-Module vom Typ NEO-6Q [D7]. Die Module enthalten neben einem Basisbandprozessor für GPS-Signale auch die Signalvorverarbeitung und diverse digitale Schnittstellen. VCC3 .3 SS0 U6 NC7 SZ125 MOS I U5 GND VCC3 .3 GND U7 NC7 SZ125 MI SO GND SPI_C L K VCC3 .3 U8 NC7 SZ125 P16 P14 VCC3 .3 GND 13 14 15 16 17 18 19 20 21 22 23 24 GND MOS I / CF G_Com0 MI SO / CF G_Com1 / NC CF G_GPS0 / SC K / NC Reserved / NC SDA 2 SC L 2 T xD1 Rx D1 V_ BC K P VCC GND GND RF _IN GND VCC_ RF Reserved VDD_ US B US B _D+ US B _DE xtINT0 T imePulse SS_N/NC Reserved 12 11 10 9 8 7 6 GND GND C23 ?pF L 3 ?mH 3.3K R6 C24 ?mH C25 ?mH P7 SMP GND S2 SW-PB 5 4 3 2 1 GND NEO- 6Q SS0 GND Abbildung 8.24: Beschaltung der GPS-Module. Die Beschaltung der beiden Module ist äquivalent. Reset Das NEO-6-Modul beinhaltet keinen expliziten Reset-Pin. Eine Reset-Funktion kann trotzdem implementiert werden, indem ein 3.3 kΩ-Widerstand zwischen Pin 8 und Pin 9 eingelötet wird (R6, R7). Pin 8 kann nun als RESET-Pin benutzt werden. Dazu wurde ein Taster mit GND verbunden (S2, S3). Wird der Taster gedrückt, so werden die jeweiligen GPS-Module in den Initialzustand gebracht [[D7, Neo-6 Hardware Integration Manual Kap. 1.7.1]]. 109 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA Abbildung 8.25: Position der GSP-Module und deren Beschaltung SPI-Schnittstelle In diesem Projekt werden die GPS-Module mit SPI konfiguriert und ausgelesen. Die SPI-Pins des Moduls sind doppelt belegt. Die Pins 14 (MOSI), 15 (MISO)und 16 (SCK) werden zusätzlich zur Konfiguration während des Aufstartens des Moduls benutzt. Ist der SPI-Bus beim Aufstarten des Moduls schon aktiv, so kann das Modul fehlkonfiguriert werden. Damit beim Aufstarten des Moduls keine Daten an den SPI-Pins des Moduls anliegen, werden für jede Bus-Leitung Buffer (U6, U7, U8, U11, U12, U13) eingesetzt. Die Ausgänge der Buffer sind aktiv, wenn das Chip-Select-Signal (SS0 für U5 oder SS1 für U10) des jeweiligen GPS-Moduls aktiv (logisch high) ist [D7, Neo-6 Hardware Integration Manual Kap. 1.6.4.3]. GPS-Antenne In der ersten Version des Navigator-Prints ist eine passive GPS-Antenne vorgesehen. Es wird keine DC-Bias-Spannung zum Antennen-Signal hinzugefügt. Die Bauteile C23, C24, C25 und L3 resp. C26, C27, C28 und L8 können zur Leitungsanpassung oder zur Filterung des GPS-benutzt werden. Sie müssen nicht unbedingt beschaltet werden. Die Leitung mit den GPS-Signalen ist 50 Ω angepasst. Der Abstand zwischen Leitung und GND-Plane ist zu kurz und sollte manuell noch vergrössert werden (ca. 100 mil). UART-Programmierschnittstelle Das GPS-Modul kann mit einem UART über das serielle Interface konfiguriert und ausgelesen werden. Dazu wurden vier Testpunkte eingefügt (Siehe Tabelle 8.7). Das Modul unterstützt die Datenraten von 4.8 kBit/s bis 230 kBit/s. Die Signal-Levels betragen 0 V und VDD V. 110 8.2. NAVIGATOR-PRINT Modul Testpoint Port U5 U5 U10 U10 P14 P16 P19 P20 TxD1 RxD1 TxD1 RxD1 Tabelle 8.7: UART-Programmierschnittstelle 8.2.7 Kompass-Modul Die Ausrichtung des Fahrzeugs wird mit Hilfe eines Kompass-Moduls von Honeywell (HMC6343-eval, Datenblatt: [D6]) bestimmt. Der Sensor ist vollständig selbstkalibrierend und beinhaltet Algorithmen zur Minimierung von magnetischen Störungen (Ferrite im Gehäuse, PCB, ...). Zusätzlich ist ein Beschleunigungssensor mit zwei Achsen eingebaut. Dieser wird in diesem Projekt nicht benutzt. Der Sensor wird direkt an den I2 C-Bus angeschlossen. Die wichtigsten Kennzahlen des Kompass-Moduls werden in der nachfolgenden Tabelle zusammengefasst: Eigenschaft typ. Kennwert Feld-Bereich Winkel-Präzision Winkel-Auflösung Messstreuung (1σ) Messrate ±1 gauss 2◦ 0.1◦ ±0.3◦ 5 Hz Tabelle 8.8: Kennzahlen des Kompass-Moduls. Die Kennzahlen für den Beschleunigungssensor werden hier nicht aufgeführt. Das Kompass-Modul wird als Eval-Board mit zwei 0.1-Zoll Header verbaut. Da mit dem I2 C-Treiber PCA9509 (U4) auf die im I2 C-Standard vorgesehenen Pull-Up-Widerstände verzichtet werden kann, müssen diese auf dem EvalBoard des Sensors ausgelötet werden (R1, R2 auf dem HMC6343-eval Board). In einer weiteren Hardware-Version kann der Sensor ohne weiteres von Hand direkt eingelötet werden. 111 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA Abbildung 8.26: HMC6364-Evalboard mit Vermassung und Pull-Up Widerständen 112 8.3. RF-SWITCH 8.3 RF-Switch COP13 COP12 PAP13011 PAP1309 PAP1307 PAP1305 PAP1303 PAP1301 PAP120 PAP1201 COC21 PAL1801 PAL1802 COL18 PAP13012 PAP13010 PAP1308 PAP1306 PAP1304 PAP1302 PAC2402 PAC2401 COC20 PAC2302 PAC2301 COC23 PAC1902 PAC1901 COL19 PAL1901 PAL601 PAL602 PAR402 PAR401 PAC1801 PAC1802 PAU1013 PAU101 PAU1014 PAC201 PAR201 PAR202 PAL202 PAL201 PAC202 PAU201 PAU2015 PAU2014 PAU2013 PAU2012 PAU2011 PAU2010 PAU209 PAU202 PAU203 PAU204 PAU205 PAU206 PAU207 PAU208 PAU3014 PAU3013 PAU3012 PAU3011 PAU3010 PAU309 PAU308 PAU301 PAU302 PAU303 PAU304 PAU305 PAU306 PAU307 COU3 COP18 PAP1801 COL17 COC16 COR1PAR102 COP1 COR9 PAC1402 PAC1602 PAC1502 COC15 COL1PAR101 PAL102 PAC1401 PAC1601 PAC1501 COC14 COD1 PAL101 COC1PAP100 PAL1701 PAL1702 PAR901 PAR902 COC2 COT1 PAT104 PAT103 PAT101 PAT102 PAC1301 PAC1302 COC13 COL4 PAC101 PAC102 PAD102 PAL401 PAL402PAD103 PAP101 PAD101 PAD401 PAD403 COR4 PAU2016 PAC502 PAC501 COU1COC5 PAC302 COC3 PAC301 COC22 COC17 PAC1701 COD2 PAD202 PAD201 COL3 PAL301 PAL302PAD203 COC8 COD4 PAC801 PAC802 PAU102 PAC1702 PAC2202 PAC2201 PAP200 PAP201 COL2 COR2 PAP400 PAU108 PAU109 PAU1010 PAU1011 PAU1012 PAL1902 COC18 COP9 PAP901 PAP401 COC19 PAU107 PAU106 PAU105 PAU104 PAU103 COP2 PAP1901 COP19 COP4 COC4 PAC402 COC6 PAC2101 PAC2102 PAC2002 PAC2001 COU2 PAC401 COC24 PAC602 PAC601 PAL702 PAL701 PAD402 COL6 COL8 COL7 PAP1001 COP10 COP6 PAL802 PAD303 PAL801 PAD301 PAD302 COD3 COR3 COC7 PAC701 PAL501 PAL502 PAR301 PAR302 COP3 PAC702 COL5 PAP1701 COP17 PAP301 PAP30 PAP600 PAP601 COP11 PAP1101 COL10 PAC1001 PAR601 PAR602 PAL1002 PAL1001 PAC1002 COC10 COL12 COR6 COD6 PAD602 PAD601 PAL1101 PAD603 COP8 PAL1102 PAL1201 PAL1202 COL11 COC12 PAP801 PAC1201 PAC1202 PAP800 COR8 PAD801 PAL1502 PAL1501 PAD803 PAD802 PAL1401 PAL1402 COL14 PAR802 PAR801 COD8 PAD503 COL16 COP7 COL15 PAP701 COC11 PAD701 PAC1102 PAC1101 PAD702 PAD703 COC9 PAC901 PAL901 PAL902 PAR501 PAR502 COP5 PAC902 COL9 COR5 PAP1601 COP16 COD7 PAL1301 PAL1302 COL13 PAR701 COR7 PAR702 COP15 PAP700 PAP1401 COD5 PAD501 PAD502 PAL1601 PAL1602 PAP501 PAP500 PAP1501 COP14 Abbildung 8.27: Übersicht des Switch-Prints Das Pseudo-Doppler-Verfahren benötigt eine elektronische Schaltung zur radialen Multiplexierung der Antennensignale. Dazu werden vom DSP im Fahrzeug Steuersignale zum RF-Switch gesendet. Die notwendige Elektronik zur Multiplexierung ist im Switch-Print integriert. Das vollständige PCB-Layout inkl. Bohrungs- und Platzierpläne und das Schema im Format A3 befinden sich im Anhang ??. In diesem Kapitel werden nur Teile des PCBs dokumentiert. 113 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA 8.3.1 Elektronische Schnittstellen Header P13 (Speisung, digitale Steuersignale) Die Antennen werden mit einem 3-bit breiten Bus angesteuert. Die Signale befinden sich auf den Pins 2,4 und 6. Mit den Steuersignalen wählt ein Decoder die zu schaltende Antenne aus. Mit zwei Invertern wird jeweils eine Schaltdiode (Kap. 8.3.3) durchgeschaltet. Sämtliche Signale werden mit TTL-Pegeln geschaltet. Ant. No. Header,Pin [P13,6 P13,4 P13,2] 1 2 3 4 5 6 7 8 000 001 010 011 100 101 110 111 Tabelle 8.9: Steuersignale der einzelnen Antennen Die vom Navigator-Print erzeugte +5 V-Spannung wird durch denselben Header geführt. Die Belegung des gesamten Headers ist in der nachfolgenden Tabelle zusammengefasst: No. Beschreibung 1 2 3 4 5 6 7 8 9 10 11 12 Masse (GND) D0 (LSB des Steuersignals) Masse (GND) D1 Speisung (+5 V) D2 (MSB des Steuersignals) Masse (GND) Speisung (+5 V) Masse (GND) Speisung (+5 V) Masse (GND) Speisung (+5 V) Tabelle 8.10: Pinbelegung des Headers P13 114 8.3. RF-SWITCH SMP-Steckverbinder P1-P8, P12 (RF-Signale) Die Antennensignale werden mit SMP-Steckverbindern auf das Board geführt. Die Steckverbinder werden folgendermassen zugewiesen SMP No. Beschreibung 1 2 3 4 5 6 7 8 12 RF Input 8 RF Input 1 RF Input 7 RF Input 2 RF Input 6 RF Input 3 RF Input 5 RF Input 4 RF Output Tabelle 8.11: SMP-Steckverbinder der RF-Signale Abbildung 8.28: Elektronische Schnittstellen des Switch-Prints 8.3.2 Test- und Programmierpunkte Der Switch-Print weist mehrere Test- und Programmierpunkte auf. Die Schaltsignale der Dioden (Pegel 0 V, 5 V) können über die blauen Testpunkte abge115 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA griffen werden: No. Beschreibung P9 P10 P11 P14 P15 P16 P17 P18 P19 Schaltsignal Antenne 1 Schaltsignal Antenne 2 Schaltsignal Antenne 3 Schaltsignal Antenne 4 Schaltsignal Antenne 5 Schaltsignal Antenne 6 Schaltsignal Antenne 7 Schaltsignal Antenne 8 Masse (GND) Tabelle 8.12: Testpunkte auf dem RF-Switch-Print Abbildung 8.29: Position der Testpunkte auf dem RF-Switch-Print 8.3.3 RF-Switch mit Schottky-Dioden Das Design des RF-Switchs wurde aus einer vorhergehenden Student-ExchangeArbeit (Siehe [31]) entnommen und erweitert. Die nötigen Konzepte werden hier nochmals erläutert. Eine Schottky-Diode ist eine spezielle Diode, welche nicht wie die üblichen Di116 8.3. RF-SWITCH oden einen p-n-Übergang, sondern einen Halbleiter-Metall-Übergang besitzt. Durch den speziellen Übergang entsteht eine sehr kleine Sättigungskapazität. Dies ermöglicht eine schnelle Umschaltung der Diode aus dem ohmschen in den leitenden Zustand (Reverse Recovery Time der Diode BAV70T trr = 4 ns). Mit einem DC-Anteil im Signal kann der Arbeitspunkt der Diode vom ohmschen in den leitenden Bereich verschoben werden. Die RF-Signale werden im leitenden Bereich mit kleiner Dämpfung übertragen. S0 P2 RF Input SMP R2 500 Switched Output C2 470pF GND L2 470nH L3 470nH D2 BA V7 0 0603L S471XJL GND Abbildung 8.30: Schema des RF-Switches mit der Kleinsignaldiode BAV70 Das DC-Signal wird über die beiden Induktivitäten L2 und L3 ein- und ausgekoppelt. Der Widerstand R2 begrenzt den Strom des Steuersignals auf Pin S0. ADS-Simulation des Schaltvorgangs mit idealen Elementen Zur Bestimmung des Schaltverhaltens im Zeitbereich wurde eine TransientenAnalyse durchgeführt. Daraus kann die Schaltdauer und die dynamische Charakteristik der Diode bestimmt werden. Die Simulation der Schaltung mit idealen (insbesondere ungedämpften) Bauelementen erzeugt ein ungedämpfter Einschaltvorgang mit maximalen Amplituden. Ein Bit-Sequenzgenerator (SRC2) erzeugt einen Bitstrom mit Pegel von 0 V bis 5 V. Der Bitstrom wird als Schaltsignal der Diode verwendet. Mit dem Vorwiderstand R1 wird der Arbeitspunkt der Diode ausgewählt. Die reaktiven Elemente L1, C1, C2 und L2 werden zur Entkopplung des DC- und des AC-Pfades verwendet. Der erste Schaltvorgang wird nach einer Zeit von 20 ns durchgeführt. Eine Sinus-Quelle simuliert ein RF-Signal mit 300 µV (−57.45 dBm). 117 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA TRANSIENT Tran Tran1 StopTime=1 usec MaxTimeStep=0.1 nsec U_DC t L R L1 R1 VtBitSeq R=220 Ohm L=470 nH SRC2 R= Vlow=0 V Vhigh=5 V U_in Rate=2.1 MHz R Rise=7 nsec R2 C Fall=7 nsec R=50 Ohm C1 Delay=20 nsec C=470 pF BitSeq="1010" VtSine SRC1 Vdc=0 mV Amplitude=300 uV Freq=150 MHz Delay=0 nsec Damping=0 Phase=0 di_mot_bav70lt1_19930908 D1 U_out C C2 C=470 pF L L2 L=470 nH R= R R3 R=50 Ohm Abbildung 8.31: Simulation der BAV70T-Schottky-Diode mit idealen Elementen m1 time= 24.85nsec U_in=705.5mV m3 time= 107.2nsec U_in=-27.28mV m2 m4 time= 29.45nsec time= 93.25nsec U_out=156.4mV U_out=-65.51mV m10 time= 341.1nsec U_out=152.4uV 800 m1 700 600 U_DC, mV U_out, mV U_in, mV 500 400 300 200 m2 100 m10 m3 m4 0 -100 0 40 80 120 160 200 240 280 320 360 400 time, nsec Abbildung 8.32: Einschaltvorgang der Diode BAV70t mit Beschaltung Nach dem Einschalten der Speisespannung UDC mit einer Rise-Time von t pLH = 7 ns lädt sich der Koppel-Kondensator C1 und die Sperrschichtkapazität der Diode D1 auf. Nachdem die Diode in den leitenden Zustand übergeht, sinkt der DC-Anteil der Spannung am Ausgang auf 0 V. Das Über- und Unterschwingen der Spannung während dem Einschalten ist auf die Induktivitäten 118 8.3. RF-SWITCH der DC-Entkopplung und den Induktivitäten der Leitungen/Bauteile zurück zu führen. Die nachfolgende Grafik illustriert den Zeitpunkt, in dem der Schaltvorgang abgeschlossen ist. Der Schaltvorgang ist bei rund 400 ns abgeschlossen. 5.0 4.5 4.0 3.5 U_out, mV U_in, mV U_DC, mV 3.0 2.5 2.0 1.5 1.0 0.5 0.0 -0.5 180 207 234 261 288 315 342 369 396 423 450 time, nsec Abbildung 8.33: Zoom auf den Abschluss des Einschaltvorgangs m7 m9 time= 540.5nsec time= 502.1nsec U_out=144.0mV U_in=-392.7mV m8 time= 501.6nsec U_out=-343.7mV 800 600 U_DC, mV U_out, mV U_in, mV 400 m7 200 0 -200 m8 m9 -400 400 455 510 565 620 675 730 785 840 895 950 time, nsec Abbildung 8.34: Ausschaltvorgang der Diode BAV70t mit Beschaltung Die Grafik 8.34 illustriert das Ausschaltverhalten der Schaltung. Beim Aus119 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA chaltvorgang sind Entladekurven der Entkopplungskondensatoren und der Sperrschichtkapazität ersichtlich. Wiederum entsteht ein Überschwingen. ADS-Simulation des Schaltvorgangs mit nichtidealen Elementen Zusätzlich zur Transienten-Analyse mit idealen Bauelementen wurde dieselbe Messung mit Modellen realer Bauelemente durchgeführt. Der Einschaltvorgang wird nun durch die parasitären Anteile der Bauteile gedämpft. TRANSIENT U_DC t CCI_0603LS R SNP1 R1 R=220 Ohm File="06LS471.S2P" Temp=25 Type=470 nH VtBitSeq SRC2 Vlow=0 V Vhigh=5 V Rate=2.1 MHz Rise=7 nsec U_in Fall=7 nsec R Delay=20 nsec R2 BitSeq="101010101010" R=50 Ohm Tran Tran1 StopTime=1 usec MaxTimeStep=0.1 nsec di_mot_bav70lt1_19930908 D1 CAPQ C4 C=470 pF Q=1400.0 F=150.0 MHz Mode=proportional to freq VtSine SRC1 Vdc=0 mV Amplitude=300 uV Freq=150 MHz Delay=0 nsec Damping=0 Phase=0 U_out CAPQ C3 C=470 pF Q=1400.0 F=150.0 MHz Mode=proportional to freq R R3 R=50 Ohm CCI_0603LS SNP2 File="06LS471.S2P" Temp=25 Type=470 nH Abbildung 8.35: Simulation der BAV70T-Schottky-Diode mit nichtidealen Elementen Der Einschwingvorgang mit nichtidealen Bauelementen entspricht praktisch dem Einschwingvorgang mit idealen Bauelementen. Das negative Überschwingen des DC-Anteils im Ausgangssignal U_OUT ist mit nichtidealen Bauelementen flacher. Zusätzlich entsteht durch den Innenwiderstand der Induktivität SNP2 eine Spannungsdifferenz. Zwischen dem GND und der SignalLeitung. Der Ausschaltvorgang ist etwas flacher, die Signalformen entsprechen aber der Simulation mit den idealen Bauelementen. 120 8.3. RF-SWITCH m1 time= 24.62nsec U_in=0.704 Peak m2 time= 29.02nsec U_out=154.2mV m3 time= 90.32nsec U_out=-59.91mV m4 time= 108.5nsec U_in=-12.89mV 800 m1 700 600 U_DC, mV U_out, mV U_in, mV 500 400 300 200 m2 100 m4 0 m3 -100 0 40 80 120 160 200 240 280 320 360 400 time, nsec Abbildung 8.36: Einschaltvorgang der Diode BAV70t mit nichtidealen Bauelementen m8 m7 time= 540.5nsec time= 502.1nsec U_out=131.7mV U_in=-374.2mV 800 600 U_DC, mV U_out, mV U_in, mV 400 200 m8 0 -200 m7 -400 400 455 510 565 620 675 730 785 840 895 950 time, nsec Abbildung 8.37: Ausschaltvorgang der Diode BAV70t mit nichtidealen Bauelementen 121 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA ADS-S-Parameter-Simulation des RF-Switchs Aus der S-Parameter-Simulation der Diode könnnen Rückschlüsse auf die Sperrund Durchlassdämpfung des Diodentyps BAV70T geschlossen werden. Es werden nur nichtideale Bauteile verwendet. S-PARAMETERS U_DC V_DC SRC3 Vdc=5V S_Param SP1 Start=50 MHz Stop=1000 MHz Step=1 MHz CCI_0603LS R SNP1 R1 R=220 Ohm File="06LS471.S2P" Temp=25 Type=470 nH di_mot_bav70lt1_19930908 D1 U_in CAPQ C4 Term C=470 pF Term1 Q=1400.0 Num=1 Z=50 Ohm F=150.0 MHz Mode=proportional to freq U_out CAPQ C3 C=470 pF Q=1400.0 F=150.0 MHz Mode=proportional to freq Term Term2 Num=2 Z=50 Ohm CCI_0603LS SNP2 File="06LS471.S2P" Temp=25 Type=470 nH Abbildung 8.38: S-Parameter-Simulation der Diode BAV70T Die Sperr-Dämpfung wird mit einer DC-Spannung von V_DC = 0 V gemessen. Mit einer Sperrdämpfung von −26.134 dB und einer Durchlassdämpfung von −0.693 dB kann die Diode vom Typ BAV70T ohne weiteres als RF-Switch eingesetzt werden. 122 8.3. RF-SWITCH m1 freq=150.0MHz dB(S(2,1))=-0.639 m1 0 -5 dB(S(1,2)) dB(S(2,2)) dB(S(1,1)) dB(S(2,1)) -10 -15 -20 -25 -30 -35 50 75 100 125 150 175 200 225 250 275 300 freq, MHz Abbildung 8.39: Durchlassdämpfung der Diode BAV70t bei 150 MHz m1 freq=150.0MHz dB(S(2,1))=-26.134 0 -5 -10 dB(S(1,2)) dB(S(2,2)) dB(S(1,1)) dB(S(2,1)) -15 -20 m1 -25 -30 -35 -40 50 75 100 125 150 175 200 225 250 275 300 freq, MHz Abbildung 8.40: Sperrdämpfung der Diode BAV70t bei 150 MHz 123 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA Design der analogen Filterstufe Das Design der Filter- und Verstärkerstufen wurde in der Exchange-Arbeit von Ch. Moya [31] entwickelt. Als Bandpassfilter wurde ein 2-Kreis-LC-Bandpass-Filter [24] gewählt. Dieser Filtertyp zeichnet sich durch eine kleine Einfügungsdämpfung im Durchlassbereich und einer hohen Güte aus. ADS-S-Parameter-Simulation der Filter- und Verstärker-Stufe Das RF-Signal wird nach der Multiplexierung gefiltert und verstärkt. Der Verstärker und das Filter weisen folgende Eigenschaften auf: Eigenschaft Wert Frequenz-Bereich DC-Verstärkung Verstärkung @ 0.1 GHz Input Return Loss (S11) Output IP3-Punkt @ 0.5 GHz Impedanz-Anpassung Arbeitspunkt-Strom DC bis 2 GHz 8 dB 19.5 dB 12.5 dB +14 dB 50 Ω intern 16 mA Tabelle 8.13: Eigenschaften der Verstärkerstufe mit dem Verstärker VAM-6+ Eigenschaft Wert Filtertyp Ordnung Bandbreite im Durchlassbereich Einfügungsdämpfung Bandpass ?? 2 MHz-10 MHz < 2 dB Tabelle 8.14: Eigenschaften des analogen Bandbpass-Filters Der Verstärker VAM-6+ wurde durch den Hersteller mit einem TouchstoneFile parametrisiert (Siehe CD-Verzeichnis *\Simulations_ADS\DBS_schottky_ switch_prj\data\vam6.s2p). Die Simulation des Verstärkers erfolgte mit dem 2-Port-S-Parameter-Modell. Das Modell interpoliert die S-Parameter bei den nötigen Frequenzen mit Hilfe einer kubischen Spline-Approximation. Das Filter weist eine Einfügungsdämpfung von 1.8 dB auf und erfüllt somit knapp die Filterspezifikation. Die Verstärkung der gesamten Anordnung beträgt im Durchlassbereich 16.396 dB. 124 S-PARAMETERS 125 Var Eqn 1 Ref 2 S2P SNP2 File="vam6.s2p" VAR VAR1 C1=47 C2=8.2 C3=2.2 C4=8.2 C5=47 C6=2.2 C7=6.33 Q=60 L1=127 Term Term1 CAPQ Num=1 C4 Z=50 Ohm C=470 pF Q=1400.0 F=150.0 MHz Mode=proportional to freq S_Param SP1 Start=50 MHz Stop=300 MHz Step=0.2 MHz C C5 C=470 pF CAPQ C13 C=470 pF Q=1400.0 F=150.0 MHz Mode=proportional to freq CCI_0603LS SNP1 File="06LS471.S2P" Temp=25 Type=470 nH C C7 C=100 nF INDQ L2 L=L1 nH Q=Q F=150.0 MHz Mode=proportional to freq Rdc=0.0 Ohm CAPQ C18 C=C3 pF Q=1400.0 F=150.0 MHz Mode=proportional to freq CAPQ C16 C=C7 pF Q=800.0 F=150.0 MHz Mode=proportional to freq CAPQ C17 C=C3 pF Q=1400.0 F=150.0 MHz Mode=proportional to freq V_DC SRC1 Vdc=1.0 V INDQ L1 L=L1 nH Q=Q F=150.0 MHz Mode=proportional to freq Rdc=0.0 Ohm CAPQ C14 C=C1 pF Q=1400.0 F=150.0 MHz Mode=proportional to freq CAPQ C15 C=C2 pF Q=1400.0 F=150.0 MHz Mode=proportional to freq C C6 C=10 nF CAPQ C20 C=C5 pF Q=1400.0 F=150.0 MHz Mode=proportional to freq CAPQ C19 C=C4 pF Q=1400.0 F=150.0 MHz Mode=proportional to freq Term Term2 Num=2 Z=50 Ohm 8.3. RF-SWITCH Abbildung 8.41: Simulation der Filter- und Verstärkerstufe des RF-Switchs KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA m1 freq=150.0MHz dB(S(2,1))=16.396 m3 freq=150.0MHz dB(S(1,2))=-25.840 m2 freq=150.0MHz dB(S(1,1))=-33.508 m4 freq=150.0MHz dB(S(2,2))=-18.199 m1 20 10 0 dB(S(2,2)) dB(S(2,1)) dB(S(1,2)) dB(S(1,1)) -10 m4 -20 m3 m2 -30 -40 -50 -60 50 100 150 200 250 freq, MHz Abbildung 8.42: Simulationsresultate der Filter- und Verstärkerstufe des RFSwitchs Abbildung 8.43: Messresultate der abgestimmten Filter- und Verstärkerstufe. Blau: S21, Grün: S11 126 8.3. RF-SWITCH Abbildung 8.44: Messresultate der abgestimmten Filter- und Verstärkerstufe. Blau: S21, Grün: S22 ADS-S-Parameter-Simulation der gesamten Anordnung Die Gesamtschaltung mit Switch, Filter- und Verstärkerstufe wurde zusätzlich im leitenden und im sperrenden Zustand simuliert. Auf eine Darstellung des kaskadierten Schemas wurde verzichtet. Dazu wurde der Eingang Term1 im Schema 8.42 mit dem Ausgang Term2 vom Schema 8.35 verbunden. Im leitenden Zustand (U_DC vom Schema 8.35 liegt auf 5 V-Potential) enstpricht die Durchlassdämpfung S21 bis auf eine zusätzliche Dämpfung von 0.655 dB der Verstärkung der Filter- und Verstärkerstufe. Die Kennlinien der Reflexionsfaktoren S11 und S22 verlieren ihre Symmetrie im Durchlassbereich des Filters; dies sollte im Betrieb zu keinen Problemen führen. Im sperrenden Zustand (U_DC vom Schema 8.35 liegt auf GND-Potential) beträgt die Durchlassdämpfung −9.618 dB. Die Signale der gesperrten Antennen werden im Vergleich zur durchgeschalteten Antenne mit 26.014 dB gedämpft. 127 KAPITEL 8. HARDWARE-DESIGN: SMART ANTENNA m1 freq=150.0MHz dB(S(2,1))=15.741 m1 20 10 dB(S(2,2)) dB(S(1,2)) dB(S(1,1)) dB(S(2,1)) 0 -10 -20 -30 -40 -50 -60 50 75 100 125 150 175 200 225 250 freq, MHz Abbildung 8.45: S-Parameter des Gesamtsystems im Switched-On-Zustand m1 freq=150.0MHz dB(S(2,1))=-9.618 20 10 dB(S(2,2)) dB(S(1,2)) dB(S(1,1)) dB(S(2,1)) 0 m1 -10 -20 -30 -40 -50 -60 50 75 100 125 150 175 200 225 250 freq, MHz Abbildung 8.46: S-Parameter des Gesamtsystems im Switched-Off-Zustand 128 Kapitel 9 Firmware Die Version der in diesem Kapitel dokumentierten Firmware wurde auf der beiliegenden CD im Verzeichnis ~/firmware/DBS_V02 gespeichert. Zusätzlich wurde eine Doxygen-Dokumentation erstellt und im Verzeichnis ~/firmware/ DBS_V02/DoxyHTML niedergelegt. Die Dokumentation kann mit einem gängigen Browser angesehen werden. Dazu muss die Datei ~/firmware/DBS_V02/ DoxyHTML/index.html im Browser geöffnet werden. Der Source-Code kann zusätzlich im Anhang F nachgelesen werden. In diesem Kapitel werden Konfigurationen und Strukturen von Mechanismen beschrieben. Für eine vollständige Beschreibung aller Prozeduren wird auf die Doxygen-Dokumentation verwiesen. 129 KAPITEL 9. FIRMWARE 9.1 Übersicht Die Signalverarbeitung zur Richtungsbestimmung und Triangulation wurde auf einem ADSP21364-Evaluationsboard entwickelt. Der DSP übernimmt zusätzlich die Kommunikation mit der Peripherie. Die Firmware wurde mit der Hochsprache C und Assembler geschrieben. 9.1.1 Modulabhängigkeiten Die Module untereinander sind folgendermassen abhängig: Abbildung 9.1: Modul-Abhängigkeiten der Firmware 9.2 9.2.1 Soft-Konfiguration des DSPs Konfiguration des PLLs initPLL() im File hardware.c Im Signalprozessor ist ein PLL integriert, der die externe CLK-Quelle auf die gewünschte Core- und Peripherie-CLK übersetzt. Die CLK-Quelle auf dem Evaulationsboard erzeugt ein Signal mit Frequenz 24.576 MHz. Der Core soll mit der maximalen Core-Frequenz von 333 MHz operieren. Die Core-Frequenz kann während der Entwicklung der Software vermindert werden, falls weniger Rechenleistung benötigt wird. Die Frequenz von CCLK kann folgendermassen berechnet werden: CCLK = CLKI N · PLLM PLLD (9.1) In unserem Falle ergibt dies: 331.7 MHz = 24.576 MHz · 27 2 (9.2) Die Register des PLLs befinden sich in den „Power Management Registern PMCTL“ ([D9, A-6]) und müssen folgendermassen initialisiert werden: 130 9.2. SOFT-KONFIGURATION DES DSPS Abbildung 9.2: Blockschaltbild des PLLs im ADSP21364 Prozessor Bit Funktion PLLM27 PLLD2 DIVEN PLLBP PLL-Multiplikator auf 27 setzen PLL-Divisor auf 2 setzten Division aktivieren PLL in Bypass-Mode setzten, solange er konfiguriert wird. Tabelle 9.1: PLL-Registereinstellungen im PMCTL-Register Der PLL benötigt 20 CLK-Cycles, bis die neue Core-Frequenz stabil ist. Während dieser Zeit muss der PLL in den Bypass-Mode geschaltet werden. Nach 14 Cycles kann das PLLBP-Bit gelöscht werden. Nun ist die neue Konfiguration verfügbar. 131 KAPITEL 9. FIRMWARE 9.2.2 DAI-Routing der Eingänge initDAI() im File hardware.c File hardware.c Siehe Anhang F und [D9, 5-1] Die Ein- und Ausgänge der Core-Komponenten und der Peripherie sind nicht direkt statisch miteinander verbunden. Sämtliche Signalpfade müssen im Prozessor geroutet werden. Routing der Signale vom DDC Insgesamt werden 3 Pins zur Kommunikation benötigt. Die Signale werden auf folgende internen und externen Schnittstellen geroutet (Vgl. Kapitel ??): SCLK SDO SDFS -> -> -> DAIP11 DAIP12 DAIP13 -> -> -> SPORT3_CLK_I & SPORT5_CLK_I SPORT3_DA_I & SPORT5_DA_I SPORT3_FS_I & SPORT5_FS_I Tabelle 9.2: Routing-Tabelle der seriellen Schnittstelle vom DDC Die PIN-Buffer wurden folgendermassen konfiguriert: Definition der Pins als Eingang: SRU(LOW, PBEN11_I ) ; SRU(LOW, PBEN12_I ) ; SRU(LOW, PBEN13_I ) ; Routing der Pins zum SPORT3 und SPORT5: SRU( DAI_PB11_O , SRU( DAI_PB12_O , SRU( DAI_PB13_O , SRU( DAI_PB11_O , SRU( DAI_PB12_O , SRU( DAI_PB13_O , SPORT3_DA_I ) ; SPORT3_CLK_I ) ; SPORT3_FS_I ) ; SPORT5_DA_I ) ; SPORT5_CLK_I ) ; SPORT5_FS_I ) ; Routing der Signale zur Steuerung der Smart-Antenna Das Steuersignal zur Multiplexierung der Smart-Antenna-Signale wird vom DSP erzeugt. Das Steuersignal ist 3 Bit breit und ist auf folgende Pins des DSPs geroutet: D2 D1 D0 -> -> -> DAIP3 DAIP4 DAIP5 Tabelle 9.3: Routing-Tabelle der seriellen Schnittstelle zum DCI 132 9.2. SOFT-KONFIGURATION DES DSPS SRU(HIGH, PBEN03_I ) ; SRU(HIGH, PBEN04_I ) ; SRU(HIGH, PBEN05_I ) ; Abbildung 9.3: Schematische Darstellung eines PIN-Buffers 9.2.3 Konfiguration der SPORTs init_SPORT_DMAchain() im File hardware.c Die serielle Kommunikation zwischen dem DDC und Signalprozessor wird über vier SPORTs im Time Divison Multiplexing Betrieb (TDM) aufrecht erhalten. Es wurden zwei SPORT-Paare gewählt, damit in Zukunft während dem Betrieb ohne zusätzliche Konfiguration eine zeitmultiplexierte, bidirektionale Verbindung aufgebaut werden kann. Dies wird bei einer zukünftigen Signalprozessor-gesteuerten Konfiguration des DDCs von Vorteil sein. TDM Betrieb zweier SPORT-Paare Im TDM-Betrieb kann ein SPORT aus einem TDM-Signal bestimmte Wörter auswählen und abspeichern. Die restlichen TDM-Kanäle werden ignoriert. Es können bis zu 128 Kanäle ausgewählt werden. Im TDM-Betrieb sind immer zwei SPORTs miteinander gepaart. Der eine SPORT übernimmt den Empfang von Daten, der andere sendet Daten. Dies erfolgt auf derselben Datenleitung. So sind z.B. SPORT2 und SPORT3 (bzw. SPORT4 und SPORT5) ein Paar. Die folgenden SPORTs wurden ausgewählt: 133 KAPITEL 9. FIRMWARE SPORT Kanal SPORT2 SPORT3 SPORT4 SPORT5 A A B B Funktion benutzt? Data Transmit Channel TDM Data Receive Channel 2 Data Transmit Channel TDM Data Receive Channel 1 nein ja nein ja Tabelle 9.4: Funktionsübersicht der zwei ausgewählten SPORT-Paare Die unbenutzten SPORTS sind für die Kommunikation zwischen DDC und DSP vorgesehen. Jeder SPORT (Tx SPORT3 und 5) hat sein eigenes Control-Register SPCTLx (Siehe [?, A-30]) und muss folgendermassen initialisiert werden: ∗ pSPCTL3 = (BHD | SPEN_A | SLEN32 | FSR | SDEN_A | SCHEN_A) ; Bit SPEN_A SLEN32 CKRE FSR SDEN_A SCHEN_A Beschreibung Serial Port Bank A enable 32 Bit Word length Sampling on rising CLK Edge Frame Sync required DMA Transfer activated DMA Chaining activated Tabelle 9.5: SPORT-Registereinstellungen im SPCTL3/5-Register Die Daten vom DDC werden in zwei Zeitschlitzen multiplexiert. Der DDC5 übernimmt den Zeitschlitz 1. Der DDC3 empfängt den Zeitschlitz 2. SPORT3/ 5_CLK SPORT5_A_I SPORT3/ 5_FS SPORT3_A_I Abbildung 9.4: TDM-Mode der SPORTs 3 und 5 Daten-Transfer via Direct Memory Access (DMA) Die empfangenen Daten der SPORTs werden direkt vom Speicher-Register des SPORTs in den dafür vorgesehen Speicher geschrieben. Während des Transfers 134 9.2. SOFT-KONFIGURATION DES DSPS können Core-Operationen parallel und ohne Unterbruch durchgeführt werden. Der erste DMA-Transfer wird mit dem Aufruf der Funktion start_DMA() gestartet. Der DMA-Transfer-Mechanismus wird im Kapitel 9.2.4 genauer beschrieben. 9.2.4 DMA- und TCB-Strukturen init_TCB_DMA(), start_DMA(), next_TCB_block() im File hardware.c und IRQ_dispatcher_DMA() im File irq.c In einem DMA-Transfer werden Daten vom Speicherort A zum Speicherort B verschoben. Der gesamte Transfer wird von einem DMA-Core gesteuert. Während dem Transfer können alle weiteren Core-Operationen parallel dazu durchgeführt werden. Der Signalprozessor ADSP21364 unterstützt zwei Typen von DMA-Transfers: 1. Standard DMA-Transfer: Der DMA-Zyklus speichert Daten in einem vordefinierten Speicherbereich. Nach dem letzten Transfer wird der der Zyklus beendet und muss neu gestartet werden. 2. Chained-DMA-Transfer: Ein Set von verschiedenen DMA-Transfers wird automatisch abgearbeitet. Nachdem ein DMA-Transfer abgeschlossen ist, wird der nächste automatisch gestartet und konfiguriert. In der Firmware ist der Datentransfer vom DDC zum DSP kontinuierlich und als Chained-DMA-Transfer implementiert. Damit eine unterbruchsfreie Berechnung der Einfallswinkel möglich ist, werden die Samples in zwei verschiedenen Speicherbänken gespeichert. Werden die SPORTs im DMA-ChainingMode betrieben, so können mehrere Speicherbänke zyklisch gefüllt werden. Nachdem die erste Speicherbank voll ist, wird die nächste gefüllt. Sobald eine Speicherbank gefüllt ist, wird aus den Daten dieser Speicherbank die Abschätzung des Einfallswinkels durchgeführt. Während der Berechung wird die nicht benötigte Speicherbank zyklisch gefüllt, bis die Berechnung zu Ende ist. Mit den neuen Daten wird der nächste Einfallswinkel abgeschätzt und die erste Speicherbank wird mit neuen Daten gefüllt. Struktur der Speicherbänke Das komplexe Signal vom DDC wird in zwei RAM-Bänke abgespeichert. Jede RAM-Bank beinhaltet zwei Speicherbereiche je für das Inphase- und das Quadrature-Signal. Es wurden zwei Bänke ausgewählt, damit gleichzeitig eine RAM-Bank zur Berechnung des Einfallswinkels zur Verfügung steht und laufend Samples in die andere RAM-Bank gespeichert werden können. Die RAM-Bänke sind folgendermassen definiert: i n t block_A_I [NUM_SAMPLES∗NUM_TURNS] ; /∗< D e f i n i t i o n o f t h e Block A_I where t h e ddc data i s s t o r e d ∗/ i n t block_A_Q [NUM_SAMPLES∗NUM_TURNS] ; /∗< D e f i n i t i o n o f t h e Block A_Q where t h e ddc data i s s t o r e d ∗/ i n t b l o c k _ B _ I [NUM_SAMPLES∗NUM_TURNS] ; /∗< D e f i n i t i o n o f t h e Block B_I where t h e ddc data i s s t o r e d ∗/ 135 KAPITEL 9. FIRMWARE i n t block_B_Q [NUM_SAMPLES∗NUM_TURNS] ; /∗< D e f i n i t i o n o f t h e Block B_Q where t h e ddc data i s s t o r e d ∗/ Struktur des Chained-DMA-Transfers Die Konfiguration des Chaining-Betriebs ist eine verkettete Liste. Die Listenelemente heissen (engl.) Transfer Control Block (TCB). Ein Listenelement besteht aus vier nacheinanderfolgenden 32-Bit-Wörter. Darin sind folgende Parameter gespeichert [D9, 2-21]: Parameter IIx_A IMx Cx CPx Beschreibung Adresse auf den Anfang des Speichers des eigenen TCB-Elements Grösse des Speichers Schrittweite des Addressgenerators Chain-Pointer zeigt auf das nächste TCBElement der Liste Tabelle 9.6: Parameter eines TCB-Elements Abbildung 9.5: TCB Chains für DMA Chaining Die Kette wird folgendermassen initialisert. Das IIx-Wort speichert die Anfangsadresse des zu beschreibenden Speicherbereichs. IMx enspricht der Grösse des Speicherbereichs, bevor das nächste TCB-Element geladen wird und der nächste DMA-Transfer gestartet wird. Die Schrittweite des Adress-Generators wird mit Cx gesteuert. CPx zeigt auf den Speicherbereich des nächsten TCBs. Das Register ist 20 Bit breit und beinhaltet in den ersten 19 Bit die Adresse. Wird auf eine interne Adresse gezeigt, muss ein Offset von 0x80000 subtrahiert werden. Das 20. Bit beinhaltet ein Interrupt-Flag. Soll nach der erfolgreichen Speicherung der IMx Daten ein Interrupt ausgelöst werden, so muss dieses Bit gesetzt werden. Das generische Code-Fragment mit Interrupt sieht folgendermassen aus: 136 9.2. SOFT-KONFIGURATION DES DSPS TCB_block_A_I [ 3 ] = ( unsigned i n t ) TCB_block_B_I − OFFSET + PCI ; Die beiden Konstanten OFFSET und PCI sind im File hardware.h definiert. Erzeugung der Antennen-Signale durch Chained-DMA-Interrupts Nun wird ein TCB-Element pro abgetastetes Antennensignal definiert. Wurde das Signal einer Antenne fertig abgetastet, wird das nächste Element in der TCB-Chain geladen und ein Interrupt ausgelöst. Mit dem Interrupt wird die Interrupt-Routine IRQ_dispatcher_DMA aufgerufen, welche zur nächsten Antenne schaltet und die Berechnungen auslöst (Siehe Kapitel 9.3.2). Die zugehörige TCB-Chain sieht folgendermassen aus: Rotation 1 TCB Ant.1 TCB Ant.2 TCB Ant.3 ... TCB Ant.8 TCB Ant.1 TCB Ant.2 TCB Ant.3 ... TCB Ant.8 TCB Ant.1 TCB Ant.2 TCB Ant.3 ... TCB Ant.8 TCB Ant.1 TCB Ant.2 TCB Ant.3 ... TCB Ant.8 Rotation 2 ... Rotation NUM_TURNS Abbildung 9.6: TCB-Chain der Antennen-Signale. Die grauen Bereiche können als Wiederholungen interpretiert werden. Damit während des Betriebs die Anzahl Abtastwerte pro Antenne und die Anzahl benötigten Rotationen eingestellt werden können, wird die Kette durch die Routine init_TCB_DMA() dynamisch als 3D-Array erzeugt. Zusätzlich wird der benötigte RAM-Bänke der Signale alloziiert. Start des DMA-Mechanismus und Steuerung der aktiven RAM-Bank Nach dem Aufruf von init_TCB_DMA() und der Initialisierung der SPORTs durch init_SPORT_DMAchain() kann der Chained-DMA-Mechanismus gest137 KAPITEL 9. FIRMWARE artet werden mit start_DMA(). Pro RAM-Bank existiert nun eine eigene TCBChain. Die aktive RAM-Bank wird mit den Samples des komplexen Signals gefüllt. Nachdem das letzte Wort gespeichert wurde und die Triangulation mit den Daten in der anderen RAM-Bank beendet wurde, beginnt das Speichern der Daten in der anderen, passiven RAM-Bank. Mit dem Aufruf der Routine next_TCB_block() werden die Daten beim nächsten Zyklus in die andere RAM-Bank geschrieben. Dazu überschreibt next_TCB_block() den Pointer des letzten Elements der TCB-Chain, welche zur aktiven RAM-Bank gehört. 9.2.5 Konfiguration des SPI init_SPI() in hardware.c Die Kommunikation zwischen dem DSP und der gesamten Peripherie ist mit einem (engl.) Serial Peripheral Interface (SPI)-Core-Stack implementiert. Der DSP wird als Master definiert. Das Funktionsmuster beinhaltet im Moment nur die SPI-zu-I2 C-Bridge als SPI-Slave mit Select-Line FLAG1. Wird das Funktionsmuster mit dem User-Interface (Display, D/A-Wandler, USB-Device) erweitert, so werden weitere Slaves dazukommen. Das SPI-Kontrollregister wird folgendermassen konfiguriert; ∗pSPICTL = ( SPIEN | SPIMS | CPHASE | CLKPL | MSBF |GM | WL8 | TIMOD2 | SENDZ) ; Bit SPIEN SPIMS CLKPL CPHASE MSBF GM WL8 TIMOD2 SENDZ Beschreibung SPI System Enable SPI Master Modus SPICLK Polarität «aktiv-Low» SPICLK beginnt am Anfang des ersten Datenbits zu toggeln Höchstwertiges Bit zuerst Löscht Daten im vollen Rx-Buffer, wenn zusätzliche Daten empfangen werden Wortlänge ist 8-Bit Transfer-Initiation-Mode, Siehe [D9, 7-11] Sendet Nullen, nachdem das letzte Wort vom Tx-Buffer gesendet wurde Tabelle 9.7: SPORT-Registereinstellungen im SPCTL3/5-Register 138 9.3. FIRMWARE-DESIGN Es sind zwei Bugs bei der Kommunikation im SPI-Bus gefunden worden: Die SPI-Schnittstelle erzeugt das Slave-Select-Signal auf FLAG1 nicht deterministisch. Oft bleibt das Slave-Select Signal «aktiv-LOW», obwohl es nach der Transmission der seriellen Daten in den «HIGH»-Zustand wechseln sollte. Solange die Kommunikation nur mit einem Slave geführt wird, stellt dies kein Problem dar. Weiter konnte die Kommunikation mit der SPI-zu-I2 C-Bridge (SC18IS600) nicht fehlerfrei implementiert werden. Nachdem das SPI-CoreModul die Nachricht korrekt versandt hat, schickt die Bridge die Nachricht unverarbeitet wieder zurück. Der Fehler wurde bisher nicht gefunden. Somit konnten die GPS- und Kompass-Sensoren nicht in Betrieb genommen werden. 9.3 Firmware-Design In den nachfolgenden Unterkapiteln wird folgende Nomenklatur in den Grafiken eingeführt: Interrupt Event Procedure Call Loop Sequence Condition Abbildung 9.7: Nomenklatur der Flussdiagramme 9.3.1 Initialisierung der Hardware main() in main.c und init_PLL(), init_DAI()init_SPORT_DMAchain(), init_ SPI(), init_GPS(), init_compass(), reset_antenna_array(), start_DMA() in hardware.c und setup_interrupts() in irq.c Bevor die eigentliche Signalverarbeitung gestartet werden kann, müssen zuerst die Core-Module (DAI, DMA, SPORTs, SPI etc) initialisiert werden. Die DMA- und SPI-Interrupts sind nach dem Aufruf der Routine setup_interrupts() aktiv. Nachdem das SPORT-Modul initialisiert und die Routine start_DMA aufgerufen ist, werden erste Daten mit dem DMA-Mechanismus in die vorgesehen Speicherbänke geschrieben. Die Signalverarbeitung kann beginnen, sobald die erste Speicherbank gefüllt ist. Die Reihenfolge der Initialisierung ist strikte einzuhalten, da sonst der einwandfreie Betrieb der einzelnen CoreModule nicht garantiert werden kann. 139 KAPITEL 9. FIRMWARE ___lib_RSTI Interrupt ___lib_start Main() init_PLL() init_DAI() setup_interrupts() init_SPORT_DMAchain() init_SPI() init_GPS() init_compass() reset_antenna_array() start_DMA() for(;;) blockReady true isProcessing = true bearing() false update_position() isProcessing = false Abbildung 9.8: Initialisierung der Firmware bis zur Signalverarbeitung 140 9.3. FIRMWARE-DESIGN 9.3.2 SPORT-DMA-Interrupt IRQ_dispatcher_DMA() in irq.c Pro Antenne wird ein TCB-Chain-Element erzeugt. Wird die DMA-dieses einzelnen Chain-Elements abgeschlossen, so löst der DMA-Mechanismus ein Interrupt aus. Der Interrupt-Vektor führt nun die Routine IRQ_dispatcher_DMA() aus, welche in einem ersten Schritt die nächste Antenne im RF-Switch durchschaltet. Als nächstes wird überprüft, ob eine RAM-Bank vollständig gefüllt ist. Ist dies der Fall, so wird zusätzlich überprüft, ob die letzte Berechnung schon abgeschlossen ist. Ist die Abschätzung der Target-Position noch nicht beendet, so wird nochmals dieselbe RAM-Bank gefüllt. Ist die Berechnung beendet und die RAM-Bank bereit, so wird die blockReadySemaphore gesetzt. SPORT-Interrupt IRQ_dispatcher_DMA() switch_antenna() samplingStatus < 8*NUM_TURNS true samplingStatus++ Return false isProcessing? true next_TCB_block(same) samplingStatus = 0 Return false next_TCB_block(switch block) samplingStatus = 0 blockReady = true Return Abbildung 9.9: Interrupt-Routine des SPORTs 141 KAPITEL 9. FIRMWARE 9.3.3 SPI-Interrupt IRQ_dispatcher_SPI() in irq.c Die im Kapitel 9.2.5 beschriebenen Probleme bei der Inbetriebnahme der SPIzu-I2 -Bridge liessen nicht zu, dass SPI-Interrupts mit gültigen Nachrichten ausgwertet werden konnten. Die Routine IRQ_dispatcher_SPI() ist noch nicht fertig implementiert. Trotzdem wird hier das Software-Design des zugehörigen Dispatchers beschrieben: Die Routine IRQ_dispatcher_SPI() wird von zwei Interrupt-Quellen aufgerufen. Das eine Interrupt wird vom SPI-Core-Stack erzeugt und zeigt empfangene Daten oder Fehler an. Das andere Interrupt wird von der SPI-zu-I2 CBridge (SC18IS600) erzeugt und entspricht einem Peripherie-Interrupt, welches über das FLAG2-Pin geroutet ist. Die Bridge sendet das Interrupt-Signal, nachdem es erfolgreich Daten über den I2 C-Bus erhalten hat. Faktisch wird nun pro gesendete Nachricht aus der Smart-Antenna-Elektronik zwei Mal ein Interrupt ausgelöst. SPI Interrupt IRQ_dispatcher_SPI() follows by SC18IS600 IRQ Source? SPI Core Rx_SC18IS600() Internal SPI ERROR? false save_coordinates() true SPI_err_handling() Abbildung 9.10: Interrupt-Routine der SPI-Schnittstelle Die Routine SPI_err_handling() dient dazu, die verworfenen Nachrichten noch einmal zu senden. Dazu wird ein Array angelegt, welches die letzten Messages speichert. Die Routine save_coordinates speichert die Koordinaten in ein Array, welches bei der Triangulation zur Verfügung steht. 142 9.4. MEMORY-MAP 9.4 Memory-Map Der verwendete DSP hat zwei interne Speicher integriert. Der Programmspeicher beinhaltet den kompilierten Programmcode (PM) und ist 4 MBit gross. Er ist als (engl.) Read Only Memory (ROM) implementiert. Der Datenspeicher (DM) ist 3 MBit gross und ist als (engl.) Read Access Memory (RAM) implementiert. Abbildung 9.11: Memory-Map der Firmware 143 KAPITEL 9. FIRMWARE 144 Kapitel 10 Tests und Messungen 10.1 S-Parameter-Messung des RF-Switchs Nach dem Einbau des RF-Switchs in das Gehäuse der Smart-Antenna wurden dessen elektrischen Eigenschaften mit einem Network-Analyzer gemessen. Die S-Parameter sämtlicher Antennen-Eingänge wurden einzeln gemessen und miteinander verglichen. Im Vergleich zu den Simulationsresultaten sind die Resultate der Messungen zufriedenstellend. 10.1.1 Messmittel Die benützten Messmittel werden in der Tabelle 10.3 aufgelistet. 10.1.2 Messaufbau Der RF-Input-Port des Netzwerk-Analyzers wird mit dem RF-Ausgang (RF_SW) des RF-Switchs verbunden. Der Port 1 des Netzwerk-Analyzers wird mit dem zu messenden Antennen-Eingang verbunden. Die Speisung des RF-Switchs erfolgt über das DCI-Interface des ADSP-21364-Eval-Expansionsboards. Mit dem GPIB-Interface des Netzwerk-Analyzers werden die Daten zur ADSSoftware übertragen. Dazu wird das von Rohde & Schwarz bereit gestellte Interface „RSADSIF“ benötigt. Für weitere Informationen wird auf die „Application Notes“ des Programms verwiesen [D8]. Die Figur 10.1 zeigt das MessSchema in ADS. 145 KAPITEL 10. TESTS UND MESSUNGEN Gerät Inventar No. 1x Network-Analyzer MA255-1 1x Netzgerät 2x Koaxialkabel MN222-3 1x DSP-Eval-Kit 1x JTAG-Debugger IV216-1 1x PC 006.1269 1x Aquisitions-Software 1x Debug-Software 1x Kalibrierset SMA MA255-1c 7x Abschlüsse Eigenschaften Rohde & Schwarz ZVL Network Analyzer (9 kHz-6 GHz) 32 V, 2 A TTI - Power System Unit Huber & Suhner 50 Ω-KoaxialKabel (K_02252_D) mit N-Stecker und SMA-Stecker/Buchse ADSP-21364-Eval-Kit SHARC Integrated Circuit Emulator PC mit Microsoft XP V2002, Service Pack 3. Intel Pentium 4 Prozessor mit 2.8 GHz und 1 GB RAM Advanced Design System 2009 Update 1 VisualDSP++ 5 Entwicklungsumgebung Rohde & Schwarz ZV-Z132 CalKit 3.5 mm, weiblich, 50 Ω, 0 − 15 GHz 50 Ω-Abschlüsse (3.5 mm) Tabelle 10.1: Geräteliste der S-Parameter-Messung S-PARAMETERS S_Param SP1 Start=50 MHz Stop=250 MHz Step=500 kHz R S Term Term1 Num=1 Z=50 Ohm P1 RS P2 S2P Term Term2 Num=2 Z=50 Ohm REF ZVx_S2P_Model ZVx_S2P1 Label="ZVL1" FreqStart=50 MHz FreqStop=250 MHz FreqStep=500 kHz Abbildung 10.1: Mess-Schema zur S-Parameter-Messung in ADS 146 10.1. S-PARAMETER-MESSUNG DES RF-SWITCHS DSP ADSP-21364-EVAL Expansion Board JTAG NetworkAnalyzer MA255-1 DAI / DC Port1 Port2 PC DCI RF_SW A8 A1 A7 A2 Smart Antenna RF-Switch A6 A3 A5 A4 DUT Abbildung 10.2: Blockdiagramm der S-Parameter-Messung des RF-Switches. Messparameter Wert Bemerkungen DC_Speisung 12 V Weisse Klemme, ExpansionBoard RF-Leistung Port 1 Dämpfung Port 1 Dämpfung Port 2 RF-Span Messpunkte Mess-Bandbreite −20 dBm 10 dB 0 dB 200 MHz 201 10 kHz Step-Grösse: 1 MHz Tabelle 10.2: Messparameter der S-Parameter-Messung 10.1.3 Messanleitung Die Messung beinhaltet die nachfolgenden Arbeittschritte: 1. Aufbau gemäss Figur 10.2 realisieren, PC starten und Gerätschaften einschalten 2. Konfiguration des Netzwerk-Analyzers gemäss Tabelle 10.2 147 KAPITEL 10. TESTS UND MESSUNGEN 3. Normierung des Netzwerk-Analyzers mit dem Cal-Kit MA255-1c (TOSMKalibrierung) 4. Anschluss des Koaxialkabels von Port1 des Netzwerk-Analyzers mit dem zu messenden Antennen-Anschluss 5. Abschluss der anderen Antenneneingänge mit den 50 Ω-Abschlüssen 6. Start von VisualDSP++ mit geeignetem Code. Die durchgeschaltete Antenne kann mit der C-Routine set_active_antenna( antNo ); ausgewählt werden 7. Das Programm wird auf das Target geladen 8. Das Messschema von Figur 10.1 wird in ADS gezeichnet und die RSADSIFSchnittstelle konfiguriert 9. Die Messung wird mit ADS gestartet und ausgewertet 10. Die Schritte 4-8 werden für alle Antennen-Anschlüsse wiederholt 10.1.4 Messresultate Die S-Parameter sämtlicher Antennen-Eingänge werden in diesem Kapitel mit den simulierten Werten verglichen. Die Simulationsanordnung wird im Kapitel 8.3.3 beschrieben. Die nachfolgenden Grafiken enthalten nebst den gemessenen Kennlinien sämtlicher acht Antenneneingänge auch die simulierte Kennlinie (braun). Vorwärts-Transmission S21 Die Vorwärts-Transmission S21 beschreibt die Dämpfung des Signalpfads im System. Die gemessene Verstärkung der Schaltung im durchgeschalteten Betrieb stimmt im Durchlassbereich mit den simulierten Werten überein. Nur die Bandbreite weicht von der simulierten Kennlinie ab. Dies ist kein Problem, da das RFSignal schmalbandig ist. Im Durchlassbereich weist die Schaltung im Vergleich zum Simulationsresultat eine optimalere Kennlinie auf. Die Dämpfung der Schaltung ist 6 dB grösser als in der Simulation. 148 10.1. S-PARAMETER-MESSUNG DES RF-SWITCHS Forward Transmission; On State [dB] 20 m1 10 dB(SIM_on..S(2,1)) dB(Port8_on..S(2,1)) dB(Port7_on..S(2,1)) dB(Port6_on..S(2,1)) dB(Port5_on..S(2,1)) dB(Port4_on..S(2,1)) dB(Port3_on..S(2,1)) dB(Port2_on..S(2,1)) dB(Port1_on..S(2,1)) 0 -10 -20 -30 -40 -50 -60 40 60 80 100 120 140 160 180 200 220 240 260 280 300 240 260 280 300 freq, MHz m1 freq=150.0MHz dB(Port5_on..S(2,1))=16.558 Forward Transmission; Off State [dB] -10 m3 -15 -20 dB(SIM_off..S(2,1)) dB(Port8_off..S(2,1)) dB(Port7_off..S(2,1)) dB(Port6_off..S(2,1)) dB(Port5_off..S(2,1)) dB(Port4_off..S(2,1)) dB(Port3_off..S(2,1)) dB(Port2_off..S(2,1)) dB(S(2,1)) -25 -30 -35 -40 -45 -50 -55 -60 40 60 80 100 120 140 160 180 200 220 freq, MHz m3 freq=150.0MHz dB(Port3_off..S(2,1))=-13.377 Abbildung 10.3: Vorwärts-Transmission S21 des RF-Ausgangs zum Empfänger des RF-Switchs Reflexionsfaktor S11 der Antennen-Eingänge Der Reflexionsfaktor S11 beschreibt die Rückflussdämpfung am Antennen-Eingang. Die gemessenen Reflexionen sowohl im geschalteten als auch im ungeschalteten Betrieb entsprechen grösstenteils der Simulation. Im Durchlassbereich ist die Simulation optimistischer als die gemessenen Resultate. Der schlechteste Reflexionsfaktor bei 150 MHz weist der Antennen-Eingang 1 mit S11 = −16.53 dB auf. 149 KAPITEL 10. TESTS UND MESSUNGEN Input Reflection; ON State [dB] 0 dB(SIM_on..S(1,1)) dB(Port8_on..S(1,1)) dB(Port7_on..S(1,1)) dB(Port6_on..S(1,1)) dB(Port5_on..S(1,1)) dB(Port4_on..S(1,1)) dB(Port3_on..S(1,1)) dB(Port2_on..S(1,1)) dB(Port1_on..S(1,1)) -5 -10 -15 m2 -20 -25 40 60 80 100 120 140 160 180 200 220 240 260 280 300 220 240 260 280 300 freq, MHz m2 freq=150.0MHz dB(Port1_on..S(1,1))=-16.532 Input Reflection; Off State [dB] 0 m4 dB(SIM_off..S(1,1)) dB(Port8_off..S(1,1)) dB(Port7_off..S(1,1)) dB(Port6_off..S(1,1)) dB(Port5_off..S(1,1)) dB(Port4_off..S(1,1)) dB(Port3_off..S(1,1)) dB(Port2_off..S(1,1)) dB(S(1,1)) -5 -10 -15 -20 -25 40 60 80 100 120 140 160 180 200 freq, MHz m4 freq=150.0MHz dB(Port4_off..S(1,1))=-1.371 Abbildung 10.4: Reflexionsfaktor S11 sämtlicher Atnenna-Eingänge Reflexionsfaktor S22 des RF-Ausgangs Der Reflexionsfaktor S22 beschreibt die Rückflussdämpfung am RF-Ausgang. Die Kennlinie der Rückflussdämpfung im geschalteten Betrieb wird dazu verwendet, das Ausgangsfilter abzustimmen. Das Minimum von S22 liegt wie erwartet bei 150 MHz. Die gemessenen Kennlinien weisen steilere Flanken auf als bei der Simulation. 150 10.1. S-PARAMETER-MESSUNG DES RF-SWITCHS Output Reflexion; On State [dB] 0 -5 dB(SIM_on..S(2,2)) dB(Port8_on..S(2,2)) dB(Port7_on..S(2,2)) dB(Port6_on..S(2,2)) dB(Port5_on..S(2,2)) dB(Port4_on..S(2,2)) dB(Port3_on..S(2,2)) dB(Port2_on..S(2,2)) dB(Port1_on..S(2,2)) -10 -15 -20 -25 m5 -30 -35 -40 40 60 80 100 120 140 160 180 200 220 240 260 280 300 240 260 280 300 freq, MHz m5 freq=150.0MHz dB(Port3_on..S(2,2))=-27.619 Output Reflexion; Off State [dB] 0 -5 dB(SIM_off..S(2,2)) dB(Port8_off..S(2,2)) dB(Port7_off..S(2,2)) dB(Port6_off..S(2,2)) dB(Port5_off..S(2,2)) dB(Port4_off..S(2,2)) dB(Port3_off..S(2,2)) dB(Port2_off..S(2,2)) dB(S(2,2)) -10 -15 -20 -25 -30 m6 -35 -40 40 60 80 100 120 140 160 180 200 220 freq, MHz m6 freq=150.0MHz dB(Port4_off..S(2,2))=-35.089 Abbildung 10.5: Reflexionsfaktor S22 des RF-Ausgangs zum Empfänger des RF-Switchs Rückwärts-Transmission S12 des RF-Ausganges Die Rückwärts-Transmission S12 beschreibt den Rückfluss in die unerwünschte Signal-Richtung des Switchs. Die Messwerte entsprechen den simulierten Werten. Die Rückwärts-Transmission im ungeschalteten Betrieb verschwindet fast im Rauschen der Messanordnung. 151 KAPITEL 10. TESTS UND MESSUNGEN Reverse Transmission; On State [dB] 0.0 -7.5 dB(SIM_on..S(1,2)) dB(Port8_on..S(1,2)) dB(Port7_on..S(1,2)) dB(Port6_on..S(1,2)) dB(Port5_on..S(1,2)) dB(Port4_on..S(1,2)) dB(Port3_on..S(1,2)) dB(Port2_on..S(1,2)) dB(Port1_on..S(1,2)) -15.0 -22.5 -30.0 -37.5 -45.0 -52.5 -60.0 40 60 80 100 120 140 160 180 200 220 240 260 280 300 240 260 280 300 freq, MHz Reverse Transmission; On State [dB] 0.0 -7.5 dB(SIM_off..S(1,2)) dB(Port8_off..S(1,2)) dB(Port7_off..S(1,2)) dB(Port6_off..S(1,2)) dB(Port5_off..S(1,2)) dB(Port4_off..S(1,2)) dB(Port3_off..S(1,2)) dB(Port2_off..S(1,2)) dB(S(1,2)) -15.0 -22.5 -30.0 -37.5 -45.0 -52.5 -60.0 40 60 80 100 120 140 160 180 200 220 freq, MHz Abbildung 10.6: Rückwärts-Transmission S12 des RF-Ausgangs zum Empfänger des RF-Switchs 152 10.2. TEST DES PSEUDO-DOPPLER-ALGORITHMUS ZUR RICHTUNGSBESTIMMUNG 10.2 Test des Pseudo-Doppler-Algorithmus zur Richtungsbestimmung Die Performance des Pseudo-Doppler-Algorithmus zur Richtungsbestimmung wurde mit mehreren Feldtests geprüft. Dazu wurde das Funktionsmuster und die fertig erstellte Smart-Antenna-Elektronik verwendet. Die Tests wurden in einer möglichst reflexionsfreien Umgebung durchgeführt. Das Garagen-Dach der Berner Fachhochschule am Jlcoweg in Burgdorf wurde als Messplatz ausgewählt. Durch die erhöhte und freien Lage erüllt dieser Messplatz den Anforderungen. Das Dach ist idealerweise aus Holz konstruiert. 10.2.1 Messmittel Folgende Messmittel wurden verwendet: Gerät Inventar No. 1x Netzgerät MN222-5 1x Netzgerät MN221-4 32 V, 2 A TTI PL320 - Power System Unit 32 V, 2 A TTI PL320QMD - Quad Mode Power System Unit Huber & Suhner 50 Ω-KoaxialKabel (K_02252_D) Rohde & Schwarz Signal Spektrum Analyzer FSP 9 kHz-3 GHz Rohde & Schwarz Signal Generator SML03, 9 kHz-3.3 GHz Rohde & Schwarz Vector Signal Generator SMV03, 9 kHz-3.3 GHz Sirio SD3000N, 300 MHz-3 GHz Sirio SD2000N, 100 MHz-2 GHz ADSP-21364-Eval-Kit SHARC Integrated Circuit Emulator IBM T60 Laptop mit Windows XP V2002 Service Pack 3, Intel Core Duo CPU mit 2 GHz und 2.1 GB RAM IBM T30 mit Windows XP V2002 Service Pack 3, Intel Pentium M mit 2.4 GHz, 1 GB RAM VisualDSP++ 5 Entwicklungsumgebung 3x Koaxialkabel 1x Spektrum-Analyzer MA208-1 1x Signal-Generator MG203-1 1x Signal-Generator MG236-1 1x Monopol-Antenne 1x Monopol-Antenne 1x DSP-Eval-Kit 1x JTAG-Debugger IV216-1 1x Laptop IC200-1 Eigenschaften 1x Laptop 1x Debug-Software Tabelle 10.3: Geräteliste der S-Parameter-Messung 153 KAPITEL 10. TESTS UND MESSUNGEN 10.2.2 Messaufbau Der ganze Messaufbau wird auf einer möglichst flachen Ebene aufgebaut. Von Vorteil stehen keine Wände oder grössere, leitende Objekte in der Nähe. Der Testsender und die Monopolantenne „Sirio SD2000N“ wird 10 m vom Antennen-Array aufgebaut. Das Antennen-Array befindet sich auf einem Messtisch auf 1 m Höhe. Zu verwenden ist ein nichtleitender Messtisch (Holz, Kunststoffe...). Darunter wird das Funktionsmuster mit den Netzgeräten und dem Signalgenerator für das Oszillator-Signal des A/D-Wandlers aufgebaut. Dahinter kann in einiger Entfernung der Messplatz mit Spektrum-Analyzer, Laptops und sonstigen Messgeräten aufgebaut werden. Das Funktionsmuster wird gemäss Figur 10.7 verkabelt. Air channel, 10m, 150 MHz … (8 Antennae) Tx MG203-1 Smart Antenna RF-Switch RF 50 Ω, 150 MHz A/D AD9244 Osc. MG236-1 Spectrum Analyzer DCI Interface 3 Bit control signal 14 Bit, 40-60 MSPS DDC AD6620 Parallel Port Inphase Quadrature 32 Bit 32 Bit SPORT Laptop IBM T30 Laptop IBM T60 IC260 JTAG DAI DSP ADSP-21364 Expansion Board Abbildung 10.7: Block-Diagramm der Testanordnung Der Spektrum-Analyzer wird dazu verwendet, während der Messung allfällige Störer zu detektieren. Zusätzlich wird eine Referenzmessung zu Beginn des 154 10.2. TEST DES PSEUDO-DOPPLER-ALGORITHMUS ZUR RICHTUNGSBESTIMMUNG Tests durchgeführt, mit welcher die Leistung des RF-Signals an einer Antenne des Arrays gemessen wird. Der Laptop „IBM T30 “ wird zum Programmieren des DDCs über eine parallele LPT-Schnittstelle verwendet. Der Laptop „IBM T60 “ wird zum Programmieren des DSPs und zur Auswertung der Messresultate vwerwendet. Die eingesetzte Firmware wurde auf der beiliegenden CD im Verzeichnis ~/ firmware/meas1 abgespeichert. 10m Abbildung 10.8: Photo des Testaufbaus 10.2.3 Messanleitung 1. Aufbau gemäss Figur 10.7 und 10.8 realisieren, Laptops und Messgeräte einschalten 2. Der Test-Sender wird auf die gewünschte Frequenz und Leistung gestellt. (hier: 150 MHz, −20 dB) 3. Der Oszillator, der das CLK-Signal des A/D-Wandlers steuert, wird auf die gewünschte Abtastfrequenz und einer Vpp -Spannung von 700 mV gestellt. 4. Auf dem Laptop „IBM T30 “ wird die Konfigurations-Software für den DDC AD6620 gestartet und die Parameter gemäss Tabelle eingestellt. Die benötigten Files mit den Filterkoeffizienten kann auf der beiliengenden CD im Verzeichnis ~/simulations/DDC_filter gefunden werden. Werden Filter mit anderen Eigenschaften benötigt, so können diese mit dem Matlab-File ~/simulations/DDC_filters/FIR_comp.m erzeugt werden. Mögliche Abtastraten und Dezimationswerte können in der Tabelle 4.1 abgelesen werden. 5. Auf dem Laptop „IBM T60 “ wird das VisualDSP++-Studio geöffnet. Weiter wird die Session gemäss Figur 6.7 ausgewählt. 155 KAPITEL 10. TESTS UND MESSUNGEN Abbildung 10.9: Konfiguration des DDCs für eine Richtungsbestimmung mit einer Winkelauflösung von 3 ◦ 6. Die Firmware ~/firmware/src/test_1 wird kompiliert und mit dem JTAG-Debugger in das RAM des DSPs geladen. 7. Die Smart-Antenna wird mit dem gewünschten Einfallswinkel ausgerichtet. 8. Sämtliche Breakpoints werden gelöscht. Nun wird die Firmware ausgeführt und nach einer definierten Messzeit angehalten. Das I/O des SPORTs wird dabei nicht ausgeschaltet. Es werden kontinuierlich Samples empfangen. Die Visualisierungen der Entwicklungsumgebung sind als „Screenshots “zu interpretieren. 9. Die Messresultate werden ausgelesen und dokumentiert. 156 10.2. TEST DES PSEUDO-DOPPLER-ALGORITHMUS ZUR RICHTUNGSBESTIMMUNG 10.2.4 Messung 1: Stabilität der Winkelabschätzung Die Messung 1 überprüft die Stabilität der Winkelabschätzung während zyklisch wiederholten Messungen. Der Test zeigt auf, wie viele Samples die Signalverarbeitung benötigt, um stabile Resultate zu erhalten. Zusätzlich werden die Einschwingvorgänge der digitalen Filter ersichtlich. Daraus kann der Mittelwert und die Varianz der Messung abgeschätzt werden. Diese Parameter werden zur Implementation des Partikel-Filters benötigt. Die Messung beinhaltet 100 unabhängige Abschätzungen des Einfallswinkels. Die Konversion der Position des Maximums in den dazugehörigen Winkel wurde in diesem Test noch nicht durchgeführt. Eine Messung besteht aus der gemittelten Position des Maximums von 18 Rotationen. Nach dem Start der Firmware werden die Maxima der Winkelabschätzung in eine RAM-Bank geschrieben und mit VisualDSP++ visualisiert. Die Umrechung des Maximums in den Einfallswinkel wird folgendermassen durchgeführt: # define ANGLE_OFFSET 32 /∗∗< number o f angle quantums i n one f o u r t h o f a c i r c l e ∗/ // quantum t o angle t r a n s l a t i o n f l o a t angle_tmp = (mMax−ANGLE_OFFSET) ∗360/NUM_SAMPLES; Parameter Wert Eingestellte Winkel Winkelauflösung RF-Leistung an der Antenne 1 zugehörige Quantisierungsschritte Anzahl Rotationen pro Messung Anzahl unabhängiger Messungen −90 ◦ 3◦ −45 dBm 120 18 100 0 ◦, Tabelle 10.4: Parameter zur Messung 1 Heruntergemischtes RF-Signal nach dem DDC Das heruntergemischte und gefilterte I/Q-Signal wird zyklisch in zwei RAMBänke geschrieben. Die Form der Signale ist in Figur 10.10 ersichtlich. Das aus der Multiplexierung entstandene FM-Signal ist annähernd sinusförmig. Die Phasensprünge entstehen durch die einzelnen Multiplexierungen. Es ist ein im Vergleich zum Nutzsignal langsamer Sinus überlagert, welcher auf die Ungenauigkeit der einzelnen Oszillatoren zurück zu führen ist. Messreihe mit 100 unabhängigen Messungen Die Langzeit-Stabilität der Winkelabschätzung muss während des Trackings gewährleistet sein. Dazu wurden 100 unabhängige Abschätzungen des Einfallswinkels durchgeführt. Eine Messung besteht aus der gemittelten Position 157 KAPITEL 10. TESTS UND MESSUNGEN DDC RAM Bank A and B 5.0E+05 Amplitude 0.0E+00 -5.0E+05 -1.0E+06 -1.5E+06 0.0 250.0 500.0 750.0 1'000.0 1'250.0 Samples 1'500.0 1'750.0 2'000.0 2'250.0 Abbildung 10.10: Heruntergemischtes RF-Signal zweier RAM-Bänke. Orange: I-Signal der RAM-Bank A, Grün: Q-Signal der RAM-Bank A, Blau: I-Signal der RAM-Bank B, Rot: Q-Signal der RAM-Bank B. des Maximums von 18 Rotationen. Die Abbildung 10.12 zeigt deutlich, dass die erste Messreihe durch den Einschwingvorgang der digitalen Filterstrukturen beeinflusst ist. Nach dem Einschwingvorgang ist der Mittelwert und die Varianz der Winkel-Abschätzung konstant. Die während der Messung bestimmte Standardabweichung der Resultate mit einer Auflösung von 3 ◦ beträgt: σ3 ◦ = 1.2 ◦ (10.1) Die Abbildung 10.11 zeigt die gemittelten Maxima des abgeschätzten Einfallswinkels bei 0 ◦ . Der gemittelte Wert wird aus 18 Messungen berechnet. Die Kurvenform repräsentiert die Latenzzeiten des DMA-Mechanismus des DSPs. Die sinusförmige Kurvenform wird auf periodisch wiederkehrende Zugriffe auf das Daten-Memory zurückgeführt, bei welchem der DMA-Prozess verlangsamt wird. Da mit dem DMA-Prozess die Multiplexer-Frequenz steuert, wirkt sich dies direkt auf die Messresultate aus. Wird ein Einfallswinkel von −90 ◦ gewählt, so befindet sich die Quantisierung gerade beim Sprung von 120 Quanten (entspricht −91 ◦ ) zu 0 Quanten (entspricht −90 ◦ ). Entstehen viele Sprünge während der gesamten Messung, so muss die Messung verworfen werden. Der Algorithmus sieht vor, dass durch eine Berechnung der Varianz bestimmt werden kann, ob zu viele Quantisierungssprünge während der Messung vorhanden sind. Überschreitet die Varianz den Threshold VAR_THRESHOLD, so wird die Messung verworfen. Die Abbildung 10.13 illustriert eine Messung, in der die Varianz genug klein ist, um die Messung verwenden zu können. 158 10.2. TEST DES PSEUDO-DOPPLER-ALGORITHMUS ZUR RICHTUNGSBESTIMMUNG 4.0 3.0 Values [deg] 2.0 1.0 0.0 -1.0 -2.0 -3.0 0.0 10.0 20.0 30.0 40.0 50.0 60.0 Angles 70.0 80.0 90.0 100.0 110.0 Abbildung 10.11: Stabilität der gemittelten Maxima des abgeschätzten Einfallswinkels bei 0 ◦ . Der gemittelte Wert wird aus 18 Messungen berechnet. Die Messung wird 100x wiederholt. Abbildung 10.12: Stabilität des Maxima des abgeschätzten Einfallswinkels bei 0 ◦ . Pro Messung wird 18x rotiert. Die Messung wird 100x wiederholt. 159 KAPITEL 10. TESTS UND MESSUNGEN Abbildung 10.13: Stabilität der Maxima des abgeschätzten Einfallswinkels bei −90 ◦ . Pro Messung wird 18x rotiert. Die Messung wird 100x wiederholt. 10.2.5 Messung 2: Winkelabschätzung über den gesamten Azimut Zusätzlich zu den statischen Messungen mit konstantem Einfallswinkel wurden auch Messungen mit variierendem Einfallswinkel durchgeführt. Pro Messreihe ist die ausgesandte (engl.) Radio Frequency (RF)-Leistung des Testsenders konstant. Die gemessene Referenzleistung an der Antenne 1 beträgt −40 dB resp. −60 dB. Sämtliche Messungen wurden auf der beiligenden CD im Verzeichnis ~/measurements/ angleEstim abgelegt. An dieser Stelle werden nur die Signale eines Einfallswinkels pro Referenzleistung dargestellt. Messresultate zur Einfallswinkel-Abschätzung Die Algorithmen zur Bestimmung der Einfallsrichtung wurden mit 45 ◦ -Schritten getestet. Pro Einfallsrichtung wurden vier unabhängige Messungen durchgeführt. Die getesteten Einfallswinkel konnten alle erfolgreich und mit akzeptablem Fehler bestimmt werden. Die abgeschätzten Einfallswinkel beinhalten eine kleine, zufallsabhängige Abweichung. Da der Einfallswinkel von Hand eingestellt 160 10.2. TEST DES PSEUDO-DOPPLER-ALGORITHMUS ZUR RICHTUNGSBESTIMMUNG wurde, sind die Resultate nicht vollständig reproduzierbar. So können keine genauen Rückschlüsse auf eventuelle Abweichungen durch Systemfehler gezogen werden. 200 −40 dBm −60 dBm estimated wave angle [°] 150 100 50 0 −50 −100 −150 −150 −100 −50 0 50 100 adjusted wave angle [°] 150 200 Abbildung 10.14: Messresultat der Winkelabschätzung über den gesamten Azimut. Messresultate zur Empfangsleistung von −40 dBm Sowohl das vom DSP noch nicht verarbeitete I/Q-Signal vom DDC als auch das demodulierte Signal weist die zu erwartenden Kurvenformen auf. Auch die Stabilität der Maxima ist über die 100 Messungen gewährleistet. 161 KAPITEL 10. TESTS UND MESSUNGEN DDC RAM Bank A and B 2E+06 Amplitude 1E+06 0E+00 -1E+06 -2E+06 0.0 250.0 500.0 750.0 1'000.0 1'250.0 Samples 1'500.0 1'750.0 2'000.0 2'250.0 Abbildung 10.15: Heruntergemischtes RF-Signal zweier RAM-Bänke bei 45 ◦ und −40 dBm. Orange: I-Signal der RAM-Bank A, Grün: Q-Signal der RAMBank A, Blau: I-Signal der RAM-Bank B, Rot: Q-Signal der RAM-Bank B. demodulated analytical signal 0.05 0.04 0.03 0.02 Amplitude 0.01 0.0 -0.01 -0.02 -0.03 -0.04 -0.05 0.0 50.0 100.0 150.0 200.0 Samples 250.0 300.0 350.0 Abbildung 10.16: Demoduliertes und gefiltertes Signal bei 45 ◦ und −40 dBm, welches die vollständige Winkelinformation enthält Messresultate zur Empfangsleistung von −60 dBm Der Test zeigt die untere Grenze der SNR auf, bei welchem die Richtungsbestimmung noch funktioniert. Bei einer Empfangsleistung von −60 dBm liefert die Richtungsbestimmung der Empfängeranordnung genügend genaue Resultate. Zu erwarten wäre eine grössere Empfangsempfindlichkeit. Der Dy162 10.2. TEST DES PSEUDO-DOPPLER-ALGORITHMUS ZUR RICHTUNGSBESTIMMUNG Abbildung 10.17: Stabilität der Maxima des abgeschätzten Einfallswinkels bei 45 ◦ und −40 dBm. Pro Messung wird 18x rotiert. Die Messung wird 100x wiederholt. Untitled 57.5 55.0 Values [deg] 52.5 50.0 47.5 45.0 42.5 0.0 10.0 20.0 30.0 40.0 50.0 60.0 Angles 70.0 80.0 90.0 100.0 110.0 Abbildung 10.18: Stabilität der gemittelten Maxima des abgeschätzten Einfallswinkels bei 45 ◦ und −40 dBm. Der gemittelte Wert wird aus 18 Messungen berechnet. Die Messung wird 100x wiederholt. 163 KAPITEL 10. TESTS UND MESSUNGEN namikbereich der Empfängeranordung muss in zukünftigen Optimierungen verbessert werden. Das Signal vom DDC ist stark verrauscht. Die Signalform einer FM-Modulation kann dennoch erkannt werden. Das demodulierte Signal enthält nun Frequenzanteile langsameren Schwingungen, die sich aber nur wenig auf die zu bestimmenden Maxima auswirken. Die Stabilität der Messung ist über 100 Messungen gewährleistet. DDC RAM Bank A and B 3E+05 2E+05 Amplitude 1E+05 0E+00 -1E+05 -2E+05 -3E+05 0.0 250.0 500.0 750.0 1'000.0 1'250.0 Samples 1'500.0 1'750.0 2'000.0 2'250.0 Abbildung 10.19: Heruntergemischtes RF-Signal zweier RAM-Bänke bei bei 135 ◦ und −60 dBm. Orange: I-Signal der RAM-Bank A, Grün: Q-Signal der RAM-Bank A, Blau: I-Signal der RAM-Bank B, Rot: Q-Signal der RAM-Bank B. Die Abbildung 10.21 zeigt eine kurzzeitige Störung in der Bestimmung des Maximums. Die Ursache der Störung kann nicht genau definiert werden, wird aber auf den selektiven Übetragungskanal zurückgeführt. Die Abbildung 10.22 zeigt grössere Störungen im Schlussresultat der Winkelbestimmung auf. Im Vergleich zum Resultat aus der Messung mit einer RFLeistung von −40 dBm nehmen die Störungen stark zu. 164 10.2. TEST DES PSEUDO-DOPPLER-ALGORITHMUS ZUR RICHTUNGSBESTIMMUNG demodulated analytical signal 0.075 0.05 Amplitude 0.025 0.0 -0.025 -0.05 -0.075 0.0 250.0 500.0 750.0 1'000.0 1'250.0 Samples 1'500.0 1'750.0 2'000.0 2'250.0 Abbildung 10.20: Demoduliertes und gefiltertes Signal bei 135 ◦ und −60 dBm, welches die vollständige Winkelinformation enthält Abbildung 10.21: Stabilität der Maxima des abgeschätzten Einfallswinkels bei 135 ◦ und −60 dBm. Pro Messung wird 18x rotiert. Die Messung wird 100x wiederholt. 165 KAPITEL 10. TESTS UND MESSUNGEN Untitled 140.0 Values [deg] 135.0 130.0 125.0 120.0 115.0 0.0 10.0 20.0 30.0 40.0 50.0 60.0 Angles 70.0 80.0 90.0 100.0 110.0 Abbildung 10.22: Stabilität der gemittelten Maxima des abgeschätzten Einfallswinkels bei bei 135 ◦ und −60 dBm. Der gemittelte Wert wird aus 18 Messungen berechnet. Die Messung wird 100x wiederholt. 166 Kapitel 11 Stand der Arbeiten 11.1 Erreichte Ziele und Pendenzen Das Triangulations-System wurde in folgenden Schritten entwickelt: 1. Erweiterung und Aufbau des Funktionsmusters aus dem Konzept der MSE-Projektarbeit 2. • Sämtliche Kernziele 1. Priorität wurden erfüllt. • Das Funktionsmuster aus der MSE-Projektarbeit 2 wurde mit der Smart-Antenna-Elektronik erweitert. Der RF-Switch und die NavigationsSensoren wurden eingebaut. • Weiter wurde das Konzept zur Richtungsbestimmung erfolgreich getestet und optimiert. Statistische Parameter wurden aus den Feldtests extrahiert. • Aus Zeitgründen konnten die Kernziele 2. Priorität nicht erfüllt werden. Die Empfängeranordnung wurde noch nicht auf einem PCB zusammengefasst. Es existiert noch kein Prototyp des Empfängers. 2. Inbetriebnahme MSE-Projektarbeit 2 • Sämtliche Kernziele 1. Priorität zur Inbetriebnahme des Funktionsmusters aus der BFH-Projektarbeit 2 wurden erreicht. • Es wurden erfolgreich Freifeld-Tests zur Richtungsbestimmung der RF-Signale durchgeführt. Daraus konnten statistische Parameter abgeschätzt werden. • In diesem Punkt gibt es keine Kernziele 2. Priorität. 3. Entwicklung von Triangulations-Algorithmen • Sämtliche Kernziele 1. Priorität wurden erreicht. Es wurde sowohl ein Triangulations-Algorithmus für stationäre Ziele als auch für manövrierende Ziele entwickelt und getestet. • Ihre Performance wurde mit einer Monte-Carlo Simulation verglichen. 167 KAPITEL 11. STAND DER ARBEITEN • Parameter der Triangulations-Algorithmen wurden so optimiert, dass der Rechenaufwand bei gleicher Präzision minimiert werden kann. • Die Kernziele 2. Priorität wurden teilweise erreicht. Die Algorithmen zur Richtungsbestimmung funktionieren auch bei mehreren Targets. Dies wurde noch nicht simuliert. • Die Entwicklung der Algorithmen wurde mit einem falschen Zeitbudget terminiert und dauerte fast das 2.5-fache der eingeplanten Zeit. 4. Implementation der Triangulation • Die Kernziele 1. Priorität wurden nicht erreicht. Die Kommunikation zwischen Smart-Antenna-Sensoren und dem DSP konnte noch nicht fehlerfrei in Betrieb genommen werden. Der Fehler ist im Kapitel 9.2.5 beschrieben. • Folglich konnte nicht der gesamte Triangulations-Algorithmus vollständig implementiert werden. 11.2 Ausblick Die Resultate der simulierten Algorithmen zur Triangulation von RF-Sendern lassen darauf schliessen, dass sie auch im Feld funktionieren. Im nächsten Schritt muss nun das Problem mit der Kommunikation zwischen DSP und der Smart-Antenna-Elektronik gelöst werden. Eine Vereinfachung der Hardware kann nicht ausgeschlossen werden. Dazu müssten GPS-Module mit einer I2 C-Schnittstelle gekauft werden. Während der Evaulation wurden keine GPS-Module mit I2 C gefunden. Sobald die Triangulation mit dem Funktionsmuster gestestet und optimiert ist, kann ein Prototyp aus dem Funktionsmuster des Empfängers entwickelt werden. 168 Quellenverzeichnis [1] D. N. Aloi, M. S. Sharawi; Modeling and Validation of a 915 MHz Single Channel Pseudo Doppler Direction Finding System for Vehicle Applications; Vehicular Technology Conference Fall (VTC 2009-Fall), 2009 IEEE 70th; Digital IEEE Identifier: 10.1109/VETECF.2009.5378802; http: //ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5378802; gesichtet 15.12.2010 [2] D. Peavy, T. Ogumfunmi; The single channel interferometer using a pseudo-Doppler direction finding system; International Conference on Acoustics, Speech, and Signal Processing, 1997; Digital IEEE Identifier: 10.1109/ICASSP.1997.604855 http://ieeexplore.ieee. org/stamp/stamp.jsp?tp=&arnumber=604855; gesichtet 15.12.2010 4.2 [3] K. C. Ho, Y. T. Chan; An unbiased estimator for bearings-only tracking and Doppler bearing tracking; International Conference on Acoustics, Speech, and Signal Processing, 2003 [4] M. Dilinger, K. Madani, N. Alonistioti; Software Defined Radio: Architectures, Systems and Functions; Wiley and Sons; ISBN 0-47-085164-3; 2003 [5] J. H. Reed, Software Radio: A Modern Approach to Radio Engineering; Prentice Hall PTR; ISBN 0-13-081158-0; 2002 [6] S. Z. Bi, X. Y. Ren; Maneuvering Target Doppler-Bearing Tracking with Signal Time Delay Using Interacting Multiple Model Algorithms; Progress In Electromagnetics Research Symphosium (PIERS) 87, Page 15-41; 2008; www.jpier.org/PIER/pier87/02.08091501.pdf; gesichtet 15.12.2010 4.5.1 [7] C. Jauffret, Y. Bar-Shalom; Track formation with bearing and frequency measurements in clutter; Proceedings of the 29th IEEE Conference on Decision and Control, 1990; Digital IEEE Identifier: 10.1109/CDC.1990.203411; http://ieeexplore.ieee.org/ stamp/stamp.jsp?tp=&arnumber=203411; gesichtet 15.12.2010 4.5.1 [8] M. S. Arulampalam, B. Ristic, N. Gordon, T. Mansell; Bearings-only tracking of manoeuvring targets using particle filters; EURASIP Journal on Applied Signal Processing Volume 2004, 1 January 169 QUELLENVERZEICHNIS 2004; http://portal.acm.org/ft_gateway.cfm?id=1289537&type= pdf&CFID=3085592&CFTOKEN=14901316; gesichtet 15.12.2010 4.5.1 [9] Ristic, S. Arulampalam, N. Gordon; Beyond the Kalman Filter: Particle Filters for Tracking Applications; Artech House London; 2004 4.5.1, 4.5.2, 4.5.3, 4.5.3, 4.5.3, 4.5.3, 4.5.5, 4.5.5 [10] C. Jauffret, D. Pillon; Observability in passive target motion analysis; IEEE Transactions on Aerospace and Electronic Systems; Oct. 1996; digital IEEE Identifier: 10.1109/7.543850; http:// ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=543850; gesichtet 15.12.2010 4.5.1 [11] X. R. Li, Bar-Shalom; Design of an interacting multiple model algorithm for air traffic control tracking; IEEE Transactions on Control Systems Technology; Aug. 2002 ;Digital IEEE Identifier: 10.1109/87.251886; http://ieeexplore.ieee.org/stamp/stamp.jsp? tp=&arnumber=251886; gesichtet 24.01.2011 4.5.1 [12] X. R. Li, V. P. Jilkov; Survey of maneuvering target tracking. Part I. Dynamic Models; IEEE Transactions on Aerospace and Electronic Systems, Vol: 39, Issue: 4; 2003; Digital IEEE Identifier: 10.1109/TAES.2003.1261132; http://ieeexplore.ieee.org/stamp/ stamp.jsp?tp=&arnumber=1261132 4.5.2 [13] X. R. Li, V. P. Jilkov; Survey of maneuvering target tracking Part V: Multiple Model Methods; IEEE Transactions on Aerospace and Electronic Systems; Digital IEEE Identifier: 10.1109/TAES.2005.1561886; http: //ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1561886; gesichtet 24.01.2011 [14] R. Hämmerle; Factors limiting the accuracy of Doppler and Adcock direction finding systems; Passive Direction Finding IEE Colloquium 1989, London; http://ieeexplore.ieee.org/stamp/stamp.jsp?tp= &arnumber=197795; accessed 15.12.2010 [15] J. Yang; A New Adaptive Algorithm for Passive Multi-sensor Maneuvering Target Tracking; 6th International Conference on Wireless Communications Networking and Mobile Computing (WiCOM); 2010; Digital IEEE Identifier: 10.1109/WICOM.2010.5600255; http: //ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5600255; gesichtet: 04.04.2011 4.5.1 [16] S. Lei, L. Weihua, L. Zuoliang; An Effective IMM Algorithm for Maneuvering Target Tracking; 3rd International Conference on Signal Processing, Peking; 1996; Digital IEEE Identifier: 10.1109/ICSIGP.1996.566240; http://ieeexplore.ieee.org/stamp/stamp.jsp? tp=&arnumber=566240 4.5.1, 4.5.2, 4.5.2 170 QUELLENVERZEICHNIS [17] T. Ghirmai; Gaussian Particle Filtering for Tracking Maneuvering Targets; SoutheastCon, 2007. Proceedings. IEEE; Digital IEEE Identifier: 10.1109/SECON.2007.342941; http://ieeexplore.ieee.org/stamp/ stamp.jsp?tp=&arnumber=4147471; gesichtet: 04.04.2011 4.5.1 [18] X. Wu, F. Sun, W. Wang, H. Chi; Adaptive Algorithm of Tracking Maneuvering Targets using Rate of Acceleration; The Sixth World Congress on Intelligent Control and Automation in Dalian; 2006; Digital IEEE Identifier: 10.1109/WCICA.2006.1712672; http: //ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1712672; gesichtet: 04.04.2011 4.5.1 [19] T. Bréhard, J.P. Le Cadre; Hierarchical Particle Filter for Bearings-Only Tracking; IEEE Transactions on Aerospace and Electronic Systems Vol 43, Issue 43; 2007 ;Digital IEEE Identifier: 10.1109/TAES.2007.4441759; http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber= 4441759; gesichtet 04.04.2011 4.5.1, 4.5.2, 4.5.2 [20] A. Lindgren, K. Gong; Position and Velocity Estimation via Bearing Observations; IEEE Transactions on Aerospace and Electronic Systems Vol AES-14, Issue 4 ; 1978; Digital IEEE Identifier: 10.1109/TAES.1978.308681; http://ieeexplore.ieee.org/stamp/ stamp.jsp?tp=&arnumber=4102009; gesichtet 04.04.2011 4.5.2, 4.5.2 [21] V. Teulière, O. Brun; Parallelisation of the Particle Filter Technique and Application to Doppler-Bearing Tracking of Maeuvering Sources; Laboratoire d’Analyse et d’Architecture des Systèmes du CNRS, Toulouse; homepages.laas.fr/brun/PUBLI/COPIE_PAPERS/ parallel_computing.ps; gesichtet 04.04.2011 4.5.1 [22] V. J. Aidala; Kalman Filter Behavior in Bearin-Only Tracking Applications; IEEE Transactions on Aerospace and Electronic Systems Vol AES15, Issue 1; 1979; Digital IEEE Identifier: 10.1109/TAES.1979.308793 ; http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber= 4102101; gesichtet: 04.04.2011 4.5.1 [23] P. J. Davis, P. Rabinowitz; Methods of Numerical Integration: Second Edition; 2007; Dover Publications; ISBN 978-0486453392 4.5.3 [24] G. A. Breed; Filter Handbook Volume 1 - Applications; A Collection from RF design; 09.1991; Cardiff Publishing Company, Englewood 8.3.3 [25] K. Borgeest; Elektronik in der Fahrzeugtechnik, Hardware, Software und Projektmanagement, 2. Auflage 2010; Vieweg + Teubner Verlag Wiesbaden 2.1.3 [26] N. Shepard, M. K. Pitt; Filtering via Simulation: Auxiliary Particle Filters; Journal of the American Statistical Association, Vol64, No. 446; 1999; American Statistical Association ; http://links.jstor.org/sici?sici=0162-1459%28199906%2994% 3A446%3C590%3AFVSAPF%3E2.0.CO%3B2-O 4.5.5 171 QUELLENVERZEICHNIS [27] E. Schrüfer; Singalverarbeitung: numerische Verarbeitung digitaler Signale, 2. Auflage; 1992; Carl Hanser Verlag; ISBN 3-446-16563-0 4.2.1 [28] K.D. Kammeyer; Digitale Demodulation von FM-Signalen; AEÜ Band 36; Heft 7/8 4.2.1, 4.2.2, 4.2.2 [29] K.D. Kammeyer; Nachrichtenübertragung; 3. Auflage; 2004; B.G. Teubner Verlag; ISBN 3-519-26142-1 4.1.1, 4.2.1 [30] B. Grossniklaus; Digital Downconverter in einem FPGA; Bachelor Thesis; 2009; Berner Fachhochschule Burgdorf; http://www.ti.bfh.ch/ uploads/media/2009_64_digital_down_converter.pdf [31] Ch. Moya, Electronic Antenna Switch; Internship Project Documentation; 2010; Berner Fachhochschule Burgdorf 8.1.1, 8.3.3, 8.3.3 [32] F. M. Schaad; Master Project Work 2: Doppler Radio Bearing System; 2010; Berner Fachhoschule Burgdorf 1.1, 3.3.1, 5.1 172 Datenblätter und Spezifikationen [D1] Neo-6 Receiver Description; u-Blox; http://www.u-blox.com/images/ downloads/Product_Docs/NEO-6_DataSheet_%28GPS.G6-HW-09005% 29.pdf; gesichtet 13.12.10 2.2.2, 8.2.2 [D2] Surface Mount Passive Rectifier, GF1A thru GF1M Datenblatt; Vishay General Semiconductors; http://www.vishay.com/doc?88617; gesichtet 13.12.10 1 [D3] TRANSZORB Transient Voltage Suppressor, SMAJ24A; Vishay General Semiconductor; http://www.vishay.com/doc?88390; gesichtet 13.12.10 2 [D4] Level translating I2 C-bus repetater, PCA9509; NXP; http://www.nxp. com/documents/data_sheet/PCA9509.pdf; gesichtet 20.12.2010 8.2.5 [D5] I2 -Bus to SPI bridge, SC18IS602B; NXP; http://www.nxp.com/ documents/data_sheet/SC18IS602B.pdf; gesichtet 20.12.2010 8.2.5 [D6] 3-axis Compass with Algorithms, HMC6343; Honeywell; www. ssec.honeywell.com/magnetic/datasheets/HMC6343.pdf; gesichtet 23.12.2010 2.2.2, 8.2.7 [D7] u-blox 6 ROM-based GPS receiver modules; Spezifikationen, Datenblätter und Hardware Integration Manuals; http://www.u-blox. com/de/gps-modules/pvt-modules/neo-6-family.html; gesichtet 27.12.2010 8.2.6, 8.2.6, 8.2.6 [D8] RSADIFS-Software; Integration Software for R&S Test and Measurement instruments into the Agilent ADS Design System http: //www2.rohde-schwarz.com/en/service_and_support/Downloads/ Application_Notes?query=1ma72&type=20&downid=5203; gesichtet 01.01.2011 10.1.2 [D9] ADSP-2136x Hardware Reference Manual Rev2.0; Analog Devices; http://www.analog.com/static/imported-files/processor_ manuals/ADSP-2136x_HRMRev2.0.pdf; gesichtet 01.08.2011 2.2.2, 9.2.1, 9.2.2, 9.2.4, 9.2.5 173 DATENBLÄTTER UND SPEZIFIKATIONEN [D10] ADSP-21364 EZ-KIT Lite Evaluation System Manual, Revision 3.2 July 2007; Analog Devices; http://www.analog.com/static/ imported-files/eval_kit_manuals/139275238ADSP_21364_EZ_KIT_ Lite_Manual_Rev3.2.pdf, gesichtet: 02.08.2011 2.2.2, 6.2.3, 7.0.4 [D11] ADSP-2136x SHARC Processor Manuals und VisualDSP++ Compiler References; Analog Devices; http://www.analog. com/en/processors-dsp/sharc/adsp-21364/processors/ technical-documentation/index.html; gesichtet 02.08.2011 2.2.2 [D12] AD6620 67 MSPS Digital Receive Signal Processor; Analog Devices; http://www.analog.com/static/imported-files/data_sheets/ AD6620.pdf; gesichtet 01.08.2011 2.2.2, 6.4 [D13] AD9244 14-Bit, 40 MSPS/65 MSPS A/D Converter; Analog Devices; http://www.analog.com/static/imported-files/data_sheets/ AD9244.pdf; gesichtet 05.08.2011 2.2.2 174 Anhang 175 DATENBLÄTTER UND SPEZIFIKATIONEN 176 Anhang A IEEE Transaction Paper 177 Proceedings Simulation, Writing and Presentation, FS10, MSE BFH-TI Burgdorf, August 2010 1 Realization of a Pseudo Doppler Bearing System in a Software Defined Radio Receiver Fahmi Marcel Schaad, Student M.S. Electrical Engineering, BFH-TI Burgdorf Abstract—This paper presents one technique to implement a pseudo doppler bearing system in a software defined radio receiver. The integration of the System into a fully digital system provides some advantages for minimizing the power consumption and the size of conventional direction of arrival estimation receivers. Index Terms—Array signal processing, Direction of arrival estimation, Doppler measurements, HF receivers T I. INTRODUCTION ODAY’S portable bearing systems usually use directive antennae. The direction of arrival (DOA) estimation of the RF signal is made by rotating the full antenna. This kind of DOA estimation is inaccurate and time consuming. Many of those systems need some huge receiver equipments as batteries and some analogue HF receivers. The proposed approach of this paper is to integrate the full receiver in a digital system (DSP, FPGA) as software defined radio (SDR). The down mixing process in a SDR system is achieved without any power consuming mixer stages. With SDR as a single chip solution we can obtain small receiver structures. Another advantage of a SDR is the robustness against component aging and temperature drift. Yagi antennae with highly selective antenna pattern are often used for DOA estimations. We replace this kind of antenna and make use of a circularly arranged antenna array with eight elements as a basis for the pseudo doppler algorithm. Fig. 1. Schematic of the Pseudo Doppler Bearing Principle. (A) circular rotation of the antenna element and the corresponding frequency deviation (B). III. ANTENNA ARRAY MODEL All antenna elements are arranged radially. We introduce one imaginary antenna in the middle of the antenna array. This antenna is used to calculate the relative phase shift to all other antennae around the circle. At least four antennae are necessary to receive acceptable results. In our example we have eight active antennae. The phase of the induced signals between the imaginary antenna R and the other antennae is dependent of the DOA of the carrier signal and the position of the antenna elements. II. THE PSEUDO DOPPLER PRINCIPLE The classical Doppler shift of a carrier signal is that of an approaching receiver and a stationary transmitter. The frequency shift occurs due to the motion of the receiver towards or in the opposite direction of the transmitter. The induced shape of the electromagnetic wave is compressed or stretched. If the receiver turns in a circle around a point (or the antenna signals are multiplexed in the same manner), then the frequency shift of the induced carrier will have a sinusoidal shape with the same frequency as the rotation frequency of the antenna elements. The generated signal is similar to a frequency modulated (FM) carrier signal. Out of the demodulated signal we can determine the DOA. The DOA angle is proportional to the position of the maximum in the demodulated signal. Fig. 2. Antenna array model with eight elements. The center element R is an imaginary reference antenna. Proceedings Simulation, Writing and Presentation, FS10, MSE BFH-TI Burgdorf, August 2010 A single carrier induces the following signal at the reference antenna R: xR t e j ·2 fc t m i, xR t ·m i, s j 2 r cos e s i NA s r 2 i Na V. FM DEMODULATION One of the possible digital FM demodulation algorithms is the discriminator proposed by [1],[2] and [3]: s s antenna number [0...N A 1] total number of antennae - 1 (2) incoming wave angle [rad] radius of the array [m] wavelength of the signal [m] t This signal needs to be demodulated and interpreted by a DSP. The DOA estimation can be done by a zero crossing detector algorithm. (1) The induced signals of the antennae in the circle have an additional phase shift to the reference antenna R: x t , i, 2 time [s] This is the system response of a single antenna in the array. IV. BLOCK DIAGRAM OF THE SDR RECEIVER Fig. 4. FM demodulation with a discriminator The sampled FM signal is converted to a complex baseband signal with quadrature mixing. After the conversion an AM suppression block normalizes the complex signal to an amplitude of one. We receive the normalized complex signals xbb (k ) and xbb (k ) after the AM suppression block as X (k ) Where xbb (k ) j xbb (k ) cos( (k )) j sin( (k )). (3) (k ) is the modulated phase of the carrier signal with as phase shift and sNF k as modulation signal: Ts k (k ) sNF d . (4) The following multiplication network generates y k Fig. 3. Block diagram of the doppler bearing DOA estimator A RF signal arrives as a planar wave to the antenna array. The DSP of the SDR controls the multiplexing and selects the active antenna. The multiplexed signal needs some further signal preprocessing before the A/D converter quantizes the signal. This signal processing includes a band pass selection filter and an amplifier stage. The order of the filter and the amplifier depends on the present Signal-to-noise-Ratio. A reversed order might be useful. The A/D converter quantizes and samples the RF signal down. Since the signal is band limited, we can use lower sampling frequencies than the effective RF signal [1]. After quantization of the real signal we need to decimate the sample rate to a accurate level. This is usually done by a Digital Down Converter (DDC). The DDC converts the quantized real signal into a complex signal. The complex signal will be filtered and decimated in the DDC. Now we have the desired frequency modulated signal in the baseband. xbb k 1 xbb k xbb k xbb k 1 and can be simplified to y k Ts k sin s Ts ( k 1) NF d (5) If the following rule remains to be true then we can obtain the sine argument of equation 3.4.14 by calculating the arcus sine. fs 4 F (6) This rule enables the approximation of the integral as a step formula. So this is the output of the demodulator: w k Ts k s Ts ( k 1) NF d Ts ·sNF k (7) Proceedings Simulation, Writing and Presentation, FS10, MSE BFH-TI Burgdorf, August 2010 3 Fig. 5. Mean absolute error over five measurements with static positions of Rx and Tx and a variable SNR. The color black indicates no error, bordeaux red indicates an error 15 $ VI. PERFORMANCE OF THE SYSTEM Simulation Behavior The performance of the suggested DOA estimator has been simulated depending on the Signal to Noise Ratio (SNR) and the incoming wave angle. The propagation channel is modeled as a white Gaussian noise channel. All fading effects are ignored at this time. The simulation has been done as a Monte Carlo Simulation. The result of the mean absolute error for each angle and the corresponding SNR is calculated as repeated and averaged DOA estimations. All random stochastic processes in the white Gaussian channel are independent to each other. locate the geographic position of RF transmitters in a rural area. Estimating the DOA in a travelling car allows the triangulation and localization of an RF transmitter. VIII. IX. REFERENCES Figure 5 gives you an overview about the performance of the mentioned DOA estimator. [1] Simulaton Results With an SNR of 15dB we get accurate results in DOA estimation with a maximal error of 10°. The mean error in this area is 4.8° The DOA estimation cannot achieve accurate results with a worse SNR. Some systematic errors do not disappear even with a better SNR. The origins of those faults lie in the quantization of the demodulated signal. Increasing the number of samples per period in the demodulated signal improves the accuracy. [3] VII. FUTURE PLANS The integration of a fully digital Pseudo Doppler DOA estimator was successful. The DOA can be estimated with in an environment with an SNR above 15 dB. The next evolutional step of the system will be the integration of a full mobile triangulation system based on the Pseudo Doppler principle. The triangulation system shall CONCLUSIONS The integration of a Pseudo Doppler DOA estimation system into a SDR is possible. Many disadvantages of conventional systems as big size and high power dissipation can be neglected. The accuracy of the mentioned approach can compete with the conventional analog solutions [4]. The integration of a full triangulation system in one chip is a possible application area of this approach. [2] [4] E. Schrüfer, Signalverarbeitung: numerische Verfahren digitaler Signale, Carl Hanser Verlag, 2nd Edition, 1992 K.D. Kammeyer, Nachrichtenübertragung, B.G. Teubner Verlag, 3rd Edition, 2004, ch. 3.4 K.D. Kammeyer, Digitale Demodulation von FM-Signalen, AEÜ Magazine No 36, D. Peavy, T. Ogumfunmi, The single chanel interferometer using a pseudo-Doppler direction finding sytem, presented at the IEEE International Conference of ICASSP-97, April 21-24, Paper 0-81867919-019 Fahmi Marcel Schaad received the B.S. degree in electrical engineering from Bern University Applied Science in 2009, and is finishing his M.S. Degree in Engineering from the cooperation of the Swiss Universities of Applied Sciences until Summer 2011. In 2009 he became an assistant engineer at BFH High Frequency and Telecommunication Laboratory, Burgdorf, Switzerland, working on smart antenna systems and software defined radio. Simultaneously he received a sponsored scholarship for his master's studies. This paper was written while he was working on a pseudo doppler bearing and tracking system. Anhang B LNCS Report 181 Mobile Doppler Bearing System Fahmi Marcel Schaad [email protected] Bern University of Applied Science Electrical and Communication Engineering High Frequency and Communications Laboratory December 20, 2010 1 Introduction Today’s portable bearing systems consist of huge receiver structures as directive antennae and analouge receivers. Some bearing system application areas (e.g. animal tracking) require highly mobile and flexible system structures. The actual bearing system market doesn’t provide mobile, low power consuming and flexible bearing solutions at a low price level. We can divide the market into two segments. One segment consists of cheap and non professional bearing systems, the other one is accomodated to military and top quality solutions. The purpose of this work is to develop an inexpensive mobile bearing system that can be used for exact animal and interferer tracking. The tracking takes place in a moving vehicle. Due to the position shift of th moving vehicule, the bearing system requires a single antenna array for a clear triangulation. The proposed approach is to integrate a complete passive bearing system in a fully digital system as a Software Defined Radio (SDR). As a single chip solution we can obtain small and robust receiver structures. An existing pseudo doppler direction estimation algorithm [2] is extended to a full triangulation algorithm with an iterative state estimation method [6]. The algorithm requires a smart antenna with radially arranged antenna elements. So far only analogue pseudo doppler systems have been developed. A pseudo doppler bearing system as a SDR seems to be a novel approach. The reader is lead through the paper as follows: Section 2 gives an overview about the background. In Section 3 we give a contrast of this project to other related work. Section 4 and 5 describe the employed methods and the implementation of the system. The project’s conlusion and impact is summarized in section 6. 2 2.1 Background Direction of Arrival Estimation with a Pseudo Doppler Bearing Algorithm The classical Doppler shift of a carrier signal is that of an approaching receiver and a stationary transmitter. The frequency shift occurs due to the motion of the receiver towards or in the opposite direction of the transmitter. The induced shape of the electromagnetic wave is compressed or stretched. If the receiver antenna turns in a circle around a point (or the antenna signals are multiplexed in the same manner), then the frequency shift of the induced carrier will have a sinusoidal shape with the same frequency as the rotation frequency of the antenna elements. The generated signal is similar to a frequency modulated (FM) carrier signal. Out of the demodulated signal we can determine the direction of arrival. The direction of arrival angle is proportional to the position of the maximum in the demodulated signal [1]. Fig. 1. Schematic of the Pseudo Doppler Direction of Arrival Estimation. (A) circular rotating antenna element and the corresponding frequency modulated signal The rotation frequency of the antenna element is too high for a mechanical construction. We can relinquish a mechanical solution with a radial arranged antenna array. The spatial rotation is performed with an antenna signal multiplexing unit. At least four antenna elements are necessary to receive acceptable results [1]. 2.2 Software Defined Radio (SDR) A software defined radio consists of a receiver and/or a transmitter, where each has the following properties [4][5]: – The received signal is digitized and then processed using digital signal processing algorithms. The digitization may occur at the RF level. The use of analouge mixer and filter stages become redundant. 2 – An SDR transmitter generates the modulated signal as a digital signal using programmable digital signal processors. – A key element of a SDR is that software programmability allows easy changes of the radio’s fundamental characteristics such as modulation types, operating frequencies, bandwidths, multiple access schemes, source and channel coding methods and encryption/decryption algorithms. The following figure (fig. 2) shows a typical SDR receiver structure. The signal preprocessing part contains only a filter and a low noise amplifier. An A/Dconverter digitizes the RF signal. All downmixing and filtering of the digitized RF signal is inherited by a Digital Down Converter (DDC). A Digital Signal Processor (DSP) demodulates the mixed signal and estimates the incoming wave angle. Fig. 2. Block diagram of a SDR with preprocessing (amplifier, filter) We intend to integrate the full bearing system into a SDR architecture. The key benefits are: – – – – – 2.3 Minimized system complexity in comparison with other receiver structures Optimized power dissipation Minimzed size and weight of the system No temperature sensitive analouge mixing and filtering stages Highly customizable demodulation and bearing estimation along the full project development cycle Passive Bearing Triangulation Triangulation is the process of determining the location of a point by measuring angles to it from known points rather than measuring distances to the point directly. The point can then be fixed as the third point of a triangle with one known side and two known angles. Passive Radio Bearing Systems need at least two incoming wave angle results from two different positions to determine the position of the trasmitter. The speed estimation of the transmitter requires more than two estimation results from different positions. 3 Triangulation with a single antenna system is possible, when the bearing system is changing its position. Due to the position shift of a moving vehicule, the bearing system requires no further antenna for a clear triangulation. Fig. 3. Triangulation in a moving car with a single antenna array Recent studies have applied several new target tracking techniques to passive bearing systems [7][8]. Bearing systems detect the position and velocity of a target based on received measurements. The most common target motion analysis tracks the kinematics of the target using noise-corrupted bearing measurements and it is well known as bearing-only tracking. When the signal of the transmitter is narrow banded, frequency measurement is also available [9]. The additional frequency measurements provide extra target course and speed information. The conditions are that the emitted frequency must be constant during observation time and the target is not moving radially. In such situations, the observer can be stationary [10] for more than 20 measurements, which is very useful in our application. S. Z. Bi and X. Y. Ren propose an algorithm in [6] that describes the trajectory of maneuvering targets while the receiver is maneuvering too. The algorithm consists of a kinetics model estimator and a nonlinear trajectory filter. The tracking algorithm of our project is based on this approach. 4 3 Related Work The following projects have similar objectives. However, we did not find an implementation of a pseudo doppler bearing system in a Software Defined Radio. – Single channel interferometer using a pseudo doppler direction finding system: The system is improving the direction estimation with an adaptive algorithm. This project is performed by okunbo Ogun Jinmi, Dept. of Electrical Engineering, University of Santa Clara, Santa Clara, CA 95053, USA [2] – The Doppler Systems LLC Company designs and manufactures radio direction finding equipment for amateur, commercial and government users. Fixed-site and mobile units are available for frequencies between 100 and 1000 MHz. – Some commercial triangulation products for land-based, air- and shipborn use are available and not mentioned here. Most systems are very expensive (50,000$ and more) Several tracking algorithms are introduced in the last years: – The Intelligence, Surveillance & Reconnaissance Division, Defence Science and Technology Organisation (DSTO) in Edinburgh, Australia, has developed some particle filters for bearing-only tracking of manoeuvring targets using particle filters [8] – Y. Shalom from the ESE. Departement, University of Connecticut, developed a likelihood estimator for tracking parameters (angle and frequency) [7] – P. Rosenqvist from the developed a passive doppler bearing algorithm as a simple pseudo linear estimator [12] 4 Methods This section describes the methods to achieve our project goals. The development methods and the timeplan were defined at the beginning of the project. 4.1 Information Research Literature review is an essential part of research at the beginning of the project. There exists a lot of papers online (e.g. IEEE-Xplore-Database http://ieeexplore.ieee.org/). All concepts of the projects need to be understood, before further development can be performed. 4.2 Discussions with experts Non trivial problems can be discussed with our experts. They can solve problems in special areas as high frequency engineering or digital signal processing. 5 4.3 V-Model The full project development process is conducted with the V-Model approach. The V-Model is a systems development model designed to simplify the understanding of the complexity associated with developing systems. The following figure roughly illustrates the main idea of the V-Model: Fig. 4. The V-Model system development process The following objectives are intended to be achieved by the use of the VModel: – – – – 4.4 Minimization of project risks Guarantee of quality Reduction of the total costs during the full product cycle Improvement of the entire communication in the project Field Tests We need to test the experimental electronic parts and the algorithms in the real application area. Several field tests need to be made during the project. The first field test is performed after commissioning the first experimental doppler bearing system. 4.5 Timeplan At the beginning of the project a timeplan was made. Now we have already reached half of the project time. Until now we were able to follow the plan. 6 Tasks Project start Prototyping experimental model Bearing algorithms development Simulations Prototyping pilot system System assembly Initial operations Software Measurements & tests Project end Table 1. Timeline of the Doppler 5 Begin 11.10.10 11.10.10 17.01.11 17.01.11 14.03.11 18.04.11 02.05.11 16.05.11 18.07.11 End 17.12.10 11.03.11 11.03.11 15.04.11 29.04.11 13.05.11 15.07.11 29.07.11 05.08.11 Bearing Project Implementation This section gives a rough overview of the project implementation. Some preliminary work had been done before the Doppler Bearing Project started: – An algorithm estimating the direction of arrival of RF signals was evaluated – A design of the direction of arrivel estimator was simulated and was tested on evaluation boards – A design of a four port antenna switch and the smart antenna was developed by Christoph Moya (IAESTE exchange student) – Some bearing algorithms were evaluated, but not simulated so far Then we extended the direction of arrival estimator to a triangulation system. We made a redesign of the antenna switch and extended the switch to eight antennae. The full system was tested on evaluation boards. After some modifications and successful tests we started to integrate the system into an own hardware platform. Figure 5 shows the full functional block diagram. With this block diagram, we can easily show, how a tracking cycle is performed: 1. In the environment we have a RF transmitter as our target. The transmitter is sending carrier bursts each second (modulated or unmodulated) 2. The RF signal is catched by a smart antenna whose signal is multiplexed in a circular manner 3. The RF signal is digitized and digitally mixed into the baseband by the receiver (Rx). 4. The mixed signal is demodulated in the DSP (mentioned here as µC). The µC estimates the incoming wave angle out of the demodulated signal and aquires its own position from a GPS module. Out of this data he can estimate the position of the transmitter. 5. The estimated result is sent to a Geographic Information Software (GIS) on a laptop. 7 Fig. 5. General block diagram of the system 6 Expected Results After successful simulations and first field tests we expect to have a fully working system with a tracking accuracy of 10 m and material costs lower than 6000 $. The development right now is in-time. We expect to achieve our goals in the scheduled time. 7 Conclusion, Future Work and Impact The integration of a bearing system into a single-chip-solution is an adequate solution. The minimization of power consumption and system size with a Software Defined Radio was successful. It is possible to optimize the tracking accuracy of the mentioned pseudo doppler bearing algorithm with a software defined radio. The triangulation complexity is minimized due to the relinquished second antenna position. This project shows that also low budget bearing systems can achieve good tracking results. The full bearing system can be sold on a competitive basis. Future work will include the development of demodulation techniques that allows the demodulation and extraction of information out of the RF signal 8 during the the tracking. A monolithical integration of the full system might be possible, but the associated development costs might explode. References 1. D. N. Aloi, M. S. Sharawi; Modeling and Validation of a 915 MHz Single Channel Pseudo Doppler Direction Finding System for Vehicle Applications; Vehicular Technology Conference Fall (VTC 2009-Fall), 2009 IEEE 70th; Digital IEEE Identifier: 10.1109/VETECF.2009.5378802; http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5378802; accessed 15.12.2010 2. D. Peavy, T. Ogumfunmi; The single channel interferometer using a pseudo-Doppler direction finding system; International Conference on Acoustics, Speech, and Signal Processing, 1997; Digital IEEE Identifier: 10.1109/ICASSP.1997.604855 ; http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=604855; accessed 15.12.2010 3. K. C. Ho, Y. T. Chan; An unbiased estimator for bearings-only tracking and Doppler-bearing tracking; International Conference on Acoustics, Speech, and Signal Processing, 2003; 4. M. Dilinger, K. Madani, N. Alonistioti; Software Defined Radio: Architectures, Systems and Functions; Wiley and Sons; ISBN 0-47-085164-3; 2003 5. J. H. Reed, Software Radio: A Modern Approach to Radio Engineering; Prentice Hall PTR; ISBN 0-13-081158-0; 2002 6. S. Z. Bi, X. Y. Ren; Maneuvering Target Doppler-Bearing Tracking with Signal Time Delay Using Interacting Multiple Model Algorithms; Progress In Electromagnetics Research Symphosium (PIERS) 87, Page 15-41; 2008; www.jpier.org/PIER/pier87/02.08091501.pdf; accessed 15.12.2010 7. C. Jauffret, Y. Bar-Shalom; Track formation with bearing and frequency measurements in clutter; Proceedings of the 29th IEEE Conference on Decision and Control, 1990; Digital IEEE Identifier: 10.1109/CDC.1990.203411; http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=203411; accessed 15.12.2010 8. M. S. Arulampalam, B. Ristic, N. Gordon, T. Mansell; Bearingsonly tracking of manoeuvring targets using particle filters; EURASIP Journal on Applied Signal Processing Volume 2004, 1 January 2004; http://portal.acm.org/ft_gateway.cfm?id=1289537&type=pdf&CFID=308559 2&CFTOKEN=14901316; accessed 15.12.2010 9. B. Ristic, S. Arulampalam, N. Gordon; Beyond the Kalman Filter: Particle Filters for Tracking Applications; Artech House London; 2004 10. C. Jauffret, D. Pillon; Observability in passive target motion analysis; IEEE Transactions on Aerospace and Electronic Systems; Oct 1996 ; digital IEEE Identifier: 10.1109/7.543850; http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=543850; accessed 15.12.2010 11. R. HÃďmmerle; Factors limiting the accuracy of Doppler and Adcock direction finding systems; Passive Direction Finding IEE Colloquium 1989, London; http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=197795; accessed 15.12.2010 9 12. P. A. Rosenqvist; Passive Doppler-bearing tracking using a pseudo-linear estimator; IEEE Journal of Oceanic Engineering Vol. 20 1996; Digital IEEE Identifier: 10.1109/48.376674; http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=376674; accessed 15.12.2010 13. ; T. Xiao-Jiao, Z. Cai-Rong, H. Zhen-Ya; A generalized maximum likelihood estimation algorithm for passive Doppler-bearing tracking; International Conference on Acoustics, Speech, and Signal Processing, 1995; Digital IEEE Identifier: 10.1109/ICASSP.1995.479559; http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=479559; accessed 15.12.2010 10 ANHANG B. LNCS REPORT 192 Anhang C Schema und PCB der Expansion-Card 193 ANHANG C. SCHEMA UND PCB DER EXPANSION-CARD 194 1 2 3 4 5 6 7 8 COP3 P3 2 1 +12 GND PIP302 PIP301 Header 2x1 COH1 H1 VCC5 PIH101 PIH103 GND NLAD0 AD0 PIH105 NLAD2 AD2 PIH107 NLAD4 AD4 PIH109 NLAD6 AD6 PIH1011 NLAD8 AD8 PIH1013 NLAD10 AD10 PIH1015 NLAD12 AD12 PIH1017 NLAD14 AD14 PIH1019 A PIH1021 PIH1023 PIH1025 PIH1027 PIH1029 PIH1031 PIH1033 PIH1035 GND PIH1037 PIH1039 PIH1041 PIH1043 PIH1045 PIH1047 PIH1049 PIH1051 PIH1053 PIH1055 PIH1057 B PIH1059 PIH1061 PIH1063 PIH1065 PIH1067 PIH1069 PIH1071 PIH1073 PIH1075 PIH1077 PIH1079 PIH1081 PIH1083 PIH1085 GND VCC5 PIH1087 PIH1089 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 2 PIH102 VCC5 4 PIH104 NLAD1 GND AD1 6 PIH106 NLAD3 AD3 8 PIH108 NLAD5 AD5 10 PIH1010 NLAD7 AD7 12 PIH1012 NLAD9 AD9 14 PIH1014 NLAD11 AD11 16 PIH1016 NLAD13 AD13 18 PIH1018 NLAD15 AD15 20 PIH1020 22 PIH1022 24 PIH1024 26 PIH1026 28 PIH1028 30 PIH1030 32 PIH1032 34 PIH1034 36 PIH1036 38 PIH1038 GND 40 PIH1040 42 PIH1042 44 PIH1044 46 PIH1046 48 PIH1048 50 PIH1050 52 PIH1052 54 PIH1054 56 PIH1056 58 PIH1058 60 PIH1060 62 PIH1062 64 PIH1064 66 PIH1066 68 PIH1068 70 PIH1070 72 PIH1072 74 PIH1074 76 PIH1076 78 PIH1078 80 PIH1080 82 PIH1082 84 PIH1084 86 PIH1086 88 PIH1088 GND 90 PIH1090 VCC5 COP1 P1 COR1 R1 0K GND PIP101 1 AD1 PIR101 PIR102 PIP103 3 COR3 AD3 PIR301 R3 0K 5 PIR302 PIP105 COR5 AD5 PIR501 R5 0K 7 PIR502 PIP107 COR7 AD7 PIR701 R7 0K 9 PIR702 PIP109 COR9 AD9 PIR901 R9 0K 11 PIR902 PIP1011 COR11 AD11 PIR1101 R110K PIR1102 PIP1013 13 AD13 PIR1301 COR13 R130K PIR1302 PIP1015 15 AD15 PIR1501 COR15 R150K PIR1502 PIP1017 17 PIP1019 19 PIP1021 21 PIP1023 23 PIP1025 25 PIP1027 27 PIP1029 29 GND PIP1031 31 2 PIP102 VCC5 IR202 PIR201 4 PIP104PPIR202 IR402 PIR401 6 PIP106PPIR402 IR602 PIR601 8 PIP108PPIR602 IR802 PIR801 10 PIP1010PPIR802 IR1002 PIR1001 12 PIP1012PPIR1002 IR1202 PIR1201 14 PIP1014PPIR1202 IR1402 PIR1401 16 PIP1016PPIR1402 IR1602 PIR1601 18 PIP1018PPIR1602 20 PIP1020 22 PIP1022 24 PIP1024 26 PIP1026 28 PIP1028 30 PIP1030 32 PIP1032 GND AD0 AD2 AD4 AD6 AD8 AD10 AD12 AD14 COR2 R2 COR4 R4 COR6 R6 COR8 R8 COR10 R10 COR12 R12 COR14 R14 COR16 R16 COH2 H2 0K 0K 0K 0K 0K 0K 0K 0K VCC3.3 GND PIH207 PIH209 PIH2011 PIH2013 VCC3.3 PIH2019 PIH2021 PIH2023 PIH2025 PIH2027 PIH2029 FLAG0 FLAG2 PIH2033 PIH2035 PIH2039 VCC3.3 NLFLAG1 FLAG1 PIP1004 NLFLAG3 FLAG3 PIP1006 NLS\P\I\D\S\ SPIDS PIP1008 NLSPICLK SPICLK PIP10010 PIP1002 PIH2041 PIH2043 DAIP1 DAIP3 DAIP5 DAIP7 DAIP9 DAIP11 DAIP13 DAIP15 DAIP17 DAIP19 COP2 P2 PIP201 NLDAIP1 DAIP1 NLDAIP3 DAIP3 NLDAIP5 DAIP5 NLDAIP7 DAIP7 NLDAIP9 DAIP9 PIH2031 PIH2037 2 4 6 8 10 Header 5X2 GND PIH2015 PIH2017 COP10 P10 1 3 5 7 9 PIH203 PIH205 Header 16X2 PIP1001 GND NLFLAG0 FLAG0 PIP1003 NLFLAG2 FLAG2 PIP1005 NLMISO MISO PIP1007 NLMOSI MOSI PIP1009 PIH201 PIP203 PIP205 PIP207 PIP209 DAIP11 NLDAIP13 DAIP13 NLDAIP15 DAIP15 NLDAIP17 DAIP17 NLDAIP19 DAIP19 PIP2011 VCC3.3 PIP2023 PIP2013 PIP2015 PIP2017 PIP2019 PIP2021 1 3 5 7 9 11 13 15 17 19 21 23 2 4 6 8 10 12 14 16 18 20 22 24 PIP2022 GND NLDAIP2 DAIP2 NLDAIP4 DAIP4 NLDAIP6 DAIP6 NLDAIP8 DAIP8 NLDAIP10 DAIP10 DAIP12 NLDAIP14 DAIP14 NLDAIP16 DAIP16 NLDAIP18 DAIP18 NLDAIP20 DAIP20 PIP2024 GND PIP202 PIP204 PIP206 PIP208 PIP2010 PIP2012 PIP2014 PIP2016 PIP2018 PIP2020 PIH2045 PIH2047 PIH2049 PIH2051 PIH2053 PIH2055 PIH2057 PIH2059 PIH2061 PIH2063 PIH2065 PIH2067 PIH2069 PIH2071 PIH2073 VCC3.3 PIH2075 MISO MOSI PIH2077 PIH2079 PIH2081 PIH2083 Header 12X2 PIH2085 GND VCC3.3 TFM-145-02-X-D-A PIH2087 PIH2089 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 COH3 H3 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 PIH202 PIH204 VCC3.3 GND VCC1.2 GND PIH301 PIH303 PIH206 PIH305 PIH208 PIH307 PIH2010 PIH309 PIH2012 PIH3011 PIH2014 PIH3013 PIH2016 GND PIH3015 PIH2018 PIH3017 PIH2020 PIH3019 PIH2022 PIH3021 PIH2024 PIH3023 PIH2026 PIH3025 VCC5 PIH2028 PIH3027 PIH2030 PIH3029 PIH2032 PIH3031 FLAG1 FLAG3 PIH2034 PIH2036 PIH3033 PIH3035 PIH2038 PIH3037 PIH2040 PIH3039 PIH2042 PIH3041 GND PIH2044 PIH3043 PIH2046 PIH2048 PIH3045 PIH3047 DAIP2 DAIP4 DAIP6 DAIP8 DAIP10 DAIP12 DAIP14 DAIP16 DAIP18 DAIP20 PIH2050 PIH2052 PIH2054 PIH2056 PIH2058 PIH2060 PIH2062 PIH2064 PIH2066 PIH2068 PIH3049 PIH3051 PIH3053 PIH3055 PIH3057 PIH3059 PIH3061 PIH3063 VCC3.3 PIH3065 PIH3067 PIH2070 PIH3069 PIH2072 PIH3071 PIH2074 PIH3073 PIH2076 PIH2078 PIH3075 GND PIH3077 SPIDS SPICLK PIH2080 PIH2082 PIH3079 PIH3081 PIH2084 PIH3083 PIH2086 PIH2088 PIH2090 PIH3085 GND VCC3.3 GND PIH3087 PIH3089 TFM-145-02-X-D-A +12 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 PIH304 COC1 PIC201 C2 COC2 PIC101 C1 PIC202 100uF PI100uF C102 GND PIH306 PIH308 PIH3010 GND PIH3012 PIH3014 PIH3016 PIH3020 PIH3026 GND VCC5 PIH3028 PIR1701 Reset COR17 R17 10K PIH3032 COS1 S1 SW-PB Reset all Chips PIH3034 PIH3036 PIH3038 PIS102 PIH3040 PIH3042 GND P6 COP6 FLAG1 2 PIU302 ResetPIU303 3 NLR\e\s\e\t\ VCC3.3 3 2 1 PIP603 Header 3 4 PIU304 GND PIP602 MISO PIP601 GND 5 PIU305 MOSI 6 PIU306 P7 COP7 VCC5 PIH3052 PID10 PIH3056 PIH3058 DAIP12 NLDAIP12 3 PIP703 2 PIP702 1 PIP701 8 PIU308 3 2 1 VCC3.3 VCC3.3 VCC5 PIP803 PIP802 PIP801 Header 3 GND DAIP3 DAIP4 DAIP5 DAIP6 DAIP7 DAIP8 DAIP9 DAIP10 21 PIU2021 20 PIU2020 19 PIU2019 18 PIU2018 17 PIU2017 16 PIU2016 15 PIU2015 14 PIU2014 B1 B2 B3 B4 B5 B6 B7 B8 PIH3064 PIH3066 GND GND GND PIR1901 VCC3.3 PIH3068 D PIU2013 PIR1801 COR18 R18 PIH3070 PIR1902560 PIH3072 PIR1802240 PIH3074 GND PIH3076 GND PIH3078 PIH3080 PIH3082 PIH3084 PIH3086 PIH3088 GND PIH3090 10 NLLED3 LED3 CS GPIO2 PIU3010 RESET SCLK PIU3011 Vdd MISO GPIO3 PIU3013 MOSI INT PIU3014 WAKEUP/IO4 15 PIU3015 Vss SCL PID301 PID302 PIR20 1 11 12 PIU3012 VCC3.3 1 PIU101 2 PIU102 3 PIU103 P9 COP9 GND GND 1 2 3 4 PIP905 5 PIP906 6 PIP901 13 R20 COR20 VCC3.3 PIR20 2240 NLLED4 LED4 GND 14 PIU3016 PIP501 PIP502 GND 16 IO5 LED2 D3 COD3 PID401 PID402 LED3 D4 COD4 PIR2101 R21 COR21 PIR2102240 GND PID501 PID502 LED4 D5 COD5 PIR2 01 PIR2301 R22 COR22 4 PIU104 VCC_A 8 VCC_B PIU108 A1 B1 PIU107 PIR2 02 240 PIR230240 2 GND GND PIP503 1 2 3 A2 B2 PIU106 VSS VCC5 H4 COH4 6 5 En PIU105 GND VCC3.3 PIH402 GND PIH403 PIH404 +12 PIP903 PIH405 PIH406 PIP904 GND GND GND PIH401 +12 PIH407 PIH408 GND Header 6 PIH409 PIH4010 GND +12 PIH4011 PIH4012 1 2 3 4 5 6 7 8 9 10 11 12 D E23 EMV Buchse Size: DBS: DSP Expansion Card A3_L Author: saf5 Date: 21.03.2011 Time: 09:32:26 File: DSP_ConnectorPrint.SchDoc 3 C R23 COR23 7 Title: 2 D6 COD6 Header 3 SN74LVC4245DB 1 PID601 PID602 COP5 P5 VCC3.3 PCA9509 PIP902 PIU2010 11 12 PIU2012 13 PID20 COR19 R19 COU1 U1 3 PIU203 4 PIU204 5 PIU205 6 PIU206 7 PIU207 8 PIU208 9 PIU209 10 PIU2011 B COD2 D2 PID102 PIH3062 SC18IS600 22 OE PIU2022 2 DIR PIU202 A1 A2 A3 A4 A5 A6 A7 A8 PID201 COD1 D1 PIH3060 NLLED2 LED2 PIU309 7 U2 COU2 24 PIU2024 VCCB 23 PIU2023 VCCB 1 PIU201 VCCA VCC3.3 PIH3054 9 GPIO1 PIU307 SDA Header 3 COP8 P8 VCC3.3 COC9 PIC10 2 C10 COC10 PIC902 C9 PIC901 100nFPIC10 1 100nF PIH3050 LED1 U3 COU3 LED1 1 NLLED1 PIU301 GPIO0 PIP402 Header 3 C COC8 C8 100uF GND PIH3048 SPICLK DAIP11 NLDAIP11 PIP403 PIP401 VCC3.3 COC6 PIC702C7 COC7 PIC602 C6 PIC801 PIC601 100nF PIC701100nF PIC802 GND PIH3046 COC5 C5 100uF GND PIS10 PIH3030 PIH3044 COC3 PIC402C4 COC4 PIC302 C3 PIC501 PIC301 100nF PIC401100nF PIC502 PIR1702 PIH3022 PIH3024 VCC5 VCC3.3 PIH3018 TFM-145-02-X-D-A P4 COP4 3 2 1 A PIH302 4 5 6 BFH-TI, Burgdorf Revision: 0.1 Sheet 1 7 of 1 Jlcowg 1 CH-3400 Burgdorf Switzerland 8 COP10 COP1 COC5 PAP1002 PAP1004 PAP1006 PAP1008 PAP10010 PAP1001 PAP1003 PAP1005 PAP1007 PAP1009 PAP302 PAP301 COP3 COR19 COD1 PAR1902 PAR1901 PAD102 PAD101 PAR1802 PAR1801 PAD202 PAD201 COP5 COR18 COD2 PAP501 PAP502 PAP503 COR23 PAR2302 PAR2202 COR22 PAR2301 PAR2201 PAD502 COD6 PAD602 PAD601 PAD501 COD5 PAP1031 PAP1029 PAP1027 PAP1025 PAP1023 PAP1021 PAP1019 PAP1017 PAP1015 PAP1013 PAP1011 PAP109 PAP107 PAP105 PAP103 PAP101 PAP1032 PAP1030 PAP1028 PAP1026 PAP1024 PAP1022 PAP1020 PAP1018 PAP1016 PAP1014 PAP1012 PAP1010 PAP108 PAP106 PAP104 PAP102 PAR2102 PAR2002 PAR2101 PAR2001 COR20 PAD402 PAD302 PAD401 PAD301 COD3 COR21 COD4 COR12 COR8 COR10 COR6 PAR1602 PAR1601 COR16 COR14 COH1 COH2 PAH1092 PAH2091 PAR1202 PAR1201 PAR1402 PAR1401 PAR802 PAR801 PAR1002 PAR1001 PAR402 PAR401 PAR602 PAR601 COR4 PAR202 COR2 PAR201 PAH1089 PAH1087 PAH1085 PAH1083 PAH1081 PAH1079 PAH107 PAH1075 PAH1073 PAH107 PAH1069 PAH1067 PAH1065 PAH1063 PAH1061 PAH1059 PAH1057 PAH105 PAH1053 PAH1051 PAH1049 PAH1047 PAH1045 PAH1043 PAH104 PAH1039 PAH1037 PAH1035 PAH103 PAH1031 PAH1029 PAH1027 PAH1025 PAH1023 PAH1021 PAH10 9 PAH10 7 PAH10 5 PAH10 3 PAH10 PAH109 PAH107 PAH105 PAH103 PAH10 PAH109 PAH108 PAH1086 PAH1084 PAH1082 PAH108 PAH1078 PAH1076 PAH1074 PAH1072 PAH107 PAH1068 PAH106 PAH1064 PAH1062 PAH106 PAH1058 PAH1056 PAH1054 PAH1052 PAH105 PAH1048 PAH1046 PAH104 PAH1042 PAH104 PAH1038 PAH1036 PAH1034 PAH1032 PAH103 PAH1028 PAH1026 PAH1024 PAH102 PAH102 PAH10 8 PAH10 6 PAH10 4 PAH102 PAH10 PAH108 PAH106 PAH104 PAH102 PAH1091 PAH201 PAH202 COC7 COC10 PAH203 PAH204 PAH205 PAH206 PAC701 PAC1001 PAC702 PAC1002 PAH207 PAH208 PAH209 PAH2010 PAR1301 COR15 PAR1501 PAR1502 PAH2011 PAH2012 PAH2013 PAH2014 PAU101 PAU102 PAU108 PAU107 PAU103 PAU106 PAU104 PAU105 PAH2015 PAH2016 PAH2017 PAH2018 PAH2019 PAH2020 PAH2021 PAH2022 COP2 PAP202 PAP204 PAP206 PAP208 PAP2010 PAP2012 PAP2014 PAP2016 PAR1101 PAR1102 PAR701 PAR702 PAR102 PAR301 PAR302 COR1 COR3 COC4 COR9 COR5 COR11 COR7 PAH2027 PAH2028 PAH2029 PAH2030 COU3 PAU309 PAU301 PAU301 PAU3012 PAU3013PAU3014PAU3015 PAU3016 PAC902PAC901 PAH2031 PAH2032 PAH2033 PAH2034 PAH2035 PAH2036 COC9 PAH2037 PAH2038 PAH2039 PAH2040 PAH2041 PAH2042 PAH2043 PAH2044 PAH2045 PAH2046 PAH2047 PAH2048 PAH2049 PAH2050 PAH2051 PAH2052 COU2 PAU20P1A2U201 PAU201 PAU2P0A9U208PAU207PAU206PAU205PAU204PAU2P0A3U202PAU201 PAC302 PAH2053 PAH2054 PAH2055 PAH2056 PAH2057 PAH2058 PAP2017 PAP2019 PAP2021 PAP2023 PAR101 PAR902 PAR502 PAC402 PAC401 PAU308 PAU307PAU306PAU305 PAU304PAU30 PAU302 PAU301 PAH2023 PAH2024 PAH2025 PAH2026 PAP201 PAP203 PAP205 PAP207 PAP209 PAP2011 PAP2013 PAP2015 PAR901 PAR501 COR13 PAR1302 COU1 PAP2018 PAP2020 PAP2022 PAP2024 PAC301 COC3 PAH2059 PAH2060 PAH2061 PAH2062 PAU20P1A3U2014PAU2015PAU20P1A6U2017PAU2018PAU2019PAU2020PAU20 1PAU20P2AU2023PAU20 4 PAH2063 PAH2064 PAH2065 PAH2066 PAC602 PAC601 PAH2067 PAH2068 PAH2069 PAH2070 COC6 PAH2071 PAH2072 PAH2073 PAH2074 PAH2075 PAH2076 PAH2077 PAH2078 PAH2079 PAH2080 PAH2081 PAH2082 PAH2083 PAH2084 PAH2085 PAH2086 COC8 PAC801 PAC802 PAH2087 PAH2088 PAP603 PAP403 COP4 COP6 PAP803 PAP703 PAP802 PAP702 PAP801 PAP701 PAS101 PAS102 COS1 PAH3089 PAH3087 PAH3085 PAH3083 PAH3081 PAH3079 PAH307 PAH3075 PAH3073 PAH3071 PAH3069 PAH3067 PAH3065 PAH306 PAH3061 PAH3059 PAH3057 PAH305 PAH3053 PAH3051 PAH3049 PAH3047 PAH3045 PAH3043 PAH3041 PAH30 9 PAH307 PAH30 5 PAH30 PAH30 1 PAH3029 PAH3027 PAH3025 PAH3023 PAH3021 PAH3019 PAH3017 PAH3015 PAH3013 PAH301 PAH309 PAH307 PAH305 PAH30 PAH301 PAH2092 PAH3092 PAP602 PAP402 PAP601 PAP401 COP8 COP7 COH3 PAH2089 PAH2090 PAR1702 PAR1701 COR17 PAH309 PAH308 PAH3086 PAH3084 PAH3082 PAH308 PAH3078 PAH3076 PAH3074 PAH3072 PAH307 PAH3068 PAH306 PAH3064 PAH3062 PAH306 PAH3058 PAH3056 PAH3054 PAH3052 PAH305 PAH3048 PAH3046 PAH304 PAH3042 PAH304 PAH308 PAH30 6 PAH304 PAH30 2 PAH30 PAH3028 PAH3026 PAH3024 PAH302 PAH302 PAH3018 PAH3016 PAH3014 PAH3012 PAH301 PAH308 PAH306 PAH304 PAH302 PAH3091 PAH400 PAC502 PAC501 PAH401 PAH402 PAH403 PAH404 PAH405 PAH406 COP9 COH4 PAH4012 PAH4011 PAH4010 PAH409 PAH408 PAH407 PAP906 PAP905 PAP904 PAP903 PAP902 PAP901 PAC102 PAC101 COC1 PAC202 PAC201 COC2 COP10 PAC102 PAC101 COC1 COP1 COC5 PAP1002 PAP1004 PAP1006 PAP1008 PAP10010 PAP1001 PAP1003 PAP1005 PAP1007 PAP1009 PAP302 PAP301 PAC202 PAC201 COC2 COP3 COR19 COD1 PAR1902 PAR1901 PAD102 PAD101 PAR1802 PAR1801 PAD202 PAD201 COP5 COR18 COD2 PAP501 PAP502 PAP503 COR23 PAR2302 PAR2202 COR22 PAR2301 PAR2201 PAD502 COD6 PAD602 PAD601 PAD501 COD5 PAP1031 PAP1029 PAP1027 PAP1025 PAP1023 PAP1021 PAP1019 PAP1017 PAP1015 PAP1013 PAP1011 PAP109 PAP107 PAP105 PAP103 PAP101 PAP1032 PAP1030 PAP1028 PAP1026 PAP1024 PAP1022 PAP1020 PAP1018 PAP1016 PAP1014 PAP1012 PAP1010 PAP108 PAP106 PAP104 PAP102 PAR2102 PAR2002 PAR2101 PAR2001 COR20 PAD402 PAD302 PAD401 PAD301 COD3 COR21 COD4 COR12 COR8 COR10 COR6 PAR1602 PAR1601 COR16 COR14 COH1 COH2 PAH1092 PAH2091 PAR1202 PAR1201 PAR1402 PAR1401 PAR802 PAR801 PAR1002 PAR1001 PAR402 PAR401 PAR602 PAR601 COR4 PAR202 COR2 PAR201 PAH1089 PAH1087 PAH1085 PAH1083 PAH1081 PAH1079 PAH107 PAH1075 PAH1073 PAH107 PAH1069 PAH1067 PAH1065 PAH1063 PAH1061 PAH1059 PAH1057 PAH105 PAH1053 PAH1051 PAH1049 PAH1047 PAH1045 PAH1043 PAH104 PAH1039 PAH1037 PAH1035 PAH103 PAH1031 PAH1029 PAH1027 PAH1025 PAH1023 PAH1021 PAH10 9 PAH10 7 PAH10 5 PAH10 3 PAH10 PAH109 PAH107 PAH105 PAH103 PAH10 PAH109 PAH108 PAH1086 PAH1084 PAH1082 PAH108 PAH1078 PAH1076 PAH1074 PAH1072 PAH107 PAH1068 PAH106 PAH1064 PAH1062 PAH106 PAH1058 PAH1056 PAH1054 PAH1052 PAH105 PAH1048 PAH1046 PAH104 PAH1042 PAH104 PAH1038 PAH1036 PAH1034 PAH1032 PAH103 PAH1028 PAH1026 PAH1024 PAH102 PAH102 PAH10 8 PAH10 6 PAH10 4 PAH102 PAH10 PAH108 PAH106 PAH104 PAH102 PAH1091 PAH201 PAH202 COC7 COC10 PAH203 PAH204 PAH205 PAH206 PAC701 PAC1001 PAC702 PAC1002 PAH207 PAH208 PAH209 PAH2010 PAR1301 COR15 PAR1501 PAR1502 PAH2011 PAH2012 PAH2013 PAH2014 PAU101 PAU102 PAU108 PAU107 PAU103 PAU106 PAU104 PAU105 PAH2015 PAH2016 PAH2017 PAH2018 PAH2019 PAH2020 PAH2021 PAH2022 COP2 PAP202 PAP204 PAP206 PAP208 PAP2010 PAP2012 PAP2014 PAP2016 PAR1101 PAR1102 PAR701 PAR702 PAR102 PAR301 PAR302 COR1 COR3 COC4 COR9 COR5 COR11 COR7 PAH2027 PAH2028 PAH2029 PAH2030 COU3 PAU309 PAU301 PAU301 PAU3012 PAU3013PAU3014PAU3015 PAU3016 PAC902PAC901 PAH2031 PAH2032 PAH2033 PAH2034 PAH2035 PAH2036 COC9 PAH2037 PAH2038 PAH2039 PAH2040 PAH2041 PAH2042 PAH2043 PAH2044 PAH2045 PAH2046 PAH2047 PAH2048 PAH2049 PAH2050 PAH2051 PAH2052 COU2 PAU20P1A2U201 PAU201 PAU2P0A9U208PAU207PAU206PAU205PAU204PAU2P0A3U202PAU201 PAC302 PAH2053 PAH2054 PAH2055 PAH2056 PAH2057 PAH2058 PAP2017 PAP2019 PAP2021 PAP2023 PAR101 PAR902 PAR502 PAC402 PAC401 PAU308 PAU307PAU306PAU305 PAU304PAU30 PAU302 PAU301 PAH2023 PAH2024 PAH2025 PAH2026 PAP201 PAP203 PAP205 PAP207 PAP209 PAP2011 PAP2013 PAP2015 PAR901 PAR501 COR13 PAR1302 COU1 PAP2018 PAP2020 PAP2022 PAP2024 PAC301 COC3 PAH2059 PAH2060 PAH2061 PAH2062 PAU20P1A3U2014PAU2015PAU20P1A6U2017PAU2018PAU2019PAU2020PAU20 1PAU20P2AU2023PAU20 4 PAH2063 PAH2064 PAH2065 PAH2066 PAC602 PAC601 PAH2067 PAH2068 PAH2069 PAH2070 COC6 PAH2071 PAH2072 PAH2073 PAH2074 PAH2075 PAH2076 PAH2077 PAH2078 PAH2079 PAH2080 PAH2081 PAH2082 PAH2083 PAH2084 PAH2085 PAH2086 COC8 PAC801 PAC802 PAH2087 PAH2088 PAP603 PAP403 COP4 COP6 PAP803 PAP703 PAP802 PAP702 PAP801 PAP701 PAS101 PAS102 COS1 PAH3089 PAH3087 PAH3085 PAH3083 PAH3081 PAH3079 PAH307 PAH3075 PAH3073 PAH3071 PAH3069 PAH3067 PAH3065 PAH306 PAH3061 PAH3059 PAH3057 PAH305 PAH3053 PAH3051 PAH3049 PAH3047 PAH3045 PAH3043 PAH3041 PAH30 9 PAH307 PAH30 5 PAH30 PAH30 1 PAH3029 PAH3027 PAH3025 PAH3023 PAH3021 PAH3019 PAH3017 PAH3015 PAH3013 PAH301 PAH309 PAH307 PAH305 PAH30 PAH301 PAH2092 PAH3092 PAP602 PAP402 PAP601 PAP401 COP8 COP7 COH3 PAH2089 PAH2090 PAR1702 PAR1701 COR17 PAH309 PAH308 PAH3086 PAH3084 PAH3082 PAH308 PAH3078 PAH3076 PAH3074 PAH3072 PAH307 PAH3068 PAH306 PAH3064 PAH3062 PAH306 PAH3058 PAH3056 PAH3054 PAH3052 PAH305 PAH3048 PAH3046 PAH304 PAH3042 PAH304 PAH308 PAH30 6 PAH304 PAH30 2 PAH30 PAH3028 PAH3026 PAH3024 PAH302 PAH302 PAH3018 PAH3016 PAH3014 PAH3012 PAH301 PAH308 PAH306 PAH304 PAH302 PAH3091 PAH400 PAC502 PAC501 PAH401 PAH402 PAH403 PAH404 PAH405 PAH406 COP9 COH4 PAH4012 PAH4011 PAH4010 PAH409 PAH408 PAH407 PAP906 PAP905 PAP904 PAP903 PAP902 PAP901 COP10 PAC102 PAC101 COC1 COP1 COC5 PAP1002 PAP1004 PAP1006 PAP1008 PAP10010 PAP1001 PAP1003 PAP1005 PAP1007 PAP1009 PAP302 PAP301 PAC202 PAC201 COC2 COP3 COR19 COD1 PAR1902 PAR1901 PAD102 PAD101 PAR1802 PAR1801 PAD202 PAD201 COP5 COR18 COD2 PAP501 PAP502 PAP503 COR23 PAR2302 PAR2202 COR22 PAR2301 PAR2201 PAD502 COD6 PAD602 PAD601 PAD501 COD5 PAP1031 PAP1029 PAP1027 PAP1025 PAP1023 PAP1021 PAP1019 PAP1017 PAP1015 PAP1013 PAP1011 PAP109 PAP107 PAP105 PAP103 PAP101 PAP1032 PAP1030 PAP1028 PAP1026 PAP1024 PAP1022 PAP1020 PAP1018 PAP1016 PAP1014 PAP1012 PAP1010 PAP108 PAP106 PAP104 PAP102 PAR2102 PAR2002 PAR2101 PAR2001 COR20 PAD402 PAD302 PAD401 PAD301 COD3 COR21 COD4 COR12 COR8 COR10 COR6 PAR1602 PAR1601 COR16 COR14 COH1 COH2 PAH1092 PAH2091 PAR1202 PAR1201 PAR1402 PAR1401 PAR802 PAR801 PAR1002 PAR1001 PAR402 PAR401 PAR602 PAR601 COR4 PAR202 COR2 PAR201 PAH1089 PAH1087 PAH1085 PAH1083 PAH1081 PAH1079 PAH107 PAH1075 PAH1073 PAH107 PAH1069 PAH1067 PAH1065 PAH1063 PAH1061 PAH1059 PAH1057 PAH105 PAH1053 PAH1051 PAH1049 PAH1047 PAH1045 PAH1043 PAH104 PAH1039 PAH1037 PAH1035 PAH103 PAH1031 PAH1029 PAH1027 PAH1025 PAH1023 PAH1021 PAH10 9 PAH10 7 PAH10 5 PAH10 3 PAH10 PAH109 PAH107 PAH105 PAH103 PAH10 PAH109 PAH108 PAH1086 PAH1084 PAH1082 PAH108 PAH1078 PAH1076 PAH1074 PAH1072 PAH107 PAH1068 PAH106 PAH1064 PAH1062 PAH106 PAH1058 PAH1056 PAH1054 PAH1052 PAH105 PAH1048 PAH1046 PAH104 PAH1042 PAH104 PAH1038 PAH1036 PAH1034 PAH1032 PAH103 PAH1028 PAH1026 PAH1024 PAH102 PAH102 PAH10 8 PAH10 6 PAH10 4 PAH102 PAH10 PAH108 PAH106 PAH104 PAH102 PAH1091 PAH201 PAH202 COC7 COC10 PAH203 PAH204 PAH205 PAH206 PAC701 PAC1001 PAC702 PAC1002 PAH207 PAH208 PAH209 PAH2010 PAR1301 COR15 PAR1501 PAR1502 PAH2011 PAH2012 PAH2013 PAH2014 PAU101 PAU102 PAU108 PAU107 PAU103 PAU106 PAU104 PAU105 PAH2015 PAH2016 PAH2017 PAH2018 PAH2019 PAH2020 PAH2021 PAH2022 COP2 PAP202 PAP204 PAP206 PAP208 PAP2010 PAP2012 PAP2014 PAP2016 PAR1101 PAR1102 PAR701 PAR702 PAR102 PAR301 PAR302 COR1 COR3 COC4 COR9 COR5 COR11 COR7 PAH2027 PAH2028 PAH2029 PAH2030 COU3 PAU309 PAU301 PAU301 PAU3012 PAU3013PAU3014PAU3015 PAU3016 PAC902PAC901 PAH2031 PAH2032 PAH2033 PAH2034 PAH2035 PAH2036 COC9 PAH2037 PAH2038 PAH2039 PAH2040 PAH2041 PAH2042 PAH2043 PAH2044 PAH2045 PAH2046 PAH2047 PAH2048 PAH2049 PAH2050 PAH2051 PAH2052 COU2 PAU20P1A2U201 PAU201 PAU2P0A9U208PAU207PAU206PAU205PAU204PAU2P0A3U202PAU201 PAC302 PAH2053 PAH2054 PAH2055 PAH2056 PAH2057 PAH2058 PAP2017 PAP2019 PAP2021 PAP2023 PAR101 PAR902 PAR502 PAC402 PAC401 PAU308 PAU307PAU306PAU305 PAU304PAU30 PAU302 PAU301 PAH2023 PAH2024 PAH2025 PAH2026 PAP201 PAP203 PAP205 PAP207 PAP209 PAP2011 PAP2013 PAP2015 PAR901 PAR501 COR13 PAR1302 COU1 PAP2018 PAP2020 PAP2022 PAP2024 PAC301 COC3 PAH2059 PAH2060 PAH2061 PAH2062 PAU20P1A3U2014PAU2015PAU20P1A6U2017PAU2018PAU2019PAU2020PAU20 1PAU20P2AU2023PAU20 4 PAH2063 PAH2064 PAH2065 PAH2066 PAC602 PAC601 PAH2067 PAH2068 PAH2069 PAH2070 COC6 PAH2071 PAH2072 PAH2073 PAH2074 PAH2075 PAH2076 PAH2077 PAH2078 PAH2079 PAH2080 PAH2081 PAH2082 PAH2083 PAH2084 PAH2085 PAH2086 COC8 PAC801 PAC802 PAH2087 PAH2088 PAP603 PAP403 COP4 COP6 PAP803 PAP703 PAP802 PAP702 PAP801 PAP701 PAS101 PAS102 COS1 PAH3089 PAH3087 PAH3085 PAH3083 PAH3081 PAH3079 PAH307 PAH3075 PAH3073 PAH3071 PAH3069 PAH3067 PAH3065 PAH306 PAH3061 PAH3059 PAH3057 PAH305 PAH3053 PAH3051 PAH3049 PAH3047 PAH3045 PAH3043 PAH3041 PAH30 9 PAH307 PAH30 5 PAH30 PAH30 1 PAH3029 PAH3027 PAH3025 PAH3023 PAH3021 PAH3019 PAH3017 PAH3015 PAH3013 PAH301 PAH309 PAH307 PAH305 PAH30 PAH301 PAH2092 PAH3092 PAP602 PAP402 PAP601 PAP401 COP8 COP7 COH3 PAH2089 PAH2090 PAR1702 PAR1701 COR17 PAH309 PAH308 PAH3086 PAH3084 PAH3082 PAH308 PAH3078 PAH3076 PAH3074 PAH3072 PAH307 PAH3068 PAH306 PAH3064 PAH3062 PAH306 PAH3058 PAH3056 PAH3054 PAH3052 PAH305 PAH3048 PAH3046 PAH304 PAH3042 PAH304 PAH308 PAH30 6 PAH304 PAH30 2 PAH30 PAH3028 PAH3026 PAH3024 PAH302 PAH302 PAH3018 PAH3016 PAH3014 PAH3012 PAH301 PAH308 PAH306 PAH304 PAH302 PAH3091 PAH400 PAC502 PAC501 PAH401 PAH402 PAH403 PAH404 PAH405 PAH406 COP9 COH4 PAH4012 PAH4011 PAH4010 PAH409 PAH408 PAH407 PAP906 PAP905 PAP904 PAP903 PAP902 PAP901 COP10 COP1 COC5 PAP1002 PAP1004 PAP1006 PAP1008 PAP10010 PAP1001 PAP1003 PAP1005 PAP1007 PAP1009 PAP302 PAP301 COP3 COR19 COD1 PAR1902 PAR1901 PAD102 PAD101 PAR1802 PAR1801 PAD202 PAD201 COP5 COR18 COD2 PAP501 PAP502 PAP503 COR23 PAR2302 PAR2202 COR22 PAR2301 PAR2201 PAD502 COD6 PAD602 PAD601 PAD501 COD5 PAP1031 PAP1029 PAP1027 PAP1025 PAP1023 PAP1021 PAP1019 PAP1017 PAP1015 PAP1013 PAP1011 PAP109 PAP107 PAP105 PAP103 PAP101 PAP1032 PAP1030 PAP1028 PAP1026 PAP1024 PAP1022 PAP1020 PAP1018 PAP1016 PAP1014 PAP1012 PAP1010 PAP108 PAP106 PAP104 PAP102 PAR2102 PAR2002 PAR2101 PAR2001 COR20 PAD402 PAD302 PAD401 PAD301 COD3 COR21 COD4 COR12 COR8 COR10 COR6 PAR1602 PAR1601 COR16 COR14 COH1 COH2 PAH1092 PAH2091 PAR1202 PAR1201 PAR1402 PAR1401 PAR802 PAR801 PAR1002 PAR1001 PAR402 PAR401 PAR602 PAR601 COR4 PAR202 COR2 PAR201 PAH1089 PAH1087 PAH1085 PAH1083 PAH1081 PAH1079 PAH107 PAH1075 PAH1073 PAH107 PAH1069 PAH1067 PAH1065 PAH1063 PAH1061 PAH1059 PAH1057 PAH105 PAH1053 PAH1051 PAH1049 PAH1047 PAH1045 PAH1043 PAH104 PAH1039 PAH1037 PAH1035 PAH103 PAH1031 PAH1029 PAH1027 PAH1025 PAH1023 PAH1021 PAH10 9 PAH10 7 PAH10 5 PAH10 3 PAH10 PAH109 PAH107 PAH105 PAH103 PAH10 PAH109 PAH108 PAH1086 PAH1084 PAH1082 PAH108 PAH1078 PAH1076 PAH1074 PAH1072 PAH107 PAH1068 PAH106 PAH1064 PAH1062 PAH106 PAH1058 PAH1056 PAH1054 PAH1052 PAH105 PAH1048 PAH1046 PAH104 PAH1042 PAH104 PAH1038 PAH1036 PAH1034 PAH1032 PAH103 PAH1028 PAH1026 PAH1024 PAH102 PAH102 PAH10 8 PAH10 6 PAH10 4 PAH102 PAH10 PAH108 PAH106 PAH104 PAH102 PAH1091 PAH201 PAH202 COC7 COC10 PAH203 PAH204 PAH205 PAH206 PAC701 PAC1001 PAC702 PAC1002 PAH207 PAH208 PAH209 PAH2010 PAR1301 COR15 PAR1501 PAR1502 PAH2011 PAH2012 PAH2013 PAH2014 PAU101 PAU102 PAU108 PAU107 PAU103 PAU106 PAU104 PAU105 PAH2015 PAH2016 PAH2017 PAH2018 PAH2019 PAH2020 PAH2021 PAH2022 COP2 PAP202 PAP204 PAP206 PAP208 PAP2010 PAP2012 PAP2014 PAP2016 PAR1101 PAR1102 PAR701 PAR702 PAR102 PAR301 PAR302 COR1 COR3 COC4 COR9 COR5 COR11 COR7 PAH2027 PAH2028 PAH2029 PAH2030 COU3 PAU309 PAU301 PAU301 PAU3012 PAU3013PAU3014PAU3015 PAU3016 PAC902PAC901 PAH2031 PAH2032 PAH2033 PAH2034 PAH2035 PAH2036 COC9 PAH2037 PAH2038 PAH2039 PAH2040 PAH2041 PAH2042 PAH2043 PAH2044 PAH2045 PAH2046 PAH2047 PAH2048 PAH2049 PAH2050 PAH2051 PAH2052 COU2 PAU20P1A2U201 PAU201 PAU2P0A9U208PAU207PAU206PAU205PAU204PAU2P0A3U202PAU201 PAC302 PAH2053 PAH2054 PAH2055 PAH2056 PAH2057 PAH2058 PAP2017 PAP2019 PAP2021 PAP2023 PAR101 PAR902 PAR502 PAC402 PAC401 PAU308 PAU307PAU306PAU305 PAU304PAU30 PAU302 PAU301 PAH2023 PAH2024 PAH2025 PAH2026 PAP201 PAP203 PAP205 PAP207 PAP209 PAP2011 PAP2013 PAP2015 PAR901 PAR501 COR13 PAR1302 COU1 PAP2018 PAP2020 PAP2022 PAP2024 PAC301 COC3 PAH2059 PAH2060 PAH2061 PAH2062 PAU20P1A3U2014PAU2015PAU20P1A6U2017PAU2018PAU2019PAU2020PAU20 1PAU20P2AU2023PAU20 4 PAH2063 PAH2064 PAH2065 PAH2066 PAC602 PAC601 PAH2067 PAH2068 PAH2069 PAH2070 COC6 PAH2071 PAH2072 PAH2073 PAH2074 PAH2075 PAH2076 PAH2077 PAH2078 PAH2079 PAH2080 PAH2081 PAH2082 PAH2083 PAH2084 PAH2085 PAH2086 COC8 PAC801 PAC802 PAH2087 PAH2088 PAP603 PAP403 COP4 COP6 PAP803 PAP703 PAP802 PAP702 PAP801 PAP701 PAS101 PAS102 COS1 PAH3089 PAH3087 PAH3085 PAH3083 PAH3081 PAH3079 PAH307 PAH3075 PAH3073 PAH3071 PAH3069 PAH3067 PAH3065 PAH306 PAH3061 PAH3059 PAH3057 PAH305 PAH3053 PAH3051 PAH3049 PAH3047 PAH3045 PAH3043 PAH3041 PAH30 9 PAH307 PAH30 5 PAH30 PAH30 1 PAH3029 PAH3027 PAH3025 PAH3023 PAH3021 PAH3019 PAH3017 PAH3015 PAH3013 PAH301 PAH309 PAH307 PAH305 PAH30 PAH301 PAH2092 PAH3092 PAP602 PAP402 PAP601 PAP401 COP8 COP7 COH3 PAH2089 PAH2090 PAR1702 PAR1701 COR17 PAH309 PAH308 PAH3086 PAH3084 PAH3082 PAH308 PAH3078 PAH3076 PAH3074 PAH3072 PAH307 PAH3068 PAH306 PAH3064 PAH3062 PAH306 PAH3058 PAH3056 PAH3054 PAH3052 PAH305 PAH3048 PAH3046 PAH304 PAH3042 PAH304 PAH308 PAH30 6 PAH304 PAH30 2 PAH30 PAH3028 PAH3026 PAH3024 PAH302 PAH302 PAH3018 PAH3016 PAH3014 PAH3012 PAH301 PAH308 PAH306 PAH304 PAH302 PAH3091 PAH400 PAC502 PAC501 PAH401 PAH402 PAH403 PAH404 PAH405 PAH406 COP9 COH4 PAH4012 PAH4011 PAH4010 PAH409 PAH408 PAH407 PAP906 PAP905 PAP904 PAP903 PAP902 PAP901 PAC102 PAC101 COC1 PAC202 PAC201 COC2 ANHANG C. SCHEMA UND PCB DER EXPANSION-CARD 202 Anhang D Schema und PCB des RF-Switchs 203 ANHANG D. SCHEMA UND PCB DES RF-SWITCHS 204 1 2 3 4 5 S0 7 COR1 R1 COR2 R2 PIR201 PIPIR101 L102 500 50 Ohm impedance driven PIR202 PIL202 500 COL2 L2 COP2 P2 and optimized stub lines RF Input 1 SMP GND COC2 C2 PIP201 PIC201 PIP20 PIPID201 L201 PIC202 470pF PIL302 PID203 PID202 BAV70 PIL301 COL4PID101 L4 470nH COD1 D1 BAV70 0603LS471XJL COP4 P4 COR3 R3 PIPIR301 L502 500 470nH PID402 BAV70 PID303 PIL802 COL7 L7 470nH COL8PID301 L8 470nH COD3 D3 BAV70 COD4 D4 GND S2 PIL702 PID403 PIL601 470pF PIL701 PIL801 GND GND PIL501 COR5 R5 PIPIR501 L902 500 RF Input 3 SMP COL10 L10 PIP601 PIC1001 PIC1002 PID601 470pF PIP60 PID602 BAV70 PID503 PIL1202 COL11 L11 470nH COL12PID501 L12 470nH COD5 D5 BAV70 D6 COD6 GND S3 PIL1 02 PID603 PIL10 1 PIL1 01 PIL1201 GND GND PIL901 COR7 R7 500 COL13 L13 470nH COL14 L14 COU1B U1B 74AC05PIU107 PIU1014 3 PIU103 GND P13 COP13 GND GND VCC GND GND GND PIP1301 PIP1303 PIP1305 PIP1307 PIP1309 PIP13011 D0 D1 1 2 PIP1302 D2 3 4 PIP1304 5 6 PIP1306 7 8 PIP1308 VCC 9 10 PIP13010 VCC 11 12 PIP13012 VCC PIU1013 U2 COU2 1 PIU201 A0 2 PIU202 A1 3 PIU203 A2 GND GND VCC Header 6X2 GND 4 E1 5 PIU205 E2 6 PIU206 E3 PIU204 8 PIU208 GND VCC 16 PIU2016 U3A COU3A VCC PIU301 COU3C U3C 11 D COP18 P18 74AC05 10 PIU3010 PIP1901 U3F COU3F GND 74AC05 13 PIU3013 GND VCC PIR902 PIL1702 GND S1 PIT104 4 PIP1801 8 PIU308 GND 3 1 L17 COL17 470nH COT1 T1 VAM-6 COC17 C17 GND PIC1802 PIC1801 PIC2 02 PIC2 01 8.2pF COC22 C22 47pF GND C GND COC19 C19 COC20 C20 PIC1901 PIC1902 PIC2001 PIC2002 2.2pF PIC2302 PIC2301 L19 COL19 127nH 2.2pF PIL1802 L18 COL18 127nH C23 COC23 1.5-10pF PIL1801 GND GND GND PIC2102 C21 COC21 PIC2101 8.2pF PIC2402 PIC2401 COC24 C24 47pF COP12 P12 PIP1201 PIP120 RF Out SMP GND GND S7 COP19 P19 D 12 PIU3012 74AC05 DBS: Antenna Switch & Preprocessing A3_L Author: saf5 Date: 11.01.2011 Time: 13:42:01 File: Antenna_switch_preProc.SchDoc 3 COC16 C16 100nF S5 Size: 2 PIL1902 PIC1602 PIC1601 PIL1901 GND Title: 1 COC15 C15 10nF COC18 C18 PIL1701 PIT102 PIC1502 PIC1501 COC14 C14 470pF GND PIT101 PIC1701 PIC1702 470pF S3 PIC1402 PIC1401 S6 P17 COP17 U3D COU3D PIU309 U3E COU3E PIU3011 P16 COP16 PIP1701 PIU306 74AC05 9 GND PIP1601 RF Input 5 SMP PIP70 470pF R9 COR9 S4 COP15 P15 4 PIU304 74AC05 6 5 PIU305 74AC138DG PIP1501 COP7 P7 C11 COC11 COC13 C13 470pF PIT103 COP14 P14 PIU302 U3B COU3B 74AC05PIU307 3 PIU303 PIU3014 PIC1302 PIR901 S2 PIP1401 12 PIU1012 74AC05 2 1 15 Y0 PIU2015 14 Y1 PIU2014 13 Y2 PIU2013 12 Y3 PIU2012 11 Y4 PIU2011 10 Y5 PIU2010 9 Y6 PIU209 7 Y7 PIU207 PIP1 01 P11 COP11 COU1F U1F 74AC05 13 PIL1601 GND PIL1301 PID702 PIC1101 PIC1102 PIP701 150 PIP10 1 8 PIU108 74AC05 10 PIU1010 11 PIL1501 GND S0 COP9 P9 COP10 P10 PIU1011 L16 COL16PID701 470nH D7 COD7 BAV70 PIC1301 PIP901 PIU106 U1D COU1D 74AC05 9 PIU109 U1E COU1E BAV70 4 PID703 PIL1602 L15 COL15 470nH COD8 D8 PIU104 6 PIU105 C GND 470pF PID802 74AC05 COU1C U1C 5 PIP80 PIL1502 PID803 PIL1401 PIP801 PIC1201 PIC1202 PID801 2 GND RF Input 4 SMP 2 PIU102 B S4 PIR702 PIL1302 PIL1402 470nH 1 PIU101 PIP50 GND PIR701 COC12 C12 RF Input 6 SMP PIC902 PIP501 470pF PIR802 500 P8 COP8 COU1A U1A COP5 P5 COC9 C9 PID502 PIC901 COR8 R8 PIR801 S5 PIR502 COL9 L9 10mH 470nH B PIP30 GND PIL10 2 COC10 C10 RF Input 7 SMP PIC702 PIP301 470pF PIR602 500 COP6 P6 COP3 P3 COC7 C7 PID302 PIC701 R6 COR6 PIR601 S6 PIR302 COL5 L5 COL6 L6 COC8 C8 A GND PIL602 PIP401 PIC801 PIC802 PID401 PIP40 PIP10 GND PIR402 500 RF Input 8 SMP PIC102 PIP101 470pF 470nH RF Input 2 SMP COP1 P1 COC1 C1 PIL101 PID102 PIC101 COR4 R4 PIR401 S7 PIR102 PIL401 GND S1 PID103 PIL402 COL3 L3 470nH COD2 D2 GND 8 COL1 L1 470nH 470nH VCC COC5 PIC601 COC6 PIC302 COC3 C3 PIC402 COC4 C4 PIC502 C5 C6 PIC301 100nFPIC401 100nFPIC501 100nFPIC602 100uF A 6 4 5 6 Revision: 0.2 Sheet 2 7 of 2 BFH-TI, Burgdorf Jlcowg 1 CH-3400 Burgdorf Switzerland 8 COP13 COP12 PAP13011 PAP1309 PAP1307 PAP1305 PAP1303 PAP1301 PAP120 PAP1201 COC21 PAC2402 PAC2401 PAP13012 PAP13010 PAP1308 PAP1306 PAP1304 PAP1302 COC24 PAC602 PAC601 COC6 PAC2101 PAL1802 PAC2102 PAC2002 PAC2001 PAL1801 COL18 COC20 PAC2302 PAC2301 COC23 PAC1902 PAC1901 COL19 PAL1901 PAL1902 COP2 PAP1901 COP19 COC18 COP9 PAP901 COR2 PAC201 PAR201 PAR202 PAL202 PAL201 PAC202 COC17 PAC1701 PAC801 PAC802 PAD401 PAP400 PAL601 PAL602 PAR402 PAR401 PAD402 COC22 COP18 PAP1801 COL17 COC16 COR1PAR102 COP1 PAC1402 PAC1602 PAC1502 COR9 COC15 COL1PAR101 PAL102 PAC1401 PAC1601 PAC1501 PAT103 PAT104 COC14 COD1 PAL101 COC1 PAC1301 PAD102 PAC101 PAC102 PAP101 PAC1302 PAL401 PAL402PAD103 PAL1701 PAL1702 PAR901 PAR902 COC2 PAT102 PAT101 COT1 PAP100 COD2 PAD202 PAD201 COL3 PAL301 PAL302PAD203 COC8 COD4 PAP401 PAC1801 PAC1802 PAC1702 PAC2202 PAC2201 PAP200 PAP201 COL2 COP4 COC19 COC13 COL4 PAD101 PAD403 COR4 PAL702 PAL701 COL6 COL8 COL7 PAP1001 COP10 COP6 PAL802 PAD303 PAL801 PAD301 PAD302 COD3 COR3 COC7 PAC701 PAL501 PAL502 PAR301 PAR302 COP3 PAC702 COL5 PAP1701 COP17 PAP301 PAP30 PAP600 PAP601 COP11 PAP1101 COL10 PAC1001 PAR601 PAR602 PAL1002 PAL1001 PAC1002 COC10 COL12 COR6 COD6 PAD602 PAD601 PAL1101 PAD603 COP8 PAL1102 PAL1201 PAL1202 COL11 COC12 PAP801 PAC1201 PAC1202 PAP800 COR8 PAD801 PAL1502 PAL1501 PAD803 PAD802 PAL1401 PAL1402 COL14 PAR802 PAR801 COD8 PAP1401 COP14 PAD503 COL16 COP7 PAL1601 PAL1602 COL15 PAP701 PAP700 COC11 PAD701 PAC1102 PAC1101 PAD702 COD5 PAD501 PAD502 COC9 PAC901 PAL901 PAL902 PAR501 PAR502 COP5 PAC902 COL9 COR5 PAP1601 COP16 COD7 PAL1301 PAL1302 COL13 PAD703 PAR701 COR7 PAR702 PAP1501 COP15 PAP501 PAP500 COU2 PAC401 COC4 PAC402 PAU107 PAU106 PAU105 PAU104 PAU103 PAU108 PAU109 PAU1010 PAU1011 PAU1012 PAU102 PAU1013 PAU101 PAU1014 PAU2016 PAU201 PAU2015 PAU2014 PAU2013 PAU2012 PAU2011 PAU2010 PAU209 PAU202 PAU203 PAU204 PAU205 PAU206 PAU207 PAU208 PAC502 PAC501 COU1COC5 PAC302 COC3 PAC301 PAU3014 PAU3013 PAU3012 PAU3011 PAU3010 PAU309 PAU308 COU3 PAU301 PAU302 PAU303 PAU304 PAU305 PAU306 PAU307 COP13 COP12 PAP13011 PAP1309 PAP1307 PAP1305 PAP1303 PAP1301 PAP120 PAP1201 COC21 PAP13012 PAP13010 PAP1308 PAP1306 PAP1304 PAP1302 COC24 PAC602 PAC601 COC6 PAC2402 PAC2401 PAC2101 PAL1802 PAC2102 PAC2002 PAC2001 COC20 PAL1801 COL18 PAC2302 PAC2301 COC23 PAC1902 PAC1901 COL19 PAL1901 PAU107 PAU108 PAU106 PAU105 PAU109 PAU1010 PAU104 PAU1011 PAU103 PAU102 PAU1012 PAU1013 PAU101 PAU1014 COC3 PAC301 PAL1902 COC18 COP9 PAP200 PAP201 PAP901 COL2 COR2 PAC201 PAR201 PAR202 PAL202 PAL201 PAC202 COC17 PAC1801 PAC1802 COC22 PAC1702 PAC2202 PAC2201 COP18 PAC1701 PAP1801 COL17 COC2 PAU203 PAU204 PAU205 PAU2011 PAU2010 PAU209 PAU206 PAU207 PAU208 PAU3014 PAU301 PAU3013 PAU3012 PAU3011 PAU302 PAU303 PAU304 PAU3010 PAU309 PAU308 PAU305 PAU306 PAU307 COU3 PAD102 PAL401 PAL402PAD103 PAD101 PAC801 PAC802 PAD401 PAP400 PAL601 PAD402 PAL702 PAL802 PAL602 COL6 PAL701 COL8 PAL801 PAD301 PAD302 COC7 PAC701 PAD403 PAR401 PAU2014 PAU2013 PAU2012 COC16 COR1PAR102 PAT102 PAT101 COT1 COP1 COR9 PAC1402 PAC1602 PAC1502 COC15 COL1PAR101 PAL102 PAT103 PAT104 COC14PAC1401 PAC1601 PAC1501 COD1 PAL101 COC1PAP100 PAC1301 COC13 COL4 PAC101 PAC102 PAP101 PAC1302 PAP401 COL7 PAR402 PAU201 PAU202 PAL1701 PAL1702 PAR901 PAR902 COD2 PAD202 PAD201 COL3 PAL301 PAL302PAD203 COD4 COC8 COR4 COU2 PAU2016 PAU2015 PAC501 COU1COC5 PAC502 PAC302 COP2 PAP1901 COP19 COP4 COC19 COC4 PAC401 PAC402 PAP1001 COP10 PAD303 COD3 COR3 PAL501 PAL502 PAR301 PAR302 COP3 PAC702 COL5 COP6 PAP1701 COP17 PAP301 PAP300 PAP600 PAP601 COP11 PAP1101 COL10 PAC1001 PAR601 PAR602 PAL1002 PAL1001 PAC1002 COR6 COD6 PAD602 PAD601 PAD603 COP8 COC10 COL12 PAL1101 PAL1102 COL11 COP7 COC12 PAP801 PAP800 PAC1201 PAC1202 PAD801 PAL1502 PAL1501 PAD803 PAL1401 PAD802 PAL1402 COL14 PAR802 COR8 PAR801 COL15 COL16 PAL1601 PAL1602 COC11 PAL1201 PAL1202 PAD503 COD5 PAD501 PAD502 COC9 PAC901 PAL901 PAL902 PAR501 PAR502 PAD703 PAP701 PAC1102 PAC1101 COP5 PAC902 COL9 COR5 PAP1601 COP16 PAP700 PAL1301PAL1302 COL13COD7 PAD701 PAD702 COD8 PAP1401 COP14 PAR701 COR7 PAR702 PAP1501 COP15 PAP501 PAP500 COP13 COP12 PAP13011 PAP1309 PAP1307 PAP1305 PAP1303 PAP1301 PAP120 PAP1201 COC21 PAP13012 PAP13010 PAP1308 PAP1306 PAP1304 PAP1302 COC24 PAC602 PAC601 COC6 PAC2402 PAC2401 PAC2101 PAL1802 PAC2102 PAC2002 PAC2001 COC20 PAL1801 COL18 PAC2302 PAC2301 COC23 PAC1902 PAC1901 COL19 PAL1901 PAU107 PAU108 PAU106 PAU105 PAU109 PAU1010 PAU104 PAU1011 PAU103 PAU102 PAU1012 PAU1013 PAU101 PAU1014 COC3 PAC301 PAL1902 COC18 COP9 PAP200 PAP201 PAP901 COL2 COR2 PAC201 PAR201 PAR202 PAL202 PAL201 PAC202 COC17 PAC1801 PAC1802 COC22 PAC1702 PAC2202 PAC2201 COP18 PAC1701 PAP1801 COL17 COC2 PAU203 PAU204 PAU205 PAU2011 PAU2010 PAU209 PAU206 PAU207 PAU208 PAU3014 PAU301 PAU3013 PAU3012 PAU3011 PAU302 PAU303 PAU304 PAU3010 PAU309 PAU308 PAU305 PAU306 PAU307 COU3 PAD102 PAL401 PAL402PAD103 PAD101 PAC801 PAC802 PAD401 PAP400 PAL601 PAD402 PAL702 PAL802 PAL602 COL6 PAL701 COL8 PAL801 PAD301 PAD302 COC7 PAC701 PAD403 PAR401 PAU2014 PAU2013 PAU2012 COC16 COR1PAR102 PAT102 PAT101 COT1 COP1 COR9 PAC1402 PAC1602 PAC1502 COC15 COL1PAR101 PAL102 PAT103 PAT104 COC14PAC1401 PAC1601 PAC1501 COD1 PAL101 COC1PAP100 PAC1301 COC13 COL4 PAC101 PAC102 PAP101 PAC1302 PAP401 COL7 PAR402 PAU201 PAU202 PAL1701 PAL1702 PAR901 PAR902 COD2 PAD202 PAD201 COL3 PAL301 PAL302PAD203 COD4 COC8 COR4 COU2 PAU2016 PAU2015 PAC501 COU1COC5 PAC502 PAC302 COP2 PAP1901 COP19 COP4 COC19 COC4 PAC401 PAC402 PAP1001 COP10 PAD303 COD3 COR3 PAL501 PAL502 PAR301 PAR302 COP3 PAC702 COL5 COP6 PAP1701 COP17 PAP301 PAP300 PAP600 PAP601 COP11 PAP1101 COL10 PAC1001 PAR601 PAR602 PAL1002 PAL1001 PAC1002 COR6 COD6 PAD602 PAD601 PAD603 COP8 COC10 COL12 PAL1101 PAL1102 COL11 COP7 COC12 PAP801 PAP800 PAC1201 PAC1202 PAD801 PAL1502 PAL1501 PAD803 PAL1401 PAD802 PAL1402 COL14 PAR802 COR8 PAR801 COL15 COL16 PAL1601 PAL1602 COC11 PAL1201 PAL1202 PAD503 COD5 PAD501 PAD502 COC9 PAC901 PAL901 PAL902 PAR501 PAR502 PAD703 PAP701 PAC1102 PAC1101 COP5 PAC902 COL9 COR5 PAP1601 COP16 PAP700 PAL1301PAL1302 COL13COD7 PAD701 PAD702 COD8 PAP1401 COP14 PAR701 COR7 PAR702 PAP1501 COP15 PAP501 PAP500 COP13 COP12 PAP13011 PAP1309 PAP1307 PAP1305 PAP1303 PAP1301 PAP120 PAP1201 COC21 PAC2402 PAC2401 PAP13012 PAP13010 PAP1308 PAP1306 PAP1304 PAP1302 COC24 PAC602 PAC601 COC6 PAC2101 PAL1802 PAC2102 PAC2002 PAC2001 PAL1801 COL18 COC20 PAC2302 PAC2301 COC23 PAC1902 PAC1901 COL19 PAL1901 PAL1902 COP2 PAP1901 COP19 COC18 COP9 PAP901 COR2 PAC201 PAR201 PAR202 PAL202 PAL201 PAC202 COC17 PAC1701 PAC801 PAC802 PAD401 PAP400 PAL601 PAL602 PAR402 PAR401 PAD402 COC22 COP18 PAP1801 COL17 COC16 COR1PAR102 COP1 PAC1402 PAC1602 PAC1502 COR9 COC15 COL1PAR101 PAL102 PAC1401 PAC1601 PAC1501 PAT103 PAT104 COC14 COD1 PAL101 COC1 PAC1301 PAD102 PAC101 PAC102 PAP101 PAC1302 PAL401 PAL402PAD103 PAL1701 PAL1702 PAR901 PAR902 COC2 PAT102 PAT101 COT1 PAP100 COD2 PAD202 PAD201 COL3 PAL301 PAL302PAD203 COC8 COD4 PAP401 PAC1801 PAC1802 PAC1702 PAC2202 PAC2201 PAP200 PAP201 COL2 COP4 COC19 COC13 COL4 PAD101 PAD403 COR4 PAL702 PAL701 COL6 COL8 COL7 PAP1001 COP10 COP6 PAL802 PAD303 PAL801 PAD301 PAD302 COD3 COR3 COC7 PAC701 PAL501 PAL502 PAR301 PAR302 COP3 PAC702 COL5 PAP1701 COP17 PAP301 PAP30 PAP600 PAP601 COP11 PAP1101 COL10 PAC1001 PAR601 PAR602 PAL1002 PAL1001 PAC1002 COC10 COL12 COR6 COD6 PAD602 PAD601 PAL1101 PAD603 COP8 PAL1102 PAL1201 PAL1202 COL11 COC12 PAP801 PAC1201 PAC1202 PAP800 COR8 PAD801 PAL1502 PAL1501 PAD803 PAD802 PAL1401 PAL1402 COL14 PAR802 PAR801 COD8 PAP1401 COP14 PAD503 COL16 COP7 PAL1601 PAL1602 COL15 PAP701 PAP700 COC11 PAD701 PAC1102 PAC1101 PAD702 COD5 PAD501 PAD502 COC9 PAC901 PAL901 PAL902 PAR501 PAR502 COP5 PAC902 COL9 COR5 PAP1601 COP16 COD7 PAL1301 PAL1302 COL13 PAD703 PAR701 COR7 PAR702 PAP1501 COP15 PAP501 PAP500 COU2 PAC401 COC4 PAC402 PAU107 PAU106 PAU105 PAU104 PAU103 PAU108 PAU109 PAU1010 PAU1011 PAU1012 PAU102 PAU1013 PAU101 PAU1014 PAU2016 PAU201 PAU2015 PAU2014 PAU2013 PAU2012 PAU2011 PAU2010 PAU209 PAU202 PAU203 PAU204 PAU205 PAU206 PAU207 PAU208 PAC502 PAC501 COU1COC5 PAC302 COC3 PAC301 PAU3014 PAU3013 PAU3012 PAU3011 PAU3010 PAU309 PAU308 COU3 PAU301 PAU302 PAU303 PAU304 PAU305 PAU306 PAU307 ANHANG D. SCHEMA UND PCB DES RF-SWITCHS 212 Anhang E Schema und PCB des Navigation-Prints 213 ANHANG E. SCHEMA UND PCB DES NAVIGATION-PRINTS 214 1 2 3 4 5 6 7 8 VCC5 COL1 L1 PID102 PIL101 PID201 PIL102 1 PID101 COU1 U1 A GF1A COD2 D2 SMAJ24A PIC301 PIC302 COC3 C3 100uF PIC401 PIC402 3 PIU103 PIC702 PIC701 COC7 C7 COC4 C4 10uF IN 100nF OUT GND PIU10 2 PIU102 TS1117 PIC502 COC5 C5 PIC601 COC6 C6 PIC501 100nFPIC602 10uF A GND 2 PID20 COC1 PIC102 C1 PIC201 C2 COC2 PIC101 100nF PIC202 100uF VCC5 1 COD1 D1 +12 GND VCC3.3 GND COU2 U2 PIC1901 C19 COC19 PIC2 02 COC22 C22 PIC1902 10uF PIC2 01 100nF IN VCC3.3 OUT GND PIU201 1 3 PIU203 2 PIU202 TS1117 PIC20 2 COC20 C20 PIC2101 PIC20 1 100nFPIC2102 COC21 C21 10uF PID301 PID302 PID401 PID402 COD3 D3 PIR101 GND COC8 PIC902 C9 COC9 COC10 PIC1 02 C11 COC11 PIC1202 C12 COC12 PIC1302 C13 COC13 PIC1402 C14 COC14 PIC1502 C15 COC15 PIC1602 C16 COC16 PIC1702C17 COC17 PIC1802 C18 COC18 PIC802 C8 PIC10 2 C10 PIC801 100nFPIC901 100nF PIC10 1 100nFPIC1 01 100nFPIC1201 100nFPIC1301 100nF PIC1401100nF PIC1501 100nFPIC1601 100nFPIC1701100nF PIC1801100nF COD4 D4 GND PIR201 COR1 R1 240 PIR102 PIR202 GND COR2 R2 560 VCC3.3 PIR302 GND COR3 R3 10K PIR301 PIS10 COU3 U3 SS0 1 PIU301 SS1 B Do not assemble R3, R4. The HMC6343-eval includes pullup res. VCC3.3 U4 COU4 VCC5 8 PIU408 7 PIU407 6 PIU406 VCC3.3 5 PIU405 R4 COR4 10K 1 VCC_A PIU401 B1 A1 PIU402 B2 A2 En VSS VCC_B PIR402 PIR501 COP1 P1 COP2 P2 R5 COR5 10K PIP101 PIP201 PIR401 PIR502 2 4 PIU404 2 PIU302 SS1/GPIO1 3 PIU303 RESET 4 GND PIU304 MISO NLMISO PIU305 NLMOSI MOSI PIU306 3 PIU403 SS0/GPIO0 PIP501 PIP503 +12 PIP505 PIP507 GND PIP509 PIP5011 1 2 3 4 5 6 7 8 9 10 11 12 L4 COL4 PIP504 PIL401 PIL202 PIP506 PIL501 PIL502 PIP508 PIL601 PIL602 PIP5010 PIL701 PIU3013 MOSI A0 PIU3014 SDA A1 PIU308 SCL A3 6 PIL702 PIP5012 Header 6X2 P17 COP17 C GND GND VCC5 GND GND GND 1 2 PIP1702 PIP1703 3 4 PIP1704 PIP1705 5 6 PIP1706 PIP1707 7 8 PIP1708 PIP1709 9 10 PIP17010 PIP17011 11 12 PIP17012 PIP1701 COP6 P6 COP8 P8 COP9 P9 COP10 P10 COP11 P11 COP12 P12 +12 COP13 P13 COP15 P15 D0 D1 D2 PIP1501 VCC3.3 PIP1301 PIP1201 PIP1 01 PIP10 1 PIP801 PIP901 PIP601 PIP401 SS0 PIP301 SS0 SS1 SS2 SS3 MISO MOSI SPI_CLK U6 NC7SZ125 PIU605 COU6 PIU601 MOSI PIU602 PIU603 GND MISO PIU704 PIU705 PIU703 COU7 U7 NC7SZ125 PIU701 SPI_CLK SDA SCL n.c. n.c. n.c. GND VDD 14 PIU9014 13 PIU9013 12 PIU9012 11 PIU9011 10 PIU9010 9 PIU909 8 PIU908 P14 COP14 PIP1401 PIP1601 VCC3.3 GND U9 COU9 1 PIU901 n.c. 2 PIU902 n.c 3 PIU903 n.c. 4 PIU904 n.c. 5 PIU905 n.c. 6 PIU906 n.c. 7 PIU907 n.c. 14 15 PIU3015 16 PIU3016 NLSPI0CLK SPI_CLK PIS102 VCC3.3 GND B SS3 GND GND GND U8 NC7SZ125 PIU805 COU8 PIU803 PIU802 13 14 PIU5014 15 PIU5015 16 PIU5016 17 PIU5017 18 PIU5018 19 PIU5019 GND MOSI / CFG_Com0 MISO / CFG_Com1 / NC CFG_GPS0 / SCK / NC Reserved / NC SDA2 SCL2 20 21 PIU5021 22 PIU5022 23 PIU5023 24 PIU5024 TxD1 RxD1 V_BCKP VCC GND PIU5013 GND RF_IN GND VCC_RF Reserved VDD_USB USB_D+ COC23 C23 12 ?pF GND 11 PIC2301 PIC2302 10 PIU5010 GND 3.3K R6 COR6 9 PIU509 PIR601 PIR602 8 PIU508 7 PIU507 6 PIU5011 PIS201 PIU506 COP7 P7 COL3 ?mH L3 PIU5012 PIL301 PIC2402 COC24 C24 PIC2401 ?mH PIL302 PIP701 COC25 C25 ?mH PIC2502 PIP70 SMP PIC2501 GND VCC3.3 GND PIU5020 USB_DExtINT0 TimePulse SS_N/NC Reserved of the antenna's impedance S2 COS2 SW-PB 5 4 PIU504 3 PIU503 2 PIU502 1 PIU501 PIU505 PIS20 GND COP18 P18 L8 COL8 ?mH PIL801 PIC2602 PIC2601 is necessary C PIL802 PIP1801 C26 COC26 ?mH NEO-6Q PIU804 Do not assemble this parts until a impedance transf. P16 COP16 PIU702 PIU801 Header 6X2 COS1 S1 SW-PB Reset I2C U5 COU5 GND PIU604 VCC3.3 GND GND GND VCC5 VCC5 VCC5 13 SS2 SC18IS602B PIL402 L5 COL5 L6 COL6 L7 COL7 12 PIU3012 8 100nH PIP502 PIL201 11 PIU3011 Vss P3 COP3 GND SPICLK Vdd 7 COP4 P4 COL2 L2 SS2/GPIO2 10 PIU3010 SS3/GPIO3 PIU307 GND 9 PIU309 MISO 5 PCA9509 COP5 P5 INT COC27 C27 ?mH PIC2702 PIP180 SMP PIC2701 GND SS0 GND VCC3.3 SS1 GND VCC3.3 MOSI HMC6343 EVAL U11 NC7SZ125 PIU1 05 COU11 PIU1 03 PIU1101 PIU1102 COU10 U10 SS1 GND PIU1104 VCC3.3 GND MISO U12 COU12 NC7SZ125 PIU1205 PIU1203 PIU1201 PIU1204 GND PIP20 1 VCC3.3 SPI_CLK COU13 U13 PIU1305 PIU1302 NC7SZ125 PIU1304 GND MOSI / CFG_Com0 MISO / CFG_Com1 / NC CFG_GPS0 / SCK / NC Reserved / NC SDA2 SCL2 GND RF_IN GND VCC_RF Reserved VDD_USB USB_D+ 12 GND 11 10 PIU10010 GND 9 PIU1009 8 PIU1008 7 PIU1007 6 PIU1006 COC28 C28 ?pF PIU10012 PIU10011 SS0 NLS\S\0\ PIC2801 PIC2802 R7 COR7 PIR701 PIR702 PIS301 3.3K PIP1901 VCC3.3 GND 20 21 PIU10021 22 PIU10022 23 PIU10023 24 PIU10024 PIU10020 TxD1 RxD1 V_BCKP VCC GND USB_DExtINT0 TimePulse SS_N/NC Reserved 5 4 PIU1004 3 PIU1003 2 PIU1002 1 PIU1001 PIU1005 COS3 S3 SW-PB Reset GPS PIS302 SS1 NLS\S\1\ PID501 COD5 PID601 PID502 PID602 D5 PIR801 P20 COP20 PIU1202 PIU1301 D P19 COP19 13 14 PIU10014 15 PIU10015 16 PIU10016 17 PIU10017 18 PIU10018 19 PIU10019 PIU10013 R8 COR8 240 PIR901 COD6 D6 R9 COR9 240 SS2 NLS\S\2\ PID701 PID702 PIR10 1 COD7 D7 R10 COR10 240 SS3 NLS\S\3\ PID801 PID802 PIR1 01 PIR902 PIR10 2 PIR1 02 GND GND GND GND GND NEO-6Q D GND Title: Size: DBS: Supply + Sensors A3_L Author: saf5 Date: 11.01.2011 Time: 13:40:58 File: Antenna_sensors+supply.SchDoc 2 3 4 5 R11 COR11 240 PIR802 PIU130 1 COD8 D8 6 BFH-TI, Burgdorf Revision: 0.2 Sheet 1 7 of 2 Jlcowg 1 CH-3400 Burgdorf Switzerland 8 COP17 COP5 PAP5011 PAP509 PAP507 PAP505 PAP503 PAP501 COD2 COD1 PAP5012 PAP5010 PAP508 PAP506 PAP504 PAP502 PAD202 PAD101 PAD201 PAD102 PAL401 PAL201 COC8 PAL402 PAL202 COP15 COS1 PAR301 PAR302 COR4 PAS102 PAR402 PAR401 PAR502 PAR501 COL4 COR5 COC20 PAP901 PAC1901 COC7 PAC1902 COC19 PAC702 PAU201 PAC701 PAU309PAU301 PAU301 PAU3012PAU3013 PAU3014PAU3015 PAU3016 PAC1302 PAC1301 COC13 PAD301 COD3 PAD402 PAD302 COC4 COR2 PAR201 PAR101 COR1 PAR202 PAR102 COP13PAP1301 COC16 COC12PAC1201 PAC1202 PAU803 PAU802PAU801 PAU603 PAU602 PAU601 PAU705 PAU704 PAC1601 PAC1602 PAU1303 PAU1302PAU1301 PAU1 03 PAU1 02 PAU1101 PAU1205 PAU1204 PAU804 PAU805 PAU604 PAU605 PAU701 PAU702 PAU703 PAU1304 PAU1305 PAU1 04 PAU1105 PAU1201 PAU1202 PAU1203 COU13PAC1402 COU11PAC1502 COU12 COU8 PAC1002 COU6 PAC1102 COU7 PAC1101 COC11 COC14 PAC1401 PAC1501 COC10 PAC1001 COC15 COP16 PAP1601 COP20 COP19 PAP1401 COP14 COC18 COC17 PAC1701 PAC1702 COU5 COC5 COC2 COC21 COU3 PAP1001 COP10 PAP1101 COP11 PAP1201 COP12 PAC202 PAC2101 PAC2102 PAU308PAU307 PAU306PAU305PAU304 PAU30 PAU302 PAU301 COP9 PAC401 PAC402 PAD401 PAC201 PAC502 PAC501 COD4 PAU203 PAC601 PAC602 COC6 PAU102 PAU103 PAL102 PAC2202 PAC2201 COC22 COU2 PAP301 COP3 PAP401 COP4 COD7 PAR1002 PAR1001 PAD702 PAD701 PAP601 COP6 COR10 COD8 COR11 PAR1102 PAR1101 PAD802 PAD801 PAP801 COP8 PAU101 PAC301 COL1 PAL101 COD5 COR8 PAR802 PAR801 PAD502 PAD501 COD6 COR9 PAR902 PAR901 PAD602 PAD601 PAP17012 PAP17010 PAP1708 PAP1706 PAP1704 PAP1702 COU1 PAU202 PAC2002 PAC2001 PAC302 COL2 PAP1501COP2 PAU404 PAU403 PAU402 PAU401 COC9 PAP201 COU4 PAC102 PAC101 PAC901 PAP101 COP1 PAU405 PAU406 PAU407 PAU408 COC1 PAC902 COR3 PAS101 PAC801 PAC802 PAP17011 PAP1709 PAP1707 PAP1705 PAP1703 PAP1701 COC3 PAP2001 PAP1901 PAC1801 PAC1802 PAU5024 PAU5023 PAU502 PAU5021 PAU5020 PAU5019 PAU5018 PAU5017PAU5016PAU5015PAU5014PAU5013 PAU901 PAU9014 PAU902 PAU9013 COU9 PAU903 PAU501 PAU502 PAU503 PAU504 PAU505 PAU506 PAU507 PAU508PAU509PAU5010PAU501 PAU5012 COR6 PAR602 PAR601 PAC2301 COC23 COC24 PAC2401 PAC2402 PAC2302 PAL301 PAU10 24 PAU10 23 PAU10 2 PAU10 21 PAU10 20 PAU10 19 PAU10 18 COU10 PAU9012 PAU904 PAU9011 PAU905 PAU9010 PAU906 PAU909 PAU907 PAU908 PAU10 1 PAU10 2 PAU10 3 PAU10 4 PAU10 5 PAU10 6 PAU10 7 PAU10 8PAU10 9PAU10 10PAU10 1 PAU10 12 COR7PAR702 PAR701 PAC2801 COC28 COC26 PAC2601 PAC2602 PAC2802 PAL801 COL3 PAL302 PAC2502 PAC2501 COC25 COP7 PAU10 17PAU10 16PAU10 15PAU10 14 PAU10 13 COL8 PAL802 PAC2702 PAP701 COP18 PAP700 PAC2701 PAP1801 PAP1800 PAS202 PAS301 COS3 COS2 PAS201 PAS302 COC27 PAL701 PAL702 PAL601 PAL501 PAL602 PAL502 COL7 COL6 COL5 COP17 COP5 PAP5011 PAP509 PAP507 PAP505 PAP503 PAP501 COD2 COD1 PAP5012 PAP5010 PAP508 PAP506 PAP504 PAP502 PAD202 PAD101 PAL701 COP15 COS1 PAS101 PAL501 PAR301 PAR302 COL2 COC8 PAL702 PAL602 PAC801 PAL502PAC802 PAL402 PAL202 COL7 COL6 COL5 COL4 PAR402 PAR401 PAR502 PAR501 PAD102 PAD201 PAU101 PAC301 PAC502 PAC2202 PAC2201 COU2 COR8 PAR802 PAR801 PAD502 PAD501 PAU203 PAC1901 PAC702 PAC701 PAU201 COC7 PAC601 PAC602COC6 PAU102 PAU103 COL1 PAL101 PAL102 COD5 COC22 COD4 PAC501 COC5 PAC401 PAC402 PAD401 PAD301 COD3 PAD402 PAD302 PAC1902 COC4 COC19 PAC201 PAC202 COC2 COR2 PAR201 PAR101 COR1 PAR202 PAR102 PAC2101 PAC2102 PAU308 PAU307PAU306PAU305 PAU304 PAU30 PAU302PAU301 COC21 COU3 PAU309 PAU301 PAU301 PAU3012 PAU301 PAU3014PAU3015PAU3016 COC13 PAP17012 PAP17010 PAP1708 PAP1706 PAP1704 PAP1702 COU1 PAU202 PAC2002 PAC2001 COR5 COC20 PAP301 COP3 COD6 COR9 PAR902 PAR901 PAD602 PAD601 PAP401 COP4 COD7 COR10 PAR1002 PAR1001 PAD702 PAD701 PAP601 COP6 COD8 COR11 PAR1102 PAR1101 PAD802 PAD801 PAP801 COP8 PAP901 COP9 PAP1001 COP10 PAP1101 COP11 PAP1201COP12 PAC302 PAL401 PAL201 PAP1501 COP2 PAU404 PAU403 PAU402 PAU401 COC9 PAP201 COU4 PAC901 PAP101 COP1 PAU405 PAU406 PAU407 PAU408 PAC102COC1PAC101 PAC902 COR3 COR4 PAS102 PAL601 PAP17011 PAP1709 PAP1707 PAP1705 PAP1703 PAP1701 COC3 COP13PAP1301 COC16 COC12PAC1201 PAC1601 PAC1202 PAC1302 PAC1301 PAU803PAU802 PAU801 PAU603PAU602 PAU601 PAU705 PAU704 PAU804 PAU805 PAU604 PAU605 PAU701 PAU701PAU702 PAU702 PAU703 PAC1602 PAU1303 PAU1302 PAU1301 PAU1103PAU1 02 PAU1 01 PAU1205 PAU1204 PAU1304 PAU1305 PAU1104 PAU1 05 PAU1201 PAU1202 PAU1203 PAC1402 COU11PAC1502 COU12 COU13 COU8 PAC1002 COU6 PAC1102 COU7 PAC1101 COC11 COC14PAC1401 PAC1501 COC10 PAC1001 COC15 COP16 PAP1601 COP20 COP19 PAP1401COP14 COC18 COC17 PAC1701 PAC1702 PAP2001 PAP1901 PAC1801 PAC1802 COU5 PAU5024PAU5023 PAU502 PAU5021 PAU5020PAU5019 PAU5018 PAU5017PAU5016 PAU5015PAU5014 PAU5013 PAU901 PAU9014 PAU902 PAU9013 COU9 PAU903 PAU501PAU502 PAU503PAU504 PAU505PAU506 PAU507 COR6 PAU508PAU509 PAU5010PAU501 PAU5012 PAR602 PAR601 PAC2301 COC24 PAC2401 PAC2402 PAC2302 COC23 PAL301 PAU10 24 PAU10 23PAU10 2 PAU10 21PAU10 20PAU10 19 PAU10 18 COU10 PAU9012 PAU904 PAU905 PAU9011 PAU9010 PAU906 PAU909 PAU907 PAU908 PAU10 1 PAU10 2PAU10 3PAU1004PAU10 5PAU10 6 PAU10 7 PAU10 8PAU10 9 PAU10 10PAU10 1 PAU10 12 COR7PAR702 PAR701 PAC2801 COC28 COC26 PAC2601 PAC2602 PAC2802 PAL801 COL3 PAL302 PAC2502 PAC2501 COC25 COP7 PAU10 17PAU10 16 PAU10 15PAU10 14 PAU10 13 COL8 PAP701 COP18 PAP700 PAL802 PAC2702 PAC2701 PAP1801 PAP1800 PAS20 PAS301 COS3 COS2 PAS201 PAS302 COC27 COP17 COP5 PAP5011 PAP509 PAP507 PAP505 PAP503 PAP501 COD2 COD1 PAP5012 PAP5010 PAP508 PAP506 PAP504 PAP502 PAD202 PAD101 PAL701 COP15 COS1 PAS101 PAL501 PAR301 PAR302 COL2 COC8 PAL702 PAL602 PAC801 PAL502PAC802 PAL402 PAL202 COL7 COL6 COL5 COL4 PAR402 PAR401 PAR502 PAR501 PAD102 PAD201 PAU101 PAC301 PAC502 PAC2202 PAC2201 COU2 COR8 PAR802 PAR801 PAD502 PAD501 PAU203 PAC1901 PAC702 PAC701 PAU201 COC7 PAC601 PAC602COC6 PAU102 PAU103 COL1 PAL101 PAL102 COD5 COC22 COD4 PAC501 COC5 PAC401 PAC402 PAD401 PAD301 COD3 PAD402 PAD302 PAC1902 COC4 COC19 PAC201 PAC202 COC2 COR2 PAR201 PAR101 COR1 PAR202 PAR102 PAC2101 PAC2102 PAU308 PAU307PAU306PAU305 PAU304 PAU30 PAU302PAU301 COC21 COU3 PAU309 PAU301 PAU301 PAU3012 PAU301 PAU3014PAU3015PAU3016 COC13 PAP17012 PAP17010 PAP1708 PAP1706 PAP1704 PAP1702 COU1 PAU202 PAC2002 PAC2001 COR5 COC20 PAP301 COP3 COD6 COR9 PAR902 PAR901 PAD602 PAD601 PAP401 COP4 COD7 COR10 PAR1002 PAR1001 PAD702 PAD701 PAP601 COP6 COD8 COR11 PAR1102 PAR1101 PAD802 PAD801 PAP801 COP8 PAP901 COP9 PAP1001 COP10 PAP1101 COP11 PAP1201COP12 PAC302 PAL401 PAL201 PAP1501 COP2 PAU404 PAU403 PAU402 PAU401 COC9 PAP201 COU4 PAC901 PAP101 COP1 PAU405 PAU406 PAU407 PAU408 PAC102COC1PAC101 PAC902 COR3 COR4 PAS102 PAL601 PAP17011 PAP1709 PAP1707 PAP1705 PAP1703 PAP1701 COC3 COP13PAP1301 COC16 COC12PAC1201 PAC1601 PAC1202 PAC1302 PAC1301 PAU803PAU802 PAU801 PAU603PAU602 PAU601 PAU705 PAU704 PAU804 PAU805 PAU604 PAU605 PAU701 PAU701PAU702 PAU702 PAU703 PAC1602 PAU1303 PAU1302 PAU1301 PAU1103PAU1 02 PAU1 01 PAU1205 PAU1204 PAU1304 PAU1305 PAU1104 PAU1 05 PAU1201 PAU1202 PAU1203 PAC1402 COU11PAC1502 COU12 COU13 COU8 PAC1002 COU6 PAC1102 COU7 PAC1101 COC11 COC14PAC1401 PAC1501 COC10 PAC1001 COC15 COP16 PAP1601 COP20 COP19 PAP1401COP14 COC18 COC17 PAC1701 PAC1702 PAP2001 PAP1901 PAC1801 PAC1802 COU5 PAU5024PAU5023 PAU502 PAU5021 PAU5020PAU5019 PAU5018 PAU5017PAU5016 PAU5015PAU5014 PAU5013 PAU901 PAU9014 PAU902 PAU9013 COU9 PAU903 PAU501PAU502 PAU503PAU504 PAU505PAU506 PAU507 COR6 PAU508PAU509 PAU5010PAU501 PAU5012 PAR602 PAR601 PAC2301 COC24 PAC2401 PAC2402 PAC2302 COC23 PAL301 PAU10 24 PAU10 23PAU10 2 PAU10 21PAU10 20PAU10 19 PAU10 18 COU10 PAU9012 PAU904 PAU905 PAU9011 PAU9010 PAU906 PAU909 PAU907 PAU908 PAU10 1 PAU10 2PAU10 3PAU1004PAU10 5PAU10 6 PAU10 7 PAU10 8PAU10 9 PAU10 10PAU10 1 PAU10 12 COR7PAR702 PAR701 PAC2801 COC28 COC26 PAC2601 PAC2602 PAC2802 PAL801 COL3 PAL302 PAC2502 PAC2501 COC25 COP7 PAU10 17PAU10 16 PAU10 15PAU10 14 PAU10 13 COL8 PAP701 COP18 PAP700 PAL802 PAC2702 PAC2701 PAP1801 PAP1800 PAS20 PAS301 COS3 COS2 PAS201 PAS302 COC27 COP17 COP5 PAP5011 PAP509 PAP507 PAP505 PAP503 PAP501 COD2 COD1 PAP5012 PAP5010 PAP508 PAP506 PAP504 PAP502 PAD202 PAD101 PAD201 PAD102 PAL401 PAL201 COC8 PAL402 PAL202 COP15 COS1 PAR301 PAR302 COR4 PAS102 PAR402 PAR401 PAR502 PAR501 COL4 COR5 COC20 PAP901 PAC1901 COC7 PAC1902 COC19 PAC702 PAU201 PAC701 PAU309PAU301 PAU301 PAU3012PAU3013 PAU3014PAU3015 PAU3016 PAC1302 PAC1301 COC13 PAD301 COD3 PAD402 PAD302 COC4 COR2 PAR201 PAR101 COR1 PAR202 PAR102 COP13PAP1301 COC16 COC12PAC1201 PAC1202 PAU803 PAU802PAU801 PAU603 PAU602 PAU601 PAU705 PAU704 PAC1601 PAC1602 PAU1303 PAU1302PAU1301 PAU1 03 PAU1 02 PAU1101 PAU1205 PAU1204 PAU804 PAU805 PAU604 PAU605 PAU701 PAU702 PAU703 PAU1304 PAU1305 PAU1 04 PAU1105 PAU1201 PAU1202 PAU1203 COU13PAC1402 COU11PAC1502 COU12 COU8 PAC1002 COU6 PAC1102 COU7 PAC1101 COC11 COC14 PAC1401 PAC1501 COC10 PAC1001 COC15 COP16 PAP1601 COP20 COP19 PAP1401 COP14 COC18 COC17 PAC1701 PAC1702 COU5 COC5 COC2 COC21 COU3 PAP1001 COP10 PAP1101 COP11 PAP1201 COP12 PAC202 PAC2101 PAC2102 PAU308PAU307 PAU306PAU305PAU304 PAU30 PAU302 PAU301 COP9 PAC401 PAC402 PAD401 PAC201 PAC502 PAC501 COD4 PAU203 PAC601 PAC602 COC6 PAU102 PAU103 PAL102 PAC2202 PAC2201 COC22 COU2 PAP301 COP3 PAP401 COP4 COD7 PAR1002 PAR1001 PAD702 PAD701 PAP601 COP6 COR10 COD8 COR11 PAR1102 PAR1101 PAD802 PAD801 PAP801 COP8 PAU101 PAC301 COL1 PAL101 COD5 COR8 PAR802 PAR801 PAD502 PAD501 COD6 COR9 PAR902 PAR901 PAD602 PAD601 PAP17012 PAP17010 PAP1708 PAP1706 PAP1704 PAP1702 COU1 PAU202 PAC2002 PAC2001 PAC302 COL2 PAP1501COP2 PAU404 PAU403 PAU402 PAU401 COC9 PAP201 COU4 PAC102 PAC101 PAC901 PAP101 COP1 PAU405 PAU406 PAU407 PAU408 COC1 PAC902 COR3 PAS101 PAC801 PAC802 PAP17011 PAP1709 PAP1707 PAP1705 PAP1703 PAP1701 COC3 PAP2001 PAP1901 PAC1801 PAC1802 PAU5024 PAU5023 PAU502 PAU5021 PAU5020 PAU5019 PAU5018 PAU5017PAU5016PAU5015PAU5014PAU5013 PAU901 PAU9014 PAU902 PAU9013 COU9 PAU903 PAU501 PAU502 PAU503 PAU504 PAU505 PAU506 PAU507 PAU508PAU509PAU5010PAU501 PAU5012 COR6 PAR602 PAR601 PAC2301 COC23 COC24 PAC2401 PAC2402 PAC2302 PAL301 PAU10 24 PAU10 23 PAU10 2 PAU10 21 PAU10 20 PAU10 19 PAU10 18 COU10 PAU9012 PAU904 PAU9011 PAU905 PAU9010 PAU906 PAU909 PAU907 PAU908 PAU10 1 PAU10 2 PAU10 3 PAU10 4 PAU10 5 PAU10 6 PAU10 7 PAU10 8PAU10 9PAU10 10PAU10 1 PAU10 12 COR7PAR702 PAR701 PAC2801 COC28 COC26 PAC2601 PAC2602 PAC2802 PAL801 COL3 PAL302 PAC2502 PAC2501 COC25 COP7 PAU10 17PAU10 16PAU10 15PAU10 14 PAU10 13 COL8 PAL802 PAC2702 PAP701 COP18 PAP700 PAC2701 PAP1801 PAP1800 PAS202 PAS301 COS3 COS2 PAS201 PAS302 COC27 PAL701 PAL702 PAL601 PAL501 PAL602 PAL502 COL7 COL6 COL5 ANHANG E. SCHEMA UND PCB DES NAVIGATION-PRINTS 222 Anhang F Source-Code der Firmware Header-Files hardware.h /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ BFH−TI FB E l e k t r o − & Kommunikationstechnik Jlcoweg 1 CH− 3400 Burgdorf ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f This f i l e i n c l u d e s header i n f o r m a t i o n about t h e hardware . \version 1.0 \ f i l e hardware . h \date 0 4 . 0 8 . 2 0 1 0 \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ # i f n d e f _dopplerHW_ # define _dopplerHW_ /∗ e x t e r n a l header i n c l u d e s ∗/ /∗∗ s e e t h e dsp p r o c e s s o r manual on page 4−6 f o r f u r t h e r i n f o r m a t i o n . ∗/ # include < c d e f 2 1 3 6 4 . h> /∗∗< c d e f i n i t i o n s o f t h e ad21364 p r o c e s s o r ∗/ # include <def21364 . h> /∗∗< assembler d e f i n i t o n s o f t h e ad21364 p r o c e s s o r ∗/ # include <SRU21364 . h> /∗∗< SRU Unit c a p a b i l i t i e s ∗/ # include < s t d i o . h> # include < s t d l i b . h> /∗∗< we need malloc and f r e e f u n c t i o n a l i t y ∗/ # define NUM_SAMPLES 120 /∗∗< Number o f samples per r o a t i o n ∗/ # define NUM_TURNS 20 /∗∗< Number o f antenna t u r n s ∗/ # define OFFSET 0 x00080000 /∗∗< o f f s e t value f o r t h e address g e n e r a t o r . s e e HW− r e f e r e n c e [2 − 18]∗/ # define PCI 0 x00080000 /∗∗< PCI b i t f o r DMA Chaining I n t e r r u p t s . ∗/ extern int ∗ src_pointer [ 4 ] ; void void void void void void void void void i n i t _ P L L ( void ) ; init_SPORT_DMAchain ( void ) ; init_SPORT_DMAchainInf ( void ) ; i n i t _ D A I ( void ) ; start_DMA ( void ) ; next_TCB_block ( i n t b l k _ c n t r ) ; s e t _ a c t i v e _ a n t e n n a ( i n t antNo ) ; r e s e t _ a n t e n n a _ a r r a y ( void ) ; switch_antenna ( void ) ; void tx_SPI_DMA ( unsigned i n t ∗ words , unsigned i n t l e n g t h ) ; 223 ANHANG F. SOURCE-CODE DER FIRMWARE void i n i t _ S P I ( void ) ; void d i s a b l e _ S P I ( void ) ; void e n a b l e _ S P I ( void ) ; unsigned i n t t x _ S P I ( i n t msg ) ; bool delay ( i n t t o c s ) ; # endif 224 irq.h /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ BFH−TI FB E l e k t r o − & Kommunikationstechnik Jlcoweg 1 CH− 3400 Burgdorf ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f This f i l e i n c l u d e s header i n f o r m a t i o n about t h e IRQ i n t h e I /O− Processor . \version 1.0 \ f i l e irq . h \date 0 4 . 0 8 . 2 0 1 0 \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ # i f n d e f _IRQ_ # define _IRQ_ # include < s i g n a l . h> # include < s t d i o . h> void s e t u p _ i n t e r r u p t s ( void ) ; void IRQ_dispatcher_DMA ( i n t irqN ) ; void I RQ_ di sp at ch er _S PI ( i n t irqN ) ; e x t e r n v o l a t i l e bool blockReady ; e x t e r n v o l a t i l e bool i s P r o c e s s i n g ; extern int block_cntr ; # endif 225 ANHANG F. SOURCE-CODE DER FIRMWARE sigProc.h /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ BFH−TI FB E l e k t r o − & Kommunikationstechnik Jlcoweg 1 CH− 3400 Burgdorf ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f This f i l e i n c l u d e s header i n f o r m a t i o n about t h e f u l l s i g n a l p r o c e s s i n g of t h e doppler b e a r i n g system . \version 1.0 \ f i l e bearing . c \date 0 4 . 0 8 . 2 0 1 0 \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ # ifndef _sigProc_ # define _ s i g P r o c _ # include # include # include # include # include < f i l t e r . h> <math . h> < s t a t s . h> " irq . h" " hardware . h " # define TAPS 453 /∗∗< s i z e o f t h e f i r f i l t e r ∗/ # define MEASUREMENT_OFFSET 5 /∗∗< number o f i n v a l i d maximum e s t i m a t i o n s ∗/ # define ANGLE_OFFSET 32 /∗∗< number o f angle quantums i n one f o u r t h o f a c i r c l e ∗/ # define VAR_THRESHOLD 10 /∗∗< upper v a r i a n c e t h r e s h o l d o f t h e measurement ∗/ // g l o b a l v a r s f l o a t dm demodSig [NUM_SAMPLES∗NUM_TURNS] ; i n t b e a r i n g ( i n t ∗∗ s r c _ p o i n t e r , unsigned i n t b l o c k _ c n t r , unsigned i n t samplesNum , unsigned i n t rotNum ) ; void fmDemod( i n t ∗ I , i n t ∗Q , f l o a t ∗demod , unsigned i n t samplesNum ) ; i n t e s t i m a t e A n g l e ( f l o a t ∗ demodSig ) ; # endif 226 Source-Code-Files main.c /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ BFH−TI FB E l e k t r o − & Kommunikationstechnik Jlcoweg 1 CH− 3400 Burgdorf ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f This f i l e i n c l u d e s t h e main f u n c t i o n and t h e main program loop . \version 1.0 \ f i l e main . c \date 0 4 . 0 8 . 2 0 1 0 \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ i n c l u d e s and d e f i n i t i o n s ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ # include < s t d i o . h> # include " hardware . h " # include " i r q . h " # include " s i g P r o c . h " # include " s p i _ p r o t o c o l . h " c o n s t char _ _ a r g v _ s t r i n g [ ] = "−abc −xyz " ; /∗∗< P l a c e program arguments i n t h e f o l l o w i n g s t r i n g , or d e l e t e t h e d e f i n i t i o n i f arguments w i l l be passed from the command l i n e . ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : main ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f This i s t h e main f u n c t i o n o f t h e doppler b e a r i n g system . \param a r g c \param argv number o f command l i n e arguments a r r a y o f command l i n e arguments \ r e t u r n Should never r e t u r n something because t h e main f u n c t i o n never ends . \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ i n t main ( i n t argc , char ∗ argv [ ] ) { p r i n t f ( " ∗∗∗ main e x e c u t i o n s t a r t e d . \ n " ) ; /∗ s t a r t i n i t a l i z a t i o n r o u t i n e s ∗/ // i n i t PLL init_PLL ( ) ; p r i n t f ( " ∗ PLL c o n f i g u r e d . \n " ) ; // i n i t DAI I n t e r f a c e , r o u t e P i ns t o t h e p r o c e s s o r c o r e modules init_DAI ( ) ; p r i n t f ( " ∗ DAI c o n f i g u r e d . \n " ) ; // i n i t i n t e r r u p t s setup_interrupts ( ) ; p r i n t f ( " ∗ I n t e r r u p t s a c t i v a t e d . \n " ) ; // i n i t SPORT init_SPORT_DMAchain ( ) ; //init_SPORT_DMAchainInf ( ) ; // comment a l s o l i n e above p r i n t f ( " ∗ SPORT3 and SPORT5 c o n f i g u r e d . \n " ) ; init_SPI () ; // p r i n t f ( " ∗ SPI i n i t i a l i z e d . \n " ) ; reset_antenna_array ( ) ; p r i n t f ( " ∗ Antenna s t a t e machine i n i t i a l i z e d . \n " ) ; start_DMA ( ) ; // p r i n t f ( " ∗ Doppler Bearing s t a r t e d . \n " ) ; 227 ANHANG F. SOURCE-CODE DER FIRMWARE f l o a t angle = − 1; for ( ; ; ) { // data c a p t u r e while ( blockReady ) { isProcessing = true ; angle = b e a r i n g ( s r c _ p o i n t e r , b l o c k _ c n t r , NUM_SAMPLES, NUM_TURNS) ; isProcessing = false ; } } } 228 bearing.c /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ BFH−TI FB E l e k t r o − & Kommunikationstechnik Jlcoweg 1 CH− 3400 Burgdorf ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f This f i l e i n c l u d e s a l l procedures f o r t h e doppler b e a r i n g . \version 1.0 \ f i l e bearing . c \date 0 4 . 0 8 . 2 0 1 0 \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ i n c l u d e s and d e f i n i t i o n s ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ # include " s i g P r o c . h " /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : b e a r i n g ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f Doppler Bearing Algorithmus \ d e t a i l s This f u n c t i o n e s t i m a t e s t h e wave angle o f t h e incoming s i g n a l . \param s r c _ p o i n t e r n \param b l o c k _ c n t r estimated \param samplesNum \param rotNum Array o f complex s i g n a l bank a d r e s s e s . Each Bank has two a d d r e s s e s . One address p o i n t s t o t h e I p a r t o f the complex s i g n a l . The address p o i n t t o t h e Q p a r t o f the complex s i g n a l . The a r r a y should have t h e f o l l o w i n g form : { BANK_1_I Bank_2_I . . . Bank_N_I BANK_1_Q Bank_2_Q . . . Bank_N_Q } i n d i c a t e s out o f which bank t h e b e a r i n g should be number o f samples per s i n g l e antenna number o f r o t a t i o n s \ r e t u r n t h e e s t i m a t e d angle \todo The used procedure e s t i m a t e A n g l e ( ) i s not f u l l y developed y e t . Now t h e function always r e t u r n s 0 . \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ f l o a t dm demodSig [NUM_SAMPLES∗NUM_TURNS] ; /∗∗< t h e demodulated and f i l t e r e d fm s i g n a l ∗/ i n t b e a r i n g ( i n t ∗∗ s r c _ p o i n t e r , unsigned i n t b l o c k _ c n t r , unsigned i n t samplesNum , unsigned i n t rotNum ) { // save t h e demodulated s i g n a l here // f l o a t demodSig [ samplesNum∗rotNum ] ; // s e l e c t t h e w a i t i n g b l o c k i n t blk = block_cntr + 1 ; b l k %= 2 ; i f ( b l k == 1 ) { asm ( " nop ; " ) ; } // fm demodulation fmDemod( s r c _ p o i n t e r [ b l k ] , s r c _ p o i n t e r [ b l k + 2 ] , demodSig , samplesNum∗rotNum ) ; // e s t i m a t e t h e incoming wave angle i n t angle = e s t i m a t e A n g l e ( demodSig ) ; 229 ANHANG F. SOURCE-CODE DER FIRMWARE // C l e a r t h e blockReady sempahore blockReady = f a l s e ; r e t u r n angle ; } f l o a t dm s t a t e s [ TAPS + 1 ] ; /∗∗< s t a t e s a r r a y o f t h e FIR f i l t e r i n t h e procedure fmDemod ( ) ∗/ c o n s t f l o a t pm F I R c o e f f s [ TAPS]= { # i n c l u d e " bp_1 . 8 5 kHz_2 . 1 5 kHz_240kHz . dat " } ; /∗∗< f i l t e r c o e f f i c i e n t s o f t h e FIR f i l t e r i n t h e procedure fmDemod ( ) ∗/ f l o a t dm sDelay [NUM_SAMPLES∗NUM_TURNS] ; /∗∗< debug use : p l a c e t h i s var i n t o fmDemod . This var i s o u t s i d e f o r i l l u s t r a t i o n s ∗/ f l o a t I _ f l o a t [NUM_SAMPLES∗NUM_TURNS] ; /∗∗< debug use : p l a c e t h i s var i n t o fmDemod . This var i s o u t s i d e f o r i l l u s t r a t i o n s ∗/ f l o a t Q _ f l o a t [NUM_SAMPLES∗NUM_TURNS] ; /∗∗< debug use : p l a c e t h i s var i n t o fmDemod . This var i s o u t s i d e f o r i l l u s t r a t i o n s ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : fmDemod ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f FM demodulator f o r complex s i g n a l s \ d e t a i l s This f u n c t i o n demodulates a fm modulated , complex s i g n a l and f i l t e r s the demodulated s i g n a l with a bandpass @ f p a s s = 1 . 3 3 3 − 1 . 6 6 6 kHz . This f u n c t i o n uses a d i s c r i m i n a t o r as a fm demodulator . \param \param \param \param I p o i n t e r t o t h e beginning o f t h e I p a r t i n t h e s i g n a l bank Q p o i n t e r t o t h e beginning o f t h e Q p a r t i n t h e s i g n a l bank demod p o i n t e r t o a r r a y where t h e demodulated s i g n a l should be s t o r e d samplesNum s i g n a l l e n g t h \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ void fmDemod( i n t ∗ I , i n t ∗Q , f l o a t ∗demod , unsigned i n t samplesNum ) { int i = 0; double denom = 0 ; // I /Q−Amplitude Normalization #pragma SIMD_for f o r ( i = 0 ; i < samplesNum ; i ++) { denom = s q r t d ( ( double ) ( I [ i ] ) ∗ ( double ) ( I [ i ] ) + ( ( double )Q[ i ] ) ∗ ( ( double )Q[ i ] ) ) ; i f ( denom == 0 ) denom = 1 ; I _ f l o a t [ i ] = ( f l o a t ) ( I [ i ]/denom ) ; Q _ f l o a t [ i ] = ( f l o a t ) (Q[ i ]/denom ) ; } // s i g n a l d i s c r i m i n a t i o n #pragma SIMD_for f o r ( i = 0 ; i < samplesNum − 1; i ++) { sDelay [ i ] = I _ f l o a t [ i ] ∗ Q _ f l o a t [ i +1] − I _ f l o a t [ i +1]∗ Q _ f l o a t [ i ] ; } // demodulate #pragma SIMD_for f o r ( i = 0 ; i < samplesNum ; i ++) { sDelay [ i ] = a s i n f ( sDelay [ i ] ) ; 230 } // bandpass f i l t e r i n g f i r ( sDelay , demodSig , F I R c o e f f s , s t a t e s , samplesNum , TAPS ) ; // c l e a r LED0 // pLED &= ~ 1 ; return ; } f l o a t dm p o s i t i o n [NUM_TURNS] ; /∗∗< debug use : p l a c e t h i s var i n t o e s t i m a t e A n g l e ( ) . This var i s o u t s i d e f o r i l l u s t r a t i o n s ∗/ f l o a t dm p o s i t i o n _ d b g [NUM_TURNS] [ 1 0 0 ] ; f l o a t dm a n g l e s [ 1 0 0 ] ; i n t measCnts = 0 ; f l o a t dm dbg_angle ; // debug use ; /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : e s t i m a t e A n g l e ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f Incoming wave angle e s t i m a t o r \ d e t a i l s This f u n c t i o n e s t i m a t e s t h e incoming wave angle a f t e r fm demodulation o f t h e switched antenna s i g n a l . \param demodSig t h e demodulated s i g n a l \ r e t u r n p o s i t i v e i n t e g e r : t h e e s t i m a t e d wave angle ; − 1: e r r o r i n angle estimation . \author s c h a f 3 \todo This procedure has not been f i n i s h e d y e t . ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ i n t e s t i m a t e A n g l e ( f l o a t ∗ demodSig ) { int i , j ; f l o a t relMax ; i n t angle = − 1000; // s e a r c h and save t h e p o s i t i o n o f t h e maximum i n each turn f o r ( i = 0 ; i < NUM_TURNS; i ++) { relMax = demodSig [NUM_SAMPLES ] ; f o r ( j = 0 ; j < NUM_SAMPLES; j ++) { i f ( demodSig [NUM_SAMPLES∗ i + j ] > relMax ) { relMax = demodSig [NUM_SAMPLES∗ i + j ] ; position [ i ] = j ; p o s i t i o n _ d b g [ i ] [ measCnts ] = j ; } } } // d i s t r i b u t i o n s c a l a r s o f t h e maxima // mean f l o a t mMax = meanf ( p o s i t i o n + MEASUREMENT_OFFSET, NUM_TURNS − MEASUREMENT_OFFSET) ; // v a r i a n c e f l o a t vMax = v a r f ( p o s i t i o n + MEASUREMENT_OFFSET, NUM_TURNS − MEASUREMENT_OFFSET) ; i f ( vMax > VAR_THRESHOLD) { // p r i n t f ( " # E r r o r i n angle e s t i m a t i o n . \n The v a r i a n c e o f t h e maxima d i s t r i b u t i o n i s %f > 2 " , vMax ) ; 231 ANHANG F. SOURCE-CODE DER FIRMWARE r e t u r n − 1000; } // angle t r a n s l a t i o n //angle = ( ( mMax−ANGLE_OFFSET) ∗ 3 6 0 ) /NUM_SAMPLES; /∗ i f ( angle > 3 6 0 ) { angle −= 3 6 0 ; } e l s e i f ( angle < − 360) { angle += 3 6 0 ; } ∗/ f l o a t angle_tmp = (mMax−ANGLE_OFFSET) ∗360/NUM_SAMPLES; /∗ i f ( angle_tmp > 1 8 0 ) { angle_tmp = angle_tmp − 345; } e l s e i f ( angle_tmp < − 180) { angle_tmp = 360 + angle_tmp ; } ∗/ a n g l e s [ measCnts ] = angle_tmp ; // data f i l t e r i n g ? // debug use f o r q u a d r a t i c w a t e r f a l l p l o t measCnts ++; // debug : i f . i f ( measCnts >= 1 0 0 ) { angle = meanf ( angles , 1 0 0 ) ; dbg_angle = angle ; asm ( " nop ; " ) ; } measCnts %= 1 0 0 ; r e t u r n angle ; } 232 hardware.c /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ BFH−TI FB E l e k t r o − & Kommunikationstechnik Jlcoweg 1 CH− 3400 Burgdorf ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f This f i l e i n c l u d e s a l l procedures f o r t h e doppler b e a r i n g . \version 1.0 \ f i l e hardware . c \date 0 4 . 0 8 . 2 0 1 0 \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ i n c l u d e s and d e f i n i t i o n s ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ # include " hardware . h " i n t block_A_I [NUM_SAMPLES∗NUM_TURNS] ; /∗< D e f i n i t i o n o f t h e Block A_I where t h e ddc data i s s t o r e d ∗/ i n t block_A_Q [NUM_SAMPLES∗NUM_TURNS] ; /∗< D e f i n i t i o n o f t h e Block A_Q where t h e ddc data i s s t o r e d ∗/ i n t b l o c k _ B _ I [NUM_SAMPLES∗NUM_TURNS] ; /∗< D e f i n i t i o n o f t h e Block B_I where t h e ddc data i s s t o r e d ∗/ i n t block_B_Q [NUM_SAMPLES∗NUM_TURNS] ; /∗< D e f i n i t i o n o f t h e Block B_Q where t h e ddc data i s s t o r e d ∗/ // D e f i n i t i o n o f t h e TCBs f o r t h e DMA c h a i n i n g process , s e e : [2 − 23] i n t TCB_block_A_I [NUM_TURNS ] [ 8 ] [ 4 ] ; /∗< TCB Block A_I , sampling one turn , s e e : [2 − 23] ∗/ i n t TCB_block_A_Q [NUM_TURNS ] [ 8 ] [ 4 ] ; /∗< TCB Block A_Q, sampling one turn , s e e : [2 − 23] ∗/ i n t TCB_block_B_I [NUM_TURNS ] [ 8 ] [ 4 ] ; /∗< TCB Block B_I , sampling one turn , s e e : [2 − 23] ∗/ i n t TCB_block_B_Q [NUM_TURNS ] [ 8 ] [ 4 ] ; /∗< TCB Block B_Q , sampling one turn , s e e : [2 − 23] ∗/ // Array o f t h e b l o c k a d r e s s e s i n t ∗ s r c _ p o i n t e r [ 4 ] = { block_A_I , block_B_I , block_A_Q , block_B_Q } ; /∗< Array o f a d d r e s s e s who p o i n t t o t h e beginning o f each b l o c k ∗/ unsigned i n t activeAntenna = 0 ; /∗< t h i s r e g i s t e r s a v e s t h e l a s t s t a t e o f t h e antenna c o n f i g u r a t i o n ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : init_TCB_DMA ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f TCB i n i t i a l i z a t i o n \ d e t a i l s This procedure i n i t i a l i z e s t h e TCBs o f t h e chained DMA due t o t h e f o l l o w i n g parameteres : NUM_ROT and number o f samples per antenna \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ void init_TCB_DMA ( void ) { /∗ DMA Chaining i n t i a l i z a t i o n D e f i n i t i o n o f t h e TCB B l o c k s f o r c h a i n i n g . Each b l o c k i s used f o r : ∗ saving t h e r e c e i v e d value o f t h e SPORT3/5 i n t o i n t e r n a l RAM a t p o s i t i o n block_x_x . ∗ g e n e r a t i n g t h e nex t s t a t e o f t h e antenna s t a t e v i a ISR r o u t i n e . A f t e r f i l l i n g one b l o c k a DMA− I n t e r r u p t o c c u r s . ∗/ int i ; i n t actTurn ; 233 ANHANG F. SOURCE-CODE DER FIRMWARE f o r ( actTurn = 0 ; actTurn < NUM_TURNS; actTurn ++) { // automated i n i t i a l i z a t i o n without t h e l a s t c h a i n /∗ PCI : = d e f i n e s t h e 1 9 . b i t and g e n e r a t e s a DMA i n t e r r u p t a t t h e end o f t h e DMA. ∗/ f o r ( i = 0 ; i < 7 ; i ++) { TCB_block_A_I [ actTurn ] [ i ] [ 0 ] = ( unsigned i n t ) TCB_block_A_I [ actTurn ] [ i +1] + 3 − OFFSET + PCI ; TCB_block_A_I [ actTurn ] [ i ] [ 1 ] = NUM_SAMPLES/ 8 ; TCB_block_A_I [ actTurn ] [ i ] [ 2 ] = 1 ; TCB_block_A_I [ actTurn ] [ i ] [ 3 ] = ( unsigned i n t ) block_A_I − OFFSET + NUM_SAMPLES∗ actTurn +(NUM_SAMPLES∗ i ) / 8 ; TCB_block_A_Q [ actTurn ] [ i ] [ 0 ] = ( unsigned i n t ) TCB_block_A_Q [ actTurn ] [ i +1] + 3 − OFFSET + PCI ; TCB_block_A_Q [ actTurn ] [ i ] [ 1 ] = NUM_SAMPLES/ 8 ; TCB_block_A_Q [ actTurn ] [ i ] [ 2 ] = 1 ; TCB_block_A_Q [ actTurn ] [ i ] [ 3 ] = ( unsigned i n t ) block_A_Q − OFFSET + NUM_SAMPLES∗ actTurn +(NUM_SAMPLES∗ i ) / 8 ; TCB_block_B_I [ actTurn ] [ i ] [ 0 ] = ( unsigned i n t ) TCB_block_B_I [ actTurn ] [ i +1] + 3 − OFFSET + PCI ; TCB_block_B_I [ actTurn ] [ i ] [ 1 ] = NUM_SAMPLES/ 8 ; TCB_block_B_I [ actTurn ] [ i ] [ 2 ] = 1 ; TCB_block_B_I [ actTurn ] [ i ] [ 3 ] = ( unsigned i n t ) b l o c k _ B _ I − OFFSET + NUM_SAMPLES∗ actTurn +(NUM_SAMPLES∗ i ) / 8 ; TCB_block_B_Q [ actTurn ] [ i ] [ 0 ] = ( unsigned i n t ) TCB_block_B_Q [ actTurn ] [ i +1] + 3 − OFFSET + PCI ; TCB_block_B_Q [ actTurn ] [ i ] [ 1 ] = NUM_SAMPLES/ 8 ; TCB_block_B_Q [ actTurn ] [ i ] [ 2 ] = 1 ; TCB_block_B_Q [ actTurn ] [ i ] [ 3 ] = ( unsigned i n t ) block_B_Q − OFFSET + NUM_SAMPLES∗ actTurn +(NUM_SAMPLES∗ i ) / 8 ; } // d e f i n e t h e l a s t TCB c h a i n element b e f o r e a new m u l t i p l e x i n g turn s t a r t s TCB_block_A_I [ actTurn ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_A_I [ actTurn + 1 ] [ 0 ] + 3 − OFFSET + PCI ; TCB_block_A_I [ actTurn ] [ 7 ] [ 1 ] = NUM_SAMPLES/ 8 ; TCB_block_A_I [ actTurn ] [ 7 ] [ 2 ] = 1 ; TCB_block_A_I [ actTurn ] [ 7 ] [ 3 ] = ( unsigned i n t ) block_A_I − OFFSET + NUM_SAMPLES∗ actTurn +(NUM_SAMPLES∗ 7 ) / 8 ; TCB_block_A_Q [ actTurn ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_A_Q [ actTurn + 1 ] [ 0 ] + 3 − OFFSET + PCI ; TCB_block_A_Q [ actTurn ] [ 7 ] [ 1 ] = NUM_SAMPLES/ 8 ; TCB_block_A_Q [ actTurn ] [ 7 ] [ 2 ] = 1 ; TCB_block_A_Q [ actTurn ] [ 7 ] [ 3 ] = ( unsigned i n t ) block_A_Q − OFFSET + NUM_SAMPLES∗ actTurn +(NUM_SAMPLES∗ 7 ) / 8 ; TCB_block_B_I [ actTurn ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_B_I [ actTurn + 1 ] [ 0 ] + 3 − OFFSET + PCI ; TCB_block_B_I [ actTurn ] [ 7 ] [ 1 ] = NUM_SAMPLES/ 8 ; TCB_block_B_I [ actTurn ] [ 7 ] [ 2 ] = 1 ; TCB_block_B_I [ actTurn ] [ 7 ] [ 3 ] = ( unsigned i n t ) b l o c k _ B _ I − OFFSET + NUM_SAMPLES∗ actTurn +(NUM_SAMPLES∗ 7 ) / 8 ; TCB_block_B_Q [ actTurn ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_B_Q [ actTurn + 1 ] [ 0 ] + 3 − OFFSET + PCI ; TCB_block_B_Q [ actTurn ] [ 7 ] [ 1 ] = NUM_SAMPLES/ 8 ; TCB_block_B_Q [ actTurn ] [ 7 ] [ 2 ] = 1 ; TCB_block_B_Q [ actTurn ] [ 7 ] [ 3 ] = ( unsigned i n t ) block_B_Q − OFFSET + NUM_SAMPLES∗ actTurn +(NUM_SAMPLES∗ 7 ) / 8 ; } 234 // d e f i n e t h e very l a s t TCB c h a i n element a t t h e end o f t h e measurements TCB_block_A_I [NUM_TURNS− 1 ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_A_I [ 0 ] [ 0 ] + 3 − OFFSET + PCI ; TCB_block_A_I [NUM_TURNS− 1 ] [ 7 ] [ 1 ] = NUM_SAMPLES/ 8 ; TCB_block_A_I [NUM_TURNS− 1 ] [ 7 ] [ 2 ] = 1 ; TCB_block_A_I [NUM_TURNS− 1 ] [ 7 ] [ 3 ] = ( unsigned i n t ) block_A_I − OFFSET + NUM_SAMPLES∗ (NUM_TURNS− 1) +(NUM_SAMPLES∗ 7 ) / 8 ; TCB_block_A_Q [NUM_TURNS− 1 ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_A_Q [ 0 ] [ 0 ] + 3 − OFFSET + PCI ; TCB_block_A_Q [NUM_TURNS− 1 ] [ 7 ] [ 1 ] = NUM_SAMPLES/ 8 ; TCB_block_A_Q [NUM_TURNS− 1 ] [ 7 ] [ 2 ] = 1 ; TCB_block_A_Q [NUM_TURNS− 1 ] [ 7 ] [ 3 ] = ( unsigned i n t ) block_A_Q − OFFSET + NUM_SAMPLES∗ (NUM_TURNS− 1) +(NUM_SAMPLES∗ 7 ) / 8 ; TCB_block_B_I [NUM_TURNS− 1 ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_B_I [ 0 ] [ 0 ] + 3 − OFFSET + PCI ; TCB_block_B_I [NUM_TURNS− 1 ] [ 7 ] [ 1 ] = NUM_SAMPLES/ 8 ; TCB_block_B_I [NUM_TURNS− 1 ] [ 7 ] [ 2 ] = 1 ; TCB_block_B_I [NUM_TURNS− 1 ] [ 7 ] [ 3 ] = ( unsigned i n t ) b l o c k _ B _ I − OFFSET + NUM_SAMPLES∗ (NUM_TURNS− 1) +(NUM_SAMPLES∗ 7 ) / 8 ; TCB_block_B_Q [NUM_TURNS− 1 ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_B_Q [ 0 ] [ 0 ] + 3 − OFFSET + PCI ; TCB_block_B_Q [NUM_TURNS− 1 ] [ 7 ] [ 1 ] = NUM_SAMPLES/ 8 ; TCB_block_B_Q [NUM_TURNS− 1 ] [ 7 ] [ 2 ] = 1 ; TCB_block_B_Q [NUM_TURNS− 1 ] [ 7 ] [ 3 ] = ( unsigned i n t ) block_B_Q − OFFSET + NUM_SAMPLES∗ (NUM_TURNS− 1) +(NUM_SAMPLES∗ 7 ) / 8 ; return ; } /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : start_DMA ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f DMA t r a n s f e r s t a r t \ d e t a i l s This procedure s t a r t s t h e DMA t r a n s f e r mechanism from t h e SPORT3/5 data b u f f e r t o an i n t e r n a l RAM a d r e s s (RAM bank A) . I t r e s e t s a l s o t h e antenna s t a t e machine and s t a r t s t h e antenna m u l t i p l e x i n g . This procedure i s used i n combination with init_SPORT_DMAchain ( ) . \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ void start_DMA ( void ) { // f i l l b l o c k A f i r s t ∗pCPSP3A = ( unsigned i n t ) TCB_block_A_I − OFFSET + 3 + PCI ; ∗pCPSP5A = ( unsigned i n t ) TCB_block_A_Q − OFFSET + 3 + PCI ; return ; } void next_TCB_block ( i n t b l k _ c n t r ) { switch ( b l k _ c n t r ) { case 0 : // change t h e l a s t element o f t h e TCB c h a i n t h a t t h e ne xt c h a i n s t a r t s or s t a y s i n b l o c k A TCB_block_A_I [NUM_TURNS− 1 ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_A_I [ 0 ] [ 0 ] + 3 − OFFSET + PCI ; 235 ANHANG F. SOURCE-CODE DER FIRMWARE TCB_block_A_Q [NUM_TURNS− 1 ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_A_Q [ 0 ] [ 0 ] + 3 − OFFSET + PCI ; TCB_block_B_I [NUM_TURNS− 1 ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_A_I [ 0 ] [ 0 ] + 3 − OFFSET + PCI ; TCB_block_B_Q [NUM_TURNS− 1 ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_A_Q [ 0 ] [ 0 ] + 3 − OFFSET + PCI ; break ; case 1 : // change t h e l a s t element o f t h e TCB c h a i n t h a t t h e ne xt c h a i n s t a r t s or s t a y s i n b l o c k A TCB_block_A_I [NUM_TURNS− 1 ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_B_I [ 0 ] [ 0 ] + 3 − OFFSET + PCI ; TCB_block_A_Q [NUM_TURNS− 1 ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_B_Q [ 0 ] [ 0 ] + 3 − OFFSET + PCI ; TCB_block_B_I [NUM_TURNS− 1 ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_B_I [ 0 ] [ 0 ] + 3 − OFFSET + PCI ; TCB_block_B_Q [NUM_TURNS− 1 ] [ 7 ] [ 0 ] = ( unsigned i n t ) TCB_block_B_Q [ 0 ] [ 0 ] + 3 − OFFSET + PCI ; break ; default : p r i n t f ( " # Memory b l o c k number undefined i n f u n c t i o n next_TCB_block . \n " ) ; break ; } return ; } /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : i n i t _ P L L ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f PLL I n i t i a l i z a t i o n \ d e t a i l s This procedure i n i t i a l i z e s t h e onChip PLL up t o 333 MHz. This i s t h e f a s t e d p o s s i b l e c o r e frequency . The in pu t CLK CLKIN i s 2 4 . 5 7 6 MHz . \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ void i n i t _ P L L ( void ) { i n t pmctlConf ; // g e t s t a t e o f pPMCTL ( power management ) r e g i s t e r pmctlConf = ∗pPMCTL ; // c l e a r b i t s o f t h e PLLM r e g i s t e r ( b i t s 5 − 0) pmctlConf &= ~(0 x 3 f ) ; // s e t b i t s . PLLM27 = PLL m u l t i p l i e r t o 2 7 , // PLLD2 = PLL D i v i s o r t o 2 , DIVEN = PLL Divi der e n a b l e // PLLBP = s e t PLL t o bypass mode u n t i l Core CLK has changed pmctlConf |= PLLM27 | PLLD2 | DIVEN | PLLBP ; // save new c o n f i g ∗pPMCTL = pmctlConf ; // wait u n t i l c l k i s updated . t h e new frequency i s changed a f t e r // 14 Core Cy cl e s int i ; f o r ( i = 0 ; i < 2 0 ; i ++) { asm ( " nop ; " ) ; } // c l e a r bypass mode 236 ∗pPMCTL ^= PLLBP ; // s t a r t c l k o u t ∗pPMCTL |= CLKOUTEN; return ; } /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : i n i t _ D A I ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f DAI I n i t i a l i z a t i o n \ d e t a i l s This procedure i n i t i a l i z e s t h e DAI c o n n e c t i o n s i n t h e I /O−P r o c e s s o r . The f o l l o w i n g p r o c e s s o r p i n s a r e used as i n p u t s : PBEN02_I , PBEN15_I , PBEN16_I . This i s t h e r o u t i n g map o f t h e p r o j e c t : < t a b l e border ="0" > <tr > <td >SCLK −> DAIP11 −> SPORT3_CLK_I & SPORT5_CLK_I</td > </ t r > <tr > <td >SDO −> DAIP12 −> SPORT3_DA_I & SPORT5_DA_I</td > </ t r > <tr > <td >SDFS −> DAIP13−> SPORT3_FS_I & SPORT5_FS_I</td > </ t r > <tr > <td >D2 −> DAIP03 −> Pin 6 on header H4 </td > </ t r > <tr > <td >D1 −> DAIP04 −> Pin 8 on header H4 </td > </ t r > <tr > <td >D0 −> DAIP05 −> Pin 10 on header H4 </td > </ t r > </ t a b l e > \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ void i n i t _ D A I ( void ) { /∗ Route t h e DDC c o n n e c t i o n P i ns t o t h e SPORT0 c o r e . ∗/ /∗ P o r t Routing Map : SCLK −> DAIP11 −> SPORT3_CLK_I & SPORT5_CLK_I SDO −> DAIP12 −> SPORT3_DA_I & SPORT5_DA_I SDFS −> DAIP13 −> SPORT3_FS_I & SPORT5_FS_I ∗/ // Define a l l DAIPx p i n s from above as in pu t . [ Ref : 5 − 10] SRU(LOW, PBEN11_I ) ; SRU(LOW, PBEN12_I ) ; SRU(LOW, PBEN13_I ) ; // Route a l l P i ns t o t h e corresponding SPORT3 and SPORT5 c o r e pin SRU( DAI_PB11_O , SPORT3_CLK_I ) ; SRU( DAI_PB12_O , SPORT3_DA_I ) ; SRU( DAI_PB13_O , SPORT3_FS_I ) ; SRU( DAI_PB11_O , SPORT5_CLK_I ) ; SRU( DAI_PB12_O , SPORT5_DA_I ) ; SRU( DAI_PB13_O , SPORT5_FS_I ) ; /∗∗ Route t h e Smart Antenna C o n t r o l L i n e s t o t h e DAIP . ∗/ 237 ANHANG F. SOURCE-CODE DER FIRMWARE /∗ P o r t D2 −> D1 −> D0 −> ∗/ Routing Map : DAIP3 DAIP4 DAIP5 // Define SRU(HIGH, SRU(HIGH, SRU(HIGH, a l l DAIPx p i n s from above as output . PBEN03_I ) ; PBEN04_I ) ; PBEN05_I ) ; return ; } /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : init_SPORT_DMAchain ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f SPORT and DMA I n i t i a l i z a t i o n o f t h e s i n g l e DMA t r a n s f e r \ d e t a i l s This procedure i n i t i a l i z e s t h e SPORTs and t h e TCB b l o c k s i n DMA c h a i n i n g mode . The DMA c h a i n i n g o f t h e data from t h e SPORTs t o t h e data b l o c k s s t o p s a f t e r t h e l a s t b l o c k has been f i l l e d up . \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ void init_SPORT_DMAchain ( void ) { init_TCB_DMA ( ) ; // R e s e t t h e SPORT3 and SPORT5 c o n t r o l r e g i s t e r s ∗ pSPCTL3 = 0 ; ∗ pSPCTL5 = 0 ; ∗ pSPMCTL23 = 0 ; ∗ pSPMCTL45 = 0 ; // d e a c t i v a t e a l l c h a n n e l s f o r t x SPORT2 . ∗ pMT2CS0 = 0 x0 ; ∗ pMT2CS1 = 0 x0 ; ∗ pMT2CS2 = 0 x0 ; ∗ pMT2CS3 = 0 x0 ; // a c t i v a t e only channel 1 f o r SPORT3 . This i s t h e I channel . ∗ pMR3CS0 = 0 x1 ; ∗ pMR3CS1 = 0 x0 ; ∗ pMR3CS2 = 0 x0 ; ∗ pMR3CS3 = 0 x0 ; // d e a c t i v a t e a l l c h a n n e l s f o r t x SPORT4 . ∗ pMT4CS0 = 0 x0 ; ∗ pMT2CS1 = 0 x0 ; ∗ pMT4CS2 = 0 x0 ; ∗ pMT4CS3 = 0 x0 ; // a c t i v a t e only channel 2 f o r SPORT5 . This i s t h e Q channel . ∗ pMR5CS0 = 0 x2 ; ∗ pMR5CS1 = 0 x0 ; ∗ pMR5CS2 = 0 x0 ; ∗ pMR5CS3 = 0 x0 ; // c o n f i g u r e SPORT3 and SPORT5 as a r e c e i v e r /∗ SPEN_A : = Enable SPORT Bank A SLEN32 : = 32 B i t word l e n g t h CKRE : = sample on r i s i n g c l k edge ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! Debug : e r r o r i s s u e 238 FSR := SDEN_A : = SCHEN_A: = ∗/ ∗ pDIV3 = ∗ pDIV5 = Frame Sync Required DMA f o r Channel A enabled DMA f o r Channel A Chaining enabled 0; 0; ∗ pSPCTL3 = (BHD | SPEN_A | SLEN32 | FSR | SDEN_A | SCHEN_A) ; // as o r i g i n a l ∗ pSPCTL5 = (BHD | SPEN_A | SLEN32 | FSR | SDEN_A | SCHEN_A) ; // as o r i g i n a l // e n a b l e time d i v i s i o n m u l t i p l e x i n g . t h e i and q data comes i n one frame // and must be m u l t i p l e x e d . /∗ MCEA : = Multichannel e n a b l e MFD1 : = Multichannel frame delay NCH1 : = Number o f Channels − 1 ∗/ ∗pSPMCTL23 = (MCEA | MFD1 | NCH1 ) ; ∗pSPMCTL45 = (MCEA | MFD1 | NCH1 ) ; // e n a b l e c h a i n i n g : b l o c k A w i l l be f i l l e d f i r s t //start_DMA ( ) ; return ; } /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : set_active_antenna ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f Generates t h e antenna s w i t ch c o n t r o l s i g n a l \ d e t a i l s This procedure three s i g n a l l i n e s a r e routed < t a b l e border ="0" > <tr > <td >D2 −> DAIP03 −> Pin </ t r > <tr > <td >D1 −> DAIP04 −> Pin </ t r > <tr > <td >D0 −> DAIP05 −> Pin </ t r > </ t a b l e > g e n e r a t e s t h e antenna s w i t ch c o n t r o l s i g n a l . The as f o l l o w s on t h e c o n n e c t o r board (V . 0 2 ) : 6 on header H4 </td > 8 on header H4 </td > 10 on header H4 </td > \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ void s e t _ a c t i v e _ a n t e n n a ( i n t antNo ) { // 3 LSB b i t mask antNo &= 0 x7 ; // s e t outputs switch ( antNo ) { case 0 : SRU(LOW, DAI_PB03_I ) ; SRU(LOW, DAI_PB04_I ) ; SRU(LOW, DAI_PB05_I ) ; break ; case 1 : SRU(LOW, DAI_PB03_I ) ; SRU(LOW, DAI_PB04_I ) ; SRU(HIGH, DAI_PB05_I ) ; 239 ANHANG F. SOURCE-CODE DER FIRMWARE break ; case 2 : SRU(LOW, DAI_PB03_I ) ; SRU(HIGH, DAI_PB04_I ) ; SRU(LOW, DAI_PB05_I ) ; break ; case 3 : SRU(LOW, DAI_PB03_I ) ; SRU(HIGH, DAI_PB04_I ) ; SRU(HIGH, DAI_PB05_I ) ; break ; case 4 : SRU(HIGH, DAI_PB03_I ) ; SRU(LOW, DAI_PB04_I ) ; SRU(LOW, DAI_PB05_I ) ; break ; case 5 : SRU(HIGH, DAI_PB03_I ) ; SRU(LOW, DAI_PB04_I ) ; SRU(HIGH, DAI_PB05_I ) ; break ; case 6 : SRU(HIGH, DAI_PB03_I ) ; SRU(HIGH, DAI_PB04_I ) ; SRU(LOW, DAI_PB05_I ) ; break ; case 7 : SRU(HIGH, DAI_PB03_I ) ; SRU(HIGH, DAI_PB04_I ) ; SRU(HIGH, DAI_PB05_I ) ; break ; } return ; } /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : r e s e t _ a n t e n n a _ a r r a y ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f r e s e t s t h e antenna s t a t e machine and s e t s antenna 0 as a c t i v e \ d e t a i l s This procedure r e s e t s t h e antenna s t a t e machine and s e t s antenna 0 as active . \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ void r e s e t _ a n t e n n a _ a r r a y ( void ) { activeAntenna = 0 ; s e t _ a c t i v e _ a n t e n n a ( activeAntenna ) ; return ; } /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : switch_antenna ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f s w i t c h e s t o t h e nex t antenna \ d e t a i l s This procedure s w i t c h e s form t h e a c t u a l antenne t o t h e ne xt one i n a a n t i c l o c k w i s e manner . 240 \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ void switch_antenna ( void ) { i f ( activeAntenna < 7 ) { activeAntenna +=1; } else { activeAntenna = 0 ; } s e t _ a c t i v e _ a n t e n n a ( activeAntenna ) ; return ; } /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : switch_antenna ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f s w i t c h e s t o t h e nex t antenna \ d e t a i l s This procedure s w i t c h e s form t h e a c t u a l antenna t o t h e ne xt one i n a a n t i c l o c k w i s e manner . \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ void tx_SPI_DMA ( unsigned i n t ∗ words , unsigned i n t l e n g t h ) { //bool t e s t = ( ∗pSPIDMAC) & SPIDMAS ; // check whether a DMA t x i s pending //while ( ( ∗pSPIDMAC) & SPIDMAS) { // p r i n t f ( " # Warning : A DMA t r a n s f e r i s pending . \n " ) ; // } // s l a v e s e l e c t on f l a g l i n e 1 . t h i s f l a g i s c l e a r e d i n t h e DMA ISR r o u t i n e //∗pSPIFLG |= SPIFLG1 ; ∗pSPIFLG &= ~SPIFLG1 ; // i n i t i a l i z e t h e SPI DMA r e g i s t e r s // p o i n t e r t o t h e message a r r a y ∗ p I I S P I = ( unsigned i n t ) words ; // number o f messages ∗pCSPI = l e n g t h ; // s t e p s i z e ∗pIMSPI = 1 ; // t h e SPI DMA c o n t r o l r e g i s t e r /∗ INTEN : = Enable DMA i n t e r r u p t on t r a n s f e r FIFOFLSH : = C l e a r DMA FIFO b e f o r e new t r a n s f e r INTERR : = Enable i n t e r r u p t on DMA e r r o r ∗/ ∗pSPIDMAC = (INTEN) ; // e n a b l e t h e DMA t r a n s f e r ∗pSPIDMAC |= SPIDEN ; return ; } /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : init_SPI () ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f i n i t i a l i z e s t h e SPI c o r e module 241 ANHANG F. SOURCE-CODE DER FIRMWARE \ d e t a i l s This procedure i n i t i a l i z e s t h e SPI c o r e module with t h e corresponding registers . SENDZ : = Send z e r o s a f t e r t h e l a s t word i n t h e t x b u f f e r SPIEN : = SPI System e n a b l e SPIMS : = SPI master modus CLKPL : = Clock P o l a r i t y a c t i v e low CPHASE : = SPICLK b e g i n s t o g g l i n g a t t h e s t a r t o f t h e 1 s t data b i t CLKPL and CPHASE d e f i n e s t h e SPI mode : MODE | CLKPL | CPHASE −−−−−−−−−−−−−−−−−−−−− 0 0 0 1 0 1 2 1 0 3 1 1 MSBF : = Most S i g n i f i c a n t b i t f i r s t WL8 : = Word Length i s 8 b i t GM : = F e t c h incoming data i f t h e data Rx f i f o i s f u l l TIMOD2 : = T r a n s f e r I n i t i a t i o n Mode [7 − 11] f o r DMA t r a n s f e r s DMISO : = D i s a b l e MISO on t r a n s f e r In a d d i t i o n , a l l b r i d g e s a r e c o n f i g u r e d c o r r e c t l y . \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ void i n i t _ S P I ( void ) { // c l e a r t h e SPI c o n t r o l r e g i s t e r SPICTL und c l e a r / f l u s h t h e Tx/Rx b u f f e r s ∗pSPICTL = ( TXFLSH | RXFLSH) ; // baudrate : SPICLK = PCLK/4 ∗ BAUDR; BAUDR = 100 ∗pSPIBAUD = 1 0 0 ; // c o n f i g u r a t i o n o f t h e SYSCTL r e g i s t e r t o use t h e FLAG1 as s l a v e s e l e c t //∗pSYSCTL &= ~(PPFLGS | IRQ1EN | TMREXPEN) ; //∗pSYSCTL |= FLG0EN ; // FLAG1 as s l a v e s e l e c t DS1EN | ! SPIFLG1 ∗pSPIFLG = (DS1EN | SPIFLG1 ) ; //∗pSPIFLG = (DS1EN | SPIFLG1 ) ; // setup t h e SPI c o n t r o l r e g i s t e r /∗ SENDZ : = Send z e r o s a f t e r t h e l a s t word i n t h e t x b u f f e r SPIEN : = SPI System e n a b l e SPIMS : = SPI master modus CLKPL : = Clock P o l a r i t y a c t i v e low CPHASE : = SPICLK b e g i n s t o g g l i n g a t t h e s t a r t o f t h e 1 s t data b i t CLKPL and CPHASE d e f i n e s t h e SPI mode : MODE | CLKPL | CPHASE −−−−−−−−−−−−−−−−−−−−− 0 0 0 1 0 1 2 1 0 3 1 1 MSBF : = Most S i g n i f i c a n t b i t f i r s t WL8 : = Word Length i s 8 b i t GM : = F e t c h incoming data i f t h e data Rx f i f o i s f u l l TIMOD2 : = T r a n s f e r I n i t i a t i o n Mode [7 − 11] f o r DMA t r a n s f e r s DMISO : = D i s a b l e MISO on t r a n s f e r ∗/ //∗pSPICTL = ( SPIEN | SPIMS | MSBF | WL8| TIMOD1) ; // ∗pSPICTL = ( SPIEN | SPIMS | CPHASE | CLKPL | MSBF |GM | WL8 | TIMOD2 | 242 SENDZ) ; // i n i t i a l s t a t e ∗pSPICTL = ( SPIEN | CPHASE | CLKPL |SPIMS | MSBF |GM | WL8 |TIMOD1) ; // c o n f i g u r e t h e b r i d g e s return ; } /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : e n a b l e _ S P I ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f e n a b l e s t h e SPI c o r e module \ d e t a i l s This procedure f l u s h e s t h e Rx and Tx b u f f e r s o f t h e SPI c o r e module and e n a b l e s t h e module . \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ void e n a b l e _ S P I ( void ) { // c l e a r t h e Tx/Rx b u f f e r s i n t h e SPICTL r e g i s t e r ∗pSPICTL = ( TXFLSH |RXFLSH) ; // D i s a b l e t h e SPI k e r n e l ∗pSPICTL |= SPIEN ; return ; } /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : d i s a b l e _ S P I ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f d i s a b l e s t h e SPI c o r e module \ d e t a i l s This procedure f l u s h e s t h e Rx and Tx b u f f e r s o f t h e SPI c o r e module and d i s a b l e s t h e module . \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ void d i s a b l e _ S P I ( void ) { // c l e a r t h e Tx/Rx b u f f e r s i n t h e SPICTL r e g i s t e r ∗pSPICTL = ( TXFLSH |RXFLSH) ; // D i s a b l e t h e SPI k e r n e l ∗pSPICTL &= ~SPIEN ; return ; } /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : t x _ S P I ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f t r a n s m i t s words on t h e SPI bus \ d e t a i l s This procedure t r a n s m i t s data on t h e SPI bus . \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ // without DMA. change TIMOD2 t o TIMOD1 too unsigned i n t t x _ S P I ( i n t msg ) { // s l a v e s e l e c t on f l a g l i n e 1 243 ANHANG F. SOURCE-CODE DER FIRMWARE ∗pSPIFLG &= ~SPIFLG1 ; //∗pSPIFLG |= SPIFLG1 ; // f i l l Tx r e g i s t e r ∗pTXSPI = msg ; // wait delay ( 6 0 ) ; // wait u n t i l t r a n s m i s s i o n ends or an e r r o r o c c u r s while ( 1 ) { i f ( SPIF & ∗pSPISTAT ) break ; } delay ( 6 0 ) ; // d i s a b l e s l a v e s e l e c t ∗pSPIFLG |= SPIFLG1 ; //∗pSPIFLG &= ~SPIFLG1 ; return 0 ; } bool delay ( i n t t o c s ) { f o r ( ; t o c s > 0 ; t o c s −−) asm ( " nop ; " ) ; return true ; } 244 irq.c /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ BFH−TI FB E l e k t r o − & Kommunikationstechnik Jlcoweg 1 CH− 3400 Burgdorf ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f This f i l e i n c l u d e s t h e IRQ d i s p a t c h e r procedures \version 1.0 \ f i l e irq . c \date 0 4 . 0 8 . 2 0 1 0 \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ i n c l u d e s and d e f i n i t i o n s ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ # include " i r q . h " # include " hardware . h " v o l a t i l e bool blockReady = f a l s e ; /∗∗< Semaphore i f a new data b l o c k i s ready ∗/ v o l a t i l e bool i s P r o c e s s i n g = f a l s e ; /∗∗< Semaphore i f some c a l c u l a t i o n i s p r o c e s s i n g ∗/ i n t b l o c k _ c n t r = 0 ; /∗∗< i n d i c a t e s which b l o c k i s ready t o p r o c e s s ∗/ void s e t u p _ i n t e r r u p t s ( void ) { // a c t i v a t e dma f a s t i n t e r r u p t i n t e r r u p t f ( SIG_SP5 , IRQ_dispatcher_DMA ) ; // a c t i v a t e SPI f a s t i n t e r r u p t ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Hotspot here ∗∗∗∗∗∗∗∗∗ // ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? doesn ’ t work l i k e t h a t // i n t e r r u p t f ( SIG_P1 , IR Q_ di spa tc he r_ SP I ) ; // c o n f i g u r e t h e e x t e r n a l i n t e r r u p t o f t h e spi −I2C b r i d g e on t h e expansion board //Enable IRQ2 ∗pSYSCTL |= IRQ2EN ; // S e t t h e IRQ p i n s t o be edge s e n s i t i v e asm ( " # i n c l u d e <def21364 . h> " ) ; asm ( " b i t s e t mode2 IRQ2E ; " ) ; // i n t e r r u p t ( SIG_IRQ2 , IR Q_ di sp atc he r_ SP I ) ; return ; } /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : IRQ_dispatcher_DMA ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f IRQ D i s p a t c h e r f o r DMA i n t e r r u p t s \ d e t a i l s This f u n c t i o n i s c a l l e d by a f a s t i n t e r r u p t event from t h e DMA. Sampling on one antenna i s implemented as a TCB i n t h e Chained DMA. A f t e r t h e DMA got enough samples from one antenna an i n t e r r u p t i s g ener ate d . This dispatcher s w i t c h e s t o t h e ne xt antenna and c o n t r o l s t h e a c t i v e RAM bank f o r saving t h e samples . I t r e l e a s e s a l s o t h e RAM bank t h a t need t o \param irqN i d e n t i f i e r o f t h e i n t e r r u p t event \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ v o l a t i l e int samplingStatus = 0 ; void IRQ_dispatcher_DMA ( i n t irqN ) { 245 ANHANG F. SOURCE-CODE DER FIRMWARE // n ex t antenna s t a t e switch_antenna ( ) ; // check whether a f u l l b l o c k has been sampled i f ( s a m p l i n g S t a t u s < 8∗NUM_TURNS) { s a m p l i n g S t a t u s ++; } else { // check whether a c a l c u l a t i o n l a s t e d too long if ( isProcessing ) { // f i l l unprocessed b l o c k again next_TCB_block ( b l o c k _ c n t r ) ; } else { // s t a r t DMA t r a n s f e r t o t h e nex t b l o c k u n t i l //t h e f i l l e d b l o c k w i l l be p ro c es s e d ne xt b l o c k _ c n t r ++; b l o c k _ c n t r %= 2 ; next_TCB_block ( b l o c k _ c n t r ) ; // r e l e a s e new b l o c k blockReady = t r u e ; } samplingStatus = 0 ; } return ; } /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗ Procedure : I RQ _d isp at ch er _S PI ( ) ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ /∗∗ \ b r i e f IRQ D i s p a t c h e r f o r SPI i n t e r r u p t s \ d e t a i l s This f u n c t i o n i s c a l l e d by an i n t e r r u p t event . We have two s o u r c e s of e v e n t s : one s o u r c e i s t h e SPI s t a c k i t s e l f or t h e SPI−to −I2C−Converter on t h e board got messages from t h e i ^2C bus . \param irqN i d e n t i f i e r o f t h e i n t e r r u p t event \todo This r o u t i n e has not been f i n i s h e d y e t . \author s c h a f 3 ∗/ /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ void IR Q_ di sp at ch er _S PI ( i n t irqN ) { // r e s e t t h e c h i s e l e c t b i t FLAG1 ∗pSPIFLG &= ~SPIFLG1 ; // d i s a b l e s l a v e s e l e c t l i n e //∗pSPIFLG |= SPIFLG1 ; // p r i n t f ( " # Warning : A SPI e r r o r occured . \n " ) ; // check f o r t r a n s m i s s i o n e r r o s a f t e r dma completion // i n t h e SIDMAC r e g i s t e r . // i f an e r r o r occured , c l e a r t h e SPIDMAC with 0 x80 // c l e a r a l l e r r o r s i n t h e SPIOVS und SPIUNF return ; } 246 Anhang G Matlab-Simulationen G.1 SIR-Partikel-Filter SIR_simulation.m function SIR_simulation ( ) % SIR_SIMULATION demonstrates t h e SIR− P a r t i c l e − F i l t e r a l g o r i t h m t r a c k i n g % slow and nonmaneuvering t a r g e t s . % % \author saf5 % \version 1.3 % \date 11.07.2011 % clc ; close a l l ; clear a l l ; %% s i m u l a t i o n parameter % time v e c t o r t0 = 0; t1 = 1000; dt = 1 0 ; % dimension o f t h e s t a t e space m = 4; % i n i t i a l observer kinematic s t a t e obsStart = [ 8 0 0 ; 2 0 0 0 ; 0 . 6 ; 0 ] ; % o b s e r v e r s e n s o r p r e c i s i o n ( standard d e v i a t i o n ) [ deg ] sensor_stdev = 3 ; s e n s o r _ s t d e v = s e n s o r _ s t d e v /180 ∗ pi ; % o b s e r v e r t r a c k i n g p r e c i s i o n ( standard d e v i a t i o n ) track_stdev = 5; %i n i t a l t a r g e t k i n e m a t i c s t a t e %t g t S t a r t = [ 6 0 0 ; 6 0 0 0 ; − 1 . 5 ; − 0 . 5 ] ; tgtStart = [1200;8000;0;0]; % maximal turn r a t e a_tu rn = 0 . 5 ; %% k i n e m a t i c s t a t e g e n e r a t i o n t = t 0 : dt : t 1 ; obs = t r a j e c t o r y ( ’ s c 2 ’ , o b s S t a r t , t , t r a c k _ s t d e v ) ; t g t = t r a j e c t o r y ( ’ sc3 ’ , t g t S t a r t , t , 0) ; % n o is y b e a r i n g meauserement b e a r i n g = atan2 ( t g t ( 2 , : ) −obs ( 2 , : ) , t g t ( 1 , : ) −obs ( 1 , : ) ) ; b e a r i n g = random ( ’ norm ’ , bearing , s e n s o r _ s t d e v ) ; %% p a r t i c l e f i l t e r i n i t i a l i z a t i o n 247 ANHANG G. MATLAB-SIMULATIONEN % number o f p a r t i c l e s Np = 1 0 0 0 ; % r a d i u s o f t h e equal d i s t r i b u t e d p a r t i c l e s rad = 8 0 0 0 ; % init particles p r t = i n i t _ p a r t i c l e s (Np, o b s S t a r t ( 1 : 2 , 1 ) , rad ) ; %% c o l l e c t i o n o f t r a c k i n g r e s u l t s % e s t i m a t e d mean p o s i t i o n E_pos = z e r o s ( 2 , s i z e ( t , 2 ) ) ; %% outputs fg1 = figure ( ) ; b i g f i g ; subplot ( 3 , 1 0 , [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 0 ] ) ; hold on ; c o l o r b a r ; c a x i s ( [ 0 2/Np ] ) ; x l a b e l ( ’ x p o s i t i o n [m] ’ ) ; y l a b e l ( ’ y p o s i t i o n [m] ’ ) ; t i t l e ( s t r c a t ( ’ Tracking s i m u l a t i o n , N= ’ , num2str (Np) ) ) ; p l o t ( obs ( 1 , : ) , obs ( 2 , : ) , ’ b ’ ) ; h = p l o t ( obs ( 1 , 1 ) , obs ( 2 , 1 ) , ’ rx ’ ) ; s e t ( h , ’ m a r k er s i z e ’ , 1 0 ) ; plot ( t g t ( 1 , : ) , t g t ( 2 , : ) , ’ r ’ ) ; h = p l o t ( t g t ( 1 , 1 ) , t g t ( 2 , 1 ) , ’ gx ’ ) ; x l a b e l ( ’ x [m] ’ ) ; s e t ( h , ’ m a r k er s i z e ’ , 1 0 ) ; y l a b e l ( ’ y [m] ’ ) ; plot ( prt ( 1 , : ) , prt ( 2 , : ) , ’ . k ’ ) ; % g r a p h i c p r o p e r t i e s and n o t a t i o n s subplot ( 3 , 1 0 , [ 2 1 22 2 3 ] ) ; p l o t ( b e a r i n g /pi ∗ 1 8 0 ) ; xlim ( [ 1 s i z e ( bearing , 2 ) ] ) ; x l a b e l ( ’ Measurement No . [ ] ’ ) ; y l a b e l ( ’ e s t i m a t e d angle [ ř ] ’ ) ; h2 = subplot ( 3 , 1 0 , [ 2 4 25 2 6 ] ) ; hold on ; x l a b e l ( ’ E s t i m a t i o n No . [ ] ’ ) ; y l a b e l ( ’RMS e r r o r [m] ’ ) ; s e t ( h2 , ’ YAxisLocation ’ , ’ r i g h t ’ ) ; subplot ( 3 , 1 0 , [ 2 8 29 3 0 ] ) ; hold on ; x l a b e l ( ’ E s t i m a t i o n No . [ ] ’ ) ; y l a b e l ( ’Number o f e f f e c t i v e p a r t i c l e s [ ] ’ ) ; % f i l e n a m e o f t h e movie and t h e parameters fname = ’ test1_NP_500 ’ ; % i n i t i a l i z e t h e movie a v i o b j = a v i f i l e ( fname , ’ compression ’ , ’ indeo5 ’ , ’ f p s ’ , 6 ) ; %% SIR p a r t i c l e f i l t e r loop [ RIS07 , p . 4 9 ] for i =1:1: size ( t , 2 ) disp ( s t r c a t ( ’ # c u r r e n t f i l t e r i t e r a t i o n number : ’ , num2str ( i ) ) ) ; % s t e p 1 : p r e d i c t random new samples % p r t = predict_random_pf ( prt , dt , 3 ) ; p r t = predict_random_pf ( prt , dt , s e n s o r _ s t d e v +1) ; %s u b p l o t ( 3 , 3 , [ 2 3 5 6 ] ) ; h = p l o t ( p r t ( 1 , : ) , p r t ( 2 , : ) , ’ . g ’ ) ; s e t ( h , ’ markersize ’ , 4 ) ; % s t e p 2 : c a l c u l a t e unnormalized weights p r t = w e i g h t _ p r t ( prt , obs ( 1 : 2 , i ) , b e a r i n g ( i ) , s e n s o r _ s t d e v ) ; % s t e p 3 : normalize weights prt = normalize_prt ( prt ) ; % calc s t a t i s t i c a l properties for i l l u s t r a t i o n s % weighted average E_pos ( 1 , i ) = sum( p r t ( 5 , : ) . ∗ p r t ( 1 , : ) ) . /sum( p r t ( 5 , : ) ) ; E_pos ( 2 , i ) = sum( p r t ( 5 , : ) . ∗ p r t ( 2 , : ) ) . /sum( p r t ( 5 , : ) ) ; % rms e r r o r Err_rms = s q r t ( ( E_pos ( 1 , i )− t g t ( 1 , i ) ) . ^ 2 + ( E_pos ( 2 , i )− t g t ( 2 , i ) ) . ^ 2 ) ; % draw f o r i l l u s t r a t i o n s f i g u r e ( f g 1 ) ; subplot ( 3 , 1 0 , [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 0 ] ) ; hold o f f ; s c a t t e r ( p r t ( 1 , : ) , p r t ( 2 , : ) , 3 , p r t ( 5 , : ) , ’ o ’ ) ; hold on ; c o l o r b a r ; c a x i s ( [ 0 1/ Np ] ) ; 248 G.1. SIR-PARTIKEL-FILTER h = p l o t ( E_pos ( 1 , i ) , E_pos ( 2 , i ) , ’ go ’ ) ; s e t ( h , ’ m a r k e rs i z e ’ , 1 0 ) ; x l a b e l ( ’ x p o s i t i o n [m] ’ ) ; y l a b e l ( ’ y p o s i t i o n [m] ’ ) ; t i t l e ( s t r c a t ( ’ Tracking s i m u l a t i o n , N= ’ , num2str (Np) ) ) ; p l o t ( obs ( 1 , : ) , obs ( 2 , : ) , ’ k ’ ) ; h = p l o t ( obs ( 1 , i ) , obs ( 2 , i ) , ’ rx ’ ) ; s e t ( h , ’ m a r k er s i z e ’ , 1 0 ) ; plot ( t g t ( 1 , : ) , t g t ( 2 , : ) , ’k ’ ) ; h = p l o t ( t g t ( 1 , i ) , t g t ( 2 , i ) , ’ gx ’ ) ; s e t ( h , ’ m a r k er s i z e ’ , 1 0 ) ; subplot ( 3 , 1 0 , [ 2 4 25 2 6 ] ) ; p l o t ( i , Err_rms , ’ x ’ ) ; %s u b p l o t ( 3 , 1 0 , [ 2 8 29 3 0 ] ) ; p l o t ( i , Neff , ’ x ’ ) ; drawnow ; i f (mod( i , 1 0 ) == 0 || i == 1 ) s t r = s t r c a t ( ’ s c r e e n s h o t _ ’ , num2str ( i ) , ’ . f i g ’ ) ; s a v e a s ( fg1 , s t r ) ; end % s t e p 4 : resample i f needed [ p r t Neff ] = r e s a m p l e _ p r t ( p r t ) ; subplot ( 3 , 1 0 , [ 2 8 29 3 0 ] ) ; p l o t ( i , Neff , ’ x ’ ) ; drawnow ; % save frame a v i o b j =addframe ( a v i o b j , getframe ( g c f ) ) ; %adds frames t o t h e AVI f i l e %pause ( 0 . 1 ) ; end % plot f i n a l results f i g u r e ( f g 1 ) ; subplot ( 3 , 1 0 , [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 0 ] ) ; hold on ; p l o t ( E_pos ( 1 , : ) , E_pos ( 2 , : ) , ’ rx ’ ) ; % show and save t h e movie a v i o b j = c l o s e ( a v i o b j ) ; %c l o s e s t h e AVI f i l e %In order t o run t h e a v i from MATLAB command window : %! t e s t . a v i& end 249 ANHANG G. MATLAB-SIMULATIONEN init_particles.m f u n c t i o n p r t = i n i t _ p a r t i c l e s (Np, pos , rad ) % SIR_INIT_PARTICLES i n i t i a l i z e s e q u a l l y d i s t r i b u t e d p a r t i c l e s around a % p o s i t i o n . A l l p a r t i c l e s a r e arranged i n a c i r c l e arount t h a t p o s i t i o n . % % % % % % % % % \param \param Np pos number o f p a r t i c l e s [ X Y ] c o o r d i n a t e s o f t h e c e n t e r where t h e p a r t i c l e s a r e distributed r a d i u s o f t h e c i r c l e w ithin t h e p a r t i c l e s equally distributed p a r t i c l e s \param \return rad prt \author \version \date saf5 1.3 11.07.2011 % generate the p a r t i c l e c e l l s p r t = z e r o s ( 5 ,Np) ; % max . random speed mSpeed = 1 ; f o r i = 1 :Np % g e n e r a t e equal d i s t r i b u t e d p o i n t s i n a c i r c l e rd = I n f ; while rd > rad p r t ( 1 : 2 , i ) = r a n d i ([ − rad , rad ] , 1 , 2 ) ’ ; %p r t ( 3 , i ) = mSpeed∗rand ( 1 ) ; %p r t ( 4 , i ) = mSpeed∗rand ( 1 ) ; rd = norm ( p r t ( : , i ) ) ; end % save them around t h e o b s e r v e r p r t ( 1 : 2 , i ) = p r t ( 1 : 2 , i ) +[ pos ( 1 , 1 ) ; pos ( 2 , 1 ) ] ; % add i n i t i a l weight p r t ( 5 , i ) = 1/Np; end 250 G.1. SIR-PARTIKEL-FILTER normalize_prt.m function prt = normalize_prt ( prt ) %NORMALIZE_PRT n o r m a l i z e s t h e p a r t i c l e weights % % \param prt p a r t i c l e s with unnormalized weights % \return prt p a r t i c l e s with normalized weights % % \author saf5 % \version 1.3 % \date 11.07.2011 p r t ( 5 , : ) = p r t ( 5 , : ) . /sum( p r t ( 5 , : ) ) ; end 251 ANHANG G. MATLAB-SIMULATIONEN predict_random_pf.m f u n c t i o n rnd_prt = predict_random_pf ( prt , dt , std_dev ) ; %SIR_PREDICT_RANDOM_PF p r e d i c t s t h e nex t k i n e m a t i c s t a t e o f each sample i n a % random way . % \param prt degenerated p a r t i c l e s % \param dt time s t e p between two meausrements % \param std_dev standard d e v i a t i o n o f t h e angle measurement % \return rnd_prt random p r e d i c t e d p a r t i c l e s % % \author saf5 % \version 1.3 % \date 11.07.2011 % c o n s t a n t v e l o c i t y t r a n s i t i o n matrix F_cv = [ 1 0 dt 0 ; 0 1 0 dt ; 0 0 1 0 ; 0 0 0 1 ] ; % random power matrix gamma = [ dt ^2/2 0 ; 0 dt ^2/2; 0 dt ; 0 dt ] ; % with double v e l o c i t y n o i s e % gamma = [ dt ^2/2 0 ; 0 dt ^2/2; dt 0 ; 0 dt ] ; % with v e l o c i t y rnd_prt = z e r o s ( 5 , s i z e ( prt , 2 ) ) ; f o r i = 1 : 1 : s i z e ( prt , 2 ) rnd_prt ( 1 : 4 , i ) = F_cv ∗ p r t ( 1 : 4 , i ) + gamma∗ [ std_dev 0 ; 0 std_dev ] ∗ randn ( 2 , 1 ) ; end end 252 G.1. SIR-PARTIKEL-FILTER resample_prt.m f u n c t i o n [ r e s P r t Neff ] = r e s a m p l e _ p r t ( p r t ) %SIR_RESAMPLE_PRT resamples a l l p a r t i c l e s with an uniform weighting and s o l v e s % t h e problem o f degeneracy i n t h e p a r t i c l e f i l t e r . The number o f resampled % p a r t i c l e s i s s i m i l a r t o t h e number o f degenerated p a r t i c l e s . % \param prt degenerated p a r t i c l e s % \return resPrt resampled p a r t i c l e s % \return Neff number o f e f f e c t i v e p a r t i c l e s b e f o r e resampling % % \author saf5 % \version 1.3 % \date 11.07.2011 % resampled p a r t i c l e s r e s P r t = z e r o s ( 5 , s i z e ( prt , 2 ) ) ; r e s P r t ( 5 , : ) = 1/ s i z e ( prt , 2 ) ; % 1/N % degeneracy t h r e s h o l d d i v i s o r Nthr = 3 ; % cumulative sum o f weights csw = z e r o s ( 1 , s i z e ( prt , 2 ) ) ; % c a l c u l a t e t h e e f f e c t i v e number o f p a r t i c l e s b e f o r e resampling Neff = 0 ; Neff = 1/sum( p r t ( 5 , : ) . ^ 2 ) %i f Neff < s i z e ( prt , 2 ) /Nthr % b u i l d t h e cumulative sum weight elements csw ( 1 ) = p r t ( 5 , 1 ) ; f o r i = 2 : 1 : s i z e ( prt , 2 ) csw ( i ) = csw ( i − 1)+ p r t ( 5 , i ) ; end % propagate a l l p a r t i c l e s with high weights t o new p a r t i c l e s i = 1; wght = 1/ s i z e ( prt , 2 ) ; f o r j = 1 : 1 : s i z e ( prt , 2 ) sWght = wght + wght ∗ ( j − 1) ; while ( sWght > csw ( i ) ) && ( i < numel ( csw ) ) i = i + 1; end resPrt ( 1 : 2 , j ) = prt ( 1 : 2 , i ) ; end end 253 ANHANG G. MATLAB-SIMULATIONEN trajectory.m f u n c t i o n t r a j = t r a j e c t o r y ( s c e n a r i o , s t a r t P o i n t , timeVec , std_dev ) % TRAJ g e n e r a t e s t h e d e s i r e d t r a j e c t o r y with some i n i t i a l k i n e m a t i c s t a t e s . % \param scenario d e s i r e d s c e n a r i o ( ’ sc1 ’ , ’ sc2 ’ , ’ sc3 ’ , ’ sc4 ’ , ’ sc5 ’) % \param startPoint s t a r t i n g point of the t r a j e c t o r y $ % \param timeVec time v e c t o r % \param std_dev standard d e v i a t i o n o f t h e n o i s y t r a j e c t o r y % \return traj noise corrupted t r a j e c t o r y % % \author saf5 % \version 1.3 % \date 11.07.2011 % % which s c e n a r i o ? i f strcmp ( s c e n a r i o , ’ s c 1 ’ ) t r a j = s c 1 ( s t a r t P o i n t , timeVec , std_dev ) ; e l s e i f strcmp ( s c e n a r i o , ’ s c 2 ’ ) t r a j = s c 2 ( s t a r t P o i n t , timeVec , std_dev ) ; e l s e i f strcmp ( s c e n a r i o , ’ s c 3 ’ ) t r a j = s c 3 ( s t a r t P o i n t , timeVec , std_dev ) ; e l s e i f strcmp ( s c e n a r i o , ’ s c 4 ’ ) t r a j = s c 4 ( s t a r t P o i n t , timeVec , std_dev ) ; end end % c o n s t a n t v e l o c i t y and d i r e c t i o n f u n c t i o n t r a j = s c 1 ( s t a r t P o i n t , timeVec , std_dev ) m = s i z e ( timeVec , 2 ) ; T = timeVec ( 2 )−timeVec ( 1 ) ; % e v o l u t i o n model F = [1 0 T 0; 0 1 0 T ; 0 0 1 0; 0 0 0 1 ] ; % n o i s e d e n s i t y model Q = [1/3∗T^3 0 1/2∗T^2 0 ; 0 1/3∗T^3 0 1/2∗T^2;1/2∗T^2 0 1/3∗T^3 0 ; 0 1/2∗T^2 0 1/3∗T ^ 3 ] ; t r a j = z e r o s ( 4 ,m) ; traj (: ,1) = startPoint ; f o r i = 2 :m % s t a r t the evolution t r a j ( : , i ) = F∗ t r a j ( : , i − 1) ; % add white g a u s s i a n n o i s e t r a j ( 1 : 2 , i − 1) = random ( ’ norm ’ , t r a j ( 1 : 2 , i − 1) , std_dev ) ; end end f u n c t i o n t r a j = s c 2 ( s t a r t P o i n t , timeVec , std_dev ) m = s i z e ( timeVec , 2 ) ; T = timeVec ( 2 )−timeVec ( 1 ) ; % e v o l u t i o n model F = [1 0 T 0; 0 1 0 T ; 0 0 1 0; 0 0 0 1 ] ; % a c c e l e r a t i o n model a c c = z e r o s ( 2 ,m) ; a c c ( 1 , f l o o r ( 2 ∗m/10) : f l o o r ( 5 ∗m/10) ) = 0 . 0 5 ; a c c ( 2 , f l o o r ( 2 ∗m/10) : f l o o r ( 3 ∗m/10) ) = 0 . 1 ; a c c ( 1 , f l o o r ( 3 ∗m/10) : f l o o r ( 4 ∗m/10) ) = − 0.08; a c c ( 2 , f l o o r ( 6 ∗m/10) : f l o o r ( 7 ∗m/10) ) = 0 . 0 8 ; a c c ( 1 , f l o o r ( 8 ∗m/10) : f l o o r ( 1 0 ∗m/10) ) = − 0.018; % trajectory calculation t r a j = z e r o s ( 4 ,m) ; traj (: ,1) = startPoint ; f o r i = 2 :m % s t a r t the evolution t r a j ( : , i ) = F∗ t r a j ( : , i − 1)+ [ 0 ; 0 ; T∗ a c c ( 1 , i ) ; T∗ a c c ( 2 , i ) ] ; % add white g a u s s i a n n o i s e t r a j ( 1 : 2 , i − 1) = random ( ’ norm ’ , t r a j ( 1 : 2 , i − 1) , std_dev ) ; 254 G.1. SIR-PARTIKEL-FILTER end end f u n c t i o n t r a j = s c 3 ( s t a r t P o i n t , timeVec , std_dev ) % c o n s t a n t turn r a t e and v e l o c i t y model m = s i z e ( timeVec , 2 ) ; T = timeVec ( 2 )−timeVec ( 1 ) ; % e v o l u t i o n model % c l o c k w i s e turn t r a n s i t i o n with c o n s t a n t turn r a t e omega_ct = 0 . 0 0 1 ; F = [ 1 0 s i n ( omega_ct∗T ) /omega_ct −(1− cos ( omega_ct∗T ) ) /( omega_ct ) ; 0 1 (1 − cos ( omega_ct∗T ) ) /omega_ct s i n ( omega_ct∗T ) /omega_ct ; 0 0 cos ( omega_ct∗T ) − s i n ( omega_ct∗T ) ; 0 0 s i n ( omega_ct∗T ) cos ( omega_ct∗T ) ]; % trajectory calculation t r a j = z e r o s ( 4 ,m) ; traj (: ,1) = startPoint ; f o r i = 2 :m % s t a r t the evolution t r a j ( : , i ) = F∗ t r a j ( : , i − 1) ; % add white g a u s s i a n n o i s e t r a j ( 1 : 2 , i − 1) = random ( ’ norm ’ , t r a j ( 1 : 2 , i − 1) , std_dev ) ; end end f u n c t i o n t r a j = s c 4 ( s t a r t P o i n t , timeVec , std_dev ) m = s i z e ( timeVec , 2 ) ; T = timeVec ( 2 )−timeVec ( 1 ) ; % e v o l u t i o n model F = [1 0 T 0; 0 1 0 T ; 0 0 1 0; 0 0 0 1 ] ; % a c c e l e r a t i o n model a c c = z e r o s ( 2 ,m) ; a c c ( 1 , f l o o r ( 3 ∗m/10) : f l o o r ( 5 ∗m/10) ) = − 0.02; a c c ( 2 , f l o o r ( 2 ∗m/10) : f l o o r ( 4 ∗m/10) ) = − 0.05; % trajectory calculation t r a j = z e r o s ( 4 ,m) ; traj (: ,1) = startPoint ; f o r i = 2 :m % s t a r t the evolution t r a j ( : , i ) = F∗ t r a j ( : , i − 1)+ [ 0 ; 0 ; T∗ a c c ( 1 , i ) ; T∗ a c c ( 2 , i ) ] ; % add white g a u s s i a n n o i s e t r a j ( 1 : 2 , i − 1) = random ( ’ norm ’ , t r a j ( 1 : 2 , i − 1) , std_dev ) ; end end 255 ANHANG G. MATLAB-SIMULATIONEN weight_prt.m f u n c t i o n p r t = w e i g h t _ p r t ( prt , obs , meas , s e n s o r _ s t d e v ) % SIR_weight_prt weights t h e p a r t i c l e s p r t a c c o r d i n g t o t h e measurement % d i s t r i b u t i o n . The r e s u l t i s not normalized . % \param prt v e c t o r with a l l p a r t i c l e s % \param obs observer position [ x ; y ] % \param meas a c t u a l angle measurement a t p o s i t i o n obs % \param sensor_stddev standard d e v i a t i o n o f t h e measurement s e n s o r % \return prt weighted p a r t i c l e s % % \author saf5 % \version 1.3 % \date 11.07.2011 %p r t ( 5 , : ) = 1/( s q r t ( 2 ∗ p i ) ∗ s e n s o r _ s t d e v ) ∗exp ( − (meas−atan ( p r t ( 2 , : ) / p r t ( 1 , : ) ) ) . ^ 2 / ( 2 ∗ s e n s o r _ s t d e v ^2) ) ; p r t ( 5 , : ) = normpdf ( atan2 ( ( p r t ( 2 , : ) −obs ( 2 , : ) ) , ( p r t ( 1 , : ) −obs ( 1 , : ) ) ) , meas , sensor_stdev ) ; end 256 G.2. ASIR-MM-FILTER G.2 ASIR-MM-Filter ASIR_MM_simulation.m f u n c t i o n ASIR_MM_simulation ( ) % ASIR_MM_SIMULATION demonstrates t h e ASIR_MM− P a r t i c l e − F i l t e r a l g o r i t h m tracking % f a s t and h i g h l y maneuvering t a r g e t s . % % \author saf5 % \version 1.3 % \date 20.07.2011 clc ; close a l l ; clear a l l ; %% s i m u l a t i o n parameter % time v e c t o r t0 = 0; t1 = 700; dt = 5 ; % i n i t i a l observer kinematic s t a t e obsStart = [500;2000;0.5; −1]; % o b s e r v e r s e n s o r p r e c i s i o n ( standard d e v i a t i o n ) [ deg ] sensor_stdev = 3 ; s e n s o r _ s t d e v = s e n s o r _ s t d e v /180 ∗ pi ; % o b s e r v e r t r a c k i n g p r e c i s i o n ( standard d e v i a t i o n ) [m] track_stdev = 5; %i n i t a l t a r g e t k i n e m a t i c s t a t e t g t S t a r t = [1000;8000; −3; −0.1]; %t g t S t a r t = [ 6 0 0 ; 5 0 0 ; 0 ; 0 ] ; %t g t S t a r t = [ 6 0 0 ; 4 0 0 0 ; − 1 . 5 ; − 0 . 5 ] ; % maximal turn r a t e a_tu rn = 9 ; % maximal t a r g e t speed m_speed = 5 . 2 ; %% k i n e m a t i c s t a t e g e n e r a t i o n t = t 0 : dt : t 1 ; obs = t r a j e c t o r y ( ’ s c 2 ’ , o b s S t a r t , t , t r a c k _ s t d e v ) ; t g t = t r a j e c t o r y ( ’ sc3 ’ , t g t S t a r t , t , 0) ; % n o is y b e a r i n g meauserement b e a r i n g = atan2 ( t g t ( 2 , : ) −obs ( 2 , : ) , t g t ( 1 , : ) −obs ( 1 , : ) ) ; b e a r i n g = random ( ’ norm ’ , bearing , s e n s o r _ s t d e v ) ; %% p a r t i c l e f i l t e r i n i t i a l i z a t i o n % number o f p a r t i c l e s Np = 1 0 0 0 ; % r a d i u s o f t h e equal d i s t r i b u t e d p a r t i c l e s a t t h e rad = 5 0 ; % init particles p r t = i n i t _ p a r t i c l e s (Np, t g t S t a r t ( 1 : 2 , 1 ) , rad , 0 ) ; % markov t r a n s i s t i o n matrix shows t h e p r o b a b i l i t y o f t h e t r a n s i t i o n between % one k i n e m a t i c regime t o t h e o t h e r from time k t o k+1 % PI_ij = [0.5 0.4 0.1; % 0.45 0.1 0.45; % 0.1 0.4 0.5 ] ; % PI_ij = [0.4 0.4 0.2; % 0.3333 0.3333 0.33333; % 0.2 0.4 0.4]; % P I _ i j = [0.333 0.333 0.333; % 0.333 0.333 0.333; % 0.333 0.333 0 . 3 3 3 ] ; % 257 ANHANG G. MATLAB-SIMULATIONEN P I _ i j = [0.05 0.05 0 . 9 ; 0.05 0.05 0.9; 0.05 0.05 0.9]; % P I _ i j = [0.9 0.05 0.05; % 0.7 0.25 0.05; % 0.9 0.05 0.05]; % P I _ i j = [0 0 1; % 0 0 1; % 0 0 1]; %% c o l l e c t i o n o f t r a c k i n g r e s u l t s % support p o i n t s as mu_k^ i . they c o n t a i n k i n e m a t i c s t a t e v e c t o r s propagated % with regime r . mu_k = c e l l ( 3 , 1 ) ; % importance d e n s i t y % e s t i m a t e d mean p o s i t i o n E_pos = z e r o s ( 2 , s i z e ( t , 2 ) ) ; %% outputs fg1 = figure ( ) ; b i g f i g ; subplot ( 3 , 1 0 , [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 0 ] ) ; hold on ; colorbar ; x l a b e l ( ’ x p o s i t i o n [m] ’ ) ; y l a b e l ( ’ y p o s i t i o n [m] ’ ) ; t i t l e ( s t r c a t ( ’ Tracking s i m u l a t i o n , N= ’ , num2str (Np) ) ) ; p l o t ( obs ( 1 , : ) , obs ( 2 , : ) , ’ k ’ ) ; h = p l o t ( obs ( 1 , 1 ) , obs ( 2 , 1 ) , ’ rx ’ ) ; s e t ( h , ’ m a r k er s i z e ’ , 1 0 ) ; plot ( t g t ( 1 , : ) , t g t ( 2 , : ) , ’ r ’ ) ; h = p l o t ( t g t ( 1 , 1 ) , t g t ( 2 , 1 ) , ’ gx ’ ) ; x l a b e l ( ’ x [m] ’ ) ; s e t ( h , ’ m a r k er s i z e ’ , 1 0 ) ; y l a b e l ( ’ y [m] ’ ) ; h = p l o t ( p r t ( 1 , : ) , p r t ( 2 , : ) , ’ k ’ ) ; s e t ( h , ’ m a r k er s i z e ’ , 4 ) ; % g r a p h i c p r o p e r t i e s and n o t a t i o n s subplot ( 3 , 1 0 , [ 2 1 22 2 3 ] ) ; p l o t ( b e a r i n g /pi ∗ 1 8 0 ) ; xlim ( [ 1 s i z e ( bearing , 2 ) ] ) ; x l a b e l ( ’ Measurement No . [ ] ’ ) ; y l a b e l ( ’ e s t i m a t e d angle [ ř ] ’ ) ; h2 = subplot ( 3 , 1 0 , [ 2 4 25 2 6 ] ) ; hold on ; x l a b e l ( ’ E s t i m a t i o n No . [ ] ’ ) ; y l a b e l ( ’RMS e r r o r [m] ’ ) ; s e t ( h2 , ’ YAxisLocation ’ , ’ r i g h t ’ ) ; subplot ( 3 , 1 0 , [ 2 8 29 3 0 ] ) ; hold on ; x l a b e l ( ’ E s t i m a t i o n No . [ ] ’ ) ; y l a b e l ( ’Number o f e f f e c t i v e p a r t i c l e s [ ] ’ ) ; % i n i t i a l i z e t h e movie % f i l e n a m e o f t h e movie and t h e parameters fname = ’ test1_NP_1000 ’ ; a v i o b j = a v i f i l e ( fname , ’ compression ’ , ’ indeo5 ’ , ’ f p s ’ , 6 ) ; %% ASIR−MM p a r t i c l e f i l t e r loop [ RIS07 , p . 1 2 5 ] for i =1:1: size ( t , 2 ) disp ( s t r c a t ( ’ ∗ a c t u a l round number : ’ , num2str ( i ) ) ) ; % s t e p 1 : c r e a t e a d i s c r e t e importance d e n s i t y from support p o i n t s t h a t % a r e c r e a t e d by t h r e e k i n e m a t i c regimes : c l o c k w i s e turn , c o n s t a n t % v e l o c i t y and a n t i c l o c k w i s e turn % f i r s t : propagate each p a r t i c l e i n each regime . Now we have 3∗Np % particles mu_k = g e n e r a t e _ s u p p o r t P ( prt , obs ( 3 : 4 , i ) , a_turn , dt ) ; % second : compute weights o f each propagated p a r t i c l e mu_k = weight_supportP ( mu_k , prt , obs ( 3 : 4 , i ) , b e a r i n g ( i ) , s e n s o r _ s t d e v , PI_ij ) ; 258 G.2. ASIR-MM-FILTER % s t e p 2 : Draw N samples { i , r } from t h e d i s c r e t e d i s t r i b u t i o n gen era ted % in step 1 . p r t = resample_mu_k ( mu_k , Np) ; % s t e p 3 : p r e d i c t t h e p a r t i c l e s and weight them with t h e samples % g ene rate d i n s t e p 2 . % f i r s t : random propagation combined with k i n e m a t i c regime propagation p r t = p r e d i c t _ r n d _ p r t ( prt , obs ( 3 : 4 , i ) , a_turn , dt , s e n s o r _ s t d e v , m_speed ) ; % second : c a l c u l a t e normalized weights p r t = w e i g h t _ p r t ( mu_k , prt , obs , b e a r i n g ( i ) , s e n s o r _ s t d e v ) ; % s t e p 4 : resample i f needed [ p r t Neff ] = r e s a m p l e _ p r t ( p r t ) ; % s c a t t e r ( p r t ( 1 , : ) , p r t ( 2 , : ) , 3 , p r t ( 5 , : ) , ’ o ’ ) ; hold on ; c o l o r b a r ; % calc s t a t i s t i c a l properties for i l l u s t r a t i o n s % weighted average E_pos ( 1 , i ) = sum( p r t ( 5 , : ) . ∗ p r t ( 1 , : ) ) . /sum( p r t ( 5 , : ) ) ; E_pos ( 2 , i ) = sum( p r t ( 5 , : ) . ∗ p r t ( 2 , : ) ) . /sum( p r t ( 5 , : ) ) ; % rms e r r o r Err_rms = s q r t ( ( E_pos ( 1 , i )− t g t ( 1 , i ) ) . ^ 2 + ( E_pos ( 2 , i )− t g t ( 2 , i ) ) . ^ 2 ) ; % draw f o r i l l u s t r a t i o n s f i g u r e ( f g 1 ) ; subplot ( 3 , 1 0 , [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 0 ] ) ; hold o f f ; s c a t t e r ( p r t ( 1 , : ) , p r t ( 2 , : ) , 3 , p r t ( 5 , : ) , ’ o ’ ) ; hold on ; c o l o r b a r ; c a x i s ( [ 0 1/ Np ] ) ; h = p l o t ( E_pos ( 1 , i ) , E_pos ( 2 , i ) , ’ go ’ ) ; s e t ( h , ’ m a r k e rs i z e ’ , 1 0 ) ; x l a b e l ( ’ x p o s i t i o n [m] ’ ) ; y l a b e l ( ’ y p o s i t i o n [m] ’ ) ; t i t l e ( s t r c a t ( ’ Tracking s i m u l a t i o n , N= ’ , num2str (Np) ) ) ; p l o t ( obs ( 1 , : ) , obs ( 2 , : ) , ’ k ’ ) ; h = p l o t ( obs ( 1 , i ) , obs ( 2 , i ) , ’ rx ’ ) ; s e t ( h , ’ m a r k er s i z e ’ , 1 0 ) ; plot ( t g t ( 1 , : ) , t g t ( 2 , : ) , ’k ’ ) ; h = p l o t ( t g t ( 1 , i ) , t g t ( 2 , i ) , ’ gx ’ ) ; s e t ( h , ’ m a r k er s i z e ’ , 1 0 ) ; subplot ( 3 , 1 0 , [ 2 4 25 2 6 ] ) ; p l o t ( i , Err_rms , ’ x ’ ) ; subplot ( 3 , 1 0 , [ 2 8 29 3 0 ] ) ; p l o t ( i , Neff , ’ x ’ ) ; i f (mod( i , 1 0 ) == 0 || i == 1 ) s t r = s t r c a t ( ’ s c r e e n s h o t _ ’ , num2str ( i ) , ’ . f i g ’ ) ; s a v e a s ( fg1 , s t r ) ; end % save frame a v i o b j =addframe ( a v i o b j , getframe ( g c f ) ) ; %adds frames t o t h e AVI f i l e %pause ( 0 . 1 ) ; end % plot f i n a l results f i g u r e ( f g 1 ) ; subplot ( 3 , 1 0 , [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 0 ] ) ; hold on ; p l o t ( E_pos ( 1 , : ) , E_pos ( 2 , : ) , ’ rx ’ ) ; % show and save t h e movie a v i o b j = c l o s e ( a v i o b j ) ; %c l o s e s t h e AVI f i l e %In order t o run t h e a v i from MATLAB command window : %! t e s t . a v i& end 259 ANHANG G. MATLAB-SIMULATIONEN generate_supportP.m f u n c t i o n mu_k = g e n e r a t e _ s u p p o r t P ( prt , v_obs , a_turn , T ) ; %GENERATE_SUPPORTPOINTS g e n e r a t e s support p o i n t s out o f a l l p a r t i c l e s a t %time k . each k i n e m a t i c regime produces one support p o i n t per p a r t i c l e . We %have t h r e e k i n e m a t i c regimes : a n t i c o c k w i s e turn ( a c t ) , c o n s t a n t v e l o c i t y %( cv ) and c l o c k w i s e turn ( c t ) . % \param prt p a r t i c l e s vector % \param v_obs [ v_x v_y ] v e l o c i t y o f t h e o b s e r v e r % \param a_ turn c o n s t a n t turn r a t e % \param T time between two measurements % \return mu_k support p o i n t s c e l l with { mu_act , mu_cv , mu_ct } % mu_act : = support p o i n t s v e c t o r f o r % a n t i c l o c k w i s e turn % mu_cv : = support p o i n t s v e c t o r f o r % constant velocity % mu_ct : = support p o i n t s v e c t o r f o r % c l o c k w i s e turn % % \author saf5 % \version 1.3 % \date 11.07.2011 % g e n e r a t e mu_k c e l l a r r a y . % act [ prt1 prt2 prt3 . . . % cv prt1 prt2 prt3 . . . % ct prt1 prt2 prt3 . . . ] ; mu_k = c e l l ( 3 , 1 ) ; c t = z e r o s ( 7 , s i z e ( prt , 2 ) ) ; cv = z e r o s ( 7 , s i z e ( prt , 2 ) ) ; a c t = z e r o s ( 7 , s i z e ( prt , 2 ) ) ; % c t t r a n s i t i o n matrix c t = regime_propagation ( prt , a_turn , v_obs , T , 1 ) ; % cv t r a n s i t i o n matrix cv = regime_propagation ( prt , a_turn , v_obs , T , 2 ) ; % a c t t r a n s i t i o n matrix a c t = regime_propagation ( prt , a_turn , v_obs , T , 3 ) ; mu_k = { c t ; cv ; a c t } ; disp ( ’ ∗ support p o i n t s g ene rat ed . ’ ) ; end 260 G.2. ASIR-MM-FILTER init_particles.m f u n c t i o n p r t = i n i t _ p a r t i c l e s (Np, pos , rad , mSpeed ) % ASIR_INIT_PARTICLES i n i t i a l i z e s equal d i s t r i b u t e d p a r t i c l e s around a position . the p a r t i c l e s % a r e arranged i n a c i r c l e arount t h a t p o s i t i o n . % \param Np number o f p a r t i c l e s % \param pos [ X Y ] c o o r d i n a t e s o f t h e c e n t e r where t h e p a r t i c l e s a r e % distributed % \param rad r a d i u s o f t h e c i r c l e w ithin t h e p a r t i c l e s % \param mSpeed maximal p a r t i c l e speed i n one d i r e c t i o n % \return prt equally distributed p a r t i c l e s % % \author saf5 % \version 1.3 % \date 11.07.2011 p r t = z e r o s ( 7 ,Np) ; prt ( 6 , : ) = 2; % prt = [ x % y % v_x % v_y % weight_k % regime_k % parent_index ] f o r i = 1 :Np % g e n e r a t e equal d i s t r i b u t e d p o i n t s i n a c i r c l e rd = I n f ; while rd > rad p r t ( 1 : 2 , i ) = r a n d i ([ − rad , rad ] , 1 , 2 ) ’ ; % random numbers i n [−mSpeed mSpeed ] p r t ( 3 , i ) = −mSpeed+2∗mSpeed∗rand ( 1 ) ; p r t ( 4 , i ) = −mSpeed+2∗mSpeed∗rand ( 1 ) ; rd = norm ( p r t ( 1 : 2 , i ) ) ; end % save them around t h e o b s e r v e r p r t ( 1 : 2 , i ) = p r t ( 1 : 2 , i ) +[ pos ( 1 , 1 ) ; pos ( 2 , 1 ) ] ; % add i n i t i a l weight p r t ( 5 , i ) = 1/Np; % add a random regime number t o each p a r t i c l e prt ( 6 , i ) =randi ( 3 ) ; % add p a r t i c l e number prt (7 , i ) = i ; end 261 ANHANG G. MATLAB-SIMULATIONEN predict_rnd_prt.m f u n c t i o n rnd_prt = p r e d i c t _ r n d _ p r t ( prt , v_obs , a_turn , dt , std_dev , m_speed ) %A S I R _ p r e d i c t _ r n d _ p r t p r e d i c t s t h e nex t k i n e m a t i c s t a t e o f each sample i n a % random way . F i r s t o f a l l , t h e sample i s propagated with t h e l a s t saved % k i n e m a t i c regime . The s p e e d _ v e c t o r i s l i m i t e d with m_speed i n each % direction . % % % % % % % % % % \param \param \param \param \param \param prt v_obs a_ turn dt std_dev m_speed \author \version \date saf5 1.3 11.07.2011 p a r t i c l e s vector [ v_x v_y ] v e l o c i t y o f t h e o b s e r v e r c o n s t a n t turn r a t e time s t e p between two measurements angle meausrement s e n s o r standard d e v i a t i o n maximal speed % random n o i s e power matrix gamma = [ dt ^2/2 0 ; 0 dt ^2/2; dt 0 ; 0 dt ; 0 0 ; 0 0 ; 0 0 ] ; % with double velocity noise %gamma = [ dt ^2 0 ; 0 dt ^ 2 ; dt 0 ; 0 dt ; 0 0 ; 0 0 ; 0 0 ] ; % with double v e l o c i t y noise rnd_prt = p r t ; f o r i = 1 : 1 : s i z e ( prt , 2 ) rnd_prt ( : , i ) = regime_propagation ( p r t ( : , i ) , a_turn , v_obs , dt , p r t ( 6 , i ) ) + gamma∗ [ std_dev 0 ; 0 std_dev ] ∗ randn ( 2 , 1 ) ; % s e t speed boundaries i f rnd_prt ( 3 , i ) > m_speed rnd_prt ( 3 , i ) = m_speed ; e l s e i f rnd_prt ( 3 , i ) < −m_speed rnd_prt ( 3 , i ) = −m_speed ; end i f rnd_prt ( 4 , i ) > m_speed rnd_prt ( 4 , i ) = m_speed ; e l s e i f rnd_prt ( 4 , i ) < −m_speed rnd_prt ( 4 , i ) = −m_speed ; end end disp ( ’ ∗ p a r t i c l e s propagated . ’ ) ; end 262 G.2. ASIR-MM-FILTER regime_propagation.m f u n c t i o n p r t = regime_propagation ( prt , a_turn , v_obs , T , r ) %REGIME_PROPAGATION propagates t h e p a r t i c l e p r t within t h e k i n e m a t i c regime %r . % \param prt p a r t i c l e s vector % \param a_ turn c o n s t a n t turn r a t e % \param v_obs [ v_x v_y ] v e l o c i t y o f t h e o b s e r v e r % \param T t i m e s t e p per propagation % \param r regime v a r i a b l e % r = 1 : = c l o c k w i s e turn % r = 2 := constant veoctiy % r = 3 : = a n t i c l o c k w i s e turn % \param prt propagated p a r t i c l e s % \author saf5 % \version 1.3 % \date 11.07.2011 s w i tc h r case 1 f o r i = 1 : 1 : s i z e ( prt , 2 ) % c t t r a n s i t i o n matrix omega_ct = a _turn . / s q r t ( ( p r t ( 3 , i ) +v_obs ( 1 ) ) . ^ 2 + ( p r t ( 4 , i ) +v_obs (2) ) .^2) ; F_ct = [ 1 0 s i n ( omega_ct∗T ) /omega_ct −(1− cos ( omega_ct∗T ) ) /( omega_ct ) ; 0 1 (1 − cos ( omega_ct∗T ) ) /omega_ct s i n ( omega_ct∗T ) /omega_ct ; 0 0 cos ( omega_ct∗T ) − s i n ( omega_ct∗T ) ; 0 0 s i n ( omega_ct∗T ) cos ( omega_ct∗T ) ]; prt ( 1 : 4 , i ) = F_ct∗ prt ( 1 : 4 , i ) ; prt (6 , i ) =1; end case 2 % cv t r a n s i t i o n matrix F_cv = [ 1 0 T 0 ; 0 1 0 T; 0 0 1 0; 0 0 0 1]; p r t ( 1 : 4 , : ) = F_cv ∗ p r t ( 1 : 4 , : ) ; prt ( 6 , : ) =2; case 3 f o r i = 1 : 1 : s i z e ( prt , 2 ) omega_act = − a_tu rn . / s q r t ( ( p r t ( 3 , i ) +v_obs ( 1 ) ) . ^ 2 + ( p r t ( 4 , i ) +v_obs (2) ) .^2) ; F_act = [ 1 0 s i n ( omega_act ∗T ) /omega_act −(1− cos ( omega_act ∗T ) ) /( omega_act ) ; 0 1 (1 − cos ( omega_act ∗T ) ) /omega_act s i n ( omega_act ∗T ) / omega_act ; 0 0 cos ( omega_act ∗T ) − s i n ( omega_act ∗T ) ; 0 0 s i n ( omega_act ∗T ) cos ( omega_act ∗T ) ]; prt ( 1 : 4 , i ) = F_act ∗ prt ( 1 : 4 , i ) ; prt (6 , i ) =3; end otherwise e r r o r ( ’ k i n e m a t i c regime v a r i a b l e r not d e f i n e d . ’ ) end end 263 ANHANG G. MATLAB-SIMULATIONEN resample_mu_k.m f u n c t i o n r e s P r t = resample_mu_k ( mu_k , Np ) %RESAMPLE_mu_k resamples a l l support p o i n t s t o Np new support p o i n t s . % \param mu_k support p o i n t s c e l l with { mu_act , mu_cv , mu_ct } % mu_act : = support p o i n t s v e c t o r f o r % a n t i c l o c k w i s e turn % mu_cv : = support p o i n t s v e c t o r f o r % constant velocity % mu_ct : = support p o i n t s v e c t o r f o r % c l o c k w i s e turn % \return resPrt resampled support p o i n t s % % \author saf5 % \version 1.3 % \date 11.07.2011 p r t = [ mu_k { 1 } , mu_k { 2 } , mu_k { 3 } ] ; r e s P r t = z e r o s ( s i z e ( prt , 1 ) , Np) ; r e s P r t ( 5 , : ) = 1/ s i z e (Np, 2 ) ; % 1/N % cumulative sum o f weights csw = z e r o s ( 1 , s i z e ( prt , 2 ) ) ; csw ( 1 ) = p r t ( 5 , 1 ) ; f o r i = 2 : 1 : s i z e ( prt , 2 ) csw ( i ) = csw ( i − 1)+ p r t ( 5 , i ) ; end % sample a l l p a r t i c l e s with high weights t o new p a r t i c l e s i = 1; wght = 1/ s i z e ( prt , 2 ) ; %wght = sum ( p r t ( 5 , : ) ) /Np; f o r j = 1 : 1 :Np sWght = wght + wght ∗ ( j − 1) ; while ( sWght > csw ( i ) ) && ( i < numel ( csw ) ) i = i + 1; end resPrt ( : , j ) = prt ( : , i ) ; %r e s P r t ( 5 , : ) = 1/Np; % don ’ t b o h t e r about t h i s l i n e . end %r e s P r t = m a t 2 c e l l ( r e s P r t , 7 , Np) ; disp ( ’ ∗ support p o i n t s resampled t o Np p a r t i c l e s . ’ ) ; end 264 G.2. ASIR-MM-FILTER resample_prt.m f u n c t i o n [ r e s P r t Neff ] = r e s a m p l e _ p r t ( p r t ) %RESAMPLE_PRT resamples a l l p a r t i c l e s with an uniform weighting and s o l v e s % t h e problem o f degeneracy i n t h e p a r t i c l e f i l t e r . This f u n c t i o n only % performs a resampling i f t h e number o f e f f e c t i v e p a r t i c l e s Neff ( s e e : [ Ris07 , p.40]) % f a l l s under Neff < 1/4 N. The number o f resampled p a r t i c l e s i s s i m i l a r t o % t h e number o f degenerated p a r t i c l e s . % % \param prt degenerated p a r t i c l e s % \return resPrt resampled p a r t i c l e s % \return Neff number o f e f f e c t i v e p a r t i c l e s b e f o r e resampling % % \author saf5 % \version 1.3 % \date 11.07.2011 % resampled p a r t i c l e s r e s P r t = z e r o s ( 7 , s i z e ( prt , 2 ) ) ; % degeneracy t h r e s h o l d d i v i s o r Nthr = 1 . 5 ; % cumulative sum o f weights csw = z e r o s ( 1 , s i z e ( prt , 2 ) ) ; % c a l c u l a t e t h e e f f e c t i v e number o f p a r t i c l e s b e f o r e resampling Neff = 1/sum( p r t ( 5 , : ) . ^ 2 ) % debug i f isnan ( Neff ) %e r r o r ( ’NaN found ’ ) ; %dbstop end %i f ( Neff < 9 0 0 ) i f ( Neff < s i z e ( prt , 2 ) /Nthr ) % b u i l d t h e cumulative sum weight elements csw ( 1 ) = p r t ( 5 , 1 ) ; f o r i = 2 : 1 : s i z e ( prt , 2 ) csw ( i ) = csw ( i − 1)+ p r t ( 5 , i ) ; end % propagate a l l p a r t i c l e s with high weights t o new p a r t i c l e s i = 1; wght = 1/ s i z e ( prt , 2 ) ; f o r j = 1 : 1 : s i z e ( prt , 2 ) sWght = wght + wght ∗ ( j − 1) ; while ( sWght > csw ( i ) ) && ( i < numel ( csw ) ) i = i + 1; end resPrt ( 1 : 6 , j ) = prt ( 1 : 6 , i ) ; %r e s P r t ( 3 : 4 , j ) = 0 ; r e s P r t ( 5 , j ) = 1/( s i z e ( r e s P r t , 2 ) ) ; r e s P r t ( 6 , j ) = randi ( 3 ) ; resPrt (7 , j ) = j ; end else resPrt = prt ; end disp ( ’ ∗ p a r t i c l e s resampled . ’ ) ; end 265 ANHANG G. MATLAB-SIMULATIONEN trajectory.m f u n c t i o n t r a j = t r a j e c t o r y ( s c e n a r i o , s t a r t P o i n t , timeVec , std_dev ) % TRAJ g e n e r a t e s t h e d e s i r e d t r a j e c t o r y with some i n i t i a l k i n e m a t i c s t a t e s . % \param scenario d e s i r e d s c e n a r i o ( ’ sc1 ’ , ’ sc2 ’ , ’ sc3 ’ , ’ sc4 ’ , ’ sc5 ’) % \param startPoint s t a r t i n g point of the t r a j e c t o r y $ % \param timeVec time v e c t o r % \param std_dev standard d e v i a t i o n o f t h e n o i s y t r a j e c t o r y % \return traj noise corrupted t r a j e c t o r y % % \author saf5 % \version 1.3 % \date 11.07.2011 % which s c e n a r i o ? i f strcmp ( s c e n a r i o , ’ s c 1 ’ ) t r a j = s c 1 ( s t a r t P o i n t , timeVec , std_dev ) ; e l s e i f strcmp ( s c e n a r i o , ’ s c 2 ’ ) t r a j = s c 2 ( s t a r t P o i n t , timeVec , std_dev ) ; e l s e i f strcmp ( s c e n a r i o , ’ s c 3 ’ ) t r a j = s c 3 ( s t a r t P o i n t , timeVec , std_dev ) ; e l s e i f strcmp ( s c e n a r i o , ’ s c 4 ’ ) t r a j = s c 4 ( s t a r t P o i n t , timeVec , std_dev ) ; end end % c o n s t a n t v e l o c i t y and d i r e c t i o n f u n c t i o n t r a j = s c 1 ( s t a r t P o i n t , timeVec , std_dev ) m = s i z e ( timeVec , 2 ) ; T = timeVec ( 2 )−timeVec ( 1 ) ; % e v o l u t i o n model F = [1 0 T 0; 0 1 0 T ; 0 0 1 0; 0 0 0 1 ] ; % n o i s e d e n s i t y model Q = [1/3∗T^3 0 1/2∗T^2 0 ; 0 1/3∗T^3 0 1/2∗T^2;1/2∗T^2 0 1/3∗T^3 0 ; 0 1/2∗T^2 0 1/3∗T ^ 3 ] ; t r a j = z e r o s ( 4 ,m) ; traj (: ,1) = startPoint ; f o r i = 2 :m % s t a r t the evolution t r a j ( : , i ) = F∗ t r a j ( : , i − 1) ; % add white g a u s s i a n n o i s e t r a j ( 1 : 2 , i − 1) = random ( ’ norm ’ , t r a j ( 1 : 2 , i − 1) , std_dev ) ; end end f u n c t i o n t r a j = s c 2 ( s t a r t P o i n t , timeVec , std_dev ) m = s i z e ( timeVec , 2 ) ; T = timeVec ( 2 )−timeVec ( 1 ) ; % e v o l u t i o n model F = [1 0 T 0; 0 1 0 T ; 0 0 1 0; 0 0 0 1 ] ; % a c c e l e r a t i o n model a c c = z e r o s ( 2 ,m) ; a c c ( 1 , f l o o r ( 2 ∗m/10) : f l o o r ( 5 ∗m/10) ) = 0 . 0 5 ; a c c ( 2 , f l o o r ( 2 ∗m/10) : f l o o r ( 3 ∗m/10) ) = 0 . 1 ; a c c ( 1 , f l o o r ( 3 ∗m/10) : f l o o r ( 4 ∗m/10) ) = − 0.08; a c c ( 2 , f l o o r ( 6 ∗m/10) : f l o o r ( 7 ∗m/10) ) = 0 . 0 8 ; a c c ( 1 , f l o o r ( 8 ∗m/10) : f l o o r ( 1 0 ∗m/10) ) = − 0.018; % trajectory calculation t r a j = z e r o s ( 4 ,m) ; traj (: ,1) = startPoint ; f o r i = 2 :m % s t a r t the evolution t r a j ( : , i ) = F∗ t r a j ( : , i − 1)+ [ 0 ; 0 ; T∗ a c c ( 1 , i ) ; T∗ a c c ( 2 , i ) ] ; % add white g a u s s i a n n o i s e t r a j ( 1 : 2 , i − 1) = random ( ’ norm ’ , t r a j ( 1 : 2 , i − 1) , std_dev ) ; end 266 G.2. ASIR-MM-FILTER end f u n c t i o n t r a j = s c 3 ( s t a r t P o i n t , timeVec , std_dev ) % c o n s t a n t turn r a t e and v e l o c i t y model m = s i z e ( timeVec , 2 ) ; T = timeVec ( 2 )−timeVec ( 1 ) ; % e v o l u t i o n model % c l o c k w i s e turn t r a n s i t i o n with c o n s t a n t turn r a t e omega_ct = 0 . 0 0 1 F = [ 1 0 s i n ( omega_ct∗T ) /omega_ct −(1− cos ( omega_ct∗T ) ) /( omega_ct ) ; 0 1 (1 − cos ( omega_ct∗T ) ) /omega_ct s i n ( omega_ct∗T ) /omega_ct ; 0 0 cos ( omega_ct∗T ) − s i n ( omega_ct∗T ) ; 0 0 s i n ( omega_ct∗T ) cos ( omega_ct∗T ) ]; % trajectory calculation t r a j = z e r o s ( 4 ,m) ; traj (: ,1) = startPoint ; f o r i = 2 :m % s t a r t the evolution t r a j ( : , i ) = F∗ t r a j ( : , i − 1) ; % add white g a u s s i a n n o i s e t r a j ( 1 : 2 , i − 1) = random ( ’ norm ’ , t r a j ( 1 : 2 , i − 1) , std_dev ) ; end end f u n c t i o n t r a j = s c 4 ( s t a r t P o i n t , timeVec , std_dev ) m = s i z e ( timeVec , 2 ) ; T = timeVec ( 2 )−timeVec ( 1 ) ; % e v o l u t i o n model F = [1 0 T 0; 0 1 0 T ; 0 0 1 0; 0 0 0 1 ] ; % a c c e l e r a t i o n model a c c = z e r o s ( 2 ,m) ; a c c ( 1 , f l o o r ( 3 ∗m/10) : f l o o r ( 5 ∗m/10) ) = − 0.02; a c c ( 2 , f l o o r ( 2 ∗m/10) : f l o o r ( 4 ∗m/10) ) = − 0.05; % trajectory calculation t r a j = z e r o s ( 4 ,m) ; traj (: ,1) = startPoint ; f o r i = 2 :m % s t a r t the evolution t r a j ( : , i ) = F∗ t r a j ( : , i − 1)+ [ 0 ; 0 ; T∗ a c c ( 1 , i ) ; T∗ a c c ( 2 , i ) ] ; % add white g a u s s i a n n o i s e t r a j ( 1 : 2 , i − 1) = random ( ’ norm ’ , t r a j ( 1 : 2 , i − 1) , std_dev ) ; end end 267 ANHANG G. MATLAB-SIMULATIONEN weight_prt.m f u n c t i o n p r t = w e i g h t _ p r t ( mu_k , prt , obs , meas , stde v ) %ASIR_WEIGHT_PRT weights t h e p a r t i c l e s p r t a c c o r d i n g t o t h e measurement % d i s t r i b u t i o n and t h e weights o f t h e support p o i n t s . The r e s u l t i s normalized . % \param mu_k support p o i n t s c e l l with { mu_act , mu_cv , mu_ct } % mu_act : = support p o i n t s v e c t o r f o r % a n t i c l o c k w i s e turn % mu_cv : = support p o i n t s v e c t o r f o r % constant velocity % mu_ct : = support p o i n t s v e c t o r f o r % c l o c k w i s e turn % \param prt v e c t o r with a l l p a r t i c l e s % \param obs observer position [ x ; y ] % \param meas a c t u a l angle measurement a t p o s i t i o n obs % \param st dev standard d e v i a t i o n o f t h e measurement s e n s o r % \return prt weighted p a r t i c l e s % % \author saf5 % \version 1.3 % \date 11.07.2011 f o r i = 1 : 1 : s i z e ( prt , 2 ) % c a l c u l a t e unnormalized weights % nominator p r t ( 5 , i ) = normpdf ( atan2 ( ( p r t ( 2 , i )−obs ( 2 ) ) , ( p r t ( 1 , i )−obs ( 1 ) ) ) , meas , std ev ) ; %d i v i s i o n through s w i tc h p r t ( 6 , i ) case 1 mu_ct = mu_k { 1 } ; p r t ( 5 , i ) = p r t ( 5 , i ) . / normpdf ( atan2 ( ( mu_ct ( 2 , p r t ( 7 , i ) )−obs ( 2 ) ) , ( mu_ct ( 1 , p r t ( 7 , i ) )−obs ( 1 ) ) ) , meas , std ev ) ; case 2 mu_cv = mu_k { 2 } ; p r t ( 5 , i ) = p r t ( 5 , i ) . / normpdf ( atan2 ( ( mu_cv ( 2 , p r t ( 7 , i ) )−obs ( 2 ) ) , ( mu_cv ( 1 , p r t ( 7 , i ) )−obs ( 1 ) ) ) , meas , std ev ) ; case 3 mu_act = mu_k { 3 } ; p r t ( 5 , i ) = p r t ( 5 , i ) . / normpdf ( atan2 ( ( mu_act ( 2 , p r t ( 7 , i ) )−obs ( 2 ) ) , ( mu_act ( 1 , p r t ( 7 , i ) )−obs ( 1 ) ) ) , meas , std ev ) ; otherwise end end % normalize weights p r t ( 5 , : ) = p r t ( 5 , : ) . /sum( p r t ( 5 , : ) ) ; disp ( ’ ∗ p a r t i c l e s weighted . ’ ) ; end 268 G.2. ASIR-MM-FILTER weight_supportP.m f u n c t i o n mu_k = weight_supportP ( mu_k , prt , obs , meas , s e n s o r _ s t d e v , P I _ i j ) %ASIR_WEIGHT_SUPPORTP weights a l l support p o i n t s due t o t h e importance d e n s i t y q % \param mu_k support p o i n t s c e l l with { mu_act , mu_cv , mu_ct } % mu_act : = support p o i n t s v e c t o r f o r % a n t i c l o c k w i s e turn % mu_cv : = support p o i n t s v e c t o r f o r % constant velocity % mu_ct : = support p o i n t s v e c t o r f o r % c l o c k w i s e turn % \param prt p a r t i c l e s vector % \param v_obs [ v_x v_y ] v e l o c i t y o f t h e o b s e r v e r % \param meas n o i s y measurement v e c t o r % \param sensor_stdev angle meausrement s e n s o r standard d e v i a t i o n % \param PI_ij t r a n s i t i o n matrix % \return mu_k weighted support p o i n t s % % \author saf5 % \version 1.3 % \date 11.07.2011 mu_ct = mu_k { 1 } ; mu_cv = mu_k { 2 } ; mu_act = mu_k { 3 } ; mu_ct ( 5 , : ) = normpdf ( atan2 ( ( mu_ct ( 2 , : ) −obs ( 2 ) ) , ( mu_ct ( 1 , : ) −obs ( 1 ) ) ) , meas , sensor_stdev ) .∗ P I _ i j (1 , prt ( 6 , : ) ) .∗ prt ( 5 , : ) ; mu_ct ( 6 , : ) = 1 ; % t h e s t a t e o f t h e support p o i n t s here i s c t mu_cv ( 5 , : ) = normpdf ( atan2 ( ( mu_cv ( 2 , : ) −obs ( 2 ) ) , ( mu_cv ( 1 , : ) −obs ( 1 ) ) ) , meas , sensor_stdev ) .∗ P I _ i j (2 , prt ( 6 , : ) ) .∗ prt ( 5 , : ) ; mu_ct ( 6 , : ) = 2 ; % t h e s t a t e o f t h e support p o i n t s here i s cv mu_act ( 5 , : ) = normpdf ( atan2 ( ( mu_act ( 2 , : ) −obs ( 2 ) ) , ( mu_act ( 1 , : ) −obs ( 1 ) ) ) , meas , sensor_stdev ) .∗ P I _ i j (3 , prt ( 6 , : ) ) .∗ prt ( 5 , : ) ; mu_act ( 6 , : ) = 3 ; % t h e s t a t e o f t h e support p o i n t s here i s a c t % normalize weights mu_ct ( 5 , : ) = mu_ct ( 5 , : ) . / ( sum( mu_ct ( 5 , : ) ) +sum( mu_cv ( 5 , : ) ) +sum( mu_act ( 5 , : ) ) ) ; mu_cv ( 5 , : ) = mu_cv ( 5 , : ) . / ( sum( mu_ct ( 5 , : ) ) +sum( mu_cv ( 5 , : ) ) +sum( mu_act ( 5 , : ) ) ) ; mu_act ( 5 , : ) = mu_act ( 5 , : ) . / ( sum( mu_ct ( 5 , : ) ) +sum( mu_cv ( 5 , : ) ) +sum( mu_act ( 5 , : ) ) ) ; mu_k = { mu_ct ; mu_cv ; mu_act } ; disp ( ’ ∗ support p o i n t s weighted . ’ ) ; end 269 ANHANG G. MATLAB-SIMULATIONEN G.3 Monte-Carlo Performance-Vergleich Die M-Files der jeweiligen Filter entsprechen denjenigen in den vorherigen Kapitel. MONTECARLO_simulation.m f u n c t i o n MONTECARLO_simulation % MONTECARLO_simulation demonstrates t h e performance o f t h e SIR and t h e % ASIR−MM p a r t i c l e f i l t e r s . We use here a Monte Carlo S i m u l a t i o n with N_MC % i t e r a t i o n s t e p s . The performance comparison i s performed with t h e % c a l c u l a t i o n o f t h e mean square e r r o r a t each measurement p o s i t i o n . % % \author saf5 % \version 1.3 % \date 11.07.2011 % % c l e a r workspace and c l o s e a l l f i g u r e s clear a l l ; close a l l ; clc ; %% s i m u l a t i o n parameter % time v e c t o r t0 = 0; t1 = 800; dt = 5 ; % i n i t i a l observer kinematic s t a t e obsStart = [1000;2000;0.5; −1]; %i n i t a l t a r g e t k i n e m a t i c s t a t e t g t S t a r t = [1000;8000; −3; −0.1]; % o b s e r v e r s e n s o r p r e c i s i o n ( standard d e v i a t i o n ) [ deg ] sensor_stdev = 3 ; s e n s o r _ s t d e v = s e n s o r _ s t d e v /180 ∗ pi ; % o b s e r v e r t r a c k i n g p r e c i s i o n ( standard d e v i a t i o n ) [m] track_stdev = 5; % maximal turn r a t e a_tu rn = 9 ; % maximal t a r g e t speed m_speed = 5 . 2 ; % number o f Monte Carlo i t e r a t i o n s N_MC = 1 0 0 ; %% p a r t i c l e f i l t e r i n i t i a l i z a t i o n % number o f p a r t i c l e s o f both f i l t e r s Np = 1 0 0 0 ; % r a d i u s o f t h e i n i t i a l and e q u a l l y d i s t r i b u t e d p a r t i c l e s rad = 5 0 ; % i n i t p a r t i c l e s ( here we d i s t r i b u t e i t around t h e t a r g e t and not around % the observer ) p r t _ S I R = i n i t _ p a r t i c l e s (Np, t g t S t a r t ( 1 : 2 , 1 ) , rad , 0 ) ; prt_ASIR = i n i t _ p a r t i c l e s (Np, t g t S t a r t ( 1 : 2 , 1 ) , rad , 0 ) ; % ASIR t r a n s i t i o n matrix P I _ i j = [0.05 0.05 0 . 9 ; 0.05 0.05 0.9; 0.05 0.05 0.9]; %% s c e n a r i o g e n e r a t i o n % trajectories t = t 0 : dt : t 1 ; obs = t r a j e c t o r y ( ’ s c 2 ’ , o b s S t a r t , t , t r a c k _ s t d e v ) ; t g t = t r a j e c t o r y ( ’ sc3 ’ , t g t S t a r t , t , 0) ; % n o i s y b e a r i n g meauserement b e a r i n g = atan2 ( t g t ( 2 , : ) −obs ( 2 , : ) , t g t ( 1 , : ) −obs ( 1 , : ) ) ; 270 G.3. MONTE-CARLO PERFORMANCE-VERGLEICH b e a r i n g = random ( ’ norm ’ , bearing , s e n s o r _ s t d e v ) ; %% c o l l e c t i o n o f t r a c k i n g r e s u l t s % e s t i m a t e d mean p o s i t i o n s E_pos_SIR = z e r o s ( 2 , s i z e ( t , 2 ) ) ; E_pos_ASIR = z e r o s ( 2 , s i z e ( t , 2 ) ) ; % Mean Squared E r r o r i n E s t i m a t i o n (MSEE) Err_rms_SIR = z e r o s (N_MC, s i z e ( t , 2 ) ) ; Err_rms_ASIR = z e r o s (N_MC, s i z e ( t , 2 ) ) ; % number o f e f f e c t i v e p a r t i c l e s Neff_SIR = z e r o s (N_MC, s i z e ( t , 2 ) ) ; Neff_ASIR = z e r o s (N_MC, s i z e ( t , 2 ) ) ; % ASIR : support p o i n t s as mu_k^ i . they c o n t a i n k i n e m a t i c s t a t e v e c t o r s % propagated with regime r . %mu_k = c e l l ( 3 , 1 ) ; %% v i s u a l i z a t i o n o b j e c t s % MC r e s u l t s f g 3 = f i g u r e ( ) ; hold on ; xlim ( [ 0 1 4 5 ] ) ; x l a b e l ( ’ E s t i m a t i o n No . [ ] ’ ) ; y l a b e l ( ’MC MSE E s t i m a t i o n E r r o r ’ ) ; drawnow ; % Monte Carlo r e s u l t s % a v i o b j = a v i f i l e ( ’ t e s t ’ , ’ compression ’ , ’ none ’ , ’ fps ’ , 1 0 ) ; %% Monte Carlo i t e r a t i o n s f o r j = 1 : 1 :N_MC % ASIR : support p o i n t s as mu_k^ i . they c o n t a i n k i n e m a t i c s t a t e v e c t o r s % propagated with regime r . mu_k = c e l l ( 3 , 1 ) ; % i n i t p a r t i c l e s ( here we d i s t r i b u t e i t around t h e t a r g e t and not around % the observer ) p r t _ S I R = i n i t _ p a r t i c l e s (Np, t g t S t a r t ( 1 : 2 , 1 ) , rad , 0 ) ; prt_ASIR = i n i t _ p a r t i c l e s (Np, t g t S t a r t ( 1 : 2 , 1 ) , rad , 0 ) ; %% FILTER LOOP for i =1:1: size ( t , 2 ) disp ( s t r c a t ( ’ # c u r r e n t f i l t e r i t e r a t i o n number : ’ , num2str ( i ) ) ) ; disp ( s t r c a t ( ’ # c u r r e n t Monte Carlo i t e r a t i o n number : ’ , num2str ( j ) ) ) ; % SIR s t e p 1 : p r e d i c t random new samples p r t _ S I R = SIR_predict_random_pf ( prt_SIR , dt , s e n s o r _ s t d e v +2) ; % ASIR s t e p 1 : c r e a t e a d i s c r e t e importance d e n s i t y from support points that % a r e c r e a t e d by t h r e e k i n e m a t i c regimes : c l o c k w i s e turn , c o n s t a n t % v e l o c i t y and a n t i c l o c k w i s e turn % f i r s t : propagate each p a r t i c l e i n each regime . Now we have 3∗Np % particles mu_k = ASIR_generate_supportP ( prt_ASIR , obs ( 3 : 4 , i ) , a_turn , dt ) ; % second : compute weights o f each propagated p a r t i c l e mu_k = ASIR_weight_supportP ( mu_k , prt_ASIR , obs ( 3 : 4 , i ) , b e a r i n g ( i ) , sensor_stdev , P I _ i j ) ; % SIR s t e p 2 : c a l c u l a t e unnormalized weights p r t _ S I R = SIR_weight_prt ( prt_SIR , obs ( 1 : 2 , i ) , b e a r i n g ( i ) , s e n s o r _ s t d e v ); % ASIR s t e p 2 : Draw N samples { i , r } from t h e d i s c r e t e d i s t r i b u t i o n ge ner ate d % in step 1 . prt_ASIR = ASIR_resample_mu_k ( mu_k , Np) ; % SIR s t e p 3 : normalize weights and e s t i m a t e p o s i t i o n 271 ANHANG G. MATLAB-SIMULATIONEN prt_SIR = SIR_normalize_prt ( prt_SIR ) ; % weighted average E_pos_SIR ( 1 , i ) = sum( p r t _ S I R ( 5 , : ) . ∗ p r t _ S I R ( 1 , : ) ) . /sum( p r t _ S I R ( 5 , : ) ) ; E_pos_SIR ( 2 , i ) = sum( p r t _ S I R ( 5 , : ) . ∗ p r t _ S I R ( 2 , : ) ) . /sum( p r t _ S I R ( 5 , : ) ) ; % rms e r r o r Err_rms_SIR ( j , i ) = s q r t ( ( E_pos_SIR ( 1 , i )− t g t ( 1 , i ) ) . ^ 2 + ( E_pos_SIR ( 2 , i )− tgt (2 , i ) ) .^2) ; % ASIR s t e p 3 : p r e d i c t t h e p a r t i c l e s and weight them with t h e samples % g ene rate d i n s t e p 2 . % f i r s t : random propagation combined with k i n e m a t i c regime propagation prt_ASIR = A S I R _ p r e d i c t _ r n d _ p r t ( prt_ASIR , obs ( 3 : 4 , i ) , a_turn , dt , s e n s o r _ s t d e v , m_speed ) ; % second : c a l c u l a t e normalized weights prt_ASIR = ASIR_weight_prt ( mu_k , prt_ASIR , obs , b e a r i n g ( i ) , sensor_stdev ) ; % SIR s t e p 4 : resample i f needed [ p r t _ S I R Neff_SIR ( j , i ) ] = S I R _r e s a mp l e _p r t ( p r t _ S I R ) ; % ASIR s t e p 4 : resample i f needed and e s t i m a t e p o s i t i o n [ prt_ASIR Neff_ASIR ( j , i ) ] = ASIR_resample_prt ( prt_ASIR ) ; % calc s t a t i s t i c a l properties for i l l u s t r a t i o n s % weighted average E_pos_ASIR ( 1 , i ) = sum( prt_ASIR ( 5 , : ) . ∗ prt_ASIR ( 1 , : ) ) . /sum( prt_ASIR ( 5 , : ) ); E_pos_ASIR ( 2 , i ) = sum( prt_ASIR ( 5 , : ) . ∗ prt_ASIR ( 2 , : ) ) . /sum( prt_ASIR ( 5 , : ) ); % change NaN t o zero . NaN i s gene rat ed when t h e e f f e c t i v e number o f % p a r t i c l e s converges t o zero for i i =1:1: size ( t , 2 ) i f isnan ( prt_ASIR ( 5 , i i ) ) E_pos_ASIR ( 5 , i i ) = 0 ; end i f isnan ( p r t _ S I R ( 5 , i i ) ) E_pos_SIR ( 5 , i i ) = 0 ; end end % rms e r r o r Err_rms_ASIR ( j , i ) = s q r t ( ( E_pos_ASIR ( 1 , i )− t g t ( 1 , i ) ) . ^ 2 + ( E_pos_ASIR ( 2 , i )− t g t ( 2 , i ) ) . ^ 2 ) ; end figure ( fg3 ) ; MSE_MSEE_SIR = sum( Err_rms_SIR ) / j ; MSE_MSEE_ASIR = sum( Err_rms_ASIR ) / j ; hold o f f ; p l o t ( MSE_MSEE_SIR ) ; hold on ; p l o t ( MSE_MSEE_ASIR , ’ r ’ ) ; legend ( ’ SIR ’ , ’ ASIR ’ ) ; x l a b e l ( ’ E s t i m a t i o n No . [ ] ’ ) ; y l a b e l ( ’MC MSE E s t i m a t i o n E r r o r ’ ) ; xlim ( [ 0 1 4 5 ] ) ; drawnow ; % save frame % a v i o b j =addframe ( a v i o b j , getframe ( g c f ) ) ; %adds frames t o t h e AVI f i l e end % show and save t h e movie % c l o s e ( a v i o b j ) ; %c l o s e s t h e AVI f i l e %In order t o run t h e a v i from MATLAB command window : %! t e s t . a v i& end %e o f 272 G.4. MONTE-CARLO-BESTIMMUNG DES OPTIMALEN NP G.4 Monte-Carlo-Bestimmung des optimalen Np MONTECARLO_SIR_Np.m Die M-Files des SIR-Filter entsprechen denjenigen in den vorherigen Kapitel. f u n c t i o n MONTECARLO_SIR_Np ( ) % MONTECARLO_SIR_Np demonstrates t h e performance o f t h e SIR f i l t e r i n % dependence o f t h e number o f p a r t i c l e s . % % \author saf5 % \version 1.3 % \date 11.07.2011 % clc ; close a l l ; clear a l l ; %% s i m u l a t i o n parameter % time v e c t o r t0 = 0; t1 = 1000; dt = 1 0 ; % number o f monte c a r l o i t e r a t i o n s N_MC = 1 0 0 0 ; % i n i t i a l observer kinematic s t a t e obsStart = [ 5 0 0 ; 6 0 0 0 ; 1 ; 0 ] ; % o b s e r v e r s e n s o r p r e c i s i o n ( standard d e v i a t i o n ) [ deg ] sensor_stdev = 3 ; s e n s o r _ s t d e v = s e n s o r _ s t d e v /180 ∗ pi ; % o b s e r v e r t r a c k i n g p r e c i s i o n ( standard d e v i a t i o n ) track_stdev = 5; %i n i t a l t a r g e t k i n e m a t i c s t a t e %t g t S t a r t = [ 6 0 0 ; 6 0 0 0 ; − 1 . 5 ; − 0 . 5 ] ; tgtStart = [1000;8000;0;0]; % maximal turn r a t e a_tu rn = 0 . 5 ; %% k i n e m a t i c s t a t e g e n e r a t i o n t = t 0 : dt : t 1 ; obs = t r a j e c t o r y ( ’ s c 1 ’ , o b s S t a r t , t , t r a c k _ s t d e v ) ; t g t = t r a j e c t o r y ( ’ sc3 ’ , t g t S t a r t , t , 0) ; % n o is y b e a r i n g meauserement b e a r i n g = atan2 ( t g t ( 2 , : ) −obs ( 2 , : ) , t g t ( 1 , : ) −obs ( 1 , : ) ) ; b e a r i n g = random ( ’ norm ’ , bearing , s e n s o r _ s t d e v ) ; %% p a r t i c l e f i l t e r i n i t i a l i z a t i o n % number o f p a r t i c l e s Np = 1 0 0 ; % r a d i u s o f t h e equal d i s t r i b u t e d p a r t i c l e s rad = 1 0 0 ; % init particles p r t = i n i t _ p a r t i c l e s (Np, t g t S t a r t ( 1 : 2 , 1 ) , rad ) ; %% c o l l e c t i o n o f t r a c k i n g r e s u l t s % e s t i m a t e d mean p o s i t i o n E_pos = z e r o s ( 2 , s i z e ( t , 2 ) ) ; %% outputs fg1 = figure ( ) ; b i g f i g ; subplot ( 3 , 1 0 , [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 0 ] ) ; hold on ; c o l o r b a r ; c a x i s ( [ 0 2/Np ] ) ; x l a b e l ( ’ x p o s i t i o n [m] ’ ) ; y l a b e l ( ’ y p o s i t i o n [m] ’ ) ; t i t l e ( s t r c a t ( ’ Tracking s i m u l a t i o n , N= ’ , num2str (Np) ) ) ; p l o t ( obs ( 1 , : ) , obs ( 2 , : ) , ’ b ’ ) ; p l o t ( obs ( 1 , 1 ) , obs ( 2 , 1 ) , ’ bo ’ ) ; plot ( t g t ( 1 , : ) , t g t ( 2 , : ) , ’ r ’ ) ; 273 ANHANG G. MATLAB-SIMULATIONEN p l o t ( t g t ( 1 , 1 ) , t g t ( 2 , 1 ) , ’ ro ’ ) ; x l a b e l ( ’ x [m] ’ ) ; y l a b e l ( ’ y [m] ’ ) ; h = p l o t ( p r t ( 1 , : ) , p r t ( 2 , : ) , ’ . k ’ ) ; s e t ( h , ’ m a r k er s i z e ’ , 4 ) ; % g r a p h i c p r o p e r t i e s and n o t a t i o n s subplot ( 3 , 1 0 , [ 2 1 22 2 3 ] ) ; p l o t ( b e a r i n g /pi ∗ 1 8 0 ) ; xlim ( [ 1 s i z e ( bearing , 2 ) ] ) ; x l a b e l ( ’ Measurement No . [ ] ’ ) ; y l a b e l ( ’ e s t i m a t e d angle [ ř ] ’ ) ; h2 = subplot ( 3 , 1 0 , [ 2 4 25 2 6 ] ) ; hold on ; x l a b e l ( ’ E s t i m a t i o n No . [ ] ’ ) ; y l a b e l ( ’RMS e r r o r [m] ’ ) ; s e t ( h2 , ’ YAxisLocation ’ , ’ r i g h t ’ ) ; subplot ( 3 , 1 0 , [ 2 8 29 3 0 ] ) ; hold on ; x l a b e l ( ’ E s t i m a t i o n No . [ ] ’ ) ; y l a b e l ( ’Number o f e f f e c t i v e p a r t i c l e s [ ] ’ ) ; f g 3 = f i g u r e ( ) ; hold on ; x l a b e l ( ’ E s t i m a t i o n No . [ ] ’ ) ; y l a b e l ( ’MC MSE E s t i m a t i o n E r r o r ’ ) ; drawnow ; % v i s u a l i z a t i o n debug p r t _ 6 0 = z e r o s ( 5 ,Np) ; E_60 = z e r o s ( 5 , 1 ) ; %% c o l l e c t i o n o f t r a c k i n g r e s u l t s Err_RMS_50 = z e r o s (N_MC, s i z e ( t , 2 ) ) ; Err_RMS_100 = z e r o s (N_MC, s i z e ( t , 2 ) ) ; Err_RMS_500 = z e r o s (N_MC, s i z e ( t , 2 ) ) ; Err_RMS_1000 = z e r o s (N_MC, s i z e ( t , 2 ) ) ; Err_RMS_10000 = z e r o s (N_MC, s i z e ( t , 2 ) ) ; %% Monte Carlo i t e r a t i o n s for k = 1 : 1 : 5 % c o n f i g u r e Np s w i tc h k case 1 Np = 5 0 ; case 2 Np = 1 0 0 ; case 3 Np = 5 0 0 ; case 4 Np = 1 0 0 0 ; case 5 Np = 1 0 0 0 0 ; end f o r j = 1 : 1 :N_MC % init particles p r t = i n i t _ p a r t i c l e s (Np, t g t S t a r t ( 1 : 2 , 1 ) , rad ) ; % i n i t estimated positions E_pos = z e r o s ( 2 , s i z e ( t , 2 ) ) ; %% SIR p a r t i c l e f i l t e r loop [ RIS07 , p . 4 9 ] for i =1:1: size ( t , 2 ) disp ( s t r c a t ( ’ # c u r r e n t f i l t e r i t e r a t i o n number : ’ , num2str ( i ) ) ) ; % s t e p 1 : p r e d i c t random new samples % p r t = predict_random_pf ( prt , dt , 3 ) ; p r t = predict_random_pf ( prt , dt , s e n s o r _ s t d e v ) ; %s u b p l o t ( 3 , 3 , [ 2 3 5 6 ] ) ; h = p l o t ( p r t ( 1 , : ) , p r t ( 2 , : ) , ’ . g ’ ) ; s e t ( h , ’ markersize ’ , 4 ) ; % s t e p 2 : c a l c u l a t e unnormalized weights p r t = w e i g h t _ p r t ( prt , obs ( 1 : 2 , i ) , b e a r i n g ( i ) , s e n s o r _ s t d e v ) ; % s t e p 3 : normalize weights prt = normalize_prt ( prt ) ; % calc s t a t i s t i c a l properties for i l l u s t r a t i o n s 274 G.4. MONTE-CARLO-BESTIMMUNG DES OPTIMALEN NP % weighted average E_pos ( 1 , i ) = sum( p r t ( 5 , : ) . ∗ p r t ( 1 , : ) ) . /sum( p r t ( 5 , : ) ) ; E_pos ( 2 , i ) = sum( p r t ( 5 , : ) . ∗ p r t ( 2 , : ) ) . /sum( p r t ( 5 , : ) ) ; % s c r e e n s h o t @ k=60 i f ( i == 6 0 ) prt_60 = prt ; E_60 = E_pos ( 1 : 2 , i ) ; end % s t e p 4 : resample i f needed [ p r t Neff ] = r e s a m p l e _ p r t ( p r t ) ; % save RMS e r r o r s w i tc h k case 1 Err_RMS_50 ( j , i ) = s q r t ( ( E_pos ( 1 , i )− t g t ( 1 , i ) ) . ^ 2 + ( E_pos ( 2 , i )− t g t ( 2 , i ) ) . ^ 2 ) ; case 2 Err_RMS_100 ( j , i ) = s q r t ( ( E_pos ( 1 , i )− t g t ( 1 , i ) ) . ^ 2 + ( E_pos ( 2 , i )− t g t ( 2 , i ) ) . ^ 2 ) ; case 3 Err_RMS_500 ( j , i ) = s q r t ( ( E_pos ( 1 , i )− t g t ( 1 , i ) ) . ^ 2 + ( E_pos ( 2 , i )− t g t ( 2 , i ) ) . ^ 2 ) ; case 4 Err_RMS_1000 ( j , i ) = s q r t ( ( E_pos ( 1 , i )− t g t ( 1 , i ) ) . ^ 2 + ( E_pos ( 2 , i )− t g t ( 2 , i ) ) . ^ 2 ) ; case 5 Err_RMS_10000 ( j , i ) = s q r t ( ( E_pos ( 1 , i )− t g t ( 1 , i ) ) . ^ 2 + ( E_pos ( 2 , i )− t g t ( 2 , i ) ) . ^ 2 ) ; end end end end % plot f i n a l results f i g u r e ( f g 1 ) ; subplot ( 3 , 1 0 , [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 0 ] ) ; hold on ; p l o t ( E_pos ( 1 , : ) , E_pos ( 2 , : ) , ’ rx ’ ) ; % debug f i g u r e s f i g u r e ( f g 1 ) ; subplot ( 3 , 1 0 , [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 0 ] ) ; hold o f f ; s c a t t e r ( p r t _ 6 0 ( 1 , : ) , p r t ( 2 , : ) , 3 , p r t _ 6 0 ( 5 , : ) , ’ o ’ ) ; hold on ; c o l o r b a r ; c a x i s ( [ 0 1/Np ] ) ; p l o t ( E_60 ( 1 , 1 ) , E_60 ( 2 , 1 ) , ’mo ’ ) ; %p l o t ( E_pos ( 1 , : ) , E_pos ( 2 , : ) , ’ gx ’ ) ; x l a b e l ( ’ x p o s i t i o n [m] ’ ) ; y l a b e l ( ’ y p o s i t i o n [m] ’ ) ; t i t l e ( s t r c a t ( ’ Tracking s i m u l a t i o n , N= ’ , num2str (Np) ) ) ; p l o t ( obs ( 1 , : ) , obs ( 2 , : ) , ’ k ’ ) ; p l o t ( obs ( 1 , 6 0 ) , obs ( 2 , 6 0 ) , ’ rx ’ ) ; plot ( t g t ( 1 , : ) , t g t ( 2 , : ) , ’k ’ ) ; p l o t ( t g t ( 1 , 6 0 ) , t g t ( 2 , 6 0 ) , ’ ro ’ ) ; end 275 ANHANG G. MATLAB-SIMULATIONEN G.5 Simulation der DDC-Filter DDC.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This s c r i p t c a l c u l a t e s t h e f i l t e r c h a r a c t e r i s t i c a o f t h e d i g i t a l down % converter . % % This f i l e has been c r e a t e d by B j ö r n G r o s s n i k l a u s and modified by myself % % MsE T h e s i s " Doppler Radio Bearing System " % \author schaf3 % \date 26.01.2011 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clc ; clear a l l ; close a l l ; %% Parameter Fs = 4 0 . 8 e6 ; % Eingangs Sampling−Frequenz %FIR F i l t e r R3 = 1; %D e z i a m a t i o n s r a t e Apass = 0 . 0 1 ; %dB Astop = 6 0 ; %dB Aslope = 0 ; %s l o p e Fpass = 5 e3 ; %Hz passband−edge frequency Fstop = 9 e3 ; %Hz stopband−edge frequency %CIC− F i l t e r 1 R1 = 1 0 ; %D e z i m a t i o n s r a t e D1 = 1 ; % D i f f e r e n t i a l delay Nsecs1= 2 ; % Number o f s e c t i o n s , t h i s i s t h e order o f t h e f i l t e r IWL1 = 1 6 ; % Input word l e n g t h IFL1 = 0 ; % Input f r a c t i o n l e n g t h OWL1 = 1 6 ; % Output word l e n g t h %CIC− F i l t e r 2 R2 = 1 7 ; %D e z i m a t i o n s r a t e D2 = 1 ; % D i f f e r e n t i a l delay Nsecs2= 5 ; % Number o f s e c t i o n s , t h i s i s t h e order o f t h e f i l t e r IWL2 = 1 6 ; % Input word l e n g t h IFL2 = 0 ; % Input f r a c t i o n l e n g t h OWL2 = 3 2 ; % Output word l e n g t h %% CIC1 g e n e r i e r e n h c i c 1 = m f i l t . c i c d e c i m ( R1 , D1 , Nsecs1 , IWL1 ,OWL1) ; h c i c 1 . InputFracLength = IFL1 ; %%CIC1 N o r m a l i s i e r e n hgain1 = d f i l t . s c a l a r (1/ gain ( h c i c 1 ) ) ; hcicnorm1 = ca s c ad e ( hgain1 , h c i c 1 ) ; %% CIC2 g e n e r i e r e n h c i c 2 = m f i l t . c i c d e c i m ( R2 , D2 , Nsecs2 , IWL2 ,OWL2) ; h c i c 2 . InputFracLength = IFL2 ; %CIC2 N o r m a l i s i e r e n hgain2 = d f i l t . s c a l a r (1/ gain ( h c i c 2 ) ) ; hcicnorm2 = ca s c ad e ( hgain2 , h c i c 2 ) ; %% FIR Dezimations f i l t e r erzeugen d = f d e s i g n . decimator ( R3 , ’ CIC Compensator ’ ,D2 , Nsecs2 , Fpass , Fstop , Apass , Astop , Fs /(R1∗R2 ) ) ; h c f i r = design ( d , ’ e q u i r i p p l e ’ , . . . ’ StopbandShape ’ , ’ l i n e a r ’ , . . . ’ StopbandDecay ’ , Aslope ) ; info ( h c f i r ) ; 276 G.5. SIMULATION DER DDC-FILTER %K o e f f i z i e n t e n ausgeben coef = h c f i r . c o e f f i c i e n t s { 1 } ; s p r i n t f ( ’%f \n ’ , c o e f ) f i d = fopen ( s t r c a t ( ’ f i r _ f g _ ’ , num2str ( Fpass ) , ’ Hz_fs_ ’ , num2str ( Fs , ’ %2.3 e ’ ) , ’ Hz_N_ ’ , num2str ( R1∗R2∗R3 ) , ’ . imp ’ ) , ’w’ ) ; f p r i n t f ( f i d , ’%f \n ’ , c o e f ) ; fclose ( fid ) ; %% Frequenzgänge anzeigen %FIR h = f v t o o l ( h c f i r , ’ Fs ’ , Fs /(R1∗R2 ) ) ; % CIC2 & CIC5 F i l t e r h = f v t o o l ( [ hcicnorm1 , hcicnorm2 ] , ’ Fs ’ , [ Fs , Fs ] ) ; legend ( h , ’ CIC2− F i l t e r ’ , ’ CIC5− F i t l e r ’ ) ; %F i l t e r Kaskadieren hcas = c as c a de ( hcicnorm1 , hcicnorm2 , h c f i r ) ; %K a s k a d i e r t e r Frequnzgang augeben h = f v t o o l ( hcas , ’ Fs ’ , Fs ) ; legend ( h , ’ K a s k a d i e r t ’ ) ; %Frequnzgänge ausgeben h = f v t o o l ( hcas , ’ Fs ’ , Fs ) ; s e t ( h , ’ F i l t e r s ’ , [ hcicnorm1 , hcicnorm2 , h c f i r ] , ’ Fs ’ , [ Fs , Fs/R1 , Fs /(R1∗R2 ) ] ) ; legend ( h , ’ CIC 1 ’ , ’ CIC 2 ’ , ’ FIR ’ ) ; %K a s k a d i e r t e r Frequnzgang augeben h = f v t o o l ( hcas , ’ Fs ’ , Fs ) ; s e t ( h , ’ F i l t e r s ’ , [ hcicnorm1 , hcicnorm2 , h c f i r , hcas ] , ’ Fs ’ , [ Fs , Fs/R1 , Fs /(R1∗R2 ) , Fs ]) ; legend ( h , ’ CIC 1 ’ , ’ CIC 2 ’ , ’ FIR ’ , ’ K a s k a d i e r t ’ ) ; 277 ANHANG G. MATLAB-SIMULATIONEN 278 Anhang H Software & Dokumente 279