{"id":66,"date":"2020-01-27T07:24:53","date_gmt":"2020-01-27T07:24:53","guid":{"rendered":"https:\/\/univfunk2.projekte.fh-hagenberg.at?page_id=66"},"modified":"2020-01-28T08:15:22","modified_gmt":"2020-01-28T08:15:22","slug":"flowgraph","status":"publish","type":"page","link":"https:\/\/univfunk2.projekte.fh-hagenberg.at\/?page_id=66","title":{"rendered":"Implementierung"},"content":{"rendered":"\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Blockschaltbilder<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"695\" src=\"https:\/\/univfunk2.projekte.fh-hagenberg.atwp-content\/uploads\/2020\/01\/tx_skizze-1024x695.png\" alt=\"\" class=\"wp-image-141\" srcset=\"https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/tx_skizze-1024x695.png 1024w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/tx_skizze-300x204.png 300w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/tx_skizze-768x521.png 768w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/tx_skizze-800x543.png 800w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/tx_skizze.png 1155w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"662\" src=\"https:\/\/univfunk2.projekte.fh-hagenberg.atwp-content\/uploads\/2020\/01\/rx_skizze-1024x662.png\" alt=\"\" class=\"wp-image-140\" srcset=\"https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/rx_skizze-1024x662.png 1024w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/rx_skizze-300x194.png 300w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/rx_skizze-768x497.png 768w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/rx_skizze-800x518.png 800w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/rx_skizze.png 1215w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Sender<\/h3>\n\n\n\n<p>Das Video wird vorweg mittels FFmpeg konvertiert und anschlie\u00dfend an einen lokalen UDP Socket gestreamt. Von dort weg wird der Stream in kleinere Datenpakete zerlegt und mit einem Synchronisationswort sowie L\u00e4ngenangabe versehen. Schlussendlich werden die einzelnen Pakete mit GMSK moduliert und \u00fcber das SDR-Board versendet.<\/p>\n<\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Empf\u00e4nger<\/h3>\n\n\n\n<p>Die Symbole werden von dem zweiten SDR-Board empfangen und an den PC weitergeleitet. Dort laufen diese dann durch einen Tiefpassfilter um etwaiges Rauschen herauszufiltern und werden anschlie\u00dfend demoduliert. Nach der Demodulation werden die einzelnen Symbole wieder zu Paketen zusammengefasst um abschlie\u00dfend wieder an einen UDP Socket gestreamt und \u00fcber FFmpeg wiedergegeben zu werden.<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Paketaufbau<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"81\" src=\"https:\/\/univfunk2.projekte.fh-hagenberg.atwp-content\/uploads\/2020\/01\/frame-1024x81.png\" alt=\"\" class=\"wp-image-145\" srcset=\"https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/frame-1024x81.png 1024w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/frame-300x24.png 300w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/frame-768x61.png 768w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/frame-1536x122.png 1536w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/frame-800x64.png 800w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/frame.png 1836w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Vorweg befindet sich der Access Code, auch Synchronisationswort genannt, welcher f\u00fcr die Einsynchronisierung des Empf\u00e4ngers verwendet wird. Nachstehend befindet sich die L\u00e4ngenangabe in doppelter Ausf\u00fchrung, um etwas Redundanz hinzuzuf\u00fcgen. Zum Schluss befinden sich die Nutzdaten.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Flowgraphs<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Sender<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"595\" src=\"https:\/\/univfunk2.projekte.fh-hagenberg.atwp-content\/uploads\/2020\/01\/flowgraph_tx-1024x595.png\" alt=\"\" class=\"wp-image-148\" srcset=\"https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/flowgraph_tx-1024x595.png 1024w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/flowgraph_tx-300x174.png 300w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/flowgraph_tx-768x446.png 768w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/flowgraph_tx-800x465.png 800w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/flowgraph_tx.png 1407w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Das Video wird mittels FFmpeg \u00fcber einen UDP Socket an GNU Radio gesendet und dort dann zu einem Tagged Stream konvertiert. Tagged Stream ist ein GNURadio-eigener Typ um Datenstr\u00f6me leichter zu verarbeiten, indem Tags f\u00fcr den Beginn, das Ende und die L\u00e4nge hinzugef\u00fcgt werden.<br>Als N\u00e4chstes wird vom Protocol Formatter der Header generiert. Der Header besteht aus 8 Byte f\u00fcr den Access Code und 2 mal 2 Byte f\u00fcr die L\u00e4nge der Payload.<br>Der Tagged Stream Multiplexer f\u00fcgt dann den Header vor den Daten ein und zus\u00e4tzlich noch 2 Dummy-Bytes am Ende. Die beiden Bytes am Ende werden ben\u00f6tigt, da es in den USRP-Treibern einen Fehler gibt der dazu f\u00fchrt, dass die letzten beiden Bytes bei jeder \u00dcbertragung falsch sind. Die beiden Dummy-Bytes werden am Empf\u00e4nger automatisch verworfen.<br>Der Length Tag wird jetzt mit dem Faktor 16 multipliziert und enth\u00e4lt somit nicht mehr die L\u00e4nge in Bytes, sondern die Anzahl der Samples welche auf das SDR-Board gesendet werden. Dieser Faktor ergibt sich daraus, dass der GMSK-Modulator 2 Samples pro Bit erzeugt. Der GMSK-Block moduliert nun das Signal mit einer differenziellen GMSK.<br>Das modulierte Signal geht nun weiter in die USRP-Sink, welche die Daten an das SDR-Board \u00fcbertr\u00e4gt. Durch die Angabe des Length Tags werden die Puffer automatisch so eingestellt, dass immer genau 1 Paket pro Burst gesendet wird.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Empf\u00e4nger<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"256\" src=\"https:\/\/univfunk2.projekte.fh-hagenberg.atwp-content\/uploads\/2020\/01\/flowgraph_rx-1024x256.png\" alt=\"\" class=\"wp-image-147\" srcset=\"https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/flowgraph_rx-1024x256.png 1024w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/flowgraph_rx-300x75.png 300w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/flowgraph_rx-768x192.png 768w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/flowgraph_rx-1536x384.png 1536w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/flowgraph_rx-800x200.png 800w, https:\/\/univfunk2.projekte.fh-hagenberg.at\/wp-content\/uploads\/2020\/01\/flowgraph_rx.png 1729w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Unsere Daten wurden erfolgreich empfangen und das Board sendet diese \u00fcber die USRP-Source in die GNU Radio Anwendung. Die empfangenen Rohdaten werden an den GMSK-Block weitergeleitet, welcher diese filtert und demoduliert. Dann wird versucht den Accesscode in den Daten zu finden. Sobald dieser gefunden wird, wird automatisch die dahinterliegende Payload extrahiert. Die Daten werden allerdings als unpacked Bits ausgegeben. Das hei\u00dft, dass in jedem Byte nur 1 Bit relevant ist. Deshalb werden immer 8 aufeinander folgende Bytes mit einem Bit Repacker zu einem Byte zusammengefasst. Die nun fertig decodierten Daten werden dann wieder \u00fcber einen UDP-Socket an die FFmpeg-Schnittstelle gesendet. Das empfangene Video kann nun angezeigt werden.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Ausblick<\/h2>\n\n\n\n<p> Um h\u00f6here \u00dcbertragungsraten zu erreichen, w\u00e4re die Implementierung eines performanteren Modulationsverfahren wie z. B. QPSK m\u00f6glich. Hierbei wird die Anzahl der \u00fcbertragenen Bits pro gesendetes Symbol wesentlich erh\u00f6ht.<br>Ein weitere Verbesserungsm\u00f6glichkeit w\u00e4re die Implementierung einer FEC &#8211; gesprochen Forward Error Correction. Dabei werden Redundanzen in den gesendeten Daten miteingebunden, um m\u00f6gliche auftretende Fehler nach dem Empfangen korrigieren zu k\u00f6nnen. <\/p>\n<\/div><\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Blockschaltbilder Sender Das Video wird vorweg mittels FFmpeg konvertiert und anschlie\u00dfend an einen lokalen UDP Socket gestreamt. Von dort weg wird der Stream in kleinere Datenpakete zerlegt und mit einem Synchronisationswort sowie L\u00e4ngenangabe versehen. Schlussendlich werden die einzelnen Pakete mit GMSK moduliert und \u00fcber das SDR-Board versendet. Empf\u00e4nger Die Symbole werden von dem zweiten SDR-Board&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-66","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/univfunk2.projekte.fh-hagenberg.at\/index.php?rest_route=\/wp\/v2\/pages\/66","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/univfunk2.projekte.fh-hagenberg.at\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/univfunk2.projekte.fh-hagenberg.at\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/univfunk2.projekte.fh-hagenberg.at\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/univfunk2.projekte.fh-hagenberg.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=66"}],"version-history":[{"count":14,"href":"https:\/\/univfunk2.projekte.fh-hagenberg.at\/index.php?rest_route=\/wp\/v2\/pages\/66\/revisions"}],"predecessor-version":[{"id":184,"href":"https:\/\/univfunk2.projekte.fh-hagenberg.at\/index.php?rest_route=\/wp\/v2\/pages\/66\/revisions\/184"}],"wp:attachment":[{"href":"https:\/\/univfunk2.projekte.fh-hagenberg.at\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}