Summer
2009

Wireless Mesh Network Technologies
[xx xxx] Halbkurs (PI)

VL: Monday+Wednesday, 09:00 -11:00, RUD 2x, x.xxx; Lecturer:  Dipl.-Inf. Anatolij Zubow
PR: xx:xx - xx:xx, RUD 2x, x.xxx;
Dipl.-Inf. Mathias Kurth


Computer Science Department
Systems Architecture Group

 IMPORTANT: This is a draft. The final document may differ significantly from the current version.

 

src:wikimedia.org

 

 

 

 
Orthogonal Frequency Division Multiplex & Convolutional Codes

Im ersten Praktikum wollen wir ein Grundverständnis für die Signalausbreitung und das Empfängerdesign erwerben. Ausgangspunkt ist ein Kommunikationssystem, in dem ein Sender mit einem Empfänger über einen Audio-Kanal miteinander kommuniziert. Ihre Aufgabe ist es, die Leistung des Systems mittels einer SNR-PER Messung zu bestimmen und daraus ein Signalausbreitungsmodell herzuleiten. Zusätzlich soll das System um OFDM und einen Convolutional Code erweitert und gleichermaßen evaluiert werden.

Das Praktikum soll das Verständnis von folgenden Verfahren, Methoden, Protokollen und Werkzeugen vertiefen:

  • Digitale Modulation: BPSK
  • Multi-Carrier Modulation: OFDM
  • Forward Error Correction: Convolutional Codes
  • Wireless Transceiver Design
  • Drahtlose Signalausbreitung
  • Leistungsbewertung von Kommunikationssystemen durch PHY Layer Simulationen
  • GNU Radio

Voraussetzungen

  • Gnu Radio Software (Trunk oder evtl. Release 3.2, in VMWare Image schon enthalten, sonst www.gnuradio.org)
  • Vorgaben Lab 1
  • WAV Editor (Bspw. WavePad, Audacity)
  • Mikrofon, Stereo-Lautsprecher und ein Audiokabel mit 3,5 mm Klinkenstecker beidseitig
  • Python & C++ IDE (Empfehlung: Eclipse oder Netbeans)

Aufgaben

  1. Machen Sie sich mit dem gegebenen Kommunikationssystem vertraut. Das Programm „PassbandSim.py“ erzeugt einen Sender und einen Receiver, die über einen (simulierten) Kommunikationskanal gekoppelt sind. Der simulierte Kanal ist ein AWGN-Kanal. Zusätzlich können per Kommandozeile eine Frequenz- und Timing-Abweichung und auch Multipath Taps angegeben werden, mit denen Sie sich vertraut machen sollen. Aktivieren Sie zusätzlich die Option „--debug-wavs“, sodass die erzeugten Signale an verschiedenen Punkten der Übertragungskette in Dateien gespeichert werden. Die erzeugten Dateien lassen sich anschließend in einem WAV Editor betrachten und abspielen. Zusätzlich stehen mit „constellation.py“ und „fft.py“ weitere graphische Werkzeuge bereit, mit denen sie die erzeugten Dateien weiter analysieren können.
     

  2. Ermitteln Sie charakteristische Größen des Kommunikationssystems (Dauer eines Symbols, Symbole pro Sekunde, etc.). Welchen Durchsatz (auf Anwendungsebene) kann man mit dem System erzielen, wenn es keine Pausen zwischen aufeinanderfolgenden Frames gibt? Begründen Sie kurz!
     

  3. Ermitteln Sie den Zusammenhang zwischen SNR und Packet Error Rate (PER) im simulierten Kanal und stellen Sie die Abhängigkeit graphisch dar. Verwenden Sie dabei eine Paketgröße von 400 Byte und zwei verschiedene Kanalkonfigurationen: Zum einen den puren AWGN-Kanal, und setzen Sie einen relativen Frequenzoffset von 0.006 mit Multipath Taps in einer weitern Messreihe. Achten Sie bitte darauf, auch die Konfidenz der Messwerte in den Ergebnissen darzustellen.
     

  4. Um einen echten Kommunikationskanal benutzen zu können, stehen die Programme „Sender.py“ und „Receiver.py“ bereit, mit denen sie sich vertraut machen sollen. Wiederholen Sie obige Messungen mit unten angegebenen folgenden Kanälen.
    Hinweis: Sie müssen evtl. am Receiver eine hohe Verstärkung einstellen (bspw. „-a 100“), um eine zufriedenstellende Leistung zu erzielen. Achten Sie auch auf die korrekte Einstellung des Mixers, insbesondere Features wie „Rauschunterdrückung“ am Mikrophon können die Messwerte verfälschen.

    1.  Direktverbindung über den Sound-Mixer des Betriebssystems.

    2. Draht-Verbindung des Line-Out-Ausgangs mit dem Mikrophon-Eingang.

    3. Drahtlose Verbindung von Lautsprecher zu Mikrophon.
       

  5. Leiten Sie ein Ausbreitungsmodell für die drahtlose Verbindung her.
     

  6. Erweitern Sie das Kommunikationssystem um OFDM und evaluieren Sie dessen Leistung analog zu Aufgabe 4c. Verwenden Sie die Bausteine aus dem „gnuradio-core.“ Es sollen 32 Subcarrier angelegt werden, von denen die inneren 16 zur Übertragung genutzt werden, und die Äußeren Null-Carrier sind. Jeder Carrier soll 100 Hz breit sein (siehe dazu „blks2.rational_resampler_ccc“) und eine BPSK Modulation verwenden. Finden Sie selbstständig einen Cyclic Prefix, der eine akzeptable Operation des Systems zulässt. Zur Visualisierung des OFDM Signals kann das Programm „gr_plot_ofdm.py“ verwendet werden.

