RSSI in BLE — Signalindikator und Entfernungsschätzung

Autor: IT Sectr Veröffentlicht: 2026-07-16 Lesezeit: 10 Min.

RSSI (Received Signal Strength Indicator) ist eine numerische Metrik, die die Signalstärke eines BLE-Geräts in dBm auf der Empfängerseite misst. Die RSSI-Werte reichen von -30 dBm (Gerät in der Nähe) bis -100 dBm (an der Erkennungsgrenze). Bluetooth Core Specification 5.4 (2023) definiert RSSI als optionalen Parameter, der in jedem Advertising-Paket und Datenpaket verfügbar ist. RSSI wird zur Entfernungsschätzung und Filterung von Geräten nach Signalstärke verwendet, ist aber ein ungenauer Indikator: Hindernisse, Mehrwegeausbreitung und Antennentyp beeinflussen ihn. Für eine präzise Positionierung werden Triangulation und Kalman-Filterung eingesetzt.

Wichtigste Erkenntnisse

  • RSSI ist der BLE-Signalstärkepegel in dBm, der auf der Empfängerseite beim Empfang eines Pakets gemessen wird.
  • RSSI-Bereich: von -30 dBm (sehr starkes Signal) bis -100 dBm (Erkennungsgrenze).
  • RSSI wird zur Entfernungsschätzung mit dem Path-Loss-Modell verwendet, aber die Genauigkeit beträgt ±2–5 m unter realen Bedingungen.
  • RSSI wird beeinflusst durch: Hindernisse (Wände, Personen), Mehrwegeausbreitung und Antennenausrichtung.
  • Zur Verbesserung der Genauigkeit werden Kalman-Filterung, gleitender Mittelwert und Triangulation mit mehreren Scannern eingesetzt.

Was ist RSSI in BLE?

RSSI (Received Signal Strength Indicator) ist eine Messung der vom BLE-Empfänger zum Zeitpunkt des Paketempfangs empfangenen Hochfrequenz-Signalstärke. In BLE wird RSSI für jedes Advertising-Paket und jedes Datenpaket nach der Verbindung gemessen. RSSI ist eine logarithmische Skala, bei der jeder Schritt von 1 dBm etwa einer 1,26-fachen Änderung der Signalstärke entspricht.

RSSI ist ein hardwareabhängiger Indikator: Verschiedene BLE-Chips (nRF, TI, Dialog, Broadcom) und verschiedene Antennen können für dasselbe Signal unterschiedliche RSSI-Werte anzeigen. Daher ist der Vergleich von RSSI zwischen verschiedenen Geräten nicht korrekt. Selbst zwei identische Smartphones mit demselben Betriebssystem können für denselben Beacon eine Differenz von 2–5 dBm aufweisen.

In einem Advertising-Paket wird RSSI für jeden der drei Kanäle (37, 38, 39) gemessen. Aufgrund von Frequenzstörungen können die Werte zwischen den Kanälen um 3–10 dBm abweichen. Moderne BLE-Stacks melden entweder den gemittelten RSSI über alle Kanäle oder den RSSI für jedes Paket einzeln. iOS Core Bluetooth liefert den durchschnittlichen RSSI, Android den RSSI des letzten Pakets.

RSSI-Wertebereich

Der typische RSSI-Bereich für BLE liegt zwischen -30 dBm und -100 dBm. Werte außerhalb dieses Bereichs sind äußerst selten: -20 dBm bedeutet, dass das Gerät buchstäblich die Scannerantenne berührt, während -105 dBm völlige Signalabwesenheit bedeutet. Chiphersteller können den Bereich einschränken: Beispielsweise meldet der nRF52832 RSSI von -40 bis -105 dBm.

RSSI (dBm)SignalqualitätUngefähre EntfernungEmpfehlung
-30 – -50Ausgezeichnet0–1 mGerät in der Nähe
-51 – -70Gut1–5 mIm Raum
-71 – -85Mittel5–15 mAkzeptabel für Beacons
-86 – -95Schwach15–30 mUnzuverlässige Verbindung
Unter -95Kritisch30+ mAn der Erkennungsgrenze

TX Power Level ist die Sendeleistung, die im Advertising-Paket (AD Type 0x0A) angegeben wird und die Anpassung der Schätzung ermöglicht. RSSI -70 dBm von einem Gerät mit TX Power +4 dBm bedeutet, dass das Signal um 74 dB gedämpft wurde. Wenn TX Power unbekannt ist, ist eine genaue Entfernungsschätzung unmöglich. iBeacon enthält TX Power (1 Byte) in der Manufacturer-Data-Struktur zur Entfernungskalibrierung.

RSSI und Entfernung

Das Path-Loss-Modell (Ausbreitungsdämpfung) wird zur Schätzung der Entfernung aus RSSI verwendet. Die grundlegende Formel: RSSI = TX_Power - 10 × n × log10(d), wobei n der Dämpfungskoeffizient ist (2,0 für freien Raum, 3,0–4,5 für Innenräume mit Hindernissen) und d die Entfernung in Metern. In der Praxis beträgt die Schätzgenauigkeit ±2–5 m unter realen Bedingungen.

