Wenn ein Bluetooth Beacon in einem Lagerhaus sendet, sagt die RSSI-basierte Entfernungsmessung, dass sich der Tag „irgendwo innerhalb von 3 bis 5 Metern“ befindet — ein Unsicherheitskreis, der fuer ganggenaue Lokalisierung unbrauchbar ist. BLE 5.1 fuehrte die Direction Finding mittels Angle of Arrival (AoA) ein, die den RSSI-Kreis durch eine Peilungslinie mit einer Genauigkeit von wenigen Grad ersetzt und submetergenaue Positionierung bei Verwendung von zwei oder mehr Lokalisatorantennen ermoeglicht. Dieser Artikel behandelt die gesamte AoA-Signalkette — von der CTE-Wellenformstruktur ueber Antennenarray-Geometrie, IQ-Sampling bis hin zu Winkelschaetzverfahren — mit den Ingenieursparametern, Kompromissen und Kalibrierungsverfahren, die darueber entscheiden, ob Ihr System 2 Grad Genauigkeit oder 20 Grad Rauschen erreicht.

1. BLE 5.1 Direction Finding: AoA vs AoD

BLE 5.1 definiert zwei Direction-Finding-Modi. Beide nutzen eine 72- bis 160-Bit Constant Tone Extension (CTE), die nach dem Paket-Payload angehaengt wird, unterscheiden sich aber darin, wer Antennen schaltet und wer IQ-Daten sampelt:

Parameter Angle of Arrival (AoA) Angle of Departure (AoD)
Antennenarray-Position Empfaenger (Lokalisator) Sender (Beacon/Tag)
Antennenumschaltung Empfaenger schaltet waehrend CTE Sender schaltet waehrend CTE
IQ-Sampling Empfaenger sampelt Empfaenger sampelt (Einzelantenne)
Typischer Anwendungsfall Asset-Tracking, Indoor-Navigation Objektsuche, Naeherungsrichtung
Beacon-Komplexitaet Einfach (Einzelantenne, fuegt CTE hinzu) Komplex (Array + Schalter erforderlich)
Lokalisator-Komplexitaet Komplex (Array + Schalter + Sampler) Einfach (Einzelantenne)
CTE in Advertising-PDU Ja (ADV_EXT_IND) Nein
CTE in Datenkanal-PDU Ja Ja
Tag-Firmware CTEConfig zu Tx hinzufuegen RF-Schalter-GPIO waehrend Tx steuern

Fuer Asset-Tracking mit batteriebetriebenen BLE-Tags ist AoA die dominierende Architektur: Der Tag bleibt einfach (Einzelantenne, aktiviert nur CTE im Advertising-Paket), und die gesamte Komplexitaet — Antennenarray, RF-Schalter, IQ-Sampling — liegt im netzbetriebenen Lokalisator. Dieser Artikel konzentriert sich auf die Empfaengerseite des AoA, wo die Ingenieursentscheidungen liegen.

CTE-Platzierung in der Paketstruktur

Das CTE wird nach dem CRC eines Standard-BLE-Pakets auf demselben RF-Kanal ohne Whitening uebertragen:

| Praeambel | Access Address | PDU-Header + Payload | CRC | CTE |

^

72-160 Bit, nicht gewhitet

Der PDU-Header enthaelt ein 2-Bit CPType-Feld (CTE Info) im erweiterten Header von ADV_EXT_IND oder in Datenkanal-PDUs, das dem Empfaenger mitteilt: (a) CTE vorhanden, (b) CTE-Typ (AoA = 1 us Schalt, AoD = 2 us Slot), (c) CTE-Laenge (1-20 Einheiten zu 8 us), (d) Antennenschaltmuster-Laenge.

Das CTE selbst ist eine reine Sinuswelle bei der RF-Traegerfrequenz (keine Modulation, kein Whitening). Der Empfaenger wandelt sie herunter und sampelt I/Q-Paare mit einer bekannten Rate, wodurch eine Phasenfortschreitung ueber das Antennenarray entsteht, die den Ankunftswinkel codiert.

2. Constant Tone Extension (CTE) Struktur

Das CTE hat unabhaengig von seiner Gesamtlaenge eine feste interne Struktur:

Segment Dauer Inhalt Zweck
Guard Interval (GI) 4 us Gleich wie letztes CTE-Bit AGC-Settling ermoeglichen, kein Sampling
Referenzperiode 8 us Einzelne Referenzantenne Phasenreferenz herstellen
Schalt-Slot 1 1 us (AoA) oder 2 us (AoD) Antenne 1 IQ-Sample genommen
Schalt-Slot 2 1 us (AoA) oder 2 us (AoD) Antenne 2 IQ-Sample genommen
Schalt-Slot N 1 us (AoA) oder 2 us (AoD) Antenne N IQ-Sample genommen

Im AoA-Modus ist jeder Schalt-Slot 1 us lang. Mit einer 8 us Referenzperiode und 4 us Guard Interval erzeugt ein maximal langes CTE (20 Einheiten x 8 us = 160 us):

  • Guard: 4 us
  • Referenz: 8 us (1 IQ-Sample pro us = 8 Referenz-Samples)
  • Schaltung: 148 us / 1 us = 148 Schalt-Slots

In der Praxis verwenden die meisten Designs 4 bis 8 Antennenelemente, sodass nur 4-8 Schalt-Slots pro CTE benoetigt werden. Die restlichen Slots sind ungenutzt oder werden fuer Oversampling verwendet. Eine typische Konfiguration:

Konfig CTE-Laenge Antennen Samples/Slot Gesamt IQ-Paare Update-Rate
Minimal 2 Einheiten (16 us) 4 1 4 + 8 Ref ~10 Hz
Standard 4 Einheiten (32 us) 4 1 4 + 8 Ref ~10 Hz
Erweitert 8 Einheiten (64 us) 8 1 8 + 8 Ref ~5 Hz
Oversampled 16 Einheiten (128 us) 8 4 32 + 8 Ref ~2 Hz