Zusatz

  1. Realisieren Sie zusätzlich einen Convolutional Code mit den Parametern von IEEE 802.11a (6 Mbps) und evaluieren Sie das Ergebnis analog zu Aufgabe 3c. Verwenden Sie dazu die Bausteine des Pakets „gr-trellis.“ Fortgeschrittene Konzepte verbinden die Modulation und die Kodierung über Soft Information, d.h. der Decoder arbeitet nicht auf hart ermittelten Positionen des Demodulators, sondern erhält eine Wahrscheinlichkeitsverteilung für jede Position. Wir beschränken uns im Praktikum aber auf einen Hard Decision Decoder. Realisieren Sie einen Kodierungs-Layer über dem OFDM Layer, ohne diesen zu verändern. Eine Frame-Synchronisation ist möglich wie hier (http://gnuradio.org/trac/browser/gnuradio/branches/features/coded-ofdm) demonstriert. Für die Kodierung und Dekodierung bietet es sich an, jeweils einen eigenen Datenfluss zwischen zwei Queues aufzusetzen (siehe dazu auch obige Quelle). Bedenken Sie außerdem, dass Sie jetzt die Entscheidung treffen müssen, ob ein Frame korrekt empfangen ist oder nicht.
    Hinweis: Im vorgegebenen Kommunikationssystem sind alle Frames gleich groß und werden evtl. mit Nullen aufgefüllt.

Abzugeben sind

  • Ein Bericht, der die durchzuführenden Messungen protokolliert und auswertet (HTML oder PDF). Der Bericht soll schematische Darstellungen der Systeme aus Aufgabe 6 und 7 enthalten (bspw. Generiert mit GNU Radio Companion). Der Versuchsaufbau und die Durchführung soll reproduzierbar beschrieben werden.

  • Den finalen Quellcode aus Aufgabe 6 als ein ZIP-Archiv.

Literatur

GNU Radio. http://gnuradio.org/
GnuRadio Documentation.file:///usr/local/share/doc/gnuradio-3.2svn
GnuRadio Dictionary. https://radioware.nd.edu/documentation/a-dictionary-of-the-gnu-radio-blocks.
IEEE 802.11a Specification.
Matthew Gast. 802.11 Wireless Networks: The Definitive Guide, Second Edition. O'Reilly, 2005.
Andrea Goldsmith. Wireless Communications. Cambridge University Press, 2005.
Proakis. Digital Communications. 2000.
Theodore S. Rappaport. Wireless Communications: Principles and Practice. Prentice Hall PTR, 2002.
David Tse and Pramod Viswanath. Fundamentals of Wireless Communication. Cambridge University Press, 2005.
Molina-Garcia-Pardo, Lienard, Degauque. Propagation in Tunnels: Experimental Investigations and Channel Modeling in a Wide Frequency Band for MIMO Applications, 2009.
 
 Links
MIT
Roof Net (home page)
Berlin (Community)
WLAN Hain
Berlin Roof Net
Project Home Page
PDOS UCLA
Click Modular Router

Legal disclaimer. .  © 2024 Humboldt-Universität zu Berlin, Computer Science Department, Systems Architecture Group.Contact: sar@informatik.hu-berlin.de .