Background  |  Peer  |  Relay  |  GUI  |  Result

   

x

     Each peer will have a transmitter and a receiver system, with the flow graph from one peer's transmitter via a channel to the other peer's receiver.

Source Encoding

     The main purpose of the source encoder is to remove the parity bits or simply compress the incoming data for efficient bandwidth utilization, since there is a limited bandwidth. The raw data coming as an input to the source encoder is of variable size. The source-encoding block will divide it in fixed length frames, depending on the available data rate. It will be using mp3 mechanism for the audio signal and h264for the video signal. Both of them are the open source code in Gstreamer lib.

Channel Encoding

     Cyclic Redundancy Check (CRC) is made on the packet. Then an encoding is made to add extra parity to the packet and reduce the Bit Error Rate (BER) over the channel. The encoding method that will be used is
convolutional coding
with puncturing of half of the bits.

Packet Labeling

     The packet labeling block is there to give every packet that will be sent a unique label. The label is created by taking a number between 0 and 255 (repeated after 256 packets), perform a CRC of that number and finally add some parity bits. The encoding of the label will be better than the encoding of the rest of the packet. Moreover, it can store the packets in a memory with the number (0-255) as the pointer to its position. This enables the peer to find its 256 most recently sent packets.

Modulation

     The received frame is prepended with a preamble, converted into a complex valued symbol stream using DMPSK modulation and lastly pulse shaped with a raised cosine filter.

Frequency Synchronization

     The frequency synchronization has two parts: first a frequency drift detector and second a costas loop frequency synchronizer. The purpose of this is to use the frequency drift detector to mitigate the frequency drift of the USRPs and the costas loop to fine tune the demodulation frequency.

Demodulation

     The demodulation has two major parts, first to detect the start of packets using the correlation sequence (the preamble) and second to demodulate the data.

Packet Synchronization

     The main purpose of the packet synchronization is to synchronize the packet received from the other peer with the packet sent from the relay. The packet synchronization block will split the labels from the packets and decode and perform a CRC of the labels.

Channel Decoding

     The channel decoding block will use the parity bits, added by the channel encoder block at the other peer, and try to correct the errors that the channel has brought upon the packet. It receives two frames, one originating from the other peer and one from the relay. The frames must first be combined to recreate the non-punctured coded packet. The combined frames are then decoded using a Viterbi decoding algorithm and checked with a CRC. If the CRC finds that everything is all right, the decoded packet is sent to the source decoder, otherwise the packet is dropped.

Source Decoding

     The source decoder will first separate the audio from the video and then add the parity bits removed in the source encoding block (decompressing).

 

TSKS05 Communication Systems CDIO - 2010 Powered by ISY WARRIORS