Der Kompromiss ist unkompliziert: Laengeres CTE liefert mehr Samples und bessere Winkelaufloesung, verbraucht aber mehr Sendezeit und reduziert die Advertising-Rate. Auf den drei primaeren Advertising-Kanaelen von BLE (37, 38, 39) fuegt ein 160 us CTE etwa 10-15% zur Gesamt-Paket-Sendezeit hinzu, was akzeptabel ist.

CTE-Frequenz und Phasenreferenz

Das CTE wird bei der Kanalmittenfrequenz (z.B. 2402 MHz fuer Kanal 37) uebertragen. Da keine Modulation vorhanden ist, stammt die einzige Phasenvariation ueber das Antennenarray vom raeumlichen Pfadunterschied. Fuer ein Signal, das im Winkel theta zur Array-Hauptachse eintrifft, betraegt die Phasendifferenz zwischen zwei benachbarten Antennen im Abstand d:

phase_diff = (2 * pi * d / lambda) * sin(theta)

wobei lambda = c / f = 3e8 / 2402e6 = 124,9 mm bei 2402 MHz.

Fuer den Standardabstand einer halben Wellenlaenge (d = lambda/2 = 62,5 mm) vereinfacht sich dies zu:

phase_diff = pi * sin(theta)

Dies bedeutet, dass das maximale eindeutige Sichtfeld bei plus/minus 90 Grad (180 Grad Gesamt-FoV) liegt, mit Phasenumbruch jenseits von plus/minus 90 Grad. Fuer breitere Abdeckung werden Arrays mit weniger als lambda/2 Abstand oder mehrere Sub-Arrays verwendet.

3. Antennenarray-Design

Das Antennenarray ist das wichtigste Hardware-Element in einem AoA-System. Seine Geometrie bestimmt direkt die Winkelaufloesung, das Sichtfeld und die Anfaelligkeit fuer Mehrwegeausbreitung.

3.1 Lineares Array

Ein Uniform Linear Array (ULA) ist die einfachste und haeufigste Konfiguration fuer BLE AoA:

Parameter Wert Hinweise
Elementanzahl 4-8 Mehr Elemente = bessere Aufloesung
Elementabstand lambda/2 (62,5 mm) Standard fuer eindeutiges FoV
Array-Laenge (4 Elem.) 187,5 mm Passt auf Lokalisator-PCB
Array-Laenge (8 Elem.) 437,5 mm Kann externes Array erfordern
Winkelaufloesung (4 Elem.) ~15 Grad Bei 10 dB SNR
Winkelaufloesung (8 Elem.) ~8 Grad Bei 10 dB SNR
Sichtfeld plus/minus 90 Grad 180 Grad insgesamt
Mehrdeutigkeit Vorne-Hinten-Mehrdeutigkeit Signal von +30 und -30 Grad sieht identisch aus

Die Vorne-Hinten-Mehrdeutigkeit ist die grundlegende Einschraenkung der ULA: Ein Signal aus +30 Grad erzeugt die gleiche Phasenfortschreitung wie eines aus -30 Grad (Spiegelbild). Dies wird behoben durch (a) Montage des Arrays an einer Wand oder einem RF-Reflektor, sodass nur eine Hemisphaere sichtbar ist, oder (b) Verwendung eines 2D-Arrays.

3.2 Planares (2D) Array

Fuer vollstaendige 2D-Winkelschaetzung (Azimut + Elevation) ist ein planares Array erforderlich. Haeufige Konfigurationen:

Typ Geometrie Elemente Azimut-FoV Elevation-FoV Komplexitaet
Quadratisches UCA N x N Raster 4, 9, 16 360 Grad ~60 Grad Mittel
Kreisf. UCA Ring 4-8 360 Grad ~60 Grad Mittel
L-foermig Zwei ULA, gemeinsame Ecke 2N-1 360 Grad 360 Grad Niedrig
Dreieckig 3 Elemente bei 120 Grad 3 360 Grad Begrenzt Niedrig

Das Uniform Circular Array (UCA) ist beliebt fuer deckenmontierte Lokalisatoren, da es 360-Grad-Azimutabdeckung ohne Vorne-Hinten-Mehrdeutigkeit bietet:

Antennenpositionen (8-Elemente-UCA, Radius r = lambda/2):

x_i = r * cos(2 * pi * i / 8)

y_i = r * sin(2 * pi * i / 8)

Fuer einen deckenmontierten Lokalisator gibt der Azimut (theta) die Kompasspeilung zum Tag und die Elevation (phi) den Winkel unterhalb der Horizontalen, aus dem bei bekannter Deckenhohe die Entfernung geschaetzt werden kann:

distance = ceiling_height / tan(phi)

3.3 Antennenelement-Auswahl

Patch-Antennen sind die Standardwahl fuer AoA-Arrays, da sie ein gerichtetes Strahlungsdiagramm (Gewinn zur Hemisphaere von Interesse) und eine kompakte Bauform haben:

Antennentyp Groesse (bei 2,4 GHz) Gewinn Diagramm Eignung
PCB-Patch 25 x 25 mm 6-7 dBi Hemisphaerisch Ausgezeichnet (kompakt, gerichtet)
Keramik-Chip 5 x 5 mm 2-4 dBi Broadside Gut (kompakt, weniger Gewinn)
PCB-Leiter (IFA) 15 x 5 mm 2-3 dBi Broadside Maessig (omnidirektionale Tendenz)
Dipol (extern) 30 mm 2,15 dBi Toroidal Schlecht (Rueckenkeule)
Helical 15 x 8 mm 3-5 dBi Hemisphaerisch Gut aber hoch

