Drahtlose Kommunikation Fallstudie: Die Übertragung von Binärdaten

Als ein einfaches Experiment erzeugt dieser Fallstudie drei dicht gepackten SRC förmigen BPSK Signale. Das Signal von Interesse zentriert bei f

Menu

= 0, während die Gleichkanalsignale - diejenigen, die nächsten Nachbarn sind - sind bei Offsets von +/- 1,5 Rb Hz. Der Leistungspegel der benachbarten Signale ist 0 dB relativ zum erwünschten Signal.

Überprüfen Sie die Leistung mit Leistungsspektrum, Auge und Streudiagramme

das empfangene Signal, sehen das Leistungsspektrum am Empfängereingang, das Auge Grundstück des Realteils des angepassten Filters Ausgang und ein Streudiagramm des gesamten komplexen Umschlag an der angepassten Filterausgang zu charakterisieren. Beachten Sie, dass das angepasste Filter Impulsantwort identisch mit dem Sender Pulsform Funktion hat.

Das Augenstück arbeitet auf der Wellenformpegel, typischerweise das Ausgangssignal des angepaßten Filters Beobachtung durch ganzzahlige Vielfache des Signalisierungsintervall überlagert (Bitperiode). Der Zeitraum, in dieser Simulation ist Ns = 10 Proben.

Für das Auge Grundstück, eine 20-Probenfenster verwendet wird. Die Signalübergänge reibungslos zwischen +/- 1 Stufen nach dem Bitmuster übertragen. Wenn zusammenhängende Wellenform Scheiben überlagert werden, gibt es einen Punkt einmal pro Symbol, wo die Wellenform den Übergang nicht. Hier werden die Symbolentscheidungen getroffen werden. eine +1 oder eine -1 wurde gesendet? Die Region frei von Übergängen erscheint als ein offenes Auge.

Das Streudiagramm sammelt die komplexen Ausgangssignale von dem angepassten Filter einmal pro Bit (Symbol) Zeitraum. Die idealen Probenpunktstellen bilden das, was als das bekannt ist Signalkonstellation.Die Punkte werden als Punkte aufgetragen, so dass Sie die Qualität der Probenpunkte sehen können den Empfänger Symbol Entscheidungsblock eingeben.

Für BPSK, können Sie erwarten zwei Cluster von Punkten zu sehen: Ein Cluster entspricht den -1 Bit-Entscheidungen, und der andere Cluster entspricht den 1-Bit-Entscheidungen. Das ist die Natur des BPSK-Signalkonstellation: Cluster an diesen Grad

bild0.jpg

Wenn ein Phasenfehler in der Empfangssignalverarbeitungs unkorrigierten weiter stromaufwärts geht, wird die Konstellation in Bezug auf die reelle Achse gedreht.

Leistungsspektrum, Auge und Streudiagramme werden als eine Sammlung von sechs PyLab Nebenhandlungen gezeigt.

Hier sind die abgekürzten IPython-Befehle:

Im [733]: R, b, data0 = ssd.BPSK_tx (100000,10,1.5,0, 'src') # 100000 Symbole, = Ns 10, Df = 1,5 * Rb, 0 dB downin [734]: R = ssd.cpx_AWGN (r, 100,10) # EsN0 = 100 dB, Ns = 10In [735]: Pr, f = ssd.psd (r, 2 ** 10, Fs = 10) [737]: Plot (f, 10 * log10 (Pr)) In [743]: Z = signal.lfilter (b, 1, r) # b ist der SRC filterIn [748]: Ssd.eye_plot (real (z [2000: 6000]), 20) # 20 samp windin [750]: Ssd.scatter_plot (z [2000: 6000], 10,0) in [775]: R, b, data0 = ssd.BPSK_tx (100000,10,1.5,0, 'src') in [776]: R = ssd.cpx_AWGN (r, 20,10) # EsN0 = 20dB, Ns = 10In [777]: Pr, f = ssd.psd (r, 2 ** 10, Fs = 10) [778]: Plot (f, 10 * log10 (Pr)) In [784]: Z = signal.lfilter (b, 1, r) in [785]: Ssd.eye_plot (real (z [2000: 6000]), 20) # 20 samp windin [787]: Ssd.scatter_plot (z [2000: 6000] * exp (1j * pi / 5), 10,0)

