information 5 mod
TRANSCRIPT
-
7/31/2019 Information 5 Mod
1/27
Encoder Representation (1) VectorForm
-
7/31/2019 Information 5 Mod
2/27
2Polynomial representation
Transfer Domain Representation
Convolution in time domain= Multiplication in
transfer domain.
The convolution operation is replaced by polynomial
multiplication
V1(D)= u(D).g1(D)
V2(D)= u(D).g2(D)
Code word V(D)=V1(D2)+DV2(D2) for a (2,1,m) code
V(D)=V1(Dn)+DV2(Dn)++Dn-1 Vn(Dn) foran (n,k,m) code
-
7/31/2019 Information 5 Mod
3/27
STRUCTURAL PROPERTIES OF CONVOLUTIONAL
CODES*Code Tree* Code Trellis* State Diagram
Tree Diagram (1)
-
7/31/2019 Information 5 Mod
4/27
Tree Diagram (2)
State Diagram
A state diagram is simply a graph of the possible
states of the encoder and the possible transitions fromone state to another. It can be usedtoshow therelationship between the encoder state, input, andoutput.
The stage diagram has2 (K-1) k nodes, each nodestanding for one encoder state.
-
7/31/2019 Information 5 Mod
5/27
Nodes are connected by branches Every node has2k
branches entering it and 2k branches leaving it.
The branches are labelled with c, where c is theoutput. When k=1
The solid branch indicates that the input bit is 0
* The dotted branch indicates that the input bit is 1.
Example of State Diagram
-
7/31/2019 Information 5 Mod
6/27
Distance Properties of Convolutional
Code
* The minimum free distance dfreedenotes The minimum
weight of all the paths in the modified state diagram thatdiverge from and re- emerge with the all-zero state a.
* The lowest power of the transfer function T(X)
Trellis Diagram
Trellis diagram is an extension of statediagram which explicitly shows the passage of time.
* All the possible states are shown for each instant of time.* Time is indicated by a movement to the right.* The input data bits and output code bits are represented
by a unique path through the trellis.* The lines are labelled with the output.
* After the second stage,each node in the trellis has 2kincoming paths and2k outgoing paths.
* When k=1
The solid line indicates that the input bit is 0.
The dotted line indicates that the input bit is 1.
-
7/31/2019 Information 5 Mod
7/27
Example of Trellis Diagram
Maximum Likelihood Decoding
Given the received code word r, determine the mostlikely
path through the trellis. (maximizingp(r|c')) Compare r
with the code bits associated with each path
Pick the path whose code bits are closest to r
Measure distance using either Hamming distance for
Harddecision decoding or Euclidean distance for soft-decision decoding
Once the most likely path has been selected,
-
7/31/2019 Information 5 Mod
8/27
the estimated data bits can be read from the trellis diagramExample of Maximum Likelihood Decoding
The Viterbi AlgorithmA breakthrough in communications
in the late 60s Gu Guarnteed to find the ML solution
However the complexity is only O(2K)Complexity does not depend onthe number of original data bits
-
7/31/2019 Information 5 Mod
9/27
Is easily implemented in hardware
Used in satellites, cell phones, modems, etcExample: Qualcomm Q1900
It used to find the minimum path from one source to
another source.The viterbi algorithm when applied to the
received vector r from a DMC finds the path through the
trellis with the largest metric.At each step ,it compares the
metrics of all paths entering each state and stores the pathwith the largest metric called the survivor together with its
metric.
Algorithm:
Step 1:
Starting at level j=m,compute the partial metric for
the single path entering each node (state). Store the
path(survivor) and its metric for each state.Step:2
Increment the level j by 1.compute the partial metric
for all the paths entering a state by adding the branch metric
entering that state to the metric of the connecting Survivor
at the preceeding time unit.For each state ,store the path
with the largest metric (the survivor) together with its
metric and eliminate all other paths.Step:3
If j < (L + M) repeat step:2 ,otherwise stop.
Disadvantages:
1.Smaller error probabilities cannot be achieved in practise.
2.Algorithm requires 2k fixed number of computations to
be performed per decoded information block. Ie, the
-
7/31/2019 Information 5 Mod
10/27
algorithm is not adaptable to the noise level and thus
results in unnecessary computations and waste of effort.
The ViterbiAlgorithm
Takes advantages of the structure of the trellis:* Goes through the trellis one stage at a time
*At each stage, finds the most likely path leading into each state
(surviving path) and discards all other paths leading into the state(non-surviving paths)
* Continues until the end of trellis is reached* Atthe end of the trellis, traces the most probable path
from right to left and reads the data bits from the trellis
Note that in principle whole transmitted sequence must be
received before decision. However, in practice storing of stages for
input length of 5K is quite adequate
The ViterbiAlgorithm
Implementation:
1. Initialization:
LetMt(i) be the path metric at the i-thnode, the t-thstage in trellisLarge metrics corresponding to likely paths;
small metrics corresponding to unlikely paths
Initialize the trellis, sett=0 and M0(0)=0;
2. At stage (t+1),
Branch metric calculationCompute the metric for each
branch connecting the states at time t to states at time (t+1)
The metric is the likelihood probability between the
received bits and the code bitscorresponding to that branch:p(r(t+1)|c'(t+1))
-
7/31/2019 Information 5 Mod
11/27
The Viterbi Algorithm
3. Sett=t+1; go to step 2 until the end of trellis is reached
4. Trace backAssume that the encoder
ended in the all-zero state
The most probable path leading into the last all-zero
state in the trellis has the largest metricTrace the path from right to left
Read the data bits from the trellis
Examples of the Hard-Decision
ViterbiDecoding
-
7/31/2019 Information 5 Mod
12/27
Examples of the Hard-Decision Viterbi Decoding
-
7/31/2019 Information 5 Mod
13/27
SEQUENTIAL DECODING
A Decoding effort that is adaptable to the noise level
cod ing effort of sequential decoding is
independentof K , so that large constraint lengths can be used.
Arbitrarily low error probabilities can be achieved.
The major draw back of Sequential decoding is
that noisy frames take large amounts of computation,
decoding times may exceed some upper limit, causinginformation to be lost or erased.
SEQUENTIAL DECODING
The various algorithms are
Stack algorithm
Fano algorithm
SEQUENTIAL DECODING
THE PURPOSE OF SEQUENTIAL DECODING IS To search through
the nodes of the code tree in an efficient way in an attempt
to find the maximum likelihood path.
Each node examined represents a path through part of the tree.
Whether or not a particular path is likely to be a part of the
maximum likelihood path depends on the metric value associated with that path.
The metric is a measure of the closeness of a path to the received sequence.
convolutional interleaver
A convolutional interleaver consists of T parallel lines,
with different delay in each line that represents interleaver
period [5]. In general, each successive line has a delay which is M
symbols durations higher than the previous line. The structure for
M=1 and T=3 is illustrated in Figure 1.
-
7/31/2019 Information 5 Mod
14/27
Figure 1: Convolutional interleaver structure with T=3 and M=1.
In a similar manner to the trellis termination technique
(which emits stored data from memories), an insertion of acertain number of zeros at the end of a data block can isolate the
interleaved data block. This guarantees a data block of a specific
length and generates independent blocks of data for the RSC
encoder.
For the data length L=6 and the convolutional interleaver
with M=1 and T=3, the interleaved data would be X1 0 0 X4 X2 0 0
X5 X3 0 0 X6. Since the application of convolutional interleaver in
turbo codes requires an insertion of stuff bits that reduceschannel bandwidth usage, an optimisation should be performed
on the interleaver to control the number of those bits, which can
be equal to the number of applied memories. For this purpose one
block is added after the interleaver to control the data at the
interleaver output deleting extra zero stuff bits that are inserted
at the end of each block.
In this case, the memory contents at the end of each block
have zero value that stays till the beginning of the next block.
Figure 3 shows the structure of the optimised convolutional
interleaver.
Input data Convolul Zer interleaved data
deletion
Interleaver
Convolution
al
interleaver
Zero
deletion
-
7/31/2019 Information 5 Mod
15/27
Figure 2- Optimised Convolutional Interleaver
Following the previous example, the optimised interleaver output is:X1 0 0 X4 X2 0 X5 X3 X6. Figure 3- Optimised Convolutional
Interleaver. The same procedure can be repeated to obtain
a second set of suitably interleaved data for the second RSC encoder.
More optimisation can be done to the zero stuff bits insertion for
the systematic and the first parity data after the trellis termination
procedure of the first RSC encoder, as it is not necessary to transmit
zero stuff bits in the mentioned data parts. However, these bits need
to be considered for the second RSC because of their influence onthe performance of the interleaver
ARQ:
The general idea for achieving error detection and
correction is to add someredundancy(i.e., some extra data) to a
message, which receivers can use to check consistency of the
delivered message, and to recover data determined to beerroneous. Error-detection and correction schemes can be either
systematicor non-systematic: In a systematic scheme, the
transmitter sends the original data, and attaches a fixed number
ofcheck bits (orparity data), which are derived from the data bits
by somedeterministic algorithm. If only error detection is
required, a receiver can simply apply the same algorithm to the
received data bits and compare its output with the received check
bits; if the values do not match, an error has occurred at somepoint during the transmission. In a system that uses a non-
systematic code, the original message is transformed into an
encoded message that has at least as many bits as the original
message.
Good error control performance requires the scheme to be
selected based on the characteristics of the communication
channel. Commonchannel modelsinclude memory-less modelswhere errors occur randomly and with a certain probability, and
http://en.wikipedia.org/wiki/Redundancy_(information_theory)http://en.wikipedia.org/wiki/Redundancy_(information_theory)http://en.wikipedia.org/wiki/Redundancy_(information_theory)http://en.wikipedia.org/wiki/Systematic_codehttp://en.wikipedia.org/wiki/Systematic_codehttp://en.wikipedia.org/wiki/Deterministic_algorithmhttp://en.wikipedia.org/wiki/Deterministic_algorithmhttp://en.wikipedia.org/wiki/Deterministic_algorithmhttp://en.wikipedia.org/wiki/Channel_modelhttp://en.wikipedia.org/wiki/Channel_modelhttp://en.wikipedia.org/wiki/Channel_modelhttp://en.wikipedia.org/wiki/Channel_modelhttp://en.wikipedia.org/wiki/Deterministic_algorithmhttp://en.wikipedia.org/wiki/Systematic_codehttp://en.wikipedia.org/wiki/Redundancy_(information_theory) -
7/31/2019 Information 5 Mod
16/27
dynamic models where errors occur primarily inbursts.
Consequently, error-detecting and correcting codes can be
generally distinguished between random-error-
detecting/correcting and burst-error-detecting/correcting. Some
codes can also be suitable for a mixture of random errors and
burst errors.
If thechannel capacitycannot be determined, or is highly
varying, an error-detection scheme may be combined with a
system for retransmissions of erroneous data. This is known as
automatic repeat request(ARQ), and is most notably used in theInternet. An alternate approach for error control ishybrid
automatic repeat request(HARQ), which is a combination of ARQ
and error-correction coding.
Error correction may generally be realized in two different ways:
Automatic repeat request(ARQ) (sometimes also referred to
as backward error correction): This is an error controltechnique whereby an error detection scheme is combined
with requests for retransmission of erroneous data. Every
block of data received is checked using the error detection
code used, and if the check fails, retransmission of the data is
requested this may be done repeatedly, until the data can
be verified.
Forward error correction(FEC): The sender encodes the data
using an error-correcting code (ECC) prior to transmission.The additional information (redundancy) added by the code
is used by the receiver to recover the original data. In
general, the reconstructed data is what is deemed the "most
likely" original data.
ARQ and FEC may be combined, such that minor errors are
corrected without retransmission, and major errors are corrected
via a request for retransmission: this is calledhybrid automaticrepeat-request(HARQ).
http://en.wikipedia.org/wiki/Burst_errorhttp://en.wikipedia.org/wiki/Burst_errorhttp://en.wikipedia.org/wiki/Burst_errorhttp://en.wikipedia.org/wiki/Channel_capacityhttp://en.wikipedia.org/wiki/Channel_capacityhttp://en.wikipedia.org/wiki/Channel_capacityhttp://en.wikipedia.org/wiki/Error_detection_and_correction#Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Error_detection_and_correction#Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Error_detection_and_correction#Hybrid_schemeshttp://en.wikipedia.org/wiki/Error_detection_and_correction#Hybrid_schemeshttp://en.wikipedia.org/wiki/Error_detection_and_correction#Hybrid_schemeshttp://en.wikipedia.org/wiki/Error_detection_and_correction#Hybrid_schemeshttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Forward_error_correctionhttp://en.wikipedia.org/wiki/Forward_error_correctionhttp://en.wikipedia.org/wiki/Redundancy_(information_theory)http://en.wikipedia.org/wiki/Redundancy_(information_theory)http://en.wikipedia.org/wiki/Hybrid_automatic_repeat-requesthttp://en.wikipedia.org/wiki/Hybrid_automatic_repeat-requesthttp://en.wikipedia.org/wiki/Hybrid_automatic_repeat-requesthttp://en.wikipedia.org/wiki/Hybrid_automatic_repeat-requesthttp://en.wikipedia.org/wiki/Hybrid_automatic_repeat-requesthttp://en.wikipedia.org/wiki/Hybrid_automatic_repeat-requesthttp://en.wikipedia.org/wiki/Redundancy_(information_theory)http://en.wikipedia.org/wiki/Forward_error_correctionhttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Error_detection_and_correction#Hybrid_schemeshttp://en.wikipedia.org/wiki/Error_detection_and_correction#Hybrid_schemeshttp://en.wikipedia.org/wiki/Error_detection_and_correction#Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Channel_capacityhttp://en.wikipedia.org/wiki/Burst_error -
7/31/2019 Information 5 Mod
17/27
Automatic Repeat reQuest(ARQ) is an error control
method for data transmission that makes use of error-detection
codes, acknowledgment and/or negative acknowledgment
messages, andtimeoutsto achieve reliable data transmission. An
acknowledgmentis a message sent by the receiver to indicate that
it has correctly received adata frame.
Usually, when the transmitter does not receive the
acknowledgment before the timeout occurs (i.e., within a
reasonable amount of time after sending the data frame), it
retransmits the frame until it is either correctly received or theerror persists beyond a predetermined number of
retransmissions.Automatic Repeat reQuest(ARQ), also known asAutomatic Repeat
Query, is anerror-controlmethod fordata transmissionthat
usesacknowledgements(messages sent by the receiver indicating that it
has correctly received adata frameorpacket) andtimeouts(specified
periods of time allowed to elapse before an acknowledgment is to be
received) to achieve reliable data transmission over an unreliable service.
If the sender does not receive an acknowledgment before the timeout, it
usuallyre-transmitsthe frame/packet until the sender receives an
acknowledgment or exceeds a predefined number of re-transmissions.
The types of ARQ protocols include
Stop-and-wait ARQ
Go-Back-N ARQ
Selective Repeat ARQ
ARQ is appropriate if the communication channel has
varying or unknowncapacity, such as is the case on the Internet.
However, ARQ requires the availability of aback channel, results
in possibly increasedlatencydue to retransmissions, and requires
the maintenance of buffers and timers for retransmissions, which
in the case ofnetwork congestioncan put a strain on the server
and overall network capacity
http://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Timeout_(computing)http://en.wikipedia.org/wiki/Timeout_(computing)http://en.wikipedia.org/wiki/Timeout_(computing)http://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Error_controlhttp://en.wikipedia.org/wiki/Error_controlhttp://en.wikipedia.org/wiki/Error_controlhttp://en.wikipedia.org/wiki/Data_transmissionhttp://en.wikipedia.org/wiki/Data_transmissionhttp://en.wikipedia.org/wiki/Data_transmissionhttp://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Packet_(information_technology)http://en.wikipedia.org/wiki/Packet_(information_technology)http://en.wikipedia.org/wiki/Timeout_(computing)http://en.wikipedia.org/wiki/Timeout_(computing)http://en.wikipedia.org/wiki/Timeout_(computing)http://en.wikipedia.org/wiki/Retransmission_(data_networks)http://en.wikipedia.org/wiki/Retransmission_(data_networks)http://en.wikipedia.org/wiki/Retransmission_(data_networks)http://en.wikipedia.org/wiki/Stop-and-wait_ARQhttp://en.wikipedia.org/wiki/Stop-and-wait_ARQhttp://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Selective_Repeat_ARQhttp://en.wikipedia.org/wiki/Selective_Repeat_ARQhttp://en.wikipedia.org/wiki/Channel_capacityhttp://en.wikipedia.org/wiki/Channel_capacityhttp://en.wikipedia.org/wiki/Channel_capacityhttp://en.wikipedia.org/wiki/Back_channelhttp://en.wikipedia.org/wiki/Back_channelhttp://en.wikipedia.org/wiki/Back_channelhttp://en.wikipedia.org/wiki/Latency_(engineering)http://en.wikipedia.org/wiki/Latency_(engineering)http://en.wikipedia.org/wiki/Latency_(engineering)http://en.wikipedia.org/wiki/Network_congestionhttp://en.wikipedia.org/wiki/Network_congestionhttp://en.wikipedia.org/wiki/Network_congestionhttp://en.wikipedia.org/wiki/Network_congestionhttp://en.wikipedia.org/wiki/Latency_(engineering)http://en.wikipedia.org/wiki/Back_channelhttp://en.wikipedia.org/wiki/Channel_capacityhttp://en.wikipedia.org/wiki/Selective_Repeat_ARQhttp://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Stop-and-wait_ARQhttp://en.wikipedia.org/wiki/Retransmission_(data_networks)http://en.wikipedia.org/wiki/Timeout_(computing)http://en.wikipedia.org/wiki/Packet_(information_technology)http://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Data_transmissionhttp://en.wikipedia.org/wiki/Error_controlhttp://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Timeout_(computing)http://en.wikipedia.org/wiki/Automatic_repeat_request -
7/31/2019 Information 5 Mod
18/27
Error-correcting code
Forward error correction
Anerror-correcting code(ECC) or forward error correction
(FEC) code is a system of addingredundantdata, orparity data, to
a message, such that it can be recovered by a receiver even when
a number of errors (up to the capability of the code being used)
were introduced, either during the process of transmission, or on
storage. Since the receiver does not have to ask the sender for
retransmission of the data, aback-channelis not required inforward error correction, and it is therefore suitable forsimplex
communicationsuch asbroadcasting. Error-correcting codes are
frequently used inlower-layercommunication, as well as for
reliable storage in media such asCDs,DVDs,hard disks, andRAM.
Error-correcting codes are usually distinguished between
convolutional codesandblock codes:
Convolutional codes are processed on a bit-by-bit basis. They
are particularly suitable for implementation in hardware,
and theViterbi decoderallowsoptimal decoding.
Block codes are processed on ablock-by-blockbasis. Early
examples of block codes arerepetition codes,Hamming
codesandmultidimensional parity-check codes. They were
followed by a number of efficient codes,Reed-Solomon
codesbeing the most notable due to their current
http://en.wikipedia.org/wiki/Forward_error_correctionhttp://en.wikipedia.org/wiki/Forward_error_correctionhttp://en.wikipedia.org/wiki/Error-correcting_codehttp://en.wikipedia.org/wiki/Error-correcting_codehttp://en.wikipedia.org/wiki/Error-correcting_codehttp://en.wikipedia.org/wiki/Redundancy_(information_theory)http://en.wikipedia.org/wiki/Redundancy_(information_theory)http://en.wikipedia.org/wiki/Redundancy_(information_theory)http://en.wikipedia.org/wiki/Back-channelhttp://en.wikipedia.org/wiki/Back-channelhttp://en.wikipedia.org/wiki/Back-channelhttp://en.wikipedia.org/wiki/Simplex_communicationhttp://en.wikipedia.org/wiki/Simplex_communicationhttp://en.wikipedia.org/wiki/Simplex_communicationhttp://en.wikipedia.org/wiki/Simplex_communicationhttp://en.wikipedia.org/wiki/Broadcastinghttp://en.wikipedia.org/wiki/Broadcastinghttp://en.wikipedia.org/wiki/Broadcastinghttp://en.wikipedia.org/wiki/OSI_modelhttp://en.wikipedia.org/wiki/OSI_modelhttp://en.wikipedia.org/wiki/OSI_modelhttp://en.wikipedia.org/wiki/Compact_Dischttp://en.wikipedia.org/wiki/Compact_Dischttp://en.wikipedia.org/wiki/Compact_Dischttp://en.wikipedia.org/wiki/DVDhttp://en.wikipedia.org/wiki/DVDhttp://en.wikipedia.org/wiki/DVDhttp://en.wikipedia.org/wiki/Hard_diskhttp://en.wikipedia.org/wiki/Hard_diskhttp://en.wikipedia.org/wiki/Hard_diskhttp://en.wikipedia.org/wiki/Random_access_memoryhttp://en.wikipedia.org/wiki/Random_access_memoryhttp://en.wikipedia.org/wiki/Random_access_memoryhttp://en.wikipedia.org/wiki/Convolutional_codehttp://en.wikipedia.org/wiki/Convolutional_codehttp://en.wikipedia.org/wiki/Block_codehttp://en.wikipedia.org/wiki/Block_codehttp://en.wikipedia.org/wiki/Block_codehttp://en.wikipedia.org/wiki/Viterbi_decoderhttp://en.wikipedia.org/wiki/Viterbi_decoderhttp://en.wikipedia.org/wiki/Viterbi_decoderhttp://en.wikipedia.org/wiki/Maximum_likelihood_decodinghttp://en.wikipedia.org/wiki/Maximum_likelihood_decodinghttp://en.wikipedia.org/wiki/Maximum_likelihood_decodinghttp://en.wikipedia.org/wiki/Block_(telecommunications)http://en.wikipedia.org/wiki/Block_(telecommunications)http://en.wikipedia.org/wiki/Block_(telecommunications)http://en.wikipedia.org/wiki/Repetition_codehttp://en.wikipedia.org/wiki/Repetition_codehttp://en.wikipedia.org/wiki/Repetition_codehttp://en.wikipedia.org/wiki/Hamming_codehttp://en.wikipedia.org/wiki/Hamming_codehttp://en.wikipedia.org/wiki/Hamming_codehttp://en.wikipedia.org/wiki/Hamming_codehttp://en.wikipedia.org/wiki/Multidimensional_parity-check_codehttp://en.wikipedia.org/wiki/Multidimensional_parity-check_codehttp://en.wikipedia.org/wiki/Multidimensional_parity-check_codehttp://en.wikipedia.org/wiki/Reed-Solomon_codehttp://en.wikipedia.org/wiki/Reed-Solomon_codehttp://en.wikipedia.org/wiki/Reed-Solomon_codehttp://en.wikipedia.org/wiki/Reed-Solomon_codehttp://en.wikipedia.org/wiki/Reed-Solomon_codehttp://en.wikipedia.org/wiki/Reed-Solomon_codehttp://en.wikipedia.org/wiki/Multidimensional_parity-check_codehttp://en.wikipedia.org/wiki/Hamming_codehttp://en.wikipedia.org/wiki/Hamming_codehttp://en.wikipedia.org/wiki/Repetition_codehttp://en.wikipedia.org/wiki/Block_(telecommunications)http://en.wikipedia.org/wiki/Maximum_likelihood_decodinghttp://en.wikipedia.org/wiki/Viterbi_decoderhttp://en.wikipedia.org/wiki/Block_codehttp://en.wikipedia.org/wiki/Convolutional_codehttp://en.wikipedia.org/wiki/Random_access_memoryhttp://en.wikipedia.org/wiki/Hard_diskhttp://en.wikipedia.org/wiki/DVDhttp://en.wikipedia.org/wiki/Compact_Dischttp://en.wikipedia.org/wiki/OSI_modelhttp://en.wikipedia.org/wiki/Broadcastinghttp://en.wikipedia.org/wiki/Simplex_communicationhttp://en.wikipedia.org/wiki/Simplex_communicationhttp://en.wikipedia.org/wiki/Back-channelhttp://en.wikipedia.org/wiki/Redundancy_(information_theory)http://en.wikipedia.org/wiki/Error-correcting_codehttp://en.wikipedia.org/wiki/Forward_error_correction -
7/31/2019 Information 5 Mod
19/27
widespread use.Turbo codesandlow-density parity-check
codes(LDPC) are relatively new constructions that can
provide almostoptimal efficiency.
Shannon's theoremis an important theorem in forward
error correction, and describes the maximuminformation rateat
which reliable communication is possible over a channel that has
a certain error probability orsignal-to-noise ratio(SNR). This
strict upper limit is expressed in terms of thechannel capacity.
More specifically, the theorem says that there exist codes such
that with increasing encoding length the probability of error on adiscrete memoryless channelcan be made arbitrarily small,
provided that thecode rateis smaller than the channel capacity.
The code rate is defined as the fraction k/n ofksource symbols
and n encoded symbols.
The actual maximum code rate allowed depends on the
error-correcting code used, and may be lower. This is because
Shannon's proof was only of existential nature, and did not showhow to construct codes which are both optimal and haveefficient
encoding and decoding algorithms.
Hybrid schemes
Hybrid ARQ
Hybrid ARQis a combination of ARQ and forward error correction.There are two basic approaches:
Messages are always transmitted with FEC parity data (and error-
detection redundancy). A receiver decodes a message using the
parity information, and requests retransmission using ARQ only if the
parity data was not sufficient for successful decoding (identified
through a failed integrity check).
Messages are transmitted without parity data (only with error-detection information). If a receiver detects an error, it requests FEC
http://en.wikipedia.org/wiki/Turbo_codehttp://en.wikipedia.org/wiki/Turbo_codehttp://en.wikipedia.org/wiki/Turbo_codehttp://en.wikipedia.org/wiki/Low-density_parity-check_codehttp://en.wikipedia.org/wiki/Low-density_parity-check_codehttp://en.wikipedia.org/wiki/Low-density_parity-check_codehttp://en.wikipedia.org/wiki/Low-density_parity-check_codehttp://en.wikipedia.org/wiki/Category:Capacity-approaching_codeshttp://en.wikipedia.org/wiki/Category:Capacity-approaching_codeshttp://en.wikipedia.org/wiki/Category:Capacity-approaching_codeshttp://en.wikipedia.org/wiki/Shannon's_theoremhttp://en.wikipedia.org/wiki/Shannon's_theoremhttp://en.wikipedia.org/wiki/Information_ratehttp://en.wikipedia.org/wiki/Information_ratehttp://en.wikipedia.org/wiki/Information_ratehttp://en.wikipedia.org/wiki/Signal-to-noise_ratiohttp://en.wikipedia.org/wiki/Signal-to-noise_ratiohttp://en.wikipedia.org/wiki/Signal-to-noise_ratiohttp://en.wikipedia.org/wiki/Channel_capacityhttp://en.wikipedia.org/wiki/Channel_capacityhttp://en.wikipedia.org/wiki/Channel_capacityhttp://en.wikipedia.org/wiki/Channel_modelhttp://en.wikipedia.org/wiki/Channel_modelhttp://en.wikipedia.org/wiki/Code_ratehttp://en.wikipedia.org/wiki/Code_ratehttp://en.wikipedia.org/wiki/Code_ratehttp://en.wikipedia.org/wiki/Polynomial_timehttp://en.wikipedia.org/wiki/Polynomial_timehttp://en.wikipedia.org/wiki/Polynomial_timehttp://en.wikipedia.org/wiki/Hybrid_ARQhttp://en.wikipedia.org/wiki/Hybrid_ARQhttp://en.wikipedia.org/wiki/Hybrid_ARQhttp://en.wikipedia.org/wiki/Hybrid_ARQhttp://en.wikipedia.org/wiki/Hybrid_ARQhttp://en.wikipedia.org/wiki/Hybrid_ARQhttp://en.wikipedia.org/wiki/Polynomial_timehttp://en.wikipedia.org/wiki/Code_ratehttp://en.wikipedia.org/wiki/Channel_modelhttp://en.wikipedia.org/wiki/Channel_capacityhttp://en.wikipedia.org/wiki/Signal-to-noise_ratiohttp://en.wikipedia.org/wiki/Information_ratehttp://en.wikipedia.org/wiki/Shannon's_theoremhttp://en.wikipedia.org/wiki/Category:Capacity-approaching_codeshttp://en.wikipedia.org/wiki/Low-density_parity-check_codehttp://en.wikipedia.org/wiki/Low-density_parity-check_codehttp://en.wikipedia.org/wiki/Turbo_code -
7/31/2019 Information 5 Mod
20/27
information from the transmitter using ARQ, and uses it to
reconstruct the original message.
The latter approach is particularly attractive on anerasure channelwhen
using arateless erasure code.
Applications
Applications that require low latency (such as telephone
conversations) cannot useAutomatic Repeat reQuest(ARQ); they must use
Forward Error Correction(FEC). By the time anARQsystem discovers an
error and re-transmits it, the re-sent data will arrive too late to be anygood.
Applications where the transmitter immediately forgets the
information as soon as it is sent (such as most television cameras) cannot
useARQ; they must useFECbecause when an error occurs, the original
data is no longer available. (This is also whyFECis used in data storage
systems such asRAIDanddistributed data store).
Applications that use ARQ must have areturn channel. Applications
that have no return channel cannot use ARQ.
Applications that require extremely low error rates (such as digital
money transfers) must useARQ.
Stop-and-wait ARQ
Stop-and-wait ARQ is a method used intelecommunicationsto send
information between two connected devices. It ensures that information is
not lost due to dropped packets and that packets are received in the correctorder. It is the simplest kind ofautomatic repeat-request(ARQ) method. A
stop-and-wait ARQ sender sends oneframeat a time; it is a special case of
the generalsliding window protocolwith both transmit and receive
window sizes equal to 1. After sending each frame, the sender doesn't send
any further frames until it receives anacknowledgement(ACK) signal.
After receiving a good frame, the receiver sends an ACK. If the ACK does not
reach the sender before a certain time, known as the timeout, the sender
sends the same frame again.
http://en.wikipedia.org/wiki/Erasure_channelhttp://en.wikipedia.org/wiki/Erasure_channelhttp://en.wikipedia.org/wiki/Erasure_channelhttp://en.wikipedia.org/wiki/Fountain_codehttp://en.wikipedia.org/wiki/Fountain_codehttp://en.wikipedia.org/wiki/Fountain_codehttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Forward_Error_Correctionhttp://en.wikipedia.org/wiki/Forward_Error_Correctionhttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Forward_Error_Correctionhttp://en.wikipedia.org/wiki/Forward_Error_Correctionhttp://en.wikipedia.org/wiki/Forward_Error_Correctionhttp://en.wikipedia.org/wiki/Forward_Error_Correctionhttp://en.wikipedia.org/wiki/Forward_Error_Correctionhttp://en.wikipedia.org/wiki/Forward_Error_Correctionhttp://en.wikipedia.org/wiki/RAIDhttp://en.wikipedia.org/wiki/RAIDhttp://en.wikipedia.org/wiki/RAIDhttp://en.wikipedia.org/wiki/Distributed_data_storehttp://en.wikipedia.org/wiki/Distributed_data_storehttp://en.wikipedia.org/wiki/Distributed_data_storehttp://en.wikipedia.org/wiki/Return_channelhttp://en.wikipedia.org/wiki/Return_channelhttp://en.wikipedia.org/wiki/Return_channelhttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Telecommunicationshttp://en.wikipedia.org/wiki/Telecommunicationshttp://en.wikipedia.org/wiki/Telecommunicationshttp://en.wikipedia.org/wiki/Automatic_repeat-requesthttp://en.wikipedia.org/wiki/Automatic_repeat-requesthttp://en.wikipedia.org/wiki/Automatic_repeat-requesthttp://en.wikipedia.org/wiki/Frame_(telecommunications)http://en.wikipedia.org/wiki/Frame_(telecommunications)http://en.wikipedia.org/wiki/Frame_(telecommunications)http://en.wikipedia.org/wiki/Sliding_window_protocolhttp://en.wikipedia.org/wiki/Sliding_window_protocolhttp://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Sliding_window_protocolhttp://en.wikipedia.org/wiki/Frame_(telecommunications)http://en.wikipedia.org/wiki/Automatic_repeat-requesthttp://en.wikipedia.org/wiki/Telecommunicationshttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Return_channelhttp://en.wikipedia.org/wiki/Distributed_data_storehttp://en.wikipedia.org/wiki/RAIDhttp://en.wikipedia.org/wiki/Forward_Error_Correctionhttp://en.wikipedia.org/wiki/Forward_Error_Correctionhttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Forward_Error_Correctionhttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Fountain_codehttp://en.wikipedia.org/wiki/Erasure_channel -
7/31/2019 Information 5 Mod
21/27
The above behavior is the simplest Stop-and-Wait
implementation. However, in a real life implementation there are problems
to be addressed.
Typically the transmitter adds aredundancy checknumber to the
end of each frame. The receiver uses the redundancy check number to
check for possible damage. If the receiver sees that the frame is good, it
sends an ACK. If the receiver sees that the frame is damaged, the receiver
discards it and does not send an ACK -- pretending that the frame was
completely lost, not merely damaged.
One problem is where the ACK sent by the receiver is damagedor lost. In this case, the sender doesn't receive the ACK, times out, and
sends the frame again. Now the receiver has two copies of the same frame,
and doesn't know if the second one is a duplicate frame or the next frame of
the sequence carrying identical data.
Another problem is when the transmission medium has such a
longlatencythat the sender's timeout runs out before the frame reaches
the receiver. In this case the sender resends the same packet. Eventually
the receiver gets two copies of the same frame, and sends an ACK for eachone. The sender, waiting for a single ACK, receives two ACKs, which may
cause problems if it assumes that the second ACK is for the next frame in
the sequence.
To avoid these problems, the most common solution is to define
a 1 bitsequence numberin the header of the frame. This sequence number
alternates (from 0 to 1) in subsequent frames. When the receiver sends an
ACK, it includes the sequence number of the next packet it expects. This
way, the receiver can detect duplicated frames by checking if the framesequence numbers alternate. If two subsequent frames have the same
sequence number, they are duplicates, and the second frame is discarded.
Similarly, if two subsequent ACKs reference the same sequence number,
they are acknowledging the same frame.
Stop-and-wait ARQ is inefficient compared to other ARQs,
because the time between packets, if the ACK and the data are received
successfully, is twice the transit time (assuming the turnaround time can be
zero). The throughput on the channel is a fraction of what it could be. Tosolve this problem, one can send more than one packet at a time with a
http://en.wikipedia.org/wiki/Redundancy_checkhttp://en.wikipedia.org/wiki/Redundancy_checkhttp://en.wikipedia.org/wiki/Redundancy_checkhttp://en.wikipedia.org/wiki/Latency_(engineering)http://en.wikipedia.org/wiki/Latency_(engineering)http://en.wikipedia.org/wiki/Latency_(engineering)http://en.wikipedia.org/wiki/Latency_(engineering)http://en.wikipedia.org/wiki/Redundancy_check -
7/31/2019 Information 5 Mod
22/27
larger sequence number and use one ACK for a set. This is what is done
inGo-Back-N ARQand theSelective Repeat ARQ.
Selective Repeat ARQ
It may be used as a protocol for the delivery and acknowledgement
of message units, or it may be used as a protocol for the delivery of
subdivided message sub-units.
When used as the protocol for the delivery ofmessages, the
sending process continues to send a number offramesspecified by
a window size even after a frame loss. UnlikeGo-Back-N ARQ, the receiving
process will continue to accept andacknowledgeframes sent after an initial
error; this is the general case of thesliding window protocolwith both
transmit and receive window sizes greater than 1.
The receiver process keeps track of the sequence number of the
earliest frame it has not received, and sends that number with
everyacknowledgement(ACK) it sends. If a frame from the sender does not
reach the receiver, the sender continues to send subsequent frames until ithas emptied its window. The receiver continues to fill its receiving window
with the subsequent frames, replying each time with an ACK containing the
sequence number of the earliest missingframe. Once the sender has sent all
the frames in its window, it re-sends the frame number given by the ACKs,
and then continues where it left off.
The size of the sending and receiving windows must be equal,
and half the maximum sequence number (assuming that sequence numbers
are numbered from 0 to n1) to avoid miscommunication in all cases ofpackets being dropped. To understand this, consider the case when all
ACKs are destroyed. If the receiving window is larger than half the
maximum sequence number, some, possibly even all, of the packages that
are resent after timeouts are duplicates that are not recognized as such.
The sender moves its window for every packet that is acknowledged.[1]
When used as the protocol for the delivery ofsubdivided
messages it works somewhat differently. In non-continuous channels
where messages may be variable in length, standard ARQ or Hybrid ARQprotocols may treat the message as a single unit. Alternately selective
http://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Selective_Repeat_ARQhttp://en.wikipedia.org/wiki/Selective_Repeat_ARQhttp://en.wikipedia.org/wiki/Selective_Repeat_ARQhttp://en.wikipedia.org/wiki/Selective_Repeat_ARQhttp://en.wikipedia.org/wiki/Selective_Repeat_ARQhttp://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Sliding_Window_Protocolhttp://en.wikipedia.org/wiki/Sliding_Window_Protocolhttp://en.wikipedia.org/wiki/Sliding_Window_Protocolhttp://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Selective_Repeat_ARQ#cite_note-0http://en.wikipedia.org/wiki/Selective_Repeat_ARQ#cite_note-0http://en.wikipedia.org/wiki/Selective_Repeat_ARQ#cite_note-0http://en.wikipedia.org/wiki/Selective_Repeat_ARQ#cite_note-0http://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Sliding_Window_Protocolhttp://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Selective_Repeat_ARQhttp://en.wikipedia.org/wiki/Selective_Repeat_ARQhttp://en.wikipedia.org/wiki/Go-Back-N_ARQ -
7/31/2019 Information 5 Mod
23/27
retransmission may be employed in conjunction with the basic ARQ
mechanism where the message is first subdivided into sub-blocks (typically
of fixed length) in a process calledpacket segmentation. The original
variable length message is thus represented as a concatenation of a
variable number of sub-blocks. While in standard ARQ the message as a
whole is either acknowledged (ACKed) or negatively acknowledged
(NAKed), in ARQ with selective transmission the NAKed response would
additionally carry a bit flag indicating the identity of each sub-block
successfully received. In ARQ with selective retransmission of sub-divided
messages each retransmission diminishes in length, needing to only
contain the sub-blocks that were NAKed.
In most channel models with variable length messages, the
probability of error-free reception diminishes in inverse proportion with
increasing message length. In other words it's easier to receive a short
message than a longer message. Therefore standard ARQ techniques
involving variable length messages have increased difficulty delivering
longer messages, as each repeat is the full length. Selective retransmission
applied to variable length messages completely eliminates the difficulty in
delivering longer messages, as successfully delivered sub-blocks areretained after each transmission, and the number of outstanding sub-
blocks in following transmissions diminishes.
Examples
TheTransmission Control Protocoluses a variant ofGo-Back-N
ARQto ensure reliable transmission of data over theInternet Protocol,
which does not provide guaranteed delivery of packets; with SelectiveAcknowledgement (SACK), it uses Selective Repeat ARQ.
TheITU-TG.hnstandard, which provides a way to create a high-
speed (up to 1 Gigabit/s)Local area networkusing existing home wiring
(power lines, phone lines andcoaxial cables), uses Selective Repeat ARQ to
ensure reliable transmission over noisy media.G.hnemployspacket
segmentationto sub-divide messages into smaller units, to increase the
probability that each one is received correctly.
http://en.wikipedia.org/wiki/Packet_segmentationhttp://en.wikipedia.org/wiki/Packet_segmentationhttp://en.wikipedia.org/wiki/Packet_segmentationhttp://en.wikipedia.org/wiki/Transmission_Control_Protocolhttp://en.wikipedia.org/wiki/Transmission_Control_Protocolhttp://en.wikipedia.org/wiki/Transmission_Control_Protocolhttp://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Internet_Protocolhttp://en.wikipedia.org/wiki/Internet_Protocolhttp://en.wikipedia.org/wiki/Internet_Protocolhttp://en.wikipedia.org/wiki/ITU-Thttp://en.wikipedia.org/wiki/ITU-Thttp://en.wikipedia.org/wiki/G.hnhttp://en.wikipedia.org/wiki/G.hnhttp://en.wikipedia.org/wiki/G.hnhttp://en.wikipedia.org/wiki/Local_area_networkhttp://en.wikipedia.org/wiki/Local_area_networkhttp://en.wikipedia.org/wiki/Local_area_networkhttp://en.wikipedia.org/wiki/Power_line_communicationhttp://en.wikipedia.org/wiki/Power_line_communicationhttp://en.wikipedia.org/wiki/Ethernet_over_coaxhttp://en.wikipedia.org/wiki/Ethernet_over_coaxhttp://en.wikipedia.org/wiki/Ethernet_over_coaxhttp://en.wikipedia.org/wiki/G.hnhttp://en.wikipedia.org/wiki/G.hnhttp://en.wikipedia.org/wiki/G.hnhttp://en.wikipedia.org/wiki/Packet_segmentationhttp://en.wikipedia.org/wiki/Packet_segmentationhttp://en.wikipedia.org/wiki/Packet_segmentationhttp://en.wikipedia.org/wiki/Packet_segmentationhttp://en.wikipedia.org/wiki/Packet_segmentationhttp://en.wikipedia.org/wiki/G.hnhttp://en.wikipedia.org/wiki/Ethernet_over_coaxhttp://en.wikipedia.org/wiki/Power_line_communicationhttp://en.wikipedia.org/wiki/Local_area_networkhttp://en.wikipedia.org/wiki/G.hnhttp://en.wikipedia.org/wiki/ITU-Thttp://en.wikipedia.org/wiki/Internet_Protocolhttp://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Go-Back-N_ARQhttp://en.wikipedia.org/wiki/Transmission_Control_Protocolhttp://en.wikipedia.org/wiki/Packet_segmentation -
7/31/2019 Information 5 Mod
24/27
Go-Back-N ARQ
Go-Back-N ARQ is a specific instance of theautomatic repeat
request(ARQ) protocol, in which the sending process continues to send a
number offramesspecified by a window size even without receiving
anacknowledgement(ACK) packet from the receiver. It is a special case of
the generalsliding window protocolwith the transmit window size of N
and receive window size of 1.
The receiver process keeps track of the sequence number of the next frame
it expects to receive, and sends that number with every ACK it sends. Thereceiver will ignore any frame that does not have the exact sequence
number it expects whether that frame is a "past" duplicate of a frame it
has already ACK'ed or whether that frame is a "future" frame past the last
packet it is waiting for. Once the sender has sent all of the frames in
its window, it will detect that all of the frames since the first lost frame
are outstanding, and will go back to sequence number of the last ACK it
received from the receiver process and fill its window starting with that
frame and continue the process over again.Go-Back-N ARQ is a more efficient use of a connection thanStop-and-wait
ARQ, since unlike waiting for an acknowledgement for each packet, the
connection is still being utilized as packets are being sent. In other words,
during the time that would otherwise be spent waiting, more packets are
being sent. However, this method also results in sending frames multiple
times if any frame was lost or damaged, or the ACK acknowledging them
was lost or damaged, then that frame and all following frames in the
window (even if they were received without error) will be re-sent. To avoidthis,Selective Repeat ARQcan be used.
Convolutional Interleavers
A convolutional interleaver consists of a set of shift registers, each with a fixed
delay. In a typical convolutional interleaver, the delays are nonnegative integermultiples of a fixed integer (although a general multiplexed interleaver allows
http://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Sliding_window_protocolhttp://en.wikipedia.org/wiki/Sliding_window_protocolhttp://en.wikipedia.org/wiki/Sliding_window_protocolhttp://en.wikipedia.org/wiki/Stop-and-wait_ARQhttp://en.wikipedia.org/wiki/Stop-and-wait_ARQhttp://en.wikipedia.org/wiki/Stop-and-wait_ARQhttp://en.wikipedia.org/wiki/Stop-and-wait_ARQhttp://en.wikipedia.org/wiki/Selective_Repeat_ARQhttp://en.wikipedia.org/wiki/Selective_Repeat_ARQhttp://en.wikipedia.org/wiki/Selective_Repeat_ARQhttp://en.wikipedia.org/wiki/Selective_Repeat_ARQhttp://en.wikipedia.org/wiki/Stop-and-wait_ARQhttp://en.wikipedia.org/wiki/Stop-and-wait_ARQhttp://en.wikipedia.org/wiki/Sliding_window_protocolhttp://en.wikipedia.org/wiki/Acknowledgement_(data_networks)http://en.wikipedia.org/wiki/Data_framehttp://en.wikipedia.org/wiki/Automatic_repeat_requesthttp://en.wikipedia.org/wiki/Automatic_repeat_request -
7/31/2019 Information 5 Mod
25/27
-
7/31/2019 Information 5 Mod
26/27
array row by row. To configure this interleaver, use the Number of columns of
helical array parameter to set the width of the array, and use the Group
size andHelical array step size parameters to determine how symbols are placedin the array. See the reference page for theHelical Interleaverblock for more
details and an example.
Delays of Convolutional Interleavers
After a sequence of symbols passes through a convolutional interleaver and a
corresponding convolutional deinterleaver, the restored sequence lags behind the
original sequence. The delay, measured in symbols, between the original and
restored sequences is
(Number of shift registers) * (Maximum delay among all shift registers)
for the most general multiplexed interleaver. If your model incurs an additional
delay between the interleaver output and the deinterleaver input, then the restored
sequence lags behind the original sequence by the sum of the additional delay and
the amount in the preceding formula.
Note For proper synchronization, the delay in your model between the interleaver output
and the deinterleaver input must be an integer multiple of the number of shift registers. Youcan use theInteger Delayblock in the DSP Blockset to adjust delays manually, if necessary.
Convolutional Interleaver block. In the special case implemented by the
Convolutional Interleaver/Convolutional Deinterleaver pair, note that the number
of shift registers is the Rows of shift registers parameter, while the maximum
delay among all shift registers is
(Register length step)*(Rows of shift registers-1)
Helical Interleaver block. In the special case implemented by the Helical
Interleaver/Helical Deinterleaver pair, the delay between the restored sequence and
the original sequence is
where C is the Number of columns in helical array parameter, N is the Group
size parameter, and s is the Helical array step size parameter.
http://www-rohan.sdsu.edu/doc/matlab/toolbox/commblks/ref/helicalinterleaver.htmlhttp://www-rohan.sdsu.edu/doc/matlab/toolbox/commblks/ref/helicalinterleaver.htmlhttp://www-rohan.sdsu.edu/doc/matlab/toolbox/commblks/ref/helicalinterleaver.htmlhttp://www-rohan.sdsu.edu/doc/matlab/toolbox/dspblks/integerdelay.htmlhttp://www-rohan.sdsu.edu/doc/matlab/toolbox/dspblks/integerdelay.htmlhttp://www-rohan.sdsu.edu/doc/matlab/toolbox/dspblks/integerdelay.htmlhttp://www-rohan.sdsu.edu/doc/matlab/toolbox/dspblks/integerdelay.htmlhttp://www-rohan.sdsu.edu/doc/matlab/toolbox/commblks/ref/helicalinterleaver.html -
7/31/2019 Information 5 Mod
27/27
Example: Convolutional Interleavers
The example below illustrates convolutional interleaving and deinterleaving usinga sequence of consecutive integers. It also illustrates the inherent delay and the
effect of the interleaving blocks' initial conditions.