Wichtiger Antennenparameter fuer AoA: Phasenzentrum-Stabilitaet. Das Phasenzentrum der Antenne (der scheinbare Sendepunkt) darf sich nicht verschieben, wenn sich der Ankunftswinkel aendert. PCB-Patchantennen haben eine Phasenzentrum-Stabilitaet von plus/minus 1-2 mm, was bei 2,4 GHz plus/minus 1-3 Grad Winkelfehler entspricht. Guenstige Keramik-Chipantennen koennen Phasenzentrum-Verschiebungen von plus/minus 5 mm (plus/minus 7 Grad Fehler) aufweisen und sind fuer hochgenaues AoA ungeeignet.

3.4 Gegenseitige Kopplung und Elementabstand

Wenn Antennenelemente nahe beieinander (weniger als lambda) platziert werden, verursacht gegenseitige Kopplung eine Verzerrung des Strahlungsdiagramms jedes Elements durch seine Nachbarn. Der Kopplungskoeffizient S21 zwischen benachbarten Patchantennen bei lambda/2-Abstand betraegt typischerweise -15 bis -20 dB. Dies ist handhabbar, aber nicht vernachlaessigbar:

Abstand S21 (Kopplung) Diagrammverzerrung Winkelfehlerbeitrag
lambda/4 (31 mm) -8 bis -12 dB Schwerwiegend 5-10 Grad
lambda/2 (62,5 mm) -15 bis -20 dB Mittel 1-3 Grad
lambda (125 mm) -25 bis -30 dB Minimal <1 Grad
3lambda/4 (94 mm) -20 bis -25 dB Gering <1 Grad

Massnahmen umfassen: (a) Ground-Plane-Aussparungen zwischen Elementen, (b) Defected Ground Structures (DGS), (c) Electromagnetic Bandgap-Strukturen (EBG) zwischen Elementen, oder (d) Erhoehung des Abstands auf 3lambda/4 unter Akzeptanz des schmaleren eindeutigen FoV (plus/minus 42 Grad statt plus/minus 90 Grad).

4. RF-Schalter und Sampling-Frontend

4.1 Antennenschalter-Anforderungen

Der AoA-Empfaenger muss waehrend jedes 1 us Schalt-Slots zwischen Antennenelementen umschalten. Der RF-Schalter ist die kritische Komponente:

Parameter Anforderung Typisches Bauteil Hinweise
Schaltzeit < 200 ns SKY13330, HMC253, PE42420 Muss vor IQ-Sample settleln
Einfuegedaempfung < 1 dB SKY13330: 0,7 dB Beeinflusst Empfindlichkeit
Isolation (aus) > 20 dB SKY13330: 25 dB Verhindert Uebersprechen
Anzahl Wege 4-8 SPxT SP4T, SP8T Entspricht Array-Groesse
Frequenz 2,4 GHz ISM Alle aufgelisteten Standard
Steuerschnittstelle GPIO (3-Bit fuer SP8T) Direktes MCU-GPIO Schnell, deterministisch
Linearitaet (IIP3) > 20 dBm SKY13330: 35 dBm Verhindert Intermodulation

Die Schalter-Settling-Zeit ist kritisch. Bei einem 1 us Schalt-Slot und einem IQ-Sample in der Slot-Mitte (500 ns nach Umschaltung) muss der Schalter innerhalb 200-300 ns settlen und 200 ns sauberes Signal fuer das Sampling bleiben. SKY13330 (Skyworks) und PE42420 (pSemi) spezifizieren beide 150-200 ns Settling-Zeit, was ausreichend ist.

4.2 IQ-Sampling in BLE-SoCs

Das IQ-Sampling wird vom Radio-Peripheriegeraet des BLE-SoC durchgefuehrt, nicht von einem externen ADC. Der interne I/Q-Demodulator des Radios gewaehrt Zugriff auf die Basisband-I/Q-Samples:

SoC IQ-Sample-Rate Sample-Buffer CTE-Unterstuetzung Antennenschalter-Steuerung Hinweise
nRF52811/52833/52840 1-2 MHz (DFE) 128-1024 Bytes Ja (Hardware) GPIO via PPI Ausgereiftestes DF-Oekosystem
nRF5340 1-2 MHz (DFE) Bis 4096 Bytes Ja (Hardware) GPIO via DPPI Dual-Core, mehr Buffer
CC2640R2 8 MHz (custom) Begrenzt Nein (Patch erforderlich) Manuelles GPIO Natives DF nicht unterstuetzt
CC2642/CC2652 1 MHz Konfigurierbar Ja (Hardware) GPIO via IOMUX BLE 5.1 nativ
ESP32-C6/H2 Konfigurierbar Konfigurierbar Ja (Hardware) GPIO via GPIO-Matrix Neu, weniger ausgereift
BGM240/BG24 1 MHz Konfigurierbar Ja (Hardware) GPIO via PRS Silabs Gecko

Die Nordic nRF52/53-Serie hat die ausgereifteste AoA-Implementierung. Die Direction Finding Engine (DFE) ist ein Hardware-Peripheriegeraet, das:

  1. CTE-Vorhandensein aus dem PDU-Header erkennt
  2. Den RF-Schalter-GPIO via PPI (Programmable Peripheral Interconnect) in praezisen 1 us-Intervallen steuert
  3. I/Q mit bis zu 2 MHz sampelt (konfigurierbar, Standard 1 MHz = 1 Sample/us)
  4. Samples in einem dedizierten RAM-Buffer speichert
  5. Einen Interrupt bei Abschluss des Samplings generiert

4.3 Schaltmuster-Konfiguration

Das Antennenschaltmuster definiert, welche Antenne waehrend jedes Schalt-Slots aktiv ist. Fuer ein 4-Elemente-Array:

Schalt-Slot Aktive Antenne SwitchPattern GPIO-Wert Hinweise
Referenz (0-7) Antenne 0 (Referenz) 0x01 Gleiche Antenne fuer alle Referenz-Samples
Slot 1 Antenne 1 0x02 Erste Messantenne
Slot 2 Antenne 2 0x04 Zweite Messantenne
Slot 3 Antenne 3 0x08 Dritte Messantenne
Slot 4 Antenne 0 0x01 Zurueck zur Referenz (optional)
Slot 5-8 Antennen 1-3 wiederholen 0x02, 0x04, 0x08 Oversampling (optional)