Zur Kalibrierung des Modells muss der RSSI in einer bekannten Entfernung (normalerweise 1 m) gemessen und der TX-Power-Referenzwert berechnet werden. In iBeacon wird dieser Parameter im Paket gespeichert. Eddystone verwendet einen ähnlichen Mechanismus. Nach der Kalibrierung kann die Entfernung berechnet werden: d = 10 ^ ((TX_Power — RSSI) / (10 × n)).

Laut Apple Core Bluetooth Programming Guide (2024) beträgt die Genauigkeit der Entfernungsschätzung für iBeacon: immediate (<0,5 m) — wenn RSSI über dem Kalibrierungswert liegt, near (0,5–3 m) — wenn RSSI innerhalb von 3–6 dB des Kalibrierungswerts liegt, far (>3 m) — bei schwachem Signal. Kein mathematisches Modell liefert ohne zusätzliche Verarbeitung eine Genauigkeit von besser als ±1 m.

Faktoren, die die RSSI-Genauigkeit beeinflussen

RSSI ist ein verrauschter Indikator, und seine Genauigkeit hängt von vielen Faktoren ab. Die Hauptfehlerquellen: Hindernisse (Wände, Möbel, Personen) dämpfen das Signal jeweils um 3–15 dB, Mehrwegeausbreitung (Reflexionen an Wänden) kann das Signal an manchen Stellen verstärken und an anderen abschwächen, Antennenausrichtung ändert RSSI beim Drehen des Geräts um 3–10 dB.

Der menschliche Körper ist einer der stärksten Absorber von BLE-Signalen. Befindet sich eine Person zwischen Beacon und Smartphone, kann RSSI um 10–20 dB abfallen. Wasser im menschlichen Körper absorbiert Hochfrequenzstrahlung bei 2,4 GHz effektiv. Daher können Beacons an Ladentüren für Kunden unterschiedlicher Größe und Statur unterschiedliche RSSI-Werte anzeigen.

Zusätzliche Faktoren: Wi-Fi-Störungen auf benachbarten Kanälen können RSSI um 3–5 dB reduzieren, die Temperatur des BLE-Chips beeinflusst die RSSI-Messgenauigkeit (bei manchen Chips bis zu 1 dB/°C Drift), Batteriedegradation im Beacon reduziert die Sendeleistung, was zu niedrigerem RSSI am Empfänger führt.

RSSI-Filterung und Glättung

Rohes RSSI ist für genaue Berechnungen ungeeignet — es enthält zu viel Rauschen und Ausreißer. Zur Gewinnung einer stabilen Entfernungsschätzung werden Filterverfahren eingesetzt. Das einfachste ist der gleitende Mittelwert: das arithmetische Mittel der letzten N RSSI-Werte wird berechnet. N = 5–10 reicht normalerweise aus, um kurzfristige Schwankungen zu glätten.

kotlin
// Kalman-Filter für RSSI
class RssiKalmanFilter(
    private val processNoise: Double = 0.01,
    private val measurementNoise: Double = 1.0
) {

    private var estimate: Double = 0.0
    private var errorCovariance: Double = 1.0

    fun filter(rawRssi: Double): Double {
        // Vorhersagen
        errorCovariance += processNoise

        // Aktualisieren
        val kalmanGain =
            errorCovariance /
            (errorCovariance + measurementNoise)

        estimate = estimate +
            kalmanGain * (rawRssi - estimate)

        errorCovariance =
            (1.0 - kalmanGain) * errorCovariance

        return estimate
    }
}

Der Kalman-Filter ist eine fortschrittlichere Methode, die die Dynamik der RSSI-Änderung berücksichtigt und weniger Verzögerung als der gleitende Mittelwert bietet. Für stationäre (feste) Beacons liefert der gleitende Mittelwert akzeptable Ergebnisse. Für sich bewegende Geräte ist der Kalman-Filter vorzuziehen, da er sich schneller an Veränderungen anpasst. Zusätzlich kann ein Median-Filter verwendet werden, um Ausreißer zu entfernen.

RSSI auf iOS und Android abrufen

iOS Core Bluetooth stellt RSSI über die Eigenschaft peripheral.rssi (NSNumber) nach Abschluss des RSSI-Lesevorgangs bereit. Um den Advertising-Paket-RSSI zu erhalten, verwenden Sie advertisementData[CBAdvertisementDataRSSIKey]. iOS gibt RSSI als Durchschnittswert über alle drei Kanäle zurück. Für kontinuierliches RSSI-Monitoring rufen Sie readRSSI in Abständen von nicht mehr als einmal pro Sekunde auf.

