information 5 mod

Upload: nidhin-jacob-george

Post on 14-Apr-2018

223 views

Category:

Documents


0 download

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.