Das Muster wird in einen Puffer im RAM geladen, und das PPI-System der RADIO-Peripherie schaltet die GPIO-Pins in 1 us-Intervallen, synchronisiert mit dem CTE-Empfang. Dieses hardwaregesteuerte Schalten eliminiert Jitter, der bei softwaregesteuertem GPIO-Toggling unvermeidbar waere.

5. Winkelschaetzverfahren

Sobald IQ-Samples gesammelt wurden, muss der Ankunftswinkel berechnet werden. Die Wahl des Algorithmus bestimmt die Winkelaufloesung, den Rechenaufwand und die Rauschrobustheit.

5.1 Phasendifferenzmethode (Basis)

Der einfachste Ansatz berechnet die Phasendifferenz zwischen benachbarten Antennenelementen und wandelt sie in einen Winkel um:

import numpy as np

# IQ-Samples: 4 Antennen, je 1 Sample (aus Schalt-Slots)

# iq[0] = Referenz, iq[1..3] = Antenne 1..3

iq = np.array([complex(i, q) for i, q in iq_samples])

# Phase jedes Antennen-Samples

phases = np.angle(iq)

# Phasendifferenz zwischen benachbarten Elementen

dphi = np.diff(phases)

# In Winkel umrechnen (halbe Wellenlaenge Abstand)

# dphi = pi * sin(theta) => theta = arcsin(dphi / pi)

theta = np.arcsin(np.clip(dphi / np.pi, -1, 1))

# Ueber Elementpaare mitteln

theta_avg = np.mean(theta)

Parameter Wert Hinweise
Winkelaufloesung 10-15 Grad (4 Elem., 10 dB SNR) Durch Phasenrauschen begrenzt
Berechnung O(N) Trivial, laeuft in Mikrosekunden
Mehrwegrobustheit Schlecht Jede Reflexion stoert Phase
Eindeutiges FoV plus/minus 90 Grad Standard-ULA
Erford. SNR > 5 dB Darunter Phasenumbruch

Die Phasendifferenzmethode eignet sich fuer Proof-of-Concept und Anwendungen mit geringer Genauigkeit (Raumebene). Fuer Produktionssysteme mit Subgrad-Genauigkeit sind anspruchsvollere Algorithmen erforderlich.

5.2 MUSIC (Multiple Signal Classification)

MUSIC ist ein subspace-basierter Algorithmus, der den Signal-Subraum vom Rausch-Subraum mittels Eigenzerlegung der Kovarianzmatrix trennt. Er kann mehrere simultane Signale (Mehrwegreflexionen) aufloesen und Superresolution erreichen:

import numpy as np

from scipy.linalg import eigh

def music_aoa(iq_matrix, num_antennas, num_signals=1, d=0.5, scan_points=180):

# iq_matrix: (num_snapshots, num_antennas) complex

# d: Elementabstand in Wellenlaengen (0.5 = lambda/2)

# 1. Kovarianzmatrix berechnen

R = np.cov(iq_matrix.T) # (N, N) hermitesch

# 2. Eigenzerlegung

eigenvalues, eigenvectors = eigh(R)

# 3. Eigenwerte absteigend sortieren

idx = np.argsort(eigenvalues)[::-1]

eigenvalues = eigenvalues[idx]

eigenvectors = eigenvectors[:, idx]

# 4. Rausch-Subraum (N-K kleinste Eigenvektoren)

K = num_signals

En = eigenvectors[:, K:] # (N, N-K)

# 5. Steering-Vektor fuer Scan-Winkel theta

thetas = np.linspace(-90, 90, scan_points)

spectrum = np.zeros(scan_points)

for i, theta in enumerate(np.deg2rad(thetas)):

a = np.exp(-1j * 2 * np.pi * d * np.arange(num_antennas) * np.sin(theta))

# MUSIC-Pseudospektrum

spectrum[i] = 1.0 / np.abs(a.conj() @ En @ En.conj().T @ a)

# 6. Peak-Suche

peak_idx = np.argmax(spectrum)

return thetas[peak_idx], spectrum

Parameter Wert Hinweise
Winkelaufloesung 3-5 Grad (4 Elem., 10 dB SNR) Superresolution
Aufloesung (8 Elem.) 1-2 Grad Nahe Cramer-Rao-Grenze
Berechnung O(N^3) fuer Eigenzerlegung 1-5 ms auf Cortex-M4F
Mehrwegbehandlung Loest bis zu N-1 Signale auf Wenn K < N
Erford. Snapshots >= N (typisch 8-16) Benoetigt mehrere CTE-Empfaenge
Speicher N x N Kovarianz (64 Bytes fuer N=4) Trivial

MUSICs Hauptvorteil ist die Mehrwegaufloesung: Wenn der direkte Pfad und eine Reflexion aus unterschiedlichen Winkeln eintreffen, kann MUSIC beide als separate Peaks im Pseudospektrum identifizieren. Der direkte Pfad ist typischerweise der Peak mit der hoechsten Leistung, obwohl diese Annahme in NLOS-Umgebungen (keine Sichtverbindung) scheitern kann.

5.3 ESPRIT (Estimation of Signal Parameters via Rotational Invariance)

ESPRIT vermeidet die Spektralsuche von MUSIC durch Ausnutzung der Verschiebungsinvarianzstruktur des Arrays. Es ist rechnerisch leichter als MUSIC, erfordert aber ein gleichmaessiges Array:

Parameter MUSIC ESPRIT
Array-Typ Beliebig (ULA, UCA, planar) Nur ULA oder gepaarte Sub-Arrays
Spektralsuche Ja (180+ Auswertungen) Nein (geschlossene Form)
Berechnung O(N^3) + O(Scan x N) O(N^3)
Latenz (Cortex-M4F, N=4) 2-5 ms 1-2 ms
Winkelaufloesung Aequivalent Aequivalent
Mehrwegaufloesung Ja (Peak-Suche) Ja (Eigenwert-Mapping)
Implementierungskomplexitaet Mittel Mittel