Selbst mit benachbarten Signalen bei +/- 1,5 Rb, es gibt wenig spürbare Auswirkungen im Auge Handlung und Streudiagramm. Beachten Sie, dass die Bitrate auf 1,0 für die Bequemlichkeit eingestellt ist. Ja, sollten die Cluster pinpoints sein, wenn die SRC-Filter perfekt sind und keine ISI auftritt. Dennoch ist die Leistung gut für das Spektrum Verpackung gegeben.

Da die Energie pro Symbol zur spektralen Rauschdichte (Eb / N0) Auf 100 dB (im wesentlichen kein Rauschen) auf nur 20 dB, ist das Rauschen bemerkbar in der rechten Spalte der Flächen reduziert. Die Bit-Fehler vorhanden sind, weil das Auge Grundstück noch offen ist. Der Mehrphasenfehler zu dem Streudiagramm immer noch nicht den Entscheidungsprozess zu ändern.

Für BPSK ist die Entscheidungsgrenze der y-Achse. Die beiden Cluster liegen auf gegenüberliegenden Seiten.

Geben Sie für Bitfehler

Sie können die Bit (Symbol) Entscheidungsprozess bei der IPython Befehlszeile implementieren und die resultierenden Bits mit den übertragenen Bits vergleichen zurück durch ssd.BPSK_tx () zu data0. Das angepaßte Filter ausgegeben wird Vektor z. Bis über die Impulsform Verzögerung bewegen aufgrund der Sende- und Empfangsverarbeitung erfordert eine 2 x 6 = 12-Bit-Verzögerung, oder 10 x 12 = 120 Abtastwerte.

Sie nehmen Proben des angepassten Filters Ausgang mit einem schreiten (Mehrfach) von 10 bei der Öffnung maximalen Augen beginnt. Der Schritt 10 wird verwendet, weil dies die Anzahl der Abtastwerte pro Bit ist, Ns, in der Simulation verwendet. Durch die Ausrichtung Sie bei der maximalen Augenöffnung durchführen Handbuch Bit-Synchronisation.

Bit-Entscheidungen werden durch den Realteil und anschließend unter Verwendung der Schild() Funktion zu erklären +1 für Werte größer als Null und -1 für Werte kleiner Null. Schließlich verschieben Sie die harten Entscheidungswerte zurück zu 0/1 Werte.

Im [850]: Data0 [00.20] Out [850]: Array ([1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1,1, 0, 0, 0, 1, 0]) in [851]: Int64 ((Vorzeichen (real (z [120: 320: 10])) + 1) / 2) Out [851]: Array ([1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1,1, 0, 0, 0, 1, 0])

Für die 20 Bits verglichen wird, ist alles gut! Durch die XOR-Verknüpfung (mit Hilfe des Python Operator ^) Getrimmten Versionen der beiden Vektoren, Sie Bitfehler und schätzen Sie die Bitfehlerwahrscheinlichkeit zählen kann, Pe, indem durch die Gesamtzahl von Bits in dem Vergleich unterteilen. die ersten 10.000 Bits Überprüfung ergibt den folgenden Code:

Im [862]: Summe (data0 [0: 10000] ^ int64 ((Vorzeichen (real (z [120: (120 + 10000 * 10): 10])) + 1) / 2)) / Schwimmer (len (data0 [0: 10000])) Out [862]: 0,0 # Pe_est

Keine Fehler gezählt, so dass die geschätzte Bit-Fehlerwahrscheinlichkeit ist null. Bist du überrascht? Für weitere Studie verringern (Eb / N0)dB bis Bitfehler beginnen zu erscheinen.

Menü