summaryrefslogtreecommitdiff
path: root/docs/doxygen/other/packet_txrx.dox
diff options
context:
space:
mode:
authorMarc Lichtman <marcll@vt.edu>2018-11-02 00:53:52 -0400
committerMarc L <marcll@vt.edu>2019-06-07 12:45:14 -0400
commit73b074f121b0ab2ac38336916a60891c4d88d2cb (patch)
treede8f1782c897af3c278c224dcfbf96345c5c6f1d /docs/doxygen/other/packet_txrx.dox
parentb6f15c59e96aa83142c47aeacd64da793dd8ba31 (diff)
docs: moved usage manual to wiki
docs: first snapshot of wiki's usage manual
Diffstat (limited to 'docs/doxygen/other/packet_txrx.dox')
-rw-r--r--docs/doxygen/other/packet_txrx.dox91
1 files changed, 0 insertions, 91 deletions
diff --git a/docs/doxygen/other/packet_txrx.dox b/docs/doxygen/other/packet_txrx.dox
deleted file mode 100644
index 31417779c0..0000000000
--- a/docs/doxygen/other/packet_txrx.dox
+++ /dev/null
@@ -1,91 +0,0 @@
-# Copyright (C) 2017 Free Software Foundation, Inc.
-#
-# Permission is granted to copy, distribute and/or modify this document
-# under the terms of the GNU Free Documentation License, Version 1.3
-# or any later version published by the Free Software Foundation;
-# with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
-# A copy of the license is included in the section entitled "GNU
-# Free Documentation License".
-
-/*! \page page_packet_data Packet Data Transmission
-
-\section packet_data_introduction Introduction
-
-In many cases, the PHY layer of a digital transceiver uses <em>packets</em>to break
-down the transmission (as opposed to continuously broadcasting data), and GNU Radio
-natively supports this kind of transmission. The basic mechanisms which allow this
-are the \ref page_msg_passing and the \ref page_tagged_stream_blocks.
-
-With the tools provided in GNU Radio, simple digital packet transmission schemes
-are easily implemented, allowing the creation of packet-based communication links
-and even -networks.
-
-\section packet_data_structure Structure of a packet
-
-Typically, a packet consists of the following elements:
-
-- A preamble. This is used for detection, synchronization (in time and frequency) and possibly initial channel state estimation.
-- A header. This is of fixed length and stores information about the packet, such as (most importantly) its length, but potentially other information, such as the packet number, its intended recipient etc.
-- The payload.
-- A checksum, typically a CRC value, to validate the packet contents.
-
-At the transmitter stage, these are modulated and prepared for transmission (a forward error correction code may also be applied). Because the transmitter knows the packet length, is a trivial matter to create the transmit frames using the tagged stream blocks.
-
-The receiver has to perform a multitude of things to obtain the packet again.
-Most importantly, it has to convert an infinite stream (coming from the receiver
-device, e.g. a UHD source block) into a packetized, tagged stream.
-
-\section packet_data_hpdemuxer The Header/Payload Demuxer and header parser
-
-The key element to return back to packetized state is the gr::digital::header_payload_demux.
-At its first input, it receives a continuous stream of sample data, coming from
-the receiver device. It discards all the incoming samples, until the beginning
-of a packet is signalled, either by a stream tag, or a trigger signal on its second input.
-
-Once such a beginning is detected, the demultiplexer copies the preamble and header
-to the first output (it must know the exact length of these elements). The header
-can then be demodulated with any suitable set of GNU Radio blocks.
-
-To turn the information stored in the demodulated header bits into metadata
-which can be understood by GNU Radio, a gr::digital::packet_headerparser_b block
-is used to turn the header data into a message, which is passed back to the
-header/payload demuxer. The latter then knows the length of the payload, and
-passes that out on the second output, along with all the metadata obtained
-in the header demodulation chain.
-
-The knowledge of the header structure (i.e. how to turn a sequence of bits into
-a payload length etc.) is stored in an object of type gr::digital::packet_header_default.
-This must be passed to the header parser block.
-
-\section packet_data_ofdm Packet receiver example: OFDM
-
-\image html example_ofdm_packet_rx.png "Example: OFDM Packet Receiver"
-
-The image above shows an example of a simple OFDM receiver. It has no forward error correction,
-and uses the simplest possible frame structure.
-
-The four elements of the packet receiver are highlighted. The first part is the packet detector
-and synchronizer. The samples piped into the header/payload demuxer are fine frequency corrected,
-and a trigger signal is sent to mark the beginning of the burst.
-
-Next, the header demodulation receiver chain is activated. The FFT shifts OFDM symbols to the
-frequency domain. The coarse frequency offset and initial channel state are estimated from the
-preamble and are added to the stream as tags. The OFDM symbol containing the header is passed
-to an equalizer, which also corrects the coarse frequency offset. A serializer picks the data
-symbols from the OFDM symbol and outputs them as a sequence of scalar complex values, which
-are then demodulated into bits (in this case BPSK is used).
-
-The bits are interpreted by the header parser, which uses a gr::digital::packet_header_ofdm
-object to interpret the bits (the latter is derived form gr::digital::packet_header_default).
-The result from the header parser is then fed back to the demuxer, which now knows the length of
-payload and outputs that as a tagged stream.
-
-The payload demodulation chain is the same as the header demodulation chain, only the
-channel estimator block is unnecessary as the channel state information is still available
-as metadata on the payload tagged stream.
-
-This flow graph, as well as the corresponding transmitter, can be found in
-gr-digital/examples/ofdm/rx_ofdm.grc and gr-digital/examples/ofdm/tx_ofdm.grc
-
-
-*/