Fuer BLE AoA mit 4-8 Antennen laufen sowohl MUSIC als auch ESPRIT innerhalb weniger Millisekunden auf einem Cortex-M4F. Die Wahl wird meist durch die Array-Geometrie bestimmt: MUSIC fuer UCA (deckenmontierte Lokalisatoren), ESPRIT fuer ULA (wandmontierte Lokalisatoren).

5.4 Cramer-Rao-Untergrenze (CRLB)

Die CRLB definiert die bestmoegliche Winkelgenauigkeit bei gegebenem SNR, Antennenanzahl und Array-Geometrie:

var(theta) >= lambda^2 / (8 * pi^2 * d^2 * N * (N-1) * SNR * K)

wobei N = Antennenanzahl, K = Snapshot-Anzahl, d = Elementabstand (Meter), SNR = linear (nicht dB).

N (Antennen) K (Snapshots) SNR (dB) CRLB (Grad) Praktisch (x2 CRLB)
4 1 10 3,8 7,6
4 8 10 1,3 2,7
8 1 10 1,1 2,3
8 8 10 0,4 0,8
4 8 20 0,4 0,8
8 8 20 0,13 0,26

Die „Praktisch“-Spalte beruecksichtigt reale Beeintraechtigungen (Phasenrauschen, gegenseitige Kopplung, Kanalungleichgewicht), die typischerweise die CRLB verdoppeln. Dennoch kann ein 8-Elemente-Array mit 8 Snapshots bei 20 dB SNR theoretisch Subgrad-Genauigkeit erreichen.

6. Mehrweg- und NLOS-Minderung

Innenraeume sind mehrwegreich. Ein 2,4-GHz-Signal reflektiert an Metallregalen, Betonwaenden und menschlichen Koerpern und erzeugt mehrere Pfade vom Tag zum Lokalisator. Jeder Pfad trifft aus einem anderen Winkel ein, und der Empfaenger sieht deren Vektorsumme.

6.1 Mehrweg-Auswirkung auf AoA

Umgebung Direkter Pfad Reflektierter Pfad AoA-Fehler (Phasendiff.) AoA-Fehler (MUSIC)
Buero (LOS) -50 dBm -65 dBm 2-5 Grad 1-2 Grad
Lager (teilweise LOS) -60 dBm -63 dBm 10-25 Grad 3-8 Grad
Fabrik (NLOS) -75 dBm -70 dBm 30+ Grad 10-20 Grad
Korridor (Wellenleiter) -55 dBm -57 dBm 15-30 Grad 5-10 Grad

Unter NLOS-Bedingungen kann der direkte Pfad 10-15 dB unter der staerksten Reflexion liegen. MUSIC kann manchmal beide Pfade aufloesen, aber die Identifizierung des direkten Pfads erfordert zusaetzliche Informationen:

  • RSSI-Gating: Der direkte Pfad sollte das hoechste RSSI haben (in NLOS nicht immer wahr)
  • Konsistenzpruefung: Der Winkel des direkten Pfads sollte ueber mehrere CTE-Empfaenge konsistent sein
  • Multi-Lokalisator-Fusion: Wenn 3+ Lokalisatoren den Tag sehen, ist der direkte Pfad derjenige, dessen Winkel eine konsistente Triangulation ergeben
  • Elevationsfilterung: Fuer deckenmontierte Lokalisatoren sollte der direkte Pfad eine Elevation haben, die zur bekannten Deckenhoeh passt

6.2 Raeumliches Glattung

Raeumliche Glattung ist eine Vorverarbeitungstechnik, die Mehrwegsignale dekorreliert und es MUSIC ermoeglicht, kohaerenten Mehrweg (den Standard-MUSIC nicht aufloesen kann) zu behandeln:

Technik Array-Typ Dekorrelation Aperturverlust Komplexitaet
Vorwaerts-Glaettung ULA Ja ~50% Niedrig
Vorwaerts-Rueckwaerts ULA Ja ~50% Niedrig
Raeuml. Glaettung (UCA) UCA Ja ~40% Mittel
2D-Glaettung Planar Ja ~50% Mittel

Vorwaerts-Glaettung teilt das N-Elemente-ULA in L ueberlappende Sub-Arrays der Groesse M = N – L + 1. Die Kovarianzmatrizen der Sub-Arrays werden gemittelt, was kohaerenten Mehrweg dekorreliert, aber die effektive Apertur von N auf M reduziert. Fuer ein 4-Elemente-Array koennen 2-Elemente-Sub-Arrays (L=2, M=2) ein Mehrwegsignal aufloesen, aber die Aufloesung faellt auf die eines 2-Elemente-Arrays — meist nicht den Kompromiss wert. Fuer 8-Elemente-Arrays ist Vorwaerts-Rueckwaerts-Glaettung mit M=5 (L=4) ein guter Kompromiss.

6.3 Zeitliche Filterung

Selbst bei perfekter Winkelschaetzung ist die Ausgabe zeitlich verrauscht. Ein Kalman- oder Alpha-Beta-Filter glaettet die Winkelschaetzungen:

Filter Zustand Tuning Latenz Glaettung
Moving Average theta Fenster = 5-10 Samples 0,5-1 s Mittel
Alpha-Beta theta, omega alpha=0,3, beta=0,05 <0,2 s Gut
Kalman theta, omega Q, R aus Messung <0,1 s Beste
Partikelfilter theta, x, y 100-500 Partikel 0,1-0,5 s Beste (nichtlinear)

Fuer Echtzeit-Tracking von bewegten Assets (Gabelstapler, AGVs) ist der Alpha-Beta-Filter der praktische Sweetspot: Er laeuft in Mikrosekunden, addiert minimale Latenz und bietet angemessene Glaettung fuer die meisten Indoor-Anwendungen.