swift
// RSSI auf iOS abrufen
func centralManager(
    _ central: CBCentralManager,
    didDiscover peripheral: CBPeripheral,
    advertisementData: [String: Any],
    rssi RSSI: NSNumber
) {
    let signalStrength = Int(truncating: RSSI)

    // Schwache Signale filtern
    guard signalStrength > -90 else {
        return
    }

    print("Gerät " +
          "\(peripheral.name ?? "unknown") " +
          "RSSI: \(signalStrength) dBm")
}

Android stellt RSSI über den onScanResult-Callback bereit: result.getRssi(). Der RSSI-Wert ist der RSSI des letzten Advertising-Pakets (kein Durchschnitt). Für stabile Messwerte müssen mehrere Werte gesammelt und eine Filterung angewendet werden. Android bietet auch TX Power Level über result.getScanRecord().getTxPowerLevel(), falls dieser im Advertising-Paket übertragen wird.

kotlin
// RSSI auf Android abrufen
private val scanCallback = object : ScanCallback() {

    override fun onScanResult(
        callbackType: Int,
        result: ScanResult
    ) {
        val rssi = result.rssi
        val txPower = result.scanRecord?.
            txPowerLevel ?: -128

        // Kalman-Filter anwenden
        val filtered = kalmanFilter.
            filter(rssi.toDouble())

        Log.d("BLEScanner",
            "RSSI: $rssi, " +
            "Filtered: $filtered, " +
            "TX: $txPower")
    }
}

Bei der Entwicklung von Anwendungen, die RSSI zur Positionierung nutzen, beachten Sie: Auf iOS sind die RSSI-Werte dank Hardware-Kalibrierung stabiler; auf Android sind sie verrauschter und vom Gerätehersteller abhängig. Für plattformübergreifende Projekte wird empfohlen, die Filterung auf der Anwendungsseite mit konfigurierbaren Parametern für jede Plattform zu implementieren.

Häufig gestellte Fragen

Kann die Entfernung durch RSSI genau bestimmt werden?

Nein, RSSI liefert nur eine grobe Schätzung der Entfernung mit einer Genauigkeit von ±2–5 m unter realen Bedingungen. Für eine präzise Positionierung sind Triangulation mit mehreren Scannern, Kalman-Filterung und Berücksichtigung der Sendeleistung erforderlich.

Warum ändert sich RSSI, auch wenn sich das Gerät nicht bewegt?

Aufgrund der Mehrwegeausbreitung und von Hochfrequenzschwankungen. Reflexionen an Wänden und Gegenständen erzeugen Interferenzen, bei denen das Signal abwechselnd stärker und schwächer wird. RSSI-Änderungen von 5–10 dB an einem stationären Gerät sind normal.

Wie oft kann RSSI auf iOS ausgelesen werden?

iOS empfiehlt, readRSSI nicht mehr als einmal pro Sekunde aufzurufen. Zu häufige Anfragen können zu Datenpaketverlust führen. Verwenden Sie für das RSSI-Monitoring während des Scannens CBAdvertisementDataRSSIKey, der für jedes Advertising-Paket verfügbar ist.

Was ist TX Power Level und wie hängt es mit RSSI zusammen?

TX Power Level ist die im Advertising-Paket angegebene Sendeleistung in dBm. RSSI + TX Power = Gesamtdämpfung des Signals vom Sender zum Empfänger. Die Kenntnis der Sendeleistung ermöglicht eine genauere Entfernungsschätzung: RSSI - TX Power = Path Loss (Pfaddämpfung).

Welches RSSI-Filterverfahren ist für Beacons am besten?

Für stationäre Beacons — gleitender Mittelwert mit einem Fenster von 5–10 Werten. Für bewegliche Geräte — Kalman-Filter mit geringem Prozessrauschen (0,01–0,05). Zum Entfernen von Ausreißern fügen Sie einen Median-Filter hinzu, der Werte außerhalb von 2 Standardabweichungen abschneidet.

Zusammenfassung

  • RSSI ist ein BLE-Signalstärkeindikator in dBm, der auf der Empfängerseite beim Empfang jedes Pakets gemessen wird.
  • Wertebereich: von -30 dBm (ausgezeichnetes Signal) bis -100 dBm (schwaches Signal an der Erkennungsgrenze).
  • RSSI liefert eine grobe Entfernungsschätzung mit ±2–5 m Genauigkeit, ist aber aufgrund von Rauschen und Störungen kein genauer Entfernungsmesser.
  • Hauptfehlerquellen: Hindernisse (Wände, Personen), Mehrwegeausbreitung, Antennenausrichtung und Wi-Fi-Störungen.
  • Für eine stabile Entfernungsschätzung werden Kalman-Filterung, gleitender Mittelwert und Median-Filter zur Ausreißerentfernung eingesetzt.
  • Auf iOS ist RSSI der Durchschnitt über drei Kanäle; auf Android ist es der Wert des letzten Pakets, was eine Filterung auf der Anwendungsseite erfordert.
  • TX Power Level im Advertising-Paket liefert zusammen mit RSSI Path Loss — die Gesamtsignaldämpfung für eine genauere Entfernungsschätzung.

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch