Verwende ich hier das Shannon-Hartley-Theorem und das thermische Rauschen richtig?

Ich versuche, etwas über Rauschen, Empfindlichkeit und das Shannon-Hartley-Theorem zu lernen , und ich verwende einige Spezifikationen für einen LoRa-Knoten-IC, um es auszuprobieren.

Das Shannon-Hartley-Theorem besagt, dass die maximale Datenrate C wird von gegeben

C = B W   l Ö G 2 ( 1 + S N ) .

Wo S Und N sind die Signal- und Rauschleistungen innerhalb der voll genutzten Bandbreite B W . LoRa belegt die Bandbreite mit einem ziemlich coolen Chirp Spread Spectrum, über das Sie in dieser großartigen Antwort und der dortigen Frage mehr lesen können .

Die grundlegende Grundlage für Rauschen in der analogen Kleinsignalelektronik ist normalerweise thermisches Rauschen, und wenn ich das richtig verstehe, ist dies normalerweise gegeben durch

N   =   k B   T   B W .

Ich habe die Shannon-Hartley-Grenze für die theoretisch maximal mögliche Datenrate für die verschiedenen Werte in Tabelle 12 des Datenblatts berechnet, und im Vergleich zu den tatsächlich implementierten Bits pro Sekunde bei diesen angegebenen Empfindlichkeiten war ich wirklich froh, dass ich es bin im richtigen Stadion und verfolgen den Trend gut.

Die Shannon-Hartley-Grenze ist immer um den Faktor 20 bis 30 schneller schneller als die angegebene Rate.

Ich bin nur Neugierig; Könnte dies eine Sicherheitsspanne oder eine konservative Spezifikation sein (haben sie die Empfindlichkeit aufgefüllt, um sicherzustellen, dass sie sie erfüllen können) oder gibt es einen Faktor, den ich vergessen habe?

Frage: Wende ich hier das Shannon-Hartley-Theorem und das thermische Rauschen richtig an?

Als Bonus, haben Sie eine Idee, ob die 14 dB eine Sicherheitsmarge sind oder ob das Grundrauschen tatsächlich nicht thermisch ist?

Hinweis: Bei diesen Raten liegt das Signal deutlich unter dem Rauschen , auf das auch im Datenblatt hingewiesen wird.

Tabelle 12 von Rev. 5 – August 2016 des Datenblatts SX1276/77/78/79 von SEMTECH . ©2016 Semtech Corporation www.semtech.com

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

def log2(x):
    return np.log(x) / np.log(2.)

import numpy as np
import matplotlib.pyplot as plt

kB = 1.38064852E-23  # Joules K^-1 "Boltzman's Constant"
T  = 298.  # about 25C

BW  = np.array(2*[10400] + 2*[20800] + 2*[62500] + 2*[125000], dtype=float)
SF  = np.array(4*[6, 12], dtype=float)
bps = np.array([782, 24, 1562, 49, 4688, 146, 9380, 293], dtype=float)
dBm = np.array([-131, -147, -128, -144, -121, -139, -118, -136], dtype=float)

lines  = np.arange(1, 9)
noise  = kB * T * BW        # Joules K^-1 * K * s^-1 = Watts
signal = 10**(0.1*dBm-3.)   # Watts

Shannon = BW * log2(1. + signal/noise)

plt.figure()

plt.plot(lines, bps,     linewidth=2)
plt.plot(lines, Shannon, linewidth=2)

plt.yscale('log')

lfs, tfs = 16, 16
plt.text(6, 50, 'bps', fontsize=tfs)
plt.text(5, 250000, 'Shannon', fontsize=tfs)
plt.xlabel('line in Table 12', fontsize=lfs)
plt.ylabel('rate (Hz)', fontsize=lfs)

plt.show()

Antworten (1)

Sieht für mich vernünftig aus.

Vergessen Sie nicht, dass Sie die maximal mögliche THEORETISCHE Leistung für diesen Kanal berechnen, vorausgesetzt, es ist tatsächlich thermisch rauschbegrenzt, bei VHF und höher ist dies normalerweise nicht der Fall.

Das Funk-Frontend auf einem billigen Chipsatz bei UHF wird keine besonders hochmoderne Leistung haben, und eine echte Modulations- und Codierungsleistung zu erreichen, die nahe an der theoretischen Grenze liegt, ist eine große Herausforderung und ist mit einem so einfachen Codierungsschema wahrscheinlich nicht möglich .

Sie haben tatsächlich die Informationsbandbreite für Einfachheit, geringen Stromverbrauch und eine gewisse Interferenzunterdrückung eingetauscht, kein schlechter Handel für die beabsichtigten Verwendungszwecke (Einige Form von COFDM hätte eine bessere Kanalcodierungseffizienz, benötigt aber beispielsweise lineare Verstärker im Sender, was viel schwieriger ist ).

OK, das macht absolut Sinn. Schöne prägnante Antwort, die sowohl die Frage als auch die zugrunde liegenden Probleme anspricht. Danke!