7. Systemarchitektur und Einsatz

7.1 Lokalisator-Hardware-Architektur

Ein vollstaendiger AoA-Lokalisator besteht aus:

Komponente Funktion Typisches Bauteil Kosten
BLE-SoC Radio, IQ-Sampling, Winkelberechnung nRF52833/5340 $4-7
RF-Schalter Antennenmultiplexing SKY13330-385LF (SP4T) $1,50
Antennenarray 4-8 Elemente Patch-Array Custom-PCB oder TI AOA-RD $3-10
MCU (optional) Winkelberechnung-Offload Keine (SoC ausreichend) $0
Ethernet/Wi-Fi Backhaul zum Positionierungsserver W5500 oder ESP32 $2-3
Stromversorgung PoE oder 12V-Adapter PoE-Modul $2-4
Gehaeuse RF-transparentes Gehaeuse ABS/Polycarbonat $3-8
BOM gesamt $15-35

7.2 Lokalisator-Platzierungsstrategie

Platzierung Hoehe Abstand Abdeckung Genauigkeit Anwendungsfall
Deckenmontage 3-4 m 8-15 m 100-200 m2 0,5-1 m Buero, Einzelhandel
Wandmontage 2-3 m 6-10 m 50-100 m2 1-2 m Gaenge, Regale
Hochregallager 8-12 m 15-25 m 300-500 m2 2-5 m Lager, Fabrik
Bodenmontage 0,5-1 m 4-8 m 30-60 m2 0,3-0,5 m Dichtes Asset-Tracking

Deckenmontierte UCA-Lokalisatoren in 3-4 m Hoehe mit 10-12 m Abstand sind die Standard-Einsatzform fuer submetergenaue Indoor-Positionierung. Der Elevationswinkel vom Lokalisator zum Tag beschraenkt die Entfernung:

Elevation Horizontale Distanz (3 m Decke) Horizontale Distanz (4 m Decke)
80 Grad 0,5 m 0,7 m
60 Grad 1,7 m 2,3 m
45 Grad 3,0 m 4,0 m
30 Grad 5,2 m 6,9 m
20 Grad 8,2 m 11,0 m

Unter 20 Grad Elevation wird die Entfernungsschaetzung unzuverlaessig (kleine Winkelfehler verursachen grosse Entfernungsfehler). Deshalb sollte der Lokalisatorabstand so gewaehlt werden, dass sich der Tag immer im 20-80 Grad-Elevationskegel von mindestens zwei Lokalisatoren befindet.

7.3 Positionierungsserver

Der Positionierungsserver empfaengt Winkelmessungen von mehreren Lokalisatoren und berechnet die 2D- oder 3D-Position:

Methode Min. Lokalisatoren Berechnung Genauigkeit Hinweise
Triangulation (2 AoA) 2 Schnittpunkt von 2 Peilungslinien 0,5-2 m Empfindlich gegen Winkelfehler
Kleinste Quadrate (N AoA) 3+ Residuum von N Peilungen minimieren 0,3-1 m Robust, Standard
Kalman-Filter 2+ Zustandsraum mit Bewegungsmodell 0,2-0,5 m Zeitliche Glaettung
Fingerprinting + AoA 1+ Hybride RSSI/AoA-Datenbank 0,5-1 m Funktioniert mit 1 Lokalisator

Die Methode der kleinsten Quadrate mit 3+ Lokalisatoren ist der Produktionsstandard. Die Positionschaetzung minimiert:

minimize sum_i | theta_measured_i - theta_predicted_i(position) |^2

Dies ist ein nichtlineares Kleinste-Quadrate-Problem, geloest durch Gauss-Newton- oder Levenberg-Marquardt-Iteration. Mit 3-4 Lokalisatoren und 5-10 Grad Winkelgenauigkeit betraegt die resultierende Positionsgenauigkeit typischerweise 0,5-1,0 m in 2D.

8. Kalibrierung und Charakterisierung

8.1 Phasenkalibrierung

Jedes AoA-System erfordert eine pro-Antennen-Phasenkalibrierung zur Kompensation von Fertigungsschwankungen im RF-Schalter, den PCB-Leiterbahnen und Antennenelementen. Kalibrierungsverfahren:

  1. Referenz-Tag: Einen CTE-sendenden Tag in bekanntem Winkel (0 Grad, Hauptachse) in 2-3 m Entfernung platzieren
  2. IQ-Samples sammeln: 100-1000 CTE-Empfaenge aufzeichnen
  3. Phasen-Offset pro Antenne berechnen: Die erwartete Phase bei 0 Grad ist 0 fuer alle Antennen. Jede Abweichung ist der Kalibrierungs-Offset.
  4. Kalibrierungstabelle speichern: Pro-Antennen-Phasen-Offset, in Flash gespeichert
Kalibrierungsquelle Phasenfehler-Groesse Haeufigkeit Kalibrierungsmethode
RF-Schalter-Asymmetrie 5-20 Grad Einmal (Werk) Pro-Antennen-Phasen-Offset
PCB-Leiterbahn-Mismatch 2-10 Grad Einmal (Werk) Pro-Antennen-Phasen-Offset
Antennen-Phasenzentrum 1-5 Grad Einmal (Werk) Winkelabhaengige LUT
Temperaturdrift 1-3 Grad Pro Temperatur-Bin Temperaturkompensierte LUT
Frequenz (Kanal) 2-5 Grad Pro Kanal Pro-Kanal-Kalibrierung

Ohne Kalibrierung koennen rohe Phasen-Offsets 10-20 Grad systematischen Winkelfehler verursachen. Nach der Kalibrierung ist der Restfehler typischerweise 1-3 Grad.

8.2 Anechoic-Chamber-Charakterisierung

Vollstaendige Charakterisierung erfordert eine Anechoic Chamber mit Drehteller:

