U.S. patent application number 10/347243 was filed with the patent office on 2003-07-10 for incremental redundancy radio link protocol.
Invention is credited to Nobelen, Robert van.
Application Number | 20030131302 10/347243 |
Document ID | / |
Family ID | 22054400 |
Filed Date | 2003-07-10 |
United States Patent
Application |
20030131302 |
Kind Code |
A1 |
Nobelen, Robert van |
July 10, 2003 |
Incremental redundancy radio link protocol
Abstract
A method and apparatus for sending blocks of data without any
error correcting coding is described. If the block is received
without an error then the next block of data is transmitted. If the
block is received with an error, the receiving device sends a
message requesting error correcting information. The transmitting
device sends the error correcting information in specified
increments until the receiving device can successfully decode the
block without error. Once the block is received without errors, the
next block of data is transmitted.
Inventors: |
Nobelen, Robert van; (Christ
Church, NZ) |
Correspondence
Address: |
KENYON & KENYON
1500 K STREET, N.W., SUITE 700
WASHINGTON
DC
20005
US
|
Family ID: |
22054400 |
Appl. No.: |
10/347243 |
Filed: |
January 21, 2003 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10347243 |
Jan 21, 2003 |
|
|
|
10040790 |
Jan 9, 2002 |
|
|
|
6532563 |
|
|
|
|
10040790 |
Jan 9, 2002 |
|
|
|
09178575 |
Oct 26, 1998 |
|
|
|
6353907 |
|
|
|
|
60064223 |
Oct 29, 1997 |
|
|
|
Current U.S.
Class: |
714/752 |
Current CPC
Class: |
H04L 1/1607 20130101;
H04L 1/1819 20130101; H04L 1/1812 20130101 |
Class at
Publication: |
714/752 |
International
Class: |
H04L 001/00; G06F
011/00; G06F 011/30; H03M 013/00; G08C 025/00 |
Claims
What is claimed is:
1. A method for correcting an error in a block of data sent from a
first device to a second device, comprising: encoding a block of
data by constructing a plurality of data sub-blocks and a plurality
of parity sub-blocks; transmitting only the plurality of data
sub-blocks on an initial transmission from the first device to the
second device; determining whether the plurality of data sub-blocks
were received with an error; and if the plurality of data
sub-blocks were received with an error: transmitting a first one of
the plurality of parity sub-blocks from the first device to the
second device.
2. The method of claim 1, wherein the plurality of data sub-blocks
have no redundancy and represent a 1:1 mapping to the block of
data.
3. The method of claim 1, wherein the plurality of parity
sub-blocks have parity information derived from the block of
data.
4. The method of claim 1, wherein the parity sub-blocks are used by
a protocol for forward error correction.
5. The method of claim 1, further comprising: determining whether
the transmission of the first one of the plurality of parity
sub-blocks enabled successful decoding; and if the transmission of
the first one of the plurality of parity sub-blocks did not enable
successful decoding, transmitting subsequent ones of the plurality
of parity sub-blocks from the first device to the second
device.
6. The method of claim 5, wherein the transmitting of subsequent
ones of the plurality of parity sub-blocks occurs in incremental
steps.
7. The method of claim 6, wherein each incremental step transmits a
succeeding one of the plurality of parity sub-blocks.
8. The method of claim 5, wherein transmitting subsequent ones of
the plurality of parity sub-blocks continues until decoding
succeeds or all of the plurality of parity sub-blocks have been
transmitted.
9. The method of claim 1, further comprising maintaining a table to
store an identification of data sub-blocks that have been
transmitted from the first device but not yet determined to be
received at the second device without an error.
10. A machine-readable medium having stored thereon a plurality of
executable instructions, the plurality of instructions comprising
instructions to: encode a block of data by constructing a plurality
of data sub-blocks and a plurality of parity sub-blocks; transmit
only the plurality of data sub-blocks on an initial transmission
from the first device to the second device; determine whether the
plurality of data sub-blocks were received with an error; and if
the plurality of data sub-blocks were received with an error:
transmit a first one of the plurality of parity sub-blocks from the
first device to the second device.
11. The machine-readable medium of claim 10, further having stored
thereon a plurality of executable instructions, the plurality of
instructions comprising instructions to: determine whether the
transmission of the first one of the plurality of parity sub-blocks
enabled successful decoding; and if the transmission of the first
one of the plurality of parity sub-blocks did not enable successful
decoding, transmit subsequent ones of the plurality of parity
sub-blocks from the first device to the second device.
12. The machine-readable medium of claim 10, further having stored
thereon a plurality of executable instructions, the plurality of
instructions comprising instructions to maintain a table to store
an identification of data sub-blocks that have been transmitted
from the first device but not yet determined to be received by the
second device without an error.
13. A receiver, comprising: a quantizer that converts soft-decision
information from a layer 1 protocol into a q level representation;
a decoder that decodes the at least the q level representation of
the soft decision information to yield a concatenated block of data
comprising error detection bits of a frame check sequence and a
deliverable data block; a frame check sequence decoder that
computes a frame check sequence of the deliverable data block and
indicates to the receiver whether the deliverable data block passed
the frame check; and a deblocking module that de-concatenates the
deliverable data block and the frame check sequence.
14. The receiver of claim 13, wherein q is a design parameter that
trades off receiver memory requirements against system
performance.
15. The receiver of claim 13, wherein, for a q level quantization,
the memory requirements at the receiver per bit are given by
log.sub.2q.
16. The receiver of claim 13, wherein the decoder uses a soft
decision Viterbi algorithm.
17. A method of recovering a block of data from a plurality of
sub-blocks of data, each sub-block of data identified by at least a
block sequence number and a sub-block sequence number, comprising:
determining whether a data block identified by the block sequence
number of the sub-block was previously successfully decoded, and if
not previously successfully decoded: storing the data of the
sub-block at a location identified by the block sequence number and
the sub-block sequence number; passing a set of sub-blocks to a
decoder; and decoding the set of sub-blocks to generate the block
of data.
18. The method of claim 17, wherein the set of sub-blocks comprises
all sub-blocks stored for the block sequence number.
19. The method of claim 17 further comprising: computing a frame
check sequence of the block of data; and if the frame check
sequence passes, storing the block of data in place of the set of
sub-blocks.
20. A computer system comprising a processor and a memory, the
memory containing instructions to be executed in accordance with
the method of claim 17.
21. A method of decoding a block of data from a plurality of data
and parity sub-blocks, wherein the data in the data and parity
sub-blocks is in a form of soft decision bits and wherein each
sub-block of data is identified by at least a block sequence number
and a sub-block sequence number, the method comprising: quantizing
the soft decision bits of the one of the data and parity sub-blocks
to yield a quantized soft-information sub-block; storing the
quantized soft-information sub-block at a location corresponding to
the block sequence number and the sub-block sequence number;
passing all quantized soft-information sub-blocks corresponding to
the block sequence number to a decoder; and decoding, at the
decoder, all passed quantized soft-information sub-blocks
corresponding to the block sequence number to yield a decoded
block.
22. The method of claim 14, further comprising: computing a frame
check sequence of the decoded block, and if the frame check
sequence passes: storing the decoded block in place of all
quantized soft-information sub-blocks corresponding to the block
sequence number.
Description
[0001] This application is continuation of U.S. application Ser.
No. 10/040,790 filed Jan. 9, 2002, which is a continuation of U.S.
application Ser. No. 09/178,575 filed Oct. 26, 1998 and claims the
benefit of U.S. Provisional Application Serial No. 60/064,223 filed
Oct. 29, 1997 each of which are incorporated herein by reference in
their entireties.
FIELD OF THE INVENTION
[0002] The invention relates to communication networks in general.
More particularly, the invention relates to a radio link protocol
for increasing bandwidth efficiency for a network.
BACKGROUND OF THE INVENTION
[0003] The demands on an individuals personal and professional time
has created the need to communicate with others while on the move.
Cellular systems provide this capability. As the number of
individuals seeking to use cellular services increases, however,
cellular systems are quickly running out of capacity. The term
"capacity" loosely refers to the number of cellular calls a system
can carry at any one time. This is evidenced by the rising number
of "busy" signals the average cellular user receives while
attempting to place a call in heavily populated areas such as
within the downtown portion of a city. Consequently, cellular
providers are turning towards digital cellular technologies to
increase the capacity of their systems. Accordingly, this movement
led to the establishment of a digital cellular standard in the
United States referred to as Electronic Industries Association
(EIA) Interim Standard IS-136, Rev 1.1, "800 MHz TDMA
Cellular--Radio Interface--Mobile Station--Base Station
Compatability--Digital Control Channel," Oct. 11, 1995
(IS-136).
[0004] IS-136 defines a digital cellular system utilizing a variety
of technologies to enhance the capacity of a system, such as using
Time Division Multiple Access (TDMA), voice compression using
Vector Sum Linear Prediction Coding (VSELP), and digital signaling.
In addition to the above, IS-136 uses four-level phase shift keying
(4-PSK) modulation. Modulation refers to the process of converting
digital data into analog tones that can be transmitted over radio
frequency (RF) spectrum.
[0005] A revision to IS-136 has been proposed. The revised IS-136
standard is referred to as "IS-136+." IS-136+ attempts to achieve
higher data rates over IS-136 by, among other things, increasing
the modulation format from 4-PSK to 8-PSK or 16-Quadrature
Amplitude Modulation (QAM). While increasing the modulation format
increases the capacity of the system, it also increases the number
of frame errors in the system, especially at low Signal-to-Noise
Ratio (SNR).
[0006] Conventional IS-136 and IS-136+ systems use a radio link
protocol referred to as EIA IS-130, Rev A, "800 MHZ Cellular
Systems--TDMA Radio Interface--Radio Link Protocol 1," Jul. 25,
1997 (IS-130) to correct frame errors. IS-130, however, is
unsatisfactory for a number of reasons, two of which are discussed
below.
[0007] The first problem with IS-130 is that it does not account
for the SNR for a communication channel. IS-130 uses a technique
referred to as "5/6 encoding" as a means of performing error
correction for data transmitted from a transmitter to a receiver.
The technique of 5/6 encoding means for every five bits of data, a
sixth bit is introduced to correct errors. The problem with 5/6
encoding, however, is that it introduces a fixed amount of overhead
for every five bits of actual data. If a communication channel has
a high SNR, which means there is a lower likelihood of errors
occurring during transmission, many times there is no need for the
extra overhead. In other words, a block of transmitted data is
received, without any errors, and therefore the bandwidth spent
transmitting the error correcting bits could have been used to
transmit actual data. Conversely, if a communication channel has a
low SNR, which means there is a greater likelihood of errors
occurring during transmission, in many instances the errors are so
numerous that 5/6 encoding cannot adequately correct them. Again,
the resources used to transmit the error correcting bits are
wasted. Moreover, this latter point also gives rise to a second
problem associated with IS-130.
[0008] The second problem with IS-130 is that if the received block
of data has errors that cannot be corrected, the entire block is
discarded and is resent by the system. This means that the
bandwidth spent transmitting and receiving the block is wasted. The
time spent resending the block takes up resources that could
otherwise be devoted to carrying extra calls for the system, i.e.,
increasing the capacity of the system.
[0009] In view of the foregoing, it can be appreciated that a
substantial need exists for a radio link protocol that solves the
above-discussed problems.
SUMMARY OF THE INVENTION
[0010] One embodiment of the invention includes a method and
apparatus for sending blocks of data without any error correcting
coding. If the block is received without an error then the next
block of data is transmitted. If the block is received with an
error, the receiving device sends a message requesting error
correcting information. The transmitting device sends the error
correcting information in specified increments until the receiving
device can successfully decode the block without error. Once the
block is received without errors, the next block of data is
transmitted.
[0011] With these and other advantages and features of the
invention that will become hereinafter apparent, the nature of the
invention may be more clearly understood by reference to the
following detailed description of the invention, the appended
claims and to the several drawings attached herein.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] FIG. 1 illustrates a cellular communications system suitable
for practicing one embodiment of the invention.
[0013] FIG. 2 is a protocol stack suitable for practicing one
embodiment of the invention.
[0014] FIG. 3 is a block diagram of a computer system for
implementing an Incremental Radio Link Protocol (IRLP) in
accordance with one embodiment of the invention.
[0015] FIG. 4 is a block diagram of a sending IRLP module in
accordance with one embodiment of the invention.
[0016] FIG. 5 shows the format of a block B in accordance with one
embodiment of the invention.
[0017] FIG. 6 illustrates rate 2 binary convolutional encoding in
accordance with one embodiment of the invention.
[0018] FIG. 7 is an example of a transmit table in accordance with
one embodiment of the invention.
[0019] FIG. 8 illustrates a Packet Data Unit in accordance with one
embodiment of the invention.
[0020] FIG. 9 is a block diagram of a receiving IRLP module in
accordance with one embodiment of the invention.
[0021] FIG. 10 illustrates a receive table in accordance with one
embodiment of the invention.
[0022] FIG. 11 illustrates a frame as defined by IS-136.
[0023] FIG. 12 illustrates the throughput results of one embodiment
of the invention versus the IS-130 protocol for low Doppler
frequencies.
[0024] FIG. 13 illustrates the throughput results of one embodiment
of the invention versus the IS-130 protocol for high Doppler
frequencies.
[0025] FIG. 14 illustrates the throughput and average delay for
D=1, 2, 3, 4 and D=5 for low Doppler frequencies in accordance with
one embodiment of the invention.
[0026] FIG. 15 illustrates the throughput and average delay for
D=1, 2, 3, 4 and D=5 for high Doppler frequencies in accordance
with one embodiment of the invention.
[0027] FIG. 16 illustrates the throughput and delay curves for the
adapted and non-adapted systems operating at high Doppler in
accordance with one embodiment of the invention.
DETAILED DESCRIPTION
[0028] This embodiment of the invention includes a hybrid
acknowledgment/request (ARQ) based Radio Link Protocol for IS-136+
that offers higher data throughput compared to the Radio Link
Protocol as defined by IS-130. This embodiment of the invention
operates by transmitting data uncoded on the initial transmission
and incrementally transmits parity information upon receipt of a
negative acknowledgment from the receiver. The parity information
is derived from a rate 1/2 binary convolutional code. The receiving
protocol retains received information in the form of soft decision
bits and jointly decodes the data and parity until decoding is
successful. The gain of the protocol is between 2 to 5 dB at low to
mid SNR ranges, and 20% throughput at high SNR.
[0029] IS-136+ is an extension of IS-136 aiming to achieve higher
data rates by increasing the modulation format from.4-PSK to 8-PSK
and/or 16-QAM. The penalty incurred by a higher modulation format
is an increase in the frame error rate (FER) especially at low SNR.
The radio link protocol defined in IS-130 (RLP1) is designed to
correct the layer-1 frame errors by using a selective ARQ scheme to
retransmit lost frames. Although the layer-1 and layer-2 systems
are individually optimized, when operating jointly there is a
mismatch leading to inefficiencies, especially at extreme values of
SNR. The main cause for sub-optimal performance of the joint system
is a mismatch between the layer-1 code rate and the average SNR the
system is operating at. At low SNR, the fixed rate 5/6 encoding of
layer-1 is too weak, leading to frame error rates of as much as
80%, while at high SNR, the channel is of sufficient quality that
coding is almost unnecessary.
[0030] This embodiment of the invention modifies the IS-130 radio
link protocol and the layer-1 specification such that the code rate
is adapted as necessary to match the average SNR of the system and
the realization of the random processes affecting the transmitted
signal. More particularly, the definition of layer-1 is modified to
be an uncoded data transport system that delivers bits to layer-2
in a soft decision format, that is, likelihood information for each
bit is retained. The encoding task is moved to layer-2 in such a
way that the code rate is dynamically selected as required. This is
implemented by initially transmitting the data uncoded, followed by
transmitting parity information as determined by the receiver state
feedback information. In other words, the power of the code is
increased as required. Although this embodiment of the invention is
discussed in terms of modifying IS-130, it can be appreciated that
other radio link protocols can be also modified using the
principles discussed herein and still fall within the scope of the
invention.
[0031] A general overview of the steps implemented in accordance
with one embodiment of the invention is as follows. A block of data
is sent from a first network device to a second network device. The
first network device determines whether the block was received with
an error. If the block was received with an error, the first
network device sends increments of error correcting information
until the error has been corrected or until all available error
correcting information for the block has been sent.
[0032] In particular, the first network device generates a block of
bits at the first network device, encodes the block, and sends the
encoded blocks to a second network device. The first network device
determines whether the encoded block was received by the second
network device with an error. The first network device sends
increments of error correcting information to the second network
device if the encoded block was received with an error.
[0033] The first network device determines whether the encoded
block was received with errors as follows. First, the first network
device receives a first error message from the second network
device. A status bit associated with the block is set and
evaluated.
[0034] The first network device generates the block of bits as
follows. The first network device receives a service data unit
(SDU) comprised of a series of bits. The first network device
generates error detection bits for the service data unit bits. The
first network device then concatenates the SDU bits and the error
detection bits to form a single block.
[0035] The first network device encodes the block as follows. The
first network device generates error correcting bits for the block.
It then allocates the data bits and error detection bits to data
intermediate blocks, and the error correcting bits to error
correcting intermediate blocks. The first network device
interleaves bits from the data intermediate blocks to form data
sub-blocks, and bits from the error correcting intermediate blocks
to form error correcting sub-blocks.
[0036] The first network device sends the encoded block as follows.
The first network device forms a current data sub-block into a data
packet data unit, and sends the data packet data unit to the second
network device. The first network device then determines whether
the data packet data unit was received by the second network device
with an error. The first network device resends the data packet
data unit until it is received by the second network device without
an error. This sequence continues for each data sub-block for the
block until all data sub-blocks are received by the second network
device without an error.
[0037] The first network device determines whether the data packet
data unit was received by the second network device with an error
as follows. The first network device receives a second error
message from the second network device indicating a data packet
data unit was received with an error. The first network device sets
a status bit associated with the data sub-block used to form the
data packet data unit, and then evaluates or checks the status
bit.
[0038] The first network device forms the current data sub-block as
follows. The first network device encodes a header block for each
encoded sub-block. Each encoded header block is then added to the
encoded sub-block.
[0039] The first network device sends error correcting information
as follows. The first network device forms a current error
correcting sub-block into a packet data unit, and sends the error
correcting packet data unit to the second network device. The first
network device then determines whether the error correcting packet
data unit was received by the second network device with an error.
The error correcting sub-block is resent and re-evaluated until the
error correcting packet data unit is received by the second network
device without an error. The first network device determines
whether the block was corrected using the error correcting
sub-block used to form the error correcting packet data unit. If
the block was not corrected, the sequence is repeated using a next
error correcting sub-block until the block is corrected or until
each error correcting sub-block for the block is received by the
second network device without an error.
[0040] The first network device determines whether the error
correcting packet data unit was received by the second network
device with an error as follows. The first network device receives
a third error message from the second network device indicating the
error correcting packet data unit was received with an error. It
sets a status bit associated with the error correcting sub-block
used to form the error correcting packet data unit, and it
evaluates the status bit.
[0041] The first network device determines whether the block was
corrected using the error correcting sub-block used to form the
error correcting packet data unit as follows. The first network
device receives a fourth error message from the second network
device indicating the block was not corrected using the error
correcting sub-block. A status bit associated with the block is set
and evaluated.
[0042] The first network device forms the error correcting packet
data unit as follows. It encodes a header block for each encoded
sub-block. The encoded header block is then added to the encoded
sub-block.
[0043] The next section will describe in general terms the steps
performed by the second network device in accordance with one
embodiment of the invention.
[0044] The second network device receives an encoded block at the
second network device and performs the following steps. It decodes
the received block and determines whether the block has an error.
The second network device then corrects the error using error
correcting information sent by the first network device. The second
network device then generates or recovers an SDU from the
block.
[0045] The second network device receives the encoded block as
follows. The second network device receives a current data packet
data unit from the first network device, and it determines whether
the data packet data unit has an error. This is repeated until the
data packet data unit is received without an error. The entire
sequence is repeated with a next data packet data unit until each
data packet data unit for the block is received without an
error.
[0046] The second network device determines whether the data packet
data unit has an error as follows. The second network device
decodes the data packet data unit into header bits and error
detection bits, and it tests the header bits using the error
detection bits. The second network device then sets a status bit
for a data sub-block indicated by the header bits in accordance
with the test results, and it evaluates the status bit.
[0047] The second network device decodes the received block as
follows. It first retrieves data bits and error detecting bits from
the received data sub-blocks. It then forms a service data
unit.
[0048] The second network device determines whether the received
block as an error as follows. The second network device tests the
SDU using the error detection bits. It then sets a status bit
associated with the block in accordance with the test, and it
evaluates the bit.
[0049] The second network device corrects the received block as
follows. The second network device receives a current error
correcting protocol data unit, and it determines whether the error
correcting packet data unit has an error. It then sends a third
error message to the first network device. This is repeated until
the error correcting packet data unit is received by the second
network device without an error. The second network device
determines whether the block was corrected using the error
correcting sub-block used to form the error correcting packet data
unit. If not corrected, the entire sequence is repeated with a next
error correcting sub-block until the block is corrected or until
each error correcting sub-block for the block is received by the
second network device without an error.
[0050] The second network device determines whether the block was
corrected using the error correcting sub-block used to form the
error correcting packet data unit as follows. The block is
corrected using the bits from the error correcting sub-block. The
block is tested using the error detection bits. The second network
device sends a fourth error message to the first network device in
view of the test results, and it sets a status bit associated with
the block. The status bit is then evaluated.
[0051] Referring now in detail to the drawings wherein like parts
are designated by like reference numerals throughout, there is
illustrated in FIG. 1 a cellular communications system suitable for
practicing one embodiment of the invention. As shown in FIG. 1, a
cellular communications system 100 comprises mobile stations 102,
104 and 106 in communication with a base station 108 over a
plurality of radio-frequency (RF) channels. Base station 108 is
connected to a mobile telephone switching office (MTSO) 110. MTSO
110 is connected to a public switched telephone network (PSTN) 112,
which in turn is connected to audio interface devices 114, 116 and
118. It is worthy to note that cellular communications system 100
is but one example of a system in which the present invention can
be displayed, and that a person of ordinary skill in the art
understands that system 100 can comprise any number of sub-systems
and configurations and still fall within the scope of the
invention.
[0052] In operation, for example, mobile station 102 requests a
communication channel for completing a call to audio interface
device 118. Base station 108 establishes the communications channel
with mobile station 102 and with audio interface device 118 via
MTSO 110 and PSTN 112. Once the communication is established,
mobile station 102 and audio interface device 118 begin
communicating information.
[0053] Establishing the communications channel between base station
108 and mobile station 102, as well as managing the transfer of
information between both, are accomplished in accordance with a
series of communication protocols. These protocols manage different
operations of the communications process, which are typically
defined in terms of "layers," and are collectively referred to as a
protocol stack. The protocol stack used by system 100 is described
with reference to FIG. 2 below.
[0054] FIG. 2 is a protocol stack suitable for practicing one
embodiment of the invention. As shown in FIG. 2, mobile station 102
communicates with base station 108 over a radio interface 202 by
utilizing a series of communication protocols broken down into
three distinct layers. Layer 1 of the protocol stack is the
physical layer. The physical layer is concerned with the
transmission of unstructured bit streams over a physical link,
involving such parameters as signal voltage swing, signal bit
duration and so forth. In this embodiment of the invention, the
physical layer operates in accordance with IS-136 or IS-136+. It is
worthy to note that IS-136 and IS-136+ will be uniformly referred
to as IS-136 unless differences between IS-136 and IS-136+ merit
separate treatment. Layer 2 of the protocol stack is the data link
layer. The data link layer provides for the reliable transfer of
data across the physical link, such as sending blocks of data with
the necessary synchronization, error control, flow control, and so
forth. As currently defined, IS-136 and IS-136+ utilize a radio
link protocol defined by IS-130 for the data link layer operations.
Layer 3 of the protocol stack is the network layer. The network
layer provides upper layers with independence from the data
transmission and switching technologies used to connect systems.
The network layer is responsible for establishing, maintaining and
terminating connections. In this embodiment of the invention, the
network layer operates in accordance with any network layer
protocol suitable for use with IS-136+ and IS-130.
[0055] This embodiment of the invention relates to the physical
layer (layer 1) and data link layer (layer 2) for the
above-described protocol stack. The IS-136 layer-1 specification
for data transport delivers packets of 216 bits using a rate 5/6
binary convolutional code and .pi./4 offset 4-DPSK modulation.
IS-136+ aims to increase data rates by using higher modulation
formats such as 8-PSK and 16-QAM. This embodiment of the invention
modifies IS-136 layer-1 to transport frames of bits uncoded and
deliver these to layer-2 in a soft decision format, that is,
reliability information on each bit is included. It is assumed that
the physical layer decides on the most appropriate modulation
format (4-PSK, 8-PSK, 16-QAM) depending on channel conditions
(average SNR and Doppler frequency). Such decisions can be based on
measuring the average SNR over a number of slots and estimating the
Doppler frequency f.sub.D as a function of the rate of change of
the signal power. Further, this embodiment of the invention
replaces the radio link protocol defined by IS-130 with an
incremental radio link protocol (IRLP) described herein. As with
IS-130, IRLP is a radio link protocol for asynchronously
transporting data between unspecified layer-3 entities, and is
positioned between the physical layer (layer-1) and the network
layer (layer-3) as shown in FIG. 2.
[0056] FIG. 3 is a block diagram of a computer system for
implementing the IRLP in accordance with one embodiment of the
invention. In this embodiment of the invention, functionality for
the IRLP is implemented in the form of computer program segments
stored in memory for execution by a processing device. Accordingly,
FIG. 3 shows a computer system 300 comprising a processor 302 and a
memory 304. Processor 302 includes any processor of sufficient
processing power to perform the functionality for the IRLP
described in detail below. Examples of processors suitable to
practice the various embodiments of the invention include the
Pentium.RTM., Pentium.RTM. Pro, and Pentium.RTM. II microprocessors
from Intel Corporation. Memory 304 can be any type of high-speed
computer-readable memory such as random access memory (RAM),
dynamic RAM (DRAM), read only memory (ROM), programmable read only
memory (PROM), erasable programmable read only memory (EPROM),
electronically erasable programmable read only memory (EEPROM), and
so forth.
[0057] The overall functioning of computer system 300 is controlled
by processor 302, which operates under the control of executed
computer program instructions that are stored in memory 304. The
computer program instructions implementing the functionality for
this embodiment of the invention are stored in memory 304 and are
shown as separate functional modules, namely, sending IRLP module
308 and receiving IRLP module 310. Also stored in memory 304 is
transmit table 306 for use with sending IRLP module 308, and
receive table module 312 for use with receiving module 310. Modules
308 and 310 will be described in further detail below.
[0058] FIG. 4 is a block diagram of a sending IRLP module in
accordance with one embodiment of the invention. As shown in FIG.
4, sending IRLP module 308 comprises a blocking module 404, an
encoding module 406, and a send transport module 408. In operation,
module 308 receives a Service Data Unit (SDU) 402 from the network
layer (layer-3), transforms SDU 402 into a corresponding Packet
Data Unit (PDU) 410, and transports PDU 410 over the physical layer
(layer-1). In this embodiment of the invention, SDU 402 is one of a
series of SDUs all in the form of octets which are to be delivered
in-sequence to the layer-3 on the receiving side.
[0059] FIG. 5 shows the format of a block B.sub.i in accordance
with one embodiment of the invention. Blocking module 404 accepts
SDU 402 from the transmitting layer-3 and constructs a blocked SDU
by concatenating L.sub.Data bits and a frame check sequence (FCS).
In this embodiment of the invention, the FCS is a Cyclic (Bi)
Redundancy Check (CRC) of length L.sub.DCRC computed over the
corresponding data bits. The lengths L.sub.Data and L.sub.DCRC are
design parameters to be optimized. The blocks B.sub.i of length
L.sub.Block=L.sub.Data+L.sub.DCRC are passed to encoder 406
described below.
[0060] From the blocked SDU B.sub.i, encoder 406 constructs a set
of 2D sub-blocks of length L.sub.Sub-block=L.sub.Block/D. These
sub-blocks are divided into two categories, namely data sub-blocks
and parity sub-blocks denoted by D.sub.ij and P.sub.ij (j=1 . . .
D), respectively. The data sub-blocks D.sub.i1 to D.sub.iD contain
no redundancy and represent a 1 to 1 mapping to the blocked SDU
B.sub.i. The parity sub-blocks P.sub.i1 to P.sub.iD contain parity
information derived from B.sub.i and are used by the protocol for
Forward Error Correction (FEC) upon decoding failure at the
receiving side. In this embodiment of the invention, the sub-blocks
are derived from B.sub.i by a rate 1/2 binary convolutional
encoding as shown FIG. 6.
[0061] FIG. 6 illustrates rate 2 binary convolutional encoding in
accordance with one embodiment of the invention. This embodiment of
the invention includes rate 1/2 binary convolutional encoding using
a 32-state maximum Hamming distance code with octal generators (53,
75). It is noted that the output bits resulting from the encoding
are mapped to the sub-blocks in an interleaved manner to maximize
time/code diversity. The encoded sub-blocks are passed to send
transport module 408 for transmission.
[0062] Send transport module 408 transports the blocked SDUs
B.sub.i to the receiving side and delivers them in-sequence to
layer-3. Module 408 accomplishes this by initially sending just the
data sub-blocks D.sub.i1 to D.sub.iD followed by sending additional
parity sub-blocks P.sub.ij whenever the receiver fails to decode
block B.sub.i correctly. Send transport module 408 cannot discard
the sub-blocks corresponding to a block B.sub.i until it has
received a positive acknowledgment from the receiver for B.sub.i,
hence the protocol operates by maintaining in a table the
sub-blocks that have been transmitted but not yet acknowledged. An
example of a transmit table is shown in FIG. 7 as described
below.
[0063] FIG. 7 is an example of a transmit table in accordance with
one embodiment of the invention. FIG. 7 shows a transmit table
operating with D=4. The transmit table contains the following
fields:
[0064] 1. NS is the sequence number assigned by the sending RLP to
each block B.sub.i. The sequence number is i mod WS, where WS is
the window size.
[0065] 2. B is a flag denoting whether or not the corresponding
block B.sub.i has been successfully decoded by the receiver. A zero
indicates the entry is undecoded.
[0066] 3. R indicates whether module 408 needs to transmit more
information about block B.sub.i to the receiving RLP.
[0067] 4. MC indicates whether the protocol has sent
non-consecutive multiple sub-blocks of the block B.sub.i. A 1
indicates yes and 0 indicates no.
[0068] 5. B.sub.D1 to B.sub.DD respectively indicate whether
sub-blocks D.sub.1 . . . D.sub.D have been received. A 0 indicates
unreceived.
[0069] 6. B.sub.P1 to B.sub.PD respectively indicate whether
sub-blocks P.sub.1 . . . P.sub.D have been received. A 0 indicates
unreceived.
[0070] 7. DATA contains the data and parity {D.sub.i1 . . .
D.sub.iD, P.sub.i1 . . . P.sub.iD} sub-blocks corresponding to
block B.sub.i.
[0071] Send transport module 408 transports data and parity
sub-blocks in accordance with the following algorithm:
[0072] 1. Read the feedback packet.
[0073] 2. Update the flags B, B.sub.D1 . . . B.sub.DD, and B.sub.P1
. . . B.sub.PD. Set the index variable K.sub.R to the point in the
entry most down in the table for which one of the B flags was
updated (i.e., changed from 0 to 1) and for which MC=0.
[0074] 3. For each transmit table entry from the first to the entry
K.sub.R (determined at step 2), set R to 1 and MC to 0.
[0075] 4. Delete all entries in the table with B set to 1.
[0076] 5. If the last entry in the table has R set to 1, then go to
step 9.
[0077] 6. Find the first entry with R set to 1, move it to the
bottom of the table and go to step 9. If there is no entry with R
set to 1, go to step 7.
[0078] 7. If the window is not full and there are data sub-blocks
at the encoder output corresponding to a data block B.sub.i,
retrieve the sub-blocks D.sub.i1 . . . D.sub.iD and P.sub.i1 . . .
P.sub.iD from the encoder, assign the next NS set B and MC to 0, R
to 1 and place the entry at the bottom of the table, and go to step
9. Otherwise, go to step 8.
[0079] 8. If the table is empty, stop. Otherwise, move the first
table entry to the bottom of the table, set MC and R to 1, and go
to step 9.
[0080] 9. If all data sub-blocks have been transmitted, then send
the next parity sub-block and set R=0. Otherwise send the next data
sub-block.
[0081] Note that for transmission, the sub-blocks are combined with
a header as described below.
[0082] FIG. 8 illustrates a PDU in accordance with one embodiment
of the invention. Module 408 sends the data sub-blocks encapsulated
in the frame format shown in FIG. 8. The packet consists of two
parts, namely an encoded header and a data or parity sub-block
which is one of {D.sub.i1 . . . D.sub.iD, P.sub.i1 . . . PiD} as
decided by step 9 of the sending protocol procedure. The header is
rate 1/2 encoded to ensure a high decoding reliability and contains
the following fields:
[0083] 1. NS is the block sequence number of length L.sub.NS
bits.
[0084] 2. NB is sub-block sequence number of length L.sub.NB bits.
The number NB represents which sub-block of the block B.sub.i is
being transmitted. The length L.sub.NB is related to D by:
L.sub.NB=[log.sub.22D].
[0085] 3. A CRC of length L.sub.HCRC which is a FCS over the header
bits only. This FCS is used to ensure the integrity of the header
information.
[0086] The total PDU length is L.sub.PDU which is the layer-1
transmission packet length and is a design parameter to be
optimized. It is a function of the number of IS-136 slots over
which a transmission occurs and the modulation format. It is worthy
to note that although the encoder described above is a 32-state
rate 1/2 convolutional encoder, a block code with error correction
and detection capabilities may be used and still fall within the
scope of the invention.
[0087] FIG. 9 is a block diagram of a receiving IRLP module in
accordance with one embodiment of the invention. Receiving IRLP
module 310 is a peer for sending IRLP module 308 and is responsible
for combining the received sub-blocks and jointly decoding them to
recover the data blocks B.sub.i. Module 310 receives PDU 410 from
layer-1. Module 310 comprises a receive transport module 902, a
quantizer 904, a decoder 906, a FCS decoder 908 and a deblocking
module 910. Module 310 outputs a replica of SDU 402.
[0088] Module 310 utilizes receive table 312. Receive table 312 is
complementary to transmit table 306 and stores the received
sub-blocks and decoded blocks until they can be delivered
in-sequence to layer-3. It is worthy to note that because the
sub-blocks are retrieved from layer-1 in soft-decision format and
need to be stored in receive table 312, a high memory overhead is
incurred (for example, memory requirements would increase by a
factor of 8 if 8 bits are stored per soft bit). Therefore for
storage purposes, the soft information is quantized to q
levels.
[0089] FIG. 10 illustrates a receive table in accordance with one
embodiment of the invention. Receive table 312 has the following
fields:
[0090] 1. NS is the block sequence number.
[0091] 2. BF indicates whether the corresponding block has been
decoded successfully. A 1 indicates success.
[0092] 3. B.sub.D1 to B.sub.DD respectively indicate whether data
sub-blocks D.sub.1 . . . D.sub.D have been received.
[0093] 4. B.sub.P1 to B.sub.PD respectively indicate whether parity
sub-blocks P.sub.1 . . . P.sub.D have been received.
[0094] 5. DATA contains the soft-decision data and parity
{D.sub.i1, . . . D.sub.iD, P.sub.i1 . . . P.sub.iD} sub-blocks
corresponding to block B.sub.i.
[0095] Module 310 operates in accordance with following receive
algorithm:
[0096] 1. If available, retrieve a received soft-decision PDU
U.sub.t' from layer-1, decode the header and check its CRC. If it
fails, discard the PDU and go to step 6, else go to step 2.
[0097] 2. If BF corresponding to the received NS is set to 1, then
discard the received PDU and go to 6, else go to 3.
[0098] 3. Set the flag B.sub.Dj or P.sub.Dj as specified by NB to
1. Use the quantizer to quantize the soft-decision bits of U.sub.t'
and store the sub-block information at the location corresponding
to NS and NB in the receive table. If this sub-block was already
received earlier, then add the soft-decision metrics.
[0099] 4. Pass the quantized soft-information sub-blocks
corresponding to NS already stored in the table to the decoder and
the full soft-information of the most recently received sub-block.
Decode this set of sub-blocks and compute the FCS. If the FCS
passes, store the decoded block in place of the soft-decision data
and set the flag BF to 1.
[0100] 5. If the first receive table entry has BF set to 1, then
deliver the decoded blocks from the first entry up to, but not
including, the first entry with BF=0. Delete the delivered receive
table entries.
[0101] 6. Set NR to the value of NS of the first entry in the
table. If a PDU was received or the receive table is not empty,
send the feedback packet created from the receive table. Otherwise
send nothing.
[0102] Quantizer 904 reduces the storage requirements of the
soft-decision bits received from layer-1. The quantizer converts
the soft-decision information into a q level representation, where
q is a design parameter that trades off receiver memory
requirements against system performance. For a q level
quantization, the memory requirements at the receiver per bit are
given by [log.sub.2q]. It is worthy to note that the quantization
intervals should be optimized carefully, especially for low values
of q.
[0103] Decoder 906 corresponds to encoding module 406 described
above. It is passed the subset of received soft-decision sub-blocks
D'.sub.1 . . . D'.sub.D, P'.sub.1 . . . P'.sub.D and attempts to
decode using the soft decision Viterbi algorithm. In this
embodiment of the invention, the soft decision metrics are
calculated by first letting b.sub.ij denote the j.sup.th bit of
sub-block D.sub.i (or P.sub.i). For transmission, the sequence of
bits b.sub.ij is conventionally interleaved and mapped to the
two-dimensional constellation C (e.g., 4-PSK, 8-PSK, etc.). The
number of bits that map to a point in C is
l=log.sub.2.vertline.C.vertline., hence each point in C is labeled
by 1 bit. If b.sub.ij maps to the n.sup.th bit of the label, then
the set C.sub.o denotes the set of points in C for which bit n of
its label is 0, and C.sub.l denotes the set of points in C for
which bit n of its label is l.
[0104] Determining the soft-decoding metric m.sub.ij for bit j of a
sub-block D'.sub.i (or P'.sub.i) consists of the following
steps:
[0105] 1. Let r.sub.j represent the received channel sample
encoding bit j, and let v.sub.j represent the channel state
corresponding to r.sub.j.
[0106] 2. Determine the symbol c.sub.o .epsilon. C.sub.o closest
(measured by Euclidean distance) to r.sub.j/v.sub.j, and c.sub.1
.epsilon. C.sub.l closest to r.sub.j/v.sub.j.
[0107] 3. Compute a noise variance estimate N'.sub.oj for bit
j.
[0108] 4. Compute the soft decision metric m.sub.ij for bit j.
m.sub.ij=(.vertline.r.sub.j-c.sub.ov.sub.j.vertline..sup.2-.vertline.r.sub-
.j-c.sub.lv.sub.j.vertline..sup.2)/N'.sub.oj
[0109] The noise estimate for each bit at step 3 is desirable due
to variations in the SNR level between transmissions of sub-blocks
belonging to the block B.sub.i. This decoding method provides a
form of interference diversity. A practical method of estimating
the SNR level for each bit is to estimate it by the SNR N.sub.oi
measured across the sub-block D.sub.i. 1 N oi ' = j min c k C | r j
- v j c k | 2 / L Sub - block
[0110] and using N'.sub.oj=N'.sub.oi. Decoder 906 output B'.sub.i
corresponding to the sending B.sub.i is checked for correct
decoding by the FCS decoder 908.
[0111] Decoder 906 passes B'.sub.i to FCS decoder 908. FCS decoder
908 computes the FCS of B'.sub.i and indicates to receiving IRLP
module 310 whether the received block passed the frame check.
[0112] Deblocking module 910 performs the inverse operation to
blocking module 404 described with respect to FIG. 4. Module 910
delivers the de-blocked SDUs to layer-3.
[0113] In this embodiment of the invention, sending IRLP module 308
and receiving IRLP module 310 operate using the following
parameters. Although specific values are assigned for some
parameters, it can be appreciated that these values are exemplary
only and can vary while remaining within the scope of the
invention. Specific parameter values for the length L.sub.Block of
data blocks and L.sub.sub-block are given. These lengths are a
function of the length L.sub.PDU of the layer-1 PDU, the number of
sub-blocks D a block is divided into, and the PDU encoded header
length L.sub.EncHeader. These are related as follows:
L.sub.sub-block=L.sub.PDU-L.sub.EncHeader
L.sub.Block=D.times.L.sub.Sub-block
L.sub.data=L.sub.block-L.sub.DCRC
[0114] The protocol overhead measured as one minus the ratio of the
layer-3 data size to the transmitted data size is given by:
Efficiency=1-L.sub.Data/(D.times.L.sub.PDU)
[0115] Sending IRLP module 308 transports across the physical
channel data packets of size L.sub.PDU bits and delivers these in
soft decision format to the link layer. The underlying physical
layer is IS-136+ which is similar to IS-136 except for employing a
higher modulation format to enable increased data throughput.
[0116] FIG. 11 illustrates a frame as defined by IS-136. Each 30
kHz IS-136 channel consists of frames of 40 ms duration. Each frame
is divided into six slots of which two are allocated to a user for
full-rate transmission. The symbol rate is 24300 symbols per second
giving 162 symbols per slot. Of these 162 symbols, 130 are
available for data transmission.
[0117] It is assumed that the physical layer determines via channel
quality feedback the most appropriate modulation format to maximize
overall data throughput. The practical choices of modulation
formats are those transmitting 2, 3 or 4 bits per symbol. Table 1
lists some alternatives for each spectral efficiency.
1TABLE 1 bits/symbol Coherent Differential 2 4-PSK 4-DPSK 3 8-PSK
8-DPSK 4 16-PSK, 16-QAM 16-DPSK
[0118] The link layer protocol requires a fixed length packet size
L.sub.PDU. In order to accommodate modulation mode switching, this
size must be selected such that an integral number of PDUs can be
transmitted over a fixed number of slots using each modulation
format. This can be accomplished by choosing to transmit either
over two slots with a PDU size of 260 bits, or over four slots with
a PDU size of 520 bits as shown in Table 2.
2TABLE 2 bits/symbol slots = 2, L.sub.PDU = 260 slots = 4,
L.sub.PDU = 520 2 2 .times. 260 2 .times. 520 3 3 .times. 260 3
.times. 520 4 4 .times. 260 4 .times. 520
[0119] The advantage of a greater PDU size is better protocol
efficiency and higher interleaving depth as described below.
[0120] Tables 3 and 4 show the protocol block lengths and overhead
as a function of D (the number of sub-blocks) for values of
L.sub.PDU=260 and L.sub.PDU=520, respectively.
3 TABLE 3 D = 1 D = 2 D = 3 L.sub.PDU 260 260 260 L.sub.NS 6 5 5
L.sub.NB 1 2 3 L.sub.HCRC 7 7 7 L.sub.Header 15 15 16
L.sub.EncHeader 40 40 42 L.sub.Sub-block 220 220 218 L.sub.Block
220 440 872 L.sub.DCRC 16 24 32 L.sub.Data 204 416 840 Overhead 21%
20% 19%
[0121]
4 TABLE 4 D = 1 D = 2 D = 3 L.sub.PDU 520 520 520 L.sub.NS 6 5 5
L.sub.NB 1 2 3 L.sub.HCRC 7 7 7 L.sub.Header 15 15 16
L.sub.EncHeader 40 40 42 L.sub.Sub-block 480 480 478 L.sub.Block
480 960 1912 L.sub.DCRC 16 24 32 L.sub.Data 464 936 1880 Overhead
10.77% 10% 9.62%
[0122] The protocol overhead is halved by transmitting over 4
slots.
[0123] A number of performance analyses were made comparing this
embodiment of the invention relating to IRLP with the IS-130 radio
link protocol combined with the IS-136+ higher modulation format.
The following assumptions were made in each simulation.
[0124] 1. Coherent detection.
[0125] 2. Ideal channel state information (CSI). The effect of
non-ideal channel state information through practical estimation
methods such as pilot symbols in the case of coherent detection or
differential detection will affect each protocol equally; hence
their relative performance remains the same.
[0126] 3. Zero ISI, perfect symbol timing.
[0127] 4. A feedback round trip delay of 300 ms.
[0128] FIGS. 12 and 13 illustrate the throughput results of one
embodiment of the invention versus the IS-130 protocol for low and
high Doppler frequencies, respectively. The incremental redundancy
parameters used are those of Table 4, with D=5, unquantized soft
decision information and 16-QAM modulation. The throughput results
for RLP1 are shown for modulation formats 4-PSK, 8-PSK and 16-QAM.
The horizontal axis is average SNR per symbol.
[0129] As shown in FIG. 12, for low Doppler, the protocol gains
approximately 20% in throughput at high SNR due to uncoded
transmission (in contrast to rate 5/6 coding used in IS-130), while
at low SNR the gain is about 3 dB due to the incremental
redundancy.
[0130] As shown in FIG. 13, at high Doppler, the protocol gains
approximately 10% in throughput because uncoded modulation is not
as affective due to errors being more evenly distributed. At lower
SNR the protocol gains between 2 to 5 dB versus the best modulation
format for IS-130.
[0131] Delay is an important factor in user-perceived throughput.
With respect to a particular implementation, any delay associated
with this embodiment of the invention can be reduced by decreasing
the parameter D, that is, the number of sub-blocks comprising a
data block.
[0132] FIGS. 14 and 15 plot the throughput and average delay for
D=1, 2, 3, 4 and D=5 for low and high Doppler frequency,
respectively. As seen in FIG. 14, for low Doppler, decreasing D
significantly reduces delay while having a small effect on
throughput up to D=2. At D=1 the throughput drops significantly.
This is also true for high Doppler as shown in FIG. 15. A value of
D=2 provides a good compromise between throughput and delay.
[0133] In one embodiment of the invention, the service
specification of layer-1 was defined to transport bits to be
delivered as soft-information bits to layer-2. In another
embodiment of the invention, the specification can be changed such
that layer-1 performs the header encoding and delivers to layer-2
the soft sub-block and the numbers NS and NB in order to perform
mode adaptation and hence transmit either 2, 3, or 4 sub-packets
per slot pair or 2 slot pairs. In this manner the headers can be
combined, thereby reducing CRC overhead. The optimal header
encoding method can be used for each modulation format, e.g., 4-PSK
is more robust than 16-PSK hence less header encoding is
required.
[0134] The effect of the various embodiments of the invention
described herein is to decrease the code rate until transmission is
successful. By observing the average number of incremental
redundancy sub-blocks transmitted per successful decoding as a
function of average SNR, it is observed (as expected) that the
number of sub-blocks transmitted at low SNR is much greater than at
high SNR with the corresponding increase in delay. This observation
leads to another embodiment of the invention which is described
below.
[0135] In yet another embodiment of the invention, a method for
adaptively reducing the delay is possible by observing the average
number of sub-blocks transmitted and transmit this number
immediately without waiting for a negative acknowledgment from the
receiver. By transmitting the average number of required sub-blocks
immediately, the probability of successful decoding increases
greatly and upon failure only 1 or 2 additional sub-blocks are
required.
[0136] FIG. 16 illustrates the throughput and delay curves for the
adapted and non-adapted systems operating at high Doppler in
accordance with this embodiment of the invention. It is noted that
the average delay at low SNR has been reduced by approximately 30%
using this scheme.
[0137] The IRLP protocol sends state feedback on the entire receive
table. In the special case of D=2, the feedback requirements can be
reduced by using the following 2-bit feedback encoding per block
B.sub.i:
[0138] 00 Nothing received, sending RLP transmits D.sub.i0 and
D.sub.i1.
[0139] 10 Decoding of B.sub.i unsuccessful, receiver requests
either D.sub.i0 or P.sub.i0 decided by the transmitter depending on
previous transmission as shown in Table 5 below.
[0140] 01 Decoding of B.sub.i unsuccessful, receiver requests
either D.sub.i1 or P.sub.i1 decided by the transmitter depending on
previous transmission as shown in Table 5 below.
[0141] 11 Decoding of B.sub.i successful.
[0142] Table 5 shows the decisions for the transmitter as a
function of the feedback and which sub-block of B.sub.i was
previously transmitted.
5TABLE 5 Previous 00 10 01 11 D.sub.i1 D.sub.i1, D.sub.i2 D.sub.i1
D.sub.i2 -- D.sub.i2 D.sub.i1, D.sub.i2 P.sub.i1 D.sub.i2 --
P.sub.i1 D.sub.i1, D.sub.i2 P.sub.i1 P.sub.i2 -- P.sub.i2 D.sub.i1,
D.sub.i2 D.sub.i1 P.sub.i2 --
[0143] In this embodiment of the invention, with a PDU length of
L.sub.PDU=520 the required feedback is 50% of previous embodiments
of the invention.
[0144] To minimize memory requirements for storing the soft
decision information at the receiver, the soft decision information
is quantized. In this embodiment of the invention, the soft
decision information is quantized to 3 levels, i.e., hard-decisions
with erasures. This corresponds to about 1.58 bits of stored
information per bit of transmitted information. The estimated loss
due to 3-level quantization is about 1.2 dB.
[0145] As discussed above, encoding module 406 utilizes a binary
convolutional encoding scheme to implement IRLP. If a 3-level
quantization is to be used, Reed-Solomon codes for which good
erasure decoding algorithms are known should be used as an
alternative encoding scheme. This would provide up to an additional
1 dB of gain over the convolutional encoding scheme.
[0146] The various embodiments of the invention were described
above in terms of computer program segments stored in memory 304
and executed by processor 302. It is noted that the computer
program segments were shown as separate functional modules. It can
be appreciated, however, that the functions performed by these
modules can be further separated into more modules, combined into a
single module, or be distributed throughout the system, and still
fall within the scope of the invention.
[0147] Although various embodiments are specifically illustrated
and described herein, it will be appreciated that modifications and
variations of the present invention are covered by the above
teachings and within the purview of the appended claims without
departing from the spirit and intended scope of the invention. For
example, although memory 304 was described in terms of high-speed
computer-readable memory to enhance execution speed, it can be
appreciated that the computer program segments implementing the
functionality described for each embodiment of the invention can be
stored in any computer-readable memory, such as a magnetic storage
device,(e.g., floppy disk or hard-drive) or optical storage device
(e.g., compact-disk read-only memory), and still fall within the
scope of the invention. In another example, it can be appreciated
that a person of ordinary skill in the art would understand that
the functionality for these modules may also be implemented in
hardware, or a combination of hardware and software, using
well-known signal processing techniques, and still fall within the
scope of the invention.
* * * * *