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