Messung Geraet Dauer Ausgabe
Antennendiagramm (pro Element) VNA + Chamber 2-4 Stunden Gewinn vs. Winkel pro Element
Phasendiagramm (pro Element) VNA + Chamber 2-4 Stunden Phase vs. Winkel pro Element
Gegenseitige Kopplung (S-Parameter) VNA 30 Minuten S21-Matrix (N x N)
End-to-End-AoA-Genauigkeit CTE-Tag + Kammer-Rotator 4-8 Stunden Gemessen vs. wahrer Winkel, 360 Grad
Temperatur-Sweep Thermokammer + Tag 2-4 Stunden Phasen-Offset vs. Temperatur

Der End-to-End-AoA-Genauigkeits-Sweep ist die wertvollste Messung. Der Tag wird in fester Entfernung platziert und der Lokalisator in 5-Grad-Schritten von -90 bis +90 Grad gedreht. Bei jedem Winkel werden 100 CTE-Empfaenge gesammelt und der Median des geschaetzten Winkels aufgezeichnet:

Wahrer Winkel Median geschaetzt (unkalibriert) Median geschaetzt (kalibriert) Stdabw.
-60 Grad -47 Grad -59 Grad 3 Grad
-30 Grad -24 Grad -30 Grad 2 Grad
0 Grad +6 Grad 0 Grad 1 Grad
+30 Grad +37 Grad +31 Grad 2 Grad
+60 Grad +52 Grad +59 Grad 3 Grad

Die unkalibrierten Ergebnisse zeigen einen systematischen Fehler von 6-13 Grad, den die Kalibrierungstabelle auf 0-1 Grad reduziert. Die Standardabweichung steigt bei groesseren Winkeln, da die projizierte effektive Apertur zur Quelle abnimmt.

9. Stromverbrauch auf der Tag-Seite

Der Tag (Beacon) muss nur CTE an seine Advertising-Pakete anhaengen. Die inkrementelle Stromkosten:

Modus Advertising-Intervall Strom ohne CTE Mit CTE (16 us) Delta Batterieauswirkung (CR2032, 220 mAh)
1 Hz 1000 ms 12 uA avg 12,3 uA avg +0,3 uA Vernachlaessigbar (5+ Jahre)
10 Hz 100 ms 85 uA avg 88 uA avg +3 uA 5+ Jahre
100 Hz 10 ms 750 uA avg 780 uA avg +30 uA ~8 Monate

Das CTE fuegt nur 16-160 us zu jedem Advertising-Ereignis hinzu, was gegenueber der 3-4 ms Gesamtereignisdauer (Praeambel + Payload + CTE + TX-Startup) vernachlaessigbar ist. Selbst bei 100 Hz Advertising mit 160 us CTE ist die zusaetzliche Energie weniger als 5% der Gesamt-TX-Energie. Das bedeutet, dass AoA-faehige Tags im Wesentlichen die gleiche Batterielebensdauer haben wie Standard-BLE-Beacons.

CTE-Konfiguration auf dem Tag

CTE im Advertising-Paket auf einem nRF52-basierten Tag aktivieren:

// CTE fuer AoA konfigurieren (1 us Schalt-Slot, 16 us Laenge = 2 Einheiten)

ble_radio_cte_config_t cte_config = {

.cte_type = BLE_RADIO_CTE_TYPE_AOA,

.cte_length = 2, // 2 x 8 us = 16 us

.cte_time_total = 16, // CTE-Gesamtdauer in us

.antenna_switching = false, // Tag schaltet nicht (AoA-Modus)

};

// Auf Advertising-Set anwenden

sd_ble_gap_cte_set(adv_handle, &cte_config);

Die Tag-Firmware-Aenderung ist minimal: ein API-Aufruf zum Aktivieren von CTE im Advertising-Set. Kein Antennenschalter, kein IQ-Sampling, keine Winkelberechnung. Deshalb ist AoA attraktiv fuer batteriebetriebene Asset-Tags.

10. Haeufige Fehler und Fehlersuche

Problem Symptom Ursache Loesung
Konstanter Winkel-Offset Alle Winkel um 5-15 Grad verschoben Phasenkalibrierung nicht angewendet Kalibrierungsverfahren durchfuehren, Offsets speichern
Winkel-Umbruch Winkel springt von +85 auf -85 Grad ULA-Mehrdeutigkeit bei Endfire FoV auf plus/minus 75 Grad beschraenken, oder UCA verwenden
Rauschiger Winkel (Std > 10 Grad) Zufaellige Streuung um wahren Winkel Niedriges SNR oder Mehrweg CTE-Laenge erhoehen, raeumliche Glaettung hinzufuegen
Winkel bei 0 feststeckend Alle Schaetzungen geben 0 zurueck RF-Schalter toggelt nicht, oder CTE nicht erkannt GPIO-Verkabelung pruefen, PPI-Konfig verifizieren
Intermittierende IQ-Daten Einige CTE-Empfaenge geben Null-Samples Radio-Buffer-Ueberlauf oder Timing-Jitter DFE-Buffer vergroessern, Interrupt-Prioritaeten pruefen
Schlechte Elevationsgenauigkeit Azimut OK, Elevation um 20+ Grad abweichend Planar-Array nicht fuer Elevation kalibriert Vollstaendige 2D-Kalibrierung in Anechoic Chamber
NLOS-Versagen Winkel zeigt zur Wand statt zum Tag Starke Reflexion dominiert direkten Pfad Multi-Lokalisator-Fusion hinzufuegen, NLOS-Erkennung verwenden
Temperaturdrift Genauigkeit verschlechtert sich nach 2+ Stunden Betrieb RF-Schalter-Phasenverschiebung vs. Temperatur Temperaturkompensierte Kalibrierungstabelle
Kanalabhaengiger Fehler Genauigkeit variiert ueber Advertising-Kanaele Phasen-Offset unterscheidet sich pro Frequenz Pro-Kanal-Kalibrierungstabelle
Tag-Orientierungsempfindlichkeit Winkel aendert sich bei Tag-Drehung Tag-Antenne nicht omnidirektional Tag mit omnidirektionaler Antenne verwenden, oder Orientierungssensor hinzufuegen

Fehlersuche-Checkliste

  1. Verifizieren, dass CTE im Advertising-Paket vorhanden ist (nRF Connect oder Ellipsis verwenden)
  2. Bestaetigen, dass RF-Schalter auf GPIO toggelt (Oszilloskop an Schalter-Steuelpins)
  3. Pruefen, dass IQ-Sample-Buffer gefuellt ist (non-zero, variierende Werte)
  4. Validieren, dass Phasenkalibrierungstabelle geladen und angewendet ist
  5. In Anechoic Chamber (oder offenes Aussenbereich) testen, um Mehrweg zu eliminieren
  6. Algorithmusausgabe gegen bekannte Drehung verifizieren
  7. Mit bewegtem Tag bei realistischen Geschwindigkeiten (0,5-2 m/s) testen
  8. In Zielumgebung einsetzen und mit Ground Truth charakterisieren

11. Implementationsvergleich: Nordic vs TI vs Silicon Labs

Feature Nordic nRF52833/5340 TI CC2642/CC2652 Silicon Labs BG24
BLE-Spec 5.1+ 5.2+ 5.2+
DFE/DF-Hardware Ja (DFE-Peripherie) Ja (Radio-DMA) Ja (RAC + BUFC)
Max. IQ-Sample-Rate 2 MHz 1 MHz 1 MHz
IQ-Buffer-Groesse 128-4096 Bytes Konfigurierbar Konfigurierbar
Antennenschalter-Steuerung PPI + GPIO (Hardware) IOMUX + GPIO PRS + GPIO
SDK AoA-Beispiel nRF Direction Finding rtls_agent AoA locator
Schaltmuster-Flexibilitaet Pro-Slot GPIO-Muster Pro-Slot-Muster Pro-Slot-Muster
CTE in Advertising Ja Ja Ja
CTE in Datenkanal Ja Ja Ja
AoA-Referenzdesign nRF AoA locator CC26x2 AoA antenna xGM24 AoA kit
Community-Support Umfassend Mittel Wachsend
Winkelschaetzungs-SDK Nordic AoA library TI RTLS toolbox Silabs AoA plugin

Nordic hat das ausgereifteste Oekosystem mit Referenzdesigns, SDK-Beispielen und Community-Support. Der nRF52833 ist der De-facto-SoC fuer Produktions-AoA-Lokalisatoren aufgrund seiner bewaehrten DFE-Hardware und umfassenden Dokumentation.

12. Design-Checkliste fuer Produktions-AoA-Systeme

Antennenarray:

  • Elementabstand = lambda/2 (62,5 mm) fuer ULA, oder Radius = lambda/2 fuer UCA
  • Gegenseitige Kopplung < -15 dB (mit VNA-S-Parameter-Messung verifizieren)
  • Phasenzentrum-Stabilitaet < plus/minus 2 mm (Patchantennen verwenden, keine Chipantennen)
  • Ground Plane erstreckt sich mindestens lambda/4 ueber aeusserstes Element hinaus

RF-Frontend:

  • RF-Schalter-Settling-Zeit < 200 ns (mit Oszilloskop verifizieren)
  • Schalter-Einfuegedaempfung < 1 dB (Link-Budget)
  • Schalter-Isolation > 20 dB (Element-Uebersprechen verhindern)
  • GPIO-Schalter-Steuerung mit angeglichener Leiterbahnllaenge (< 5 mm Skew)

Firmware:

  • DFE/DF-Peripherie fuer 1 us Schalt-Slots (AoA-Modus) konfiguriert
  • IQ-Buffer-Groesse >= 2 x (Anzahl_Antennen + 8) Samples (Double-Buffer)
  • Schaltmuster in RADIO-Peripherie-RAM geladen
  • Phasenkalibrierungstabelle in Flash gespeichert und vor Winkelschaetzung angewendet
  • Winkelschaetzalgorithmus ausgewaehlt (Phasendiff. fuer PoC, MUSIC fuer Produktion)
  • Zeitfilter (Alpha-Beta oder Kalman) auf Winkelausgabe angewendet

Tag-Seite:

  • CTE in Advertising-Set aktiviert (cte_type = AoA, length = 2-4 Einheiten)
  • Advertising-Intervall entspricht Positionierungs-Update-Rate-Anforderung
  • Tag-Antenne ist omnidirektional (Diagramm in Kammer verifizieren)
  • Batterielebensdauer mit CTE-Overhead berechnet

Einsatz:

  • Lokalisatorabstand fuer 20-80 Grad-Elevationskegel-Abdeckung gewaehlt
  • Mindestens 3 Lokalisatoren mit LOS zu jedem Abdeckungsbereich
  • Positionierungsserver mit Kleinste-Quadrate- oder Kalman-Fusion
  • NLOS-Erkennung und -Zurueckweisung implementiert
  • Site-Survey mit Ground Truth durchgefuehrt
  • Genauigkeitsspezifikation in Zielumgebung verifiziert (nicht nur Kammer)

AoA Direction Finding transformiert BLE-Positionierung von einem 3-5 Meter RSSI-Kreis in eine submetergenaue Peilungskreuzung. Die Technologie ist ausgereift — BLE 5.1-SoCs mit Hardware-DFE, Referenzantennendesigns und Open-Source-Winkelschaetzungsbibliotheken sind alle verfuegbar. Die Ingenieursaufgabe liegt nicht in der Signalverarbeitung sondern in der physischen Schicht: Antennenarray-Design, RF-Schalter-Integritaet, Phasenkalibrierung und Mehrwegminderung. Machen Sie das richtig, und Ihr Bluetooth Beacon-System liefert submetergenaue Positionierung. Machen Sie es falsch, und Sie haben einen teuren RSSI-Sensor mit zusaetzlichen Antennen.