WO2006114215A1 - Block size control - Google Patents

Block size control Download PDF

Info

Publication number
WO2006114215A1
WO2006114215A1 PCT/EP2006/003503 EP2006003503W WO2006114215A1 WO 2006114215 A1 WO2006114215 A1 WO 2006114215A1 EP 2006003503 W EP2006003503 W EP 2006003503W WO 2006114215 A1 WO2006114215 A1 WO 2006114215A1
Authority
WO
WIPO (PCT)
Prior art keywords
block size
block
sizes
block sizes
size
Prior art date
Application number
PCT/EP2006/003503
Other languages
French (fr)
Other versions
WO2006114215A8 (en
Inventor
Ola Erik Kristoffer Wintzell
Lennart Andersson
Original Assignee
Telefonaktiebolaget L M Ericsson (Publ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from EP20050388037 external-priority patent/EP1717981B1/en
Application filed by Telefonaktiebolaget L M Ericsson (Publ) filed Critical Telefonaktiebolaget L M Ericsson (Publ)
Publication of WO2006114215A1 publication Critical patent/WO2006114215A1/en
Publication of WO2006114215A8 publication Critical patent/WO2006114215A8/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • H04L1/0007Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0015Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
    • H04L1/0019Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy in which mode-switching is based on a statistical approach
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1819Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end

Definitions

  • the invention relates to the control of the block size of data blocks to be transmitted from a transmitter to a receiver via a communications link.
  • Typical sources of transmission errors in communications networks include the transmission medium and impairments in the receiver, the transmitter, and/or a communications channel due to noise and interference.
  • ARQ automatic repeat request
  • data is transmitted in the form of data blocks or packets, each data block including a certain number of data bits.
  • the number of bits included in a data block is denoted the block size of that data block.
  • the receiver upon receipt of a data block, the receiver returns a so- called ACK/NACK flag indicating whether or not the receiver acknowledges error-free receipt of the data block.
  • the effect of the block size on the throughput of the communications system may be described with reference to the available transmit energy per information bit (E b ).
  • the throughput of such an ARQ protocol depends on a variety of parameters, including the block size, i.e. the amount of data to be sent at one time, e.g. during each transmission time interval. If error control is used, the corresponding error codes are typically added before interleaving and returned to the transmitter. In particular, for a fixed power level (or energy per chip, E c ) a smaller block corresponds to a higher energy per information bit (E b ) than a larger block. Consequently, small block sizes result in a small number of transmitted data bits, while large block sizes result in more block errors. Consequently, it is desirable to adjust the block size of an ARQ system as to optimize the throughput on an ARQ controlled link.
  • TTI transmission time interval
  • US patent no. 3,878,333 discloses a simplex ARQ system for data transmission circuits using a short wave circuit. This prior art system performs retransmissions of transmitted blocks in case of transmission errors. Furthermore, the length of the transmitted blocks is changed according to the instantaneous quality of the short wave circuit.
  • US patent application no. 2002/0089935 discloses methods and apparatuses for varying the size of a radiolink protocol packet based channel condition estimation.
  • a method of controlling a block size of data blocks to be transmitted from a transmitter to a receiver via a communications link comprising determining an adjusted block size based on at least one indication indicating whether a previously transmitted data block with a current block size was successfully received by the receiver; wherein determining the adjusted block size comprises
  • each current block size is selected from at least two previously determined candidate block sizes
  • block size control is based on actual measurements of the number of ACK/NACK indications for different alternative block sizes, an accurate block size control is provided without depending on potentially inaccurate a priori assumptions and or estimates of e.g. the signal to interference ratio that may cause the control to give erroneous results.
  • replacing at least one of the previously determined candidate block sizes with the determined at least one adjusted candidate block size is conditioned on the determined at least one adjusted candidate block size resulting in a higher estimated throughput than at least one of the previously determined candidate block sizes.
  • an adjustment/replacement of the probed block sizes may be omitted.
  • the replacement of a previously determined candidate block size by an adjusted candidate block size may be conditioned on additional or alternative conditions, e.g. that the adjusted candidate block size is different from the previously determined candidate block sizes.
  • an efficient determination of an initial block size is achieved when the method further comprises determining an initial primary block size by
  • the at least one data block obtained from at least the first data block may be identical to the first data block.
  • the at least one data block obtained from at least the first data block may be determined according to a suitable retransmission scheme, e.g. employing an incremental redundancy coding scheme. Examples of the quantity indicative of the amount of data transmitted during the retransmissions include the number of retransmissions, the number of bits transmitted during the retransmissions, or the like.
  • a method of determining a suitable block size of data blocks to be transmitted from a transmitter to a receiver via a communications link comprising
  • a subsequent block size is determined as a block size that maximises an average likelihood throughput calculated from at least one block size determined during at least one previous iteration.
  • the above method provides an optimal or at least close to optimal selection of a block size in a short number of transmission attempts, thereby reducing the time required to reach an optimal or at least near-optimal throughput.
  • the re-transmitted data blocks are obtained from the data block whose transmission failed according to a suitable retransmission scheme, e.g. employing an incremental redundancy coding scheme.
  • a suitable retransmission scheme e.g. employing an incremental redundancy coding scheme.
  • the re-transmitted data block is identical to the incorrectly received data block.
  • the predetermined sequence of block sizes is sequentially ordered by block size starting with the largest block size, such that after a failed transmission attempt the next smaller block size of the predetermined sequence is selected.
  • the data to be transmitted is processed before transmission, e.g. encoded, interleaved, rate matched, modulated, and/or the like.
  • the encoding may include Turbo encoding, convolutional encoding, and/or the like.
  • the modulation may include any suitable modulation scheme, e.g. using Phase Shift Keying (PSK), such as Binary Phase Shift Keying (BPSK), Quadrature Phase Shift Keying (QPSK), 8-PSK, etc., Quadrature Amplitude Modulation techniques (QAM), Continuous Phase Modulation (CPM), or the like.
  • PSK Phase Shift Keying
  • BPSK Binary Phase Shift Keying
  • QPSK Quadrature Phase Shift Keying
  • QAM Quadrature Phase Shift Keying
  • CCM Continuous Phase Modulation
  • the indication indicating whether a corresponding data block was successfully received by the receiver is generated by the receiver.
  • the block size control unit performing the block size control described herein may be located in the transmitter or in the receiver.
  • the receiver sends the indication to the transmitter, e.g. as an ACK/NACK flag, e.g. a binary indication, or any other suitable form of indication.
  • the block size control unit may send a resulting block size to the transmitter to cause the transmitter to use that block size for subsequent transmissions.
  • the block size control may be distributed between the transmitter and the receiver. For example, the receiver may select a set of block sizes on a slow time scale, while the transmitter selects the exact block size from that set on a fast time scale.
  • the at least two candidate block sizes comprise a primary block size and one or more alternative block sizes; and the current block size is selected to be equal to the primary block size more frequently than to be equal to each of the one or more alternative block sizes.
  • the primary block size is the block size that provides the best estimated transmission performance and when this block size is used more frequently than the alternative block sizes, a probing of alternative block sizes is achieved while reducing the decrease of the overall performance due to the use of non-optimal block sizes.
  • the method further comprises determining, from respective expected throughput rates for the primary block size and the one or more alternative block sizes, a relative frequency with which the primary block size is selected relative to the one or more alternative block sizes, a fast detection of changes in the transmission conditions is combined with a high average throughput rate, e.g. measured as the successfully transmitted number of data bits per unit time.
  • determining at least one adjusted candidate block size comprises
  • the primary block size may be adjusted to correspond to the estimated optimal block size under the current channel conditions, while one or more alternative, typically sub-optimal, block sizes are probed, in order to efficiently detect a situation when it is advantageous to change the primary block size.
  • determining the adjusted primary block size comprises
  • the primary block size is selected as to maximise the estimated throughput, thereby directly optimising the throughput of the system.
  • determining respective effective throughput rates comprises
  • both a higher and a lower alternative block size are compared to the current primary block size, thereby determining whether an increase or a decrease of the block size would result in an improvement compared to the present performance.
  • the difference between the primary and the alternative block sizes may be selected more or less big. For example, given a sequence of discrete block sizes that are available in a given system, the smallest and largest block size may be selected to be the nearest neighbours of the primary block size, or they may be selected to be the next-nearest neighbours or even further apart from the primary block size, depending on the desired step size of the control mechanism and the number of alternative block sizes to be probed.
  • the at least two candidate block sizes are determined from a sequence of possible block sizes, and when the smallest block size and the largest block size are selected to be adjacent block sizes to the primary block size within said sequence, a fine tuning of the block size is provided with the smallest possible step size.
  • an initial value of the primary block size is obtained by determining an initial primary block size by
  • the receiver selects the initial primary block size to be the block size of a data block that was successfully received by the receiver.
  • the method further comprises determining said predetermined sequence of block sizes by means of an iterative process, wherein during each iteration a subsequent block size is determined as a block size that maximises an average likelihood throughput calculated from at least one block size determined during at least one previous iteration, a particularly efficient method of determining an initial block size is provided, since a reasonable block size is obtained already after a few transmission attempts.
  • the sequence of block sizes, while block errors occur, can be pre-computed and stored in a table, e.g. for at least one of a predetermined assumed channel and predetermined assumed channel conditions.
  • the method further comprises pre-calculating and storing at least two sequences of block sizes; wherein each pre-calculated sequence is calculated for at least one of a different assumed channel and different assumed channel conditions.
  • the subsequent block size N n in the n-th iteration of the iterative process is determined from the block sizes Ni, ..., N n- i determined in the n-1 previous iterations, from a predetermined distribution P(SNR) of the signal to noise ratio SNR, from respective probabilities P B (SNR 1 NJ), je ⁇ 1 n-1 ⁇ of receiving an indication that a data block of size N j was not successfully received given a signal to noise ratio SNR, and from the expected throughput rate R(SNR 1 N) as a function of signal to noise ratio SNR and block size N, according to
  • N n argmax p B (SNR, N j ) dSNR .
  • the sequence of block sizes comprises less than 10 different block sizes preferably less than 7, more preferably between 4 and 5 block sizes.
  • the method further comprises adjusting the determined block size during transmission of subsequent data blocks by performing the following steps:
  • each current block size is selected from at least two previously determined candidate block sizes
  • the present invention relates to different aspects including the methods described above and in the following, corresponding devices, and computer programs, each yielding one or more of the benefits and advantages described in connection with the above-mentioned methods, and each having one or more embodiments corresponding to the embodiments described in connection with the above-mentioned methods.
  • a control device for controlling a block size of data blocks to be transmitted by a transmitter unit to a receiver via a communications link is adapted to determine an adjusted block size based on at least one indication indicating whether a previously transmitted data block with a current block size was successfully received by the receiver; and to - cause the transmitter unit to transmit a number of data blocks having respective current block sizes, wherein the control means is adapted to select each current block size from at least two previously determined candidate block sizes; - to determine at least one adjusted candidate block size from a number of indications, each indication indicating whether a corresponding one of the transmitted data blocks was successfully received; and
  • a control device for controlling a block size of data blocks to be transmitted by a transmitter unit to a receiver via a communications link comprises an initialisation unit for determining a suitable block size, and storage means for storing a sequence of available block sizes, wherein the control device is adapted to
  • the transmitter unit to transmit one or more data blocks with respective block sizes selected from a said sequence of block sizes until at least one of the one or more data blocks is successfully received by the receiver; wherein the initialisation unit is adapted to select a smaller block size from said sequence for the transmission of a subsequent data block responsive to a previous one of the one or more data blocks not having been successfully received by the receiver; and
  • the term storage means is intended to comprise any suitable storage device or circuit, e.g. a read-only- memory (ROM), a random access memory (RAM), a flash memory, an Erasable Programmable Read-Only Memory (EPROM), volatile or non- volatile memory, or the like.
  • ROM read-only- memory
  • RAM random access memory
  • EPROM Erasable Programmable Read-Only Memory
  • the at least two candidate block sizes comprise a primary block size and one or more alternative block sizes; and the control device comprises a selector unit adapted to select the current block size to be equal to the primary block size more frequently than to be equal to each of the one or more alternative block sizes.
  • the selector unit is adapted to determine, from respective expected throughput rates for the primary block size and the one or more alternative block sizes, a relative frequency with which the primary block size is selected relative to the one or more alternative block sizes.
  • control device comprises an optimizer unit adapted to determine an adjusted primary block size from the one or more indications, and to determine one or more adjusted alternative block sizes from the determined adjusted primary block size.
  • control device comprises at least one rate evaluation unit adapted to determine respective effective throughput rates for the transmitted data blocks of each of the candidate block sizes; and the optimizer unit is adapted to determine the adjusted primary block size as one of the candidate block sizes corresponding to the highest of the determined effective throughput rates.
  • the at least one rate evaluation unit is adapted to determine respective block error rates for the transmitted data blocks of each of the candidate block sizes from the indications, and to determine respective throughput rates from the block error rates and the corresponding candidate block sizes.
  • the one or more alternative block sizes comprise a smallest block size smaller than the primary block size and a largest block size larger than the primary block size.
  • control device is adapted to determine the at least two candidate block sizes from a sequence of possible block sizes, and to select the smallest block size and the largest block size to be adjacent block sizes to the primary block size within said sequence.
  • control device comprises an initialisation unit for determining an initial primary block size, wherein the initialisation unit is adapted
  • the transmitter unit to transmit one or more data blocks with respective block sizes selected from a predetermined sequence of block sizes until at least one of the one or more data blocks is successfully received by the receiver; wherein a smaller block size is selected from said sequence for the transmission of a subsequent data block responsive to a previous one of the one or more data blocks not having been successfully received by the receiver;
  • the receiver to select the initial primary block size to be the block size of a data block that was successfully received by the receiver.
  • the initialisation unit is adapted to determine said predetermined sequence of block sizes by means of an iterative process, wherein during each iteration a subsequent block size is determined as a block size that maximises an average likelihood throughput calculated from at least one block size determined during at least one previous iteration.
  • control device comprises storage means for storing a pre-calculated sequence of block sizes for at least one of a predetermined assumed channel and predetermined assumed channel conditions.
  • storage means is adapted to store at least two pre-calculated sequences of block sizes; wherein each pre-calculated sequence is calculated for at least one of a different assumed channel and different assumed channel conditions.
  • the subsequent block size N n in the n- th iteration of the iterative process is determined from the block sizes Ni
  • N n-I determined in the n-1 previous iterations, from a predetermined distribution P(SNR) of the signal to noise ratio SNR, from respective probabilities PB(SNR 1 NJ), je ⁇ 1 ,...,n-1 ⁇ of receiving an indication that a data block of size N j was not successfully received given a signal to noise ratio SNR, and from the expected throughput rate R(SNR 1 N) as a function of signal to noise ratio SNR and block size N, according to
  • N n arg .
  • the sequence of block sizes comprises less than 10 different block sizes preferably less than 7, more preferably between 4 and 5 block sizes.
  • control device further comprises an initialisation unit adapted to determine an initial primary block size by - causing the transmitter unit to transmit at least a first data block with an initial candidate block size, and to retransmit at least one data block obtained from at least the first data block until the at least one data block has been received correctly by the receiver; - determining the initial primary block size from a quantity indicative of the amount of data transmitted during the retransmissions.
  • control device is further adapted to adjust the determined block size during transmission of subsequent data blocks by performing the following steps:
  • each current block size is selected from at least two previously determined candidate block sizes
  • a transmitter unit comprises a control device as described above and in the following.
  • the term transmitter unit is intended to comprise any electronic communications equipment for transmitting data via a communications channel, e.g. portable radio communications equipment, and other handheld or portable devices.
  • portable radio communications equipment includes all equipment such as mobile terminals, e.g. mobile telephones, pagers, communicators, electronic organisers, smart phones, personal digital assistants (PDAs), handheld computers, or the like.
  • processing means comprises any circuit and/or device suitably adapted to perform the above functions.
  • processing means comprises general- or special-purpose programmable microprocessors, Digital Signal Processors (DSP), Application Specific Integrated Circuits (ASIC), Programmable Logic Arrays (PLA), Field Programmable Gate Arrays (FPGA), special purpose electronic circuits, etc., or a combination thereof.
  • a computer program comprises program code means adapted to cause, when said computer program is run on the data processing device, the data processing device to determine a subset of block sizes for use in an initialisation of a block size control process, and to cause the data processing system to determine said subset from a sequence of available block sizes; wherein the program code means are adapted to cause the data processing system to select, in each iteration of an iterative process, a block size from the sequence of block sizes to be included in the subset of block sizes as a block size that maximises an average likelihood throughput calculated from a previously selected block size of said subset.
  • a data processing system is configured to determine a subset of block sizes for use in an initialisation of a block size control process, the data processing system being configured to determine said subset from a sequence of available block sizes; wherein the data processing system is adapted to select during each iteration of an iterative process a block size from the sequence of block sizes to be included in the subset of block sizes as a block size that maximises an average likelihood throughput calculated from a previously selected block size of said subset.
  • the program code means may be loaded in a memory, such as a RAM (Random Access Memory), from a storage medium or from another computer via a computer network.
  • a memory such as a RAM (Random Access Memory)
  • the described features may be implemented by hardwired circuitry instead of software or in combination with software.
  • Fig. 1 shows a schematic block diagram of a communications system that implements a block size control.
  • Fig. 2 shows a schematic block diagram of an arrangement for controlling the block size of a transmitter.
  • Fig. 3 illustrates examples of shapes of the distribution of the throughput as a function of the block size around an optimal block size.
  • Fig. 4 shows a flow diagram of a process for determining an initial block size based on an optimal sequence of block sizes.
  • Fig. 5 illustrates the block error rate as a function of signal to noise ratio for a number of different block sizes.
  • Fig. 6 shows examples of the throughput rate as a function of block size for three different signal to noise ratios.
  • Fig. 1 shows a schematic block diagram of a communications system that implements a block size control.
  • the communications system comprises a transmitter unit 101 and a receiver unit 102.
  • the transmitter unit and the receiver unit communicate with each other via a communications channel 103.
  • the transmitter unit 101 includes a data source 104 for providing data for transmitting, an encoder unit 105, and a transceiver 106.
  • the encoder unit 105 is operably coupled to the data source and is adapted to encode the data into data packets/blocks in accordance with a predetermined scheme.
  • the transceiver 106 is operably coupled to the encoder unit 105 and is adapted to transmit the data packets to the receiver unit 102 and to receive error information from the receiver unit 102.
  • the transmitter unit further comprises a block size control unit 107 operably coupled to the transceiver 106.
  • the block size control unit 107 receives the error information 111 generated by the receiver unit from the transceiver 106 and determines the block size for the subsequent data packets. In particular, the block size determines the amount of data to be included in each data packet by the encoder 105. Accordingly, the block size control unit 107 forwards the determined block size 112 to the encoder unit 105.
  • the receiver unit 102 includes a transceiver 108 for receiving the transmitted data from the transmitter unit and for transmitting error information generated by the receiver unit.
  • the receiver unit further comprises a channel decoder 109 operably coupled to the transceiver 108.
  • the channel decoder decodes the received data and determines error information to be returned to the transmitter, e.g. in form of ACK/NACK messages causing the transmitter unit to retransmit the previous data packet.
  • the receiver unit further comprises a data sink 110 for receiving the received data from the channel decoder 109.
  • the transmitter unit transmits the data in predetermined transmission time intervals (TTIs), e.g. by transmitting a predetermined number of data packets, e.g. one data packet, per TTI.
  • TTIs transmission time intervals
  • the length of a TTI may be fixed or variable; typical sizes of TTIs in a WCDMA system are few milliseconds, such as 2-80 ms. However, in other communications systems, the TTIs may be different.
  • the transmitter unit receives one ACK/NACK for each TTI.
  • the transmitter unit further comprises a power control circuit that controls the transmit power with which the transceiver 106 transmits the data packets, e.g. in order to maintain a constant signal to noise ratio.
  • the transmitter unit When the transmitter unit receives a NACK from the receiver unit, the transmitter unit re-transmits the last data packet, e.g. in the next TTI.
  • the retransmission is performed at the same power level as the original transmission.
  • the transmit power is increased for the retransmission.
  • retransmissions are typically combined with previous transmissions. Accordingly, in some embodiments, the transmit power may even be decreased for a retransmission.
  • the block size may be changed in the retransmission as different coded bits may be transmitted.
  • Fig. 2 shows a schematic block diagram of an arrangement for controlling the block size of a transmitter, e.g. the block size controller 107 of fig. 1.
  • the block size controller controls the block size by probing two or more block sizes.
  • the probing mechanism utilises blocks of more than one block size and estimates the throughput rate (or the block error rate (BLER)) for a range of block sizes based on direct measurements, thereby avoiding the need to rely on a model of the channel conditions in order to estimate the BLER, the bit error rate (BER), or the throughput rate.
  • BLER block error rate
  • the procedure uses a range of block sizes, typically three neighbouring sizes,
  • the block size controller 107 comprises three rate evaluator units 222, 223, and 224.
  • the rate evaluator units monitor the throughput rates that are achieved with the different sizes, respectively. The rates for each of these sizes are evaluated based on the success of the transmitted blocks of the respective sizes. A rate estimate for a particular size is updated when an ACK/NACK flag is received for that block size.
  • the block size controller comprises a switch 221 that receives the ACK/NACK message 111 from the receiver unit and information about the block size N j of the previous data packet to which the ACK/NACK relates. The switch 221 forwards the ACK/NACK message to the rate evaluator 222, 223, or 224 that corresponds to the block size N j .
  • OW , the switch 221 forwards the ACK/NACK to rate evaluator 223, and if the previous data packet was transmitted with a block size Nj Nhigh, the switch 221 forwards the ACK/NACK to rate evaluator 224.
  • each rate evaluator 222, 223, and 224 determine respective estimated throughput rates R(N mid ), R(N
  • each rate evaluator estimates a corresponding block error rate (BLER), e.g. by calculating a windowed average of a suitable number of ACK/NACK flags, by calculating an exponential average or a filtered exponential average of the ACK/NACKS, or the like. From the estimated BLER, each rate evaluator may then calculate the corresponding estimated throughput from the estimated BLER and the corresponding block size, according to (1-BLER)N.
  • BLER block error rate
  • the rate evaluators directly determine an estimate of the throughput rate, e.g. by calculating a windowed average of a suitable number of ACK/NACK flags, by calculating an exponential average or a filtered exponential average of the ACK/NACKS, or the like.
  • the estimate R j (N j ) is updated according to
  • RJ(NJ ) is the estimate of the throughput rate for block size N j .
  • is a small positive constant in the range 0 ⁇ ⁇ ⁇ 1.
  • the time constant ⁇ of the above filter operation should be long enough to capture a few block errors in stationary conditions. A too long time constant results in slow convergence and therefore slows block size control. A too short time constant results in noisy rate estimates and therefore incorrect block size decisions.
  • the rate evaluator When no ACK/NACKs have been received for a given block size yet, the rate evaluator generates a suitable initial rate estimate for the corresponding block size. In particular, this situation occurs after initialisation. Assuming that an initialization procedure has determined an initial block size N 0 , a corresponding initial rate may be estimated as
  • R initial (N 0 ) 0 - BLER 0 )N 0 / T tth ,
  • BLERo is an estimate of a BLER. For example, assuming a BLER of 10% the initial rate would be
  • T w is the time used for transmitting one data block.
  • Further uninitialized and/or outdated rate estimates can be initialized with (a possibly somewhat lower value than) an active rate estimate corresponding to a neighbouring block size. For example, when the initial value of N mid is set to a determined optimal initial value N 0 , N
  • the rate evaluator units 222, 223, and 224 forward the calculated rates R(Nmi d ), R(Niow), R(Nhigh), respectively, to a block size optimizer unit 225.
  • the block size optimizer unit 225 attempts to detect whether the transmission conditions have changed such that another block size is preferred. In particular, the used block sizes are increased if
  • the block sizes are selected from a sequence of increasing block sizes Ni N n , i.e. a sequence where Nj ⁇ Nj +1 V j € ⁇ 1 ,...,n-1 ⁇ , and if the presently active block sizes are N
  • the blocks sizes are selected to be N
  • the sequence Ni N n of available block sizes is stored in a memory 241 or other storage means of the transmitter unit.
  • the sequence may be stored in any suitable way, e.g. as a table of block sizes, as an indication of a maximum and minimum block size together with a step size between adjacent block sizes, or the like.
  • alternative conditions may be employed for the determination whether a different block size is preferred.
  • hysteresis may be introduced in the above conditions in order to avoid too frequent switching between block sizes.
  • the above conditions may be replaced by
  • is a suitably selected small positive constant.
  • may be selected to be a constant slightly smaller than 1 multiplied by the corresponding throughput rate.
  • the block size optimizer unit 225 forwards the determined block sizes N m j d , N
  • the block size sequence generator 226 produces a sequence of momentary block sizes, i.e. a sequence where each element of the sequence is selected from the values N mid , N
  • An examplary sequence is (N mi d, N mid , N mid , Ni 0 W, N mid , Nmid, N mid , N h i g h, Nmid, N mid N m id, Niow,). i-e. in this example the relative frequencies of N mid , N
  • the relative frequencies, with which the different block sizes are used in the sequence may be the same or different.
  • the sequence may be a random sequence of block sizes or a systematic sequence as in the above example.
  • the best block size (Nmi d ) is used more frequently than those with lower rates as in the above sample sequence.
  • the relative frequency of occurrence of the different block sizes is a trade-off between fast detection of changes in the transmission conditions and high average rate.
  • the sequence generator 226 further receives additional information 227 from the block size optimizer unit 225, in particular information about one or more of the characteristics of the evaluated rates, e.g., an indication of whether there are small or large differences between the evaluated rates.
  • additional information 227 may be used by the sequence generator when generating the sequence of block sizes.
  • information about the differences in the estimated rates can be used to determine the relative frequency with which the different block sizes occur in the sequence, as will be illustrated with reference to fig. 3.
  • Fig. 3 illustrates examples of shapes of the distribution of the throughput as a function of the block size around an optimal block size.
  • fig. 3 shows an example of a first distribution 331 of the throughput as a function of block size (shown as a solid line) and an example of a second distribution 332 of the throughput as a function of block size (shown as a dashed line). Both distributions have a maximum at the same location 336.
  • the distribution 331 is more sensitive to changes in the block size around the maximum 336 than the distribution 332, i.e. when the block size deviates from the optimal value the throughput for the distribution 331 decreases more rapidly than the throughput for the distribution 332.
  • the neighbouring block sizes N j-1 and N j+ i result in considerably smaller throughput as indicated by dots 335 and 333, respectively.
  • an embodiment of the sequencer selects the sequence of N
  • the sequencer determines the relative frequency of the primary block size N m i d and the alternative block sizes N
  • 0W and N h jgh may be assigned the same frequency, while in other embodiments, the frequency of each alternative block size may be determined individually.
  • the sequence generator 226 outputs a new block size N, designated 112, according to the generated sequence for every new data packet to be sent, or after a predetermined number of data packets, if a smaller update rate is desired.
  • the block size N is fed into the encoder and controls the block size of the transmitted data packets as described above.
  • the block size is also fed back to the switch 221 , via a suitable delay 229 corresponding to the system delay of the communications system until receipt of the ACK/NACK corresponding to the generated block size N.
  • a block size controller that performs a method of controlling a block size of data blocks to be transmitted from a transmitter to a receiver via a communications link.
  • the method comprises the following steps:
  • the block size controller of fig. 2 further comprises an initialisation unit 230 that generates initial values of the block sizes N mid> N
  • the block size optimizer 225 forwards the received initial values to the sequencer 226 and back to the rate evaluators 222, 223, and 224.
  • the rate evaluators then determine an initial rate estimate as described above.
  • the initial block size No is determined by sending the first data block with an initially selected block size.
  • the first data block, or a data block determined according to a suitable retransmission scheme, e.g. employing an incremental redundancy coding scheme, is retransmitted until the data included in the first data block has been received correctly by the receiver, and the initialisation unit determines the initial block size from the amount of data transmitted during the retransmissions.
  • the initial block size N 0 is determined by sending the first block with a large block size, e.g. the largest possible block size.
  • a large block size e.g. the largest possible block size.
  • the block size is then decreased as long as the blocks are not successfully received by the receiver, i.e. as long as a NACK is received from the receiver.
  • a smaller block size may be used as a starting block size.
  • the initial block size is determined by starting with a large block, and then decreasing the size as long as the blocks are NACKed.
  • the sequence of block sizes, while block errors occur, can be stored in a table.
  • the table entries can be generated through analytical analysis or be based on simulations and/or measurements.
  • the block size is divided by a constant, e.g., 2.0, each time an incorrect block is received during the initialization phase.
  • the initialisation unit 230 has access to a stored sequence of selected block sizes, designated 245, for use in the initialisation process.
  • the stored sequence 245 is a subset of the total set of available block sizes 241. Accordingly, the initialisation sequence 245 may be stored in a memory or different storage means, as a separate table, as instructions for generating the sequence, or the like. Alternatively, the available set of block sizes 241 and 245 may be stored in the same memory, e.g. as a table of available block sizes where the initialisation block sizes are marked accordingly, e.g. by a flag or other table entry.
  • Fig. 4 shows a flow diagram of a process for determining an initial block size based on an optimal sequence of block sizes.
  • the process starts at step S401 , where the process generates a sequence of block sizes selected from the number of possible block sizes. To this end, the process receives a set of possible block sizes 441.
  • the process further receives a distribution P(SNR) of the signal to noise ratio SNR, designated 442.
  • the distribution P(SNR) depends on the channel conditions of the transmission channel over which the data packets are transmitted. For a given channel, an estimated distribution can be determined by measurements based on received pilot symbols known per se. Such a measurement may result in a distribution localised around a certain signal to noise ratio and with a width of a few dB. In the absence of such measurements or other information about the distribution of SNR, the distribution may be assumed as a flat distribution.
  • the process further receives probability distributions p B (SNR, N j ) (443) determining the probability, as a function of SNR, that a packet with block size N j , je ⁇ 1 ,...n ⁇ , is not successfully received.
  • the probabilities PB(SNR 1 NJ) depend on the type of channel. For simple cases, the probabilities PB(SNR 1 NJ) can be expressed analytically. However, in practice, the' probabilities p B (SNR,N j ) are typically obtained for a given channel type by measurements of the block error rates for different block sizes and different signal to noise ratios. An example of the dependency of the BLER on the signal to noise ratio and block size is illustrated in fig. 5.
  • the process further receives a rate function R(SNR, N) (444) describing the throughput rate as a function of the signal to noise ratio and the block size.
  • R(SNR, N) depends on the channel type and can - for simple cases - be determined analytically.
  • R(SNR 1 N) can be determined by measurements similar to PB(SNR 1 NJ).
  • An example of the dependency of the throughput rate on the signal to noise ratio and block size is illustrated in fig. 6.
  • the probability distributions P(SNR) and p B (SNR,N j ) and the rate function R(SNR 1 N) may be pre-determined and stored, e.g. as a set of functions in analytical form, such as parametrised functions fitted to measured data, as a table of discrete data points, or the like.
  • step S401 a subset N O i > N 0 2 >..-> NOR, k ⁇ n of the set of available block sizes is determined by the following process:
  • noisy is selected to be a suitably large initial block size.
  • N Oj can be determined, based on the above stored distributions and rate functions, by numerically calculating the above integral for all block sizes from the set of available block sizes that are smaller than No j , and by determining the block size for which the integral is largest.
  • the numerical integration may be performed by any suitable numeric integration technique known per se.
  • N Oj is determined to be the block size that maximises the average
  • N Oj may be based on alternative likelihood functions.
  • a more generalised likelihood function that takes the possibility of retransmission attempts into account is
  • a sequence of block sizes is determined off-line by the above process, e.g. for a given channel type and for predetermined assumptions on the channel conditions.
  • the determined sequence is stored in a table 445 in a memory or other storage device of the transmitter.
  • the process determines several sequences for different channel types and/or channel conditions.
  • the sequences are then stored in the transmitter, and the transmitter selects one of the sequences depending on the channel over which a transmission is to be initiated and/or the assumed and/or detected channel conditions.
  • the size of the determined sequence depends on the number of available block sizes in the communications system. Furthermore, system specifications may limit the allowed number of initial transmission attempts, thereby effectively limiting the number of block sizes of the sequence that can be used during initialisation. In most systems the process determines less than 10 block sizes, e.g. less than 7 block sizes, in particular 4-5 block sizes.
  • step S402 the transmitter unit performs the actual initialisation in the subsequent steps S402-S406.
  • the initialisation unit 230 may perform the steps S402- S406.
  • step S401 is performed once off-line, and the resulting sequence 445 is stored.
  • the initialisation steps S402-S406 are performed based on the stored sequence 445 each time a transmission channel is initialised.
  • the sequence 445 only needs to be generated once. Furthermore, the sequence generation in step S401 does not need to be performed by the transmitter unit itself, but may be performed by a separate data processing system, e.g. a personal computer. The generated sequence is then loaded into the transmitter unit.
  • the initial block size may be determined based on some information about the SIR density function, e.g. from eqn. (1 ) where the
  • step S403 the process transmits a data packet with the current block size noisy.
  • step S404 the process determines, based on a received ACK/NACK flag, whether the transmitted data packet was successfully received by the receiver. If the data packet was successfully received or if the smallest possible block size has been reached, the process continues at step S406; otherwise the process continues at step S405.
  • step S405 the counter i is incremented to i+1 , and the current block size is set to the next smaller block size from the sequence 445 accordingly. Subsequently, the process returns to step S403 and transmits the next data packet with the smaller packet size.
  • step S406 the process sets the optimal initial block size No to be equal to the current block size N O i for which an ACK was received. Subsequently, the initialisation process terminates, i.e. outputs the initial block size N 0 to the block size control unit that performs the sub-sequent control of the block size.
  • the above process determines an initial primary block size by performing the following steps: a) selecting a current block size from a sequence of possible block sizes; b) transmitting a data block with the current block size; c) receiving an indication from the receiver, the indication indicating whether the transmitted data block was successfully received; d) selecting a block size from the sequence of possible block sizes smaller than the current block size as a new current block size, if the indication indicates that the transmitted data block was not successfully received; e) repeating steps b) through d) with the new current block size until a an indication is received that the transmitted data block was successfully received; f) selecting the initial primary block size to be the latest new current block size.
  • the initialisation process makes use of a retransmission protocol when determining the initial block size.
  • the transmitter transmits a first block with a predetermined large block size, e.g. the largest available block size. If the transmitter receives a NACK, a retransmission of the same block or a modified block is performed, e.g. a block that is modified based on an incremental redundancy coding scheme. The retransmission procedure is repeated until an ACK is received. Then an estimated of a suitable block size is determined based on the number of retransmissions until the ACK was received or a similar quantity indicative of the amount of retransmitted data. Furthermore, alternative or additional information, such as the contents of the (re)transmitted blocks and/or the particular retransmission scheme employed, may be used in the determination of the suitable block size.
  • the initialisation may be performed according to the following process: (a) The transmitter sends a data block with the largest available block size
  • step (b) If the transmitter receives a NACK from the receiver indicating that the data block was not received correctly, the transmitter retransmits an identical data block.
  • step (c) The transmitter repeats step (b), until the transmitter receives an ACK from the receiver indicating that the data block was received correctly,
  • step (d) The transmitter sets a variable T to be equal to the number of retransmissions, i.e. the number of times step (b) was performed.
  • step (e) The transmitter sets the initial block size N 0 to be equal to N max /T, or to the next smallest possible block size.
  • the initialisation is performed according to the following process:
  • the transmitter If the transmitter receives a NACK from the receiver indicating that the data block was not received correctly, the transmitter retransmits an identical or modified data block according to a predetermined retransmission procedure employed by the communications system.
  • step (c) The transmitter repeats step (b), until the transmitter receives an ACK from the receiver indicating that the data block was received correctly.
  • the transmitter sets a variable T to be equal to the number of transmitted bits.
  • the transmitter sets the initial block size N 0 to be equal to (N max /T) N max , or to the next smallest possible block size.
  • Fig. 5 illustrates the block error rate as a function of signal to noise ratio for a number of different block sizes.
  • the example of fig. 5 corresponds to a BPSK modulated "additive white Gaussian noise" (AWGN) channel of a wideband code division multiple access (WCDMA) system.
  • AWGN additive white Gaussian noise
  • WCDMA wideband code division multiple access
  • Fig. 5 shows the BLER as a function of SNR for an example of a set of block sizes, namely the log spaced block sizes 100 (curve 550), 139 (curve 551), 193 (curve 552), 268 (curve 553), 372 (curve 554), 517 (curve 555), 718 (curve 556), 996 (curve 557), 1383 (curve 558), and 1920 (curve 559).
  • Fig. 6 shows examples of the throughput rate as a function of block size for three different signal to noise ratios.
  • the throughput R may be expressed as a function of the received SNR and the block size N as follows:
  • T tt ⁇ is the duration of the transmission, e.g., 2 ms
  • the throughput rate may be expressed as
  • R(SNR,N) ⁇ -Q ⁇ j2 sf N max .SNR/Nf. i w
  • the transmitter can select a block size which increases the throughput rate.
  • the SNR is not known to the transmitter, even though in many systems the SNR may at least be assumed to be constant, since the power control mechanism may be controlled by the receiver such that the SNR kept constant. In other systems, the power control mechanism attempts to keep the BLER constant. In such a system it would be advantageous to always select the largest block size.
  • the block size control method and the initialisation method described herein are particularly advantageous.
  • block size initialisation and control described herein is not limited to systems with constant SIR, since the block size control detects changes in the estimated BLER, e.g. due to changes in the channel.
  • the block size initialisation and control described herein may also be applied in situations where the ACK/NACK indications received by the transmitter are unreliable. Even though the initialisation procedure may result in a larger initial block size than for reliable ACK/NACK indications, the subsequent update process would still converge to an advantageous value.
  • block size control method described herein may be applied both in systems with and without retransmissions.
  • a retransmission count may be forwarded to the optimiser unit and used in the selection of the primary block size.
  • the block size control described herein automatically adapts to fast fading situations. Furthermore, the block size control is adaptable to slow fading performance, e.g. by adapting time constants of the rate estimation, optimiser updates, etc. The time constants may be adapted based on estimates of the channel variation rate, Doppler, etc.
  • the present invention may be applied to different communications systems. A possible application of the presented invention is for block size selection in the Enhanced uplink concept in WCDMA.
  • the method, product means, and device described herein can be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed microprocessor.
  • several of these means can be embodied by one and the same item of hardware, e.g. a suitably programmed microprocessor, one or more digital signal processor, or the like.
  • a suitably programmed microprocessor one or more digital signal processor, or the like.

Abstract

A method of controlling a block size of data blocks to be transmitted from a transmitter to a receiver via a communications link, the method comprising determining an adjusted block size based on at least one indication indicating whether a previously transmitted data block with a current block size was successfully received by the receiver; wherein determining the adjusted block size comprises transmitting a number of data blocks having respective current block sizes, wherein each current block size is selected from at least two previously determined candidate block sizes; determining at least one adjusted candidate block size from a number of indications, each indication indicating whether a corresponding one of the transmitted data blocks was successfully received by the receiver; and replacing at least one of the previously determined candidate block sizes with the determined at least one adjusted candidate block size.

Description

Block size control
FIELD OF THE INVENTION:
The invention relates to the control of the block size of data blocks to be transmitted from a transmitter to a receiver via a communications link.
BACKGROUND OF THE INVENTION:
Typical sources of transmission errors in communications networks include the transmission medium and impairments in the receiver, the transmitter, and/or a communications channel due to noise and interference.
In communications systems with variable block sizes, such as automatic repeat request (ARQ) transmission systems, such errors are managed by packetizing the transmitted data, detecting transmission errors, and requesting retransmission of packets that have not been successfully received. Hence, in such a system data is transmitted in the form of data blocks or packets, each data block including a certain number of data bits. The number of bits included in a data block is denoted the block size of that data block. Typically, upon receipt of a data block, the receiver returns a so- called ACK/NACK flag indicating whether or not the receiver acknowledges error-free receipt of the data block.
The effect of the block size on the throughput of the communications system may be described with reference to the available transmit energy per information bit (Eb). The throughput of such an ARQ protocol depends on a variety of parameters, including the block size, i.e. the amount of data to be sent at one time, e.g. during each transmission time interval. If error control is used, the corresponding error codes are typically added before interleaving and returned to the transmitter. In particular, for a fixed power level (or energy per chip, Ec) a smaller block corresponds to a higher energy per information bit (Eb) than a larger block. Consequently, small block sizes result in a small number of transmitted data bits, while large block sizes result in more block errors. Consequently, it is desirable to adjust the block size of an ARQ system as to optimize the throughput on an ARQ controlled link.
Hence, it is a general problem, based on knowledge of the ACK's and NACK's and potential side-information, e.g., receiver SIR, of the previously transmitted packets, to select the transport block size, i.e., the number of information bits that should be relayed in the next transmission time interval (TTI).
US patent no. 3,878,333 discloses a simplex ARQ system for data transmission circuits using a short wave circuit. This prior art system performs retransmissions of transmitted blocks in case of transmission errors. Furthermore, the length of the transmitted blocks is changed according to the instantaneous quality of the short wave circuit.
US patent application no. 2002/0089935 discloses methods and apparatuses for varying the size of a radiolink protocol packet based channel condition estimation.
The article "ARQ protocols with adaptive block size perform better over a wide range of bit error rates" by Joaquim Arnaldo C. Martins and Jorge de Carvalho Alves, IEEE Transactions on Communications, vol. 38, no. 6, June 1990, discloses an adaptive scheme for adjusting the block size depending on the channel conditions. Even though the above prior art method provides an improved bit error rate, it remains a problem to further improve the block size control as to provide a high throughput and a high reliability.
SUMMARY OF THE INVENTION:
According to one aspect, the above and other problems are solved by a method of controlling a block size of data blocks to be transmitted from a transmitter to a receiver via a communications link, the method comprising determining an adjusted block size based on at least one indication indicating whether a previously transmitted data block with a current block size was successfully received by the receiver; wherein determining the adjusted block size comprises
- transmitting a number of data blocks having respective current block sizes, wherein each current block size is selected from at least two previously determined candidate block sizes;
- determining at least one adjusted candidate block size from a number of indications, each indication indicating whether a corresponding one of the transmitted data blocks was successfully received by the receiver; and
- replacing at least one of the previously determined candidate block sizes with the determined at least one adjusted candidate block size.
In particular, by transmitting data blocks with different candidate block sizes and receiving ACK/NACK indications corresponding to those different block sizes, several candidate block sizes are actually probed for the current channel conditions, thereby allowing a continuous evaluation of different possible block sizes and selection of the most optimal block size under the given channel conditions.
Furthermore, since the block size control is based on actual measurements of the number of ACK/NACK indications for different alternative block sizes, an accurate block size control is provided without depending on potentially inaccurate a priori assumptions and or estimates of e.g. the signal to interference ratio that may cause the control to give erroneous results.
Furthermore, it is an advantage that the block size control described herein does not require a model of the channel conditions.
It is a further advantage that the block size control described herein automatically adjusts to changing channel conditions.
In some embodiments of the invention, replacing at least one of the previously determined candidate block sizes with the determined at least one adjusted candidate block size is conditioned on the determined at least one adjusted candidate block size resulting in a higher estimated throughput than at least one of the previously determined candidate block sizes. In particular, when the previously determined candidate block sizes provide the highest throughput rates or when a replacement would not result in an improvement of the estimated throughput rate, an adjustment/replacement of the probed block sizes may be omitted. Furthermore, the replacement of a previously determined candidate block size by an adjusted candidate block size may be conditioned on additional or alternative conditions, e.g. that the adjusted candidate block size is different from the previously determined candidate block sizes.
According to another embodiment, an efficient determination of an initial block size is achieved when the method further comprises determining an initial primary block size by
- transmitting at least a first data block with an initial candidate block size; - retransmitting at least one data block obtained from at least the first data block until the at least one data block has been received correctly by the receiver; - determining the initial primary block size from a quantity indicative of the amount of data transmitted during the retransmissions.
Hence, an alternative procedure for determining an initial block size is provided that takes retransmissions into account. The at least one data block obtained from at least the first data block may be identical to the first data block. In other embodiments, the at least one data block obtained from at least the first data block may be determined according to a suitable retransmission scheme, e.g. employing an incremental redundancy coding scheme. Examples of the quantity indicative of the amount of data transmitted during the retransmissions include the number of retransmissions, the number of bits transmitted during the retransmissions, or the like.
According to another aspect, the above and other problems are solved by a method of determining a suitable block size of data blocks to be transmitted from a transmitter to a receiver via a communications link, the method comprising
- transmitting one or more data blocks with respective block sizes selected from a predetermined sequence of block sizes until at least one of the one or more data blocks is successfully received; wherein a smaller block size is selected from said sequence for the transmission of a subsequent data block responsive to a previous one of the one or more data blocks not having been successfully received by the receiver; and - selecting as a suitable block size the block size of a data block that was successfully received by the receiver; wherein the method further comprises
- determining said predetermined sequence of block sizes by means of an iterative process, wherein during each iteration a subsequent block size is determined as a block size that maximises an average likelihood throughput calculated from at least one block size determined during at least one previous iteration.
Hence, a high throughput and a high reliability are already obtained after a few transmission attempts. In particular, by determining the predetermined sequence such that the subsequent block size at each iteration is determined as a block size that maximises an average likelihood throughput calculated from the previously determined block sizes, the above method provides an optimal or at least close to optimal selection of a block size in a short number of transmission attempts, thereby reducing the time required to reach an optimal or at least near-optimal throughput.
In some embodiments, the re-transmitted data blocks are obtained from the data block whose transmission failed according to a suitable retransmission scheme, e.g. employing an incremental redundancy coding scheme. Alternatively, the re-transmitted data block is identical to the incorrectly received data block.
In embodiments of the invention, the predetermined sequence of block sizes is sequentially ordered by block size starting with the largest block size, such that after a failed transmission attempt the next smaller block size of the predetermined sequence is selected.
It is an advantage of the initialisation methods described herein that the selection of the sizes of the initial blocks is performed efficiently and reliably, even when no or only a limited amount of prior information is available.
The data to be transmitted is processed before transmission, e.g. encoded, interleaved, rate matched, modulated, and/or the like. The encoding may include Turbo encoding, convolutional encoding, and/or the like. The modulation may include any suitable modulation scheme, e.g. using Phase Shift Keying (PSK), such as Binary Phase Shift Keying (BPSK), Quadrature Phase Shift Keying (QPSK), 8-PSK, etc., Quadrature Amplitude Modulation techniques (QAM), Continuous Phase Modulation (CPM), or the like.
In some embodiments, the indication indicating whether a corresponding data block was successfully received by the receiver is generated by the receiver. Nevertheless, the block size control unit performing the block size control described herein may be located in the transmitter or in the receiver. In an embodiment where the block size control unit is located in the transmitter, the receiver sends the indication to the transmitter, e.g. as an ACK/NACK flag, e.g. a binary indication, or any other suitable form of indication. In an embodiment where the block size control unit is located in the receiver, the block size control unit may send a resulting block size to the transmitter to cause the transmitter to use that block size for subsequent transmissions. Furthermore, in some embodiments, the block size control may be distributed between the transmitter and the receiver. For example, the receiver may select a set of block sizes on a slow time scale, while the transmitter selects the exact block size from that set on a fast time scale.
In one embodiment, the at least two candidate block sizes comprise a primary block size and one or more alternative block sizes; and the current block size is selected to be equal to the primary block size more frequently than to be equal to each of the one or more alternative block sizes. In particular, when the primary block size is the block size that provides the best estimated transmission performance and when this block size is used more frequently than the alternative block sizes, a probing of alternative block sizes is achieved while reducing the decrease of the overall performance due to the use of non-optimal block sizes.
In particular, when the method further comprises determining, from respective expected throughput rates for the primary block size and the one or more alternative block sizes, a relative frequency with which the primary block size is selected relative to the one or more alternative block sizes, a fast detection of changes in the transmission conditions is combined with a high average throughput rate, e.g. measured as the successfully transmitted number of data bits per unit time.
In one embodiment, determining at least one adjusted candidate block size comprises
- determining an adjusted primary block size from the one or more indications; and
- determining one or more adjusted alternative block sizes from the determined adjusted primary block size. Hence, the primary block size may be adjusted to correspond to the estimated optimal block size under the current channel conditions, while one or more alternative, typically sub-optimal, block sizes are probed, in order to efficiently detect a situation when it is advantageous to change the primary block size.
In particular, in one embodiment, determining the adjusted primary block size comprises
- determining respective effective throughput rates for the transmitted data blocks of each of the candidate block sizes; and - determining the adjusted primary block size as one of the candidate block sizes that corresponds to the highest of the determined effective throughput rates.
Consequently, the primary block size is selected as to maximise the estimated throughput, thereby directly optimising the throughput of the system.
In one embodiment, determining respective effective throughput rates comprises
- determining respective block error rates for the transmitted data blocks of each of the candidate block sizes from said indications; and - determining respective throughput rates from the block error rates and the corresponding candidate block sizes.
Hence, an efficient and accurate estimate of the throughput is provided based on the history of ACK/NACK only.
When the one or more alternative block sizes comprise a smallest block size smaller than the primary block size and a largest block size larger than the primary block size, both a higher and a lower alternative block size are compared to the current primary block size, thereby determining whether an increase or a decrease of the block size would result in an improvement compared to the present performance. The difference between the primary and the alternative block sizes may be selected more or less big. For example, given a sequence of discrete block sizes that are available in a given system, the smallest and largest block size may be selected to be the nearest neighbours of the primary block size, or they may be selected to be the next-nearest neighbours or even further apart from the primary block size, depending on the desired step size of the control mechanism and the number of alternative block sizes to be probed. In particular, when the at least two candidate block sizes are determined from a sequence of possible block sizes, and when the smallest block size and the largest block size are selected to be adjacent block sizes to the primary block size within said sequence, a fine tuning of the block size is provided with the smallest possible step size.
For the initial blocks sent over a channel, no prior information of the quality of the channel is available. In one embodiment of the invention, an initial value of the primary block size is obtained by determining an initial primary block size by
- transmitting one or more data blocks with respective block sizes selected from a predetermined sequence of block sizes until at least one of the one or more data blocks is successfully received by the receiver; wherein a smaller block size is selected from said sequence for the transmission of a subsequent data block responsive to a previous one of the one or more data blocks not having been successfully received by the receiver; and
- selecting the initial primary block size to be the block size of a data block that was successfully received by the receiver.
When the method further comprises determining said predetermined sequence of block sizes by means of an iterative process, wherein during each iteration a subsequent block size is determined as a block size that maximises an average likelihood throughput calculated from at least one block size determined during at least one previous iteration, a particularly efficient method of determining an initial block size is provided, since a reasonable block size is obtained already after a few transmission attempts. The sequence of block sizes, while block errors occur, can be pre-computed and stored in a table, e.g. for at least one of a predetermined assumed channel and predetermined assumed channel conditions. In yet another embodiment, the method further comprises pre-calculating and storing at least two sequences of block sizes; wherein each pre-calculated sequence is calculated for at least one of a different assumed channel and different assumed channel conditions.
In another embodiment, the subsequent block size Nn in the n-th iteration of the iterative process is determined from the block sizes Ni, ..., Nn-i determined in the n-1 previous iterations, from a predetermined distribution P(SNR) of the signal to noise ratio SNR, from respective probabilities PB(SNR1NJ), je{1 n-1} of receiving an indication that a data block of size Nj was not successfully received given a signal to noise ratio SNR, and from the expected throughput rate R(SNR1N) as a function of signal to noise ratio SNR and block size N, according to
Nn = argmax pB(SNR, Nj ) dSNR .
N
Figure imgf000011_0001
J In yet another embodiment, the sequence of block sizes comprises less than 10 different block sizes preferably less than 7, more preferably between 4 and 5 block sizes.
In yet another embodiment, the method further comprises adjusting the determined block size during transmission of subsequent data blocks by performing the following steps:
- transmitting a number of data blocks having respective current block sizes, wherein each current block size is selected from at least two previously determined candidate block sizes;
- determining at least one adjusted candidate block size from a number of indications, each indication indicating whether a corresponding one of the transmitted data blocks was successfully received; and - replacing at least one of the previously determined candidate block sizes with the determined at least one adjusted candidate block size.
The present invention relates to different aspects including the methods described above and in the following, corresponding devices, and computer programs, each yielding one or more of the benefits and advantages described in connection with the above-mentioned methods, and each having one or more embodiments corresponding to the embodiments described in connection with the above-mentioned methods.
In particular, according to the first aspect, a control device for controlling a block size of data blocks to be transmitted by a transmitter unit to a receiver via a communications link is adapted to determine an adjusted block size based on at least one indication indicating whether a previously transmitted data block with a current block size was successfully received by the receiver; and to - cause the transmitter unit to transmit a number of data blocks having respective current block sizes, wherein the control means is adapted to select each current block size from at least two previously determined candidate block sizes; - to determine at least one adjusted candidate block size from a number of indications, each indication indicating whether a corresponding one of the transmitted data blocks was successfully received; and
- to replace at least one of the previously determined candidate block sizes with the determined at least one adjusted candidate block size.
According to the second aspect, a control device for controlling a block size of data blocks to be transmitted by a transmitter unit to a receiver via a communications link comprises an initialisation unit for determining a suitable block size, and storage means for storing a sequence of available block sizes, wherein the control device is adapted to
- cause the transmitter unit to transmit one or more data blocks with respective block sizes selected from a said sequence of block sizes until at least one of the one or more data blocks is successfully received by the receiver; wherein the initialisation unit is adapted to select a smaller block size from said sequence for the transmission of a subsequent data block responsive to a previous one of the one or more data blocks not having been successfully received by the receiver; and
- to select as suitable block size the block size of a data block that was successfully received by the receiver; wherein the initialisation unit is adapted to select said respective smaller block sizes from a predetermined subset of said stored sequence of block sizes, wherein each smaller block size is determined as a block size that maximises an average likelihood throughput calculated from a previous block size of said subset. For the purpose of the present description, the term storage means is intended to comprise any suitable storage device or circuit, e.g. a read-only- memory (ROM), a random access memory (RAM), a flash memory, an Erasable Programmable Read-Only Memory (EPROM), volatile or non- volatile memory, or the like.
According to one embodiment, the at least two candidate block sizes comprise a primary block size and one or more alternative block sizes; and the control device comprises a selector unit adapted to select the current block size to be equal to the primary block size more frequently than to be equal to each of the one or more alternative block sizes.
According to another embodiment, the selector unit is adapted to determine, from respective expected throughput rates for the primary block size and the one or more alternative block sizes, a relative frequency with which the primary block size is selected relative to the one or more alternative block sizes.
According to yet another embodiment, the control device comprises an optimizer unit adapted to determine an adjusted primary block size from the one or more indications, and to determine one or more adjusted alternative block sizes from the determined adjusted primary block size.
According to yet another embodiment, the control device comprises at least one rate evaluation unit adapted to determine respective effective throughput rates for the transmitted data blocks of each of the candidate block sizes; and the optimizer unit is adapted to determine the adjusted primary block size as one of the candidate block sizes corresponding to the highest of the determined effective throughput rates. According to yet another embodiment, the at least one rate evaluation unit is adapted to determine respective block error rates for the transmitted data blocks of each of the candidate block sizes from the indications, and to determine respective throughput rates from the block error rates and the corresponding candidate block sizes.
According to yet another embodiment, the one or more alternative block sizes comprise a smallest block size smaller than the primary block size and a largest block size larger than the primary block size.
According to yet another embodiment, the control device is adapted to determine the at least two candidate block sizes from a sequence of possible block sizes, and to select the smallest block size and the largest block size to be adjacent block sizes to the primary block size within said sequence.
As mentioned above, in some embodiments the control device comprises an initialisation unit for determining an initial primary block size, wherein the initialisation unit is adapted
- to cause the transmitter unit to transmit one or more data blocks with respective block sizes selected from a predetermined sequence of block sizes until at least one of the one or more data blocks is successfully received by the receiver; wherein a smaller block size is selected from said sequence for the transmission of a subsequent data block responsive to a previous one of the one or more data blocks not having been successfully received by the receiver; and
- to select the initial primary block size to be the block size of a data block that was successfully received by the receiver.
According to one embodiment, the initialisation unit is adapted to determine said predetermined sequence of block sizes by means of an iterative process, wherein during each iteration a subsequent block size is determined as a block size that maximises an average likelihood throughput calculated from at least one block size determined during at least one previous iteration.
According to yet another embodiment, the control device comprises storage means for storing a pre-calculated sequence of block sizes for at least one of a predetermined assumed channel and predetermined assumed channel conditions. According to yet another embodiment, the storage means is adapted to store at least two pre-calculated sequences of block sizes; wherein each pre-calculated sequence is calculated for at least one of a different assumed channel and different assumed channel conditions.
According to yet another embodiment, the subsequent block size Nn in the n- th iteration of the iterative process is determined from the block sizes Ni
Nn-I determined in the n-1 previous iterations, from a predetermined distribution P(SNR) of the signal to noise ratio SNR, from respective probabilities PB(SNR1NJ), je{1 ,...,n-1} of receiving an indication that a data block of size Nj was not successfully received given a signal to noise ratio SNR, and from the expected throughput rate R(SNR1N) as a function of signal to noise ratio SNR and block size N, according to
Nn = arg .
Figure imgf000016_0001
According to yet another embodiment, the sequence of block sizes comprises less than 10 different block sizes preferably less than 7, more preferably between 4 and 5 block sizes.
According to yet another embodiment, the control device further comprises an initialisation unit adapted to determine an initial primary block size by - causing the transmitter unit to transmit at least a first data block with an initial candidate block size, and to retransmit at least one data block obtained from at least the first data block until the at least one data block has been received correctly by the receiver; - determining the initial primary block size from a quantity indicative of the amount of data transmitted during the retransmissions.
According to yet another embodiment, the control device is further adapted to adjust the determined block size during transmission of subsequent data blocks by performing the following steps:
- transmitting a number of data blocks having respective current block sizes, wherein each current block size is selected from at least two previously determined candidate block sizes;
- determining at least one adjusted candidate block size from a number of indications, each indication indicating whether a corresponding one of the transmitted data blocks was successfully received; and
- replacing at least one of the previously determined candidate block sizes with the determined at least one adjusted candidate block size.
According to another aspect, a transmitter unit comprises a control device as described above and in the following. The term transmitter unit is intended to comprise any electronic communications equipment for transmitting data via a communications channel, e.g. portable radio communications equipment, and other handheld or portable devices. The term portable radio communications equipment includes all equipment such as mobile terminals, e.g. mobile telephones, pagers, communicators, electronic organisers, smart phones, personal digital assistants (PDAs), handheld computers, or the like.
It is noted that the features of the methods described above and in the following may be implemented in software and carried out on a data processing device or other processing means caused by the execution of program code means such as computer-executable instructions. Here and in the following, the term processing means comprises any circuit and/or device suitably adapted to perform the above functions. In particular, the above term comprises general- or special-purpose programmable microprocessors, Digital Signal Processors (DSP), Application Specific Integrated Circuits (ASIC), Programmable Logic Arrays (PLA), Field Programmable Gate Arrays (FPGA), special purpose electronic circuits, etc., or a combination thereof.
Hence, according to another aspect, a computer program comprises program code means adapted to cause, when said computer program is run on the data processing device, the data processing device to determine a subset of block sizes for use in an initialisation of a block size control process, and to cause the data processing system to determine said subset from a sequence of available block sizes; wherein the program code means are adapted to cause the data processing system to select, in each iteration of an iterative process, a block size from the sequence of block sizes to be included in the subset of block sizes as a block size that maximises an average likelihood throughput calculated from a previously selected block size of said subset.
According another aspect, a data processing system is configured to determine a subset of block sizes for use in an initialisation of a block size control process, the data processing system being configured to determine said subset from a sequence of available block sizes; wherein the data processing system is adapted to select during each iteration of an iterative process a block size from the sequence of block sizes to be included in the subset of block sizes as a block size that maximises an average likelihood throughput calculated from a previously selected block size of said subset.
For example, the program code means may be loaded in a memory, such as a RAM (Random Access Memory), from a storage medium or from another computer via a computer network. Alternatively, the described features may be implemented by hardwired circuitry instead of software or in combination with software. BRIEF DESCRIPTION OF THE DRAWINGS:
The above and other aspects will be apparent and elucidated from the embodiments described in the following with reference to the drawing in which:
Fig. 1 shows a schematic block diagram of a communications system that implements a block size control.
Fig. 2 shows a schematic block diagram of an arrangement for controlling the block size of a transmitter.
Fig. 3 illustrates examples of shapes of the distribution of the throughput as a function of the block size around an optimal block size.
Fig. 4 shows a flow diagram of a process for determining an initial block size based on an optimal sequence of block sizes.
Fig. 5 illustrates the block error rate as a function of signal to noise ratio for a number of different block sizes.
Fig. 6 shows examples of the throughput rate as a function of block size for three different signal to noise ratios.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS:
Fig. 1 shows a schematic block diagram of a communications system that implements a block size control. The communications system comprises a transmitter unit 101 and a receiver unit 102. The transmitter unit and the receiver unit communicate with each other via a communications channel 103. The transmitter unit 101 includes a data source 104 for providing data for transmitting, an encoder unit 105, and a transceiver 106. The encoder unit 105 is operably coupled to the data source and is adapted to encode the data into data packets/blocks in accordance with a predetermined scheme. The transceiver 106 is operably coupled to the encoder unit 105 and is adapted to transmit the data packets to the receiver unit 102 and to receive error information from the receiver unit 102. The transmitter unit further comprises a block size control unit 107 operably coupled to the transceiver 106. The block size control unit 107 receives the error information 111 generated by the receiver unit from the transceiver 106 and determines the block size for the subsequent data packets. In particular, the block size determines the amount of data to be included in each data packet by the encoder 105. Accordingly, the block size control unit 107 forwards the determined block size 112 to the encoder unit 105.
The receiver unit 102 includes a transceiver 108 for receiving the transmitted data from the transmitter unit and for transmitting error information generated by the receiver unit. The receiver unit further comprises a channel decoder 109 operably coupled to the transceiver 108. The channel decoder decodes the received data and determines error information to be returned to the transmitter, e.g. in form of ACK/NACK messages causing the transmitter unit to retransmit the previous data packet. The receiver unit further comprises a data sink 110 for receiving the received data from the channel decoder 109.
In some embodiments, the transmitter unit transmits the data in predetermined transmission time intervals (TTIs), e.g. by transmitting a predetermined number of data packets, e.g. one data packet, per TTI. The length of a TTI may be fixed or variable; typical sizes of TTIs in a WCDMA system are few milliseconds, such as 2-80 ms. However, in other communications systems, the TTIs may be different. In some embodiments, the transmitter unit receives one ACK/NACK for each TTI. In some embodiments, the transmitter unit further comprises a power control circuit that controls the transmit power with which the transceiver 106 transmits the data packets, e.g. in order to maintain a constant signal to noise ratio. When the transmitter unit receives a NACK from the receiver unit, the transmitter unit re-transmits the last data packet, e.g. in the next TTI. In one embodiment, the retransmission is performed at the same power level as the original transmission. In other embodiments the transmit power is increased for the retransmission. Furthermore, in embodiments of ARQ systems, retransmissions are typically combined with previous transmissions. Accordingly, in some embodiments, the transmit power may even be decreased for a retransmission. Furthermore, the block size may be changed in the retransmission as different coded bits may be transmitted.
Fig. 2 shows a schematic block diagram of an arrangement for controlling the block size of a transmitter, e.g. the block size controller 107 of fig. 1.
The block size controller, generally designated 107, controls the block size by probing two or more block sizes. The probing mechanism utilises blocks of more than one block size and estimates the throughput rate (or the block error rate (BLER)) for a range of block sizes based on direct measurements, thereby avoiding the need to rely on a model of the channel conditions in order to estimate the BLER, the bit error rate (BER), or the throughput rate. The procedure uses a range of block sizes, typically three neighbouring sizes,
However, the procedure is not restricted to three sizes.
Accordingly, the block size controller 107 comprises three rate evaluator units 222, 223, and 224. The rate evaluator units monitor the throughput rates that are achieved with the different sizes, respectively. The rates for each of these sizes are evaluated based on the success of the transmitted blocks of the respective sizes. A rate estimate for a particular size is updated when an ACK/NACK flag is received for that block size. To this end the block size controller comprises a switch 221 that receives the ACK/NACK message 111 from the receiver unit and information about the block size Nj of the previous data packet to which the ACK/NACK relates. The switch 221 forwards the ACK/NACK message to the rate evaluator 222, 223, or 224 that corresponds to the block size Nj. Hence, if the previous data packet was transmitted with a block size Nj = Nmidl the switch 221 forwards the ACK/NACK to rate evaluator 222, if the previous data packet was transmitted with a block size Nj = N|OW, the switch 221 forwards the ACK/NACK to rate evaluator 223, and if the previous data packet was transmitted with a block size Nj = Nhigh, the switch 221 forwards the ACK/NACK to rate evaluator 224. The rate evaluators 222, 223, and 224 determine respective estimated throughput rates R(Nmid), R(N|0W), and R(Nhigh) for the corresponding block size Nmid, Niow, or Nhigh- In one embodiment, each rate evaluator estimates a corresponding block error rate (BLER), e.g. by calculating a windowed average of a suitable number of ACK/NACK flags, by calculating an exponential average or a filtered exponential average of the ACK/NACKS, or the like. From the estimated BLER, each rate evaluator may then calculate the corresponding estimated throughput from the estimated BLER and the corresponding block size, according to (1-BLER)N.
Alternatively, the rate evaluators directly determine an estimate of the throughput rate, e.g. by calculating a windowed average of a suitable number of ACK/NACK flags, by calculating an exponential average or a filtered exponential average of the ACK/NACKS, or the like. In one embodiment, upon receipt of an ACK/NACK flag Fj, the estimate Rj(Nj ) is updated according to
Rj{Nj)= ^ - ε)Rj_1(Nj)+ εFjNj,
where RJ(NJ ) is the estimate of the throughput rate for block size Nj,
Figure imgf000022_0001
) is the block size estimated after receipt of the previous ACK/NACK flag for the block size Nj, where Fj= 1 indicates that the previous block of size Nj was successfully received, while Fj=O indicates that the previous block of size Nj was not successfully received, and where ε is a small positive constant in the range 0 < ε < 1. The time constant ε of the above filter operation should be long enough to capture a few block errors in stationary conditions. A too long time constant results in slow convergence and therefore slows block size control. A too short time constant results in noisy rate estimates and therefore incorrect block size decisions.
When no ACK/NACKs have been received for a given block size yet, the rate evaluator generates a suitable initial rate estimate for the corresponding block size. In particular, this situation occurs after initialisation. Assuming that an initialization procedure has determined an initial block size N0, a corresponding initial rate may be estimated as
Rinitial(N0) = 0 - BLER0)N0 / Ttth ,
where BLERo is an estimate of a BLER. For example, assuming a BLER of 10% the initial rate would be
Rinitial(N0) = 0.9N0 /Ttth ,
where Tw is the time used for transmitting one data block. Further uninitialized and/or outdated rate estimates can be initialized with (a possibly somewhat lower value than) an active rate estimate corresponding to a neighbouring block size. For example, when the initial value of Nmid is set to a determined optimal initial value N0, N|0W and Nhigh are set to the next smaller and next larger block size than N0, respectively. The corresponding initial rates may be set to Rinitiaι{Nl0W ) = Rinmal{Nhjgh ) = α Rinitial{N0 ) for a suitable α<1 , e.g. α=0.9. The rate evaluator units 222, 223, and 224 forward the calculated rates R(Nmid), R(Niow), R(Nhigh), respectively, to a block size optimizer unit 225.
The block size optimizer unit 225 attempts to detect whether the transmission conditions have changed such that another block size is preferred. In particular, the used block sizes are increased if
R(N10J < R(Nmid ) < R(Nhigh ) and decreased if
R(N10J > R(Nmid) > R(Nhigh)
For example, if the block sizes are selected from a sequence of increasing block sizes Ni Nn, i.e. a sequence where Nj < Nj+1 V j € {1 ,...,n-1}, and if the presently active block sizes are N|0W = Nj--I, Nmjd=Nj, Nhigh=Nj+i for some j e {3,...,n-2}, an increase of the block size results in new active block sizes Niow = Nj,
Figure imgf000024_0001
Nhjgh=Nj+2, while a decrease of the block size results in new active block sizes Ntow = Nj-2,
Figure imgf000024_0002
Nhigh=Nj. It is understood that the special cases where the active block sizes reach the upper/lower limit of the sequence of block sizes require special attention, since no further increase/decrease of the block size is possible. For example, if N|OW=Ni, a decrease in block size may result in N|Ow=Nmid=Ni and Nhigh=N2, and no further decrease of the block size would be performed. In another example, if Ni0W=N-I , the blocks sizes are selected to be N|0W=Ni, Mmid=N2, and Nhigh=N3, and the block size optimizer 225 sends a signal to the sequence generator 226 indicating that the limit of block sizes has been reached, thereby still monitoring three block sizes.
It is further noted that the case when R(Nmid) < R(Nι0W ) and R(Nmid ) < R(Nhigh ) can be ignored, since this condition is due to measurement errors. The sequence Ni Nn of available block sizes is stored in a memory 241 or other storage means of the transmitter unit. The sequence may be stored in any suitable way, e.g. as a table of block sizes, as an indication of a maximum and minimum block size together with a step size between adjacent block sizes, or the like.
In some embodiments, alternative conditions may be employed for the determination whether a different block size is preferred. For example, hysteresis may be introduced in the above conditions in order to avoid too frequent switching between block sizes. In particular, the above conditions may be replaced by
R(Nl0W ) < R(Nmid) < R(Nhigh ) - δ
for an increase and by
R(Nl0W )- δ > R(Nmid) > R(Nhigh )
for a decrease of the block size, where δ is a suitably selected small positive constant. Alternatively, δ may be selected to be a constant slightly smaller than 1 multiplied by the corresponding throughput rate.
The block size optimizer unit 225 forwards the determined block sizes Nmjd, N|OW and Nhigh to a sequence generator 226 and, via a suitable delay 228, back to the respective rate evaluators.
The block size sequence generator 226 produces a sequence of momentary block sizes, i.e. a sequence where each element of the sequence is selected from the values Nmid, N|OW and Nhjgh- An examplary sequence is (Nmid, Nmid, Nmid, Ni0W, Nmid, Nmid, Nmid, Nhigh, Nmid, Nmid Nmid, Niow,...). i-e. in this example the relative frequencies of Nmid, N|OW, and Nhigh are 6:1 :1 , and the sequence has a periodic structure. The relative frequencies, with which the different block sizes are used in the sequence may be the same or different. The sequence may be a random sequence of block sizes or a systematic sequence as in the above example. In one embodiment, the best block size (Nmid) is used more frequently than those with lower rates as in the above sample sequence. The relative frequency of occurrence of the different block sizes is a trade-off between fast detection of changes in the transmission conditions and high average rate.
Optionally, the sequence generator 226 further receives additional information 227 from the block size optimizer unit 225, in particular information about one or more of the characteristics of the evaluated rates, e.g., an indication of whether there are small or large differences between the evaluated rates. Such information may be used by the sequence generator when generating the sequence of block sizes. For example, information about the differences in the estimated rates can be used to determine the relative frequency with which the different block sizes occur in the sequence, as will be illustrated with reference to fig. 3.
Fig. 3 illustrates examples of shapes of the distribution of the throughput as a function of the block size around an optimal block size. In particular, fig. 3 shows an example of a first distribution 331 of the throughput as a function of block size (shown as a solid line) and an example of a second distribution 332 of the throughput as a function of block size (shown as a dashed line). Both distributions have a maximum at the same location 336. However, the distribution 331 is more sensitive to changes in the block size around the maximum 336 than the distribution 332, i.e. when the block size deviates from the optimal value the throughput for the distribution 331 decreases more rapidly than the throughput for the distribution 332. In the example of fig. 3, three possible block sizes Nj--I, Nj, and Nj+i are indicated. For both distributions the block size Nj provides the largest throughput, as indicated by the dot 334. Hence, the block size optimizer 225 of fig. 2 would select the block sizes to be probed to be Ni0W=Nj-I, Nmid=Nj, and Nhigh=Nj+i. For the distribution 331 , the neighbouring block sizes Nj-1 and Nj+i result in considerably smaller throughput as indicated by dots 335 and 333, respectively. For the distribution 332, on the other hand, use of one of the neighbouring block sizes instead of the optimal block size would only result in a minor decrease of the throughput, as indicated by dots 333' and 335'. Hence, assuming a situation where the throughput is sensitive to the block size, e.g. as in the case of distribution 331 , an embodiment of the sequencer generates a sequence from the block sizes N|Ow=Nj-i, Nmid=Nj, and Nhigh=Nj+1 such that Nmid is used considerably more frequently than the alternative block sizes Niow and Nhigh- Firstly, too frequent use of the alternative block sizes would result in an undesired decrease of the throughput. Secondly, due to the high sensitivity of the throughput around the optimal block size, a comparatively small number of measurements for the alternative block sizes provides a statistically sufficient basis for detecting changes as to which of the three block sizes provides the largest throughput.
In a situation as illustrated by distribution 332, an embodiment of the sequencer selects the sequence of N|0W> Nmjd, and Nhigh such that the three block sizes are used at substantially the same frequency, or that Nmid is used slightly more frequently. Firstly, in this situation, the use of a non-optimal, neighbouring block size does not have a great effect on the throughput. Secondly, a reliable detection as to which block size provides the largest throughput requires more measurements. Hence, in one embodiment, the sequencer determines the relative frequency of the primary block size Nmid and the alternative block sizes N|0W and Nhigh according to the difference in the estimated throughput for these block sizes. In one embodiment the alternative N|0W and Nhjgh may be assigned the same frequency, while in other embodiments, the frequency of each alternative block size may be determined individually.
Again referring to fig. 2, the sequence generator 226 outputs a new block size N, designated 112, according to the generated sequence for every new data packet to be sent, or after a predetermined number of data packets, if a smaller update rate is desired. The block size N is fed into the encoder and controls the block size of the transmitted data packets as described above. The block size is also fed back to the switch 221 , via a suitable delay 229 corresponding to the system delay of the communications system until receipt of the ACK/NACK corresponding to the generated block size N.
Hence, in the above, a block size controller is described that performs a method of controlling a block size of data blocks to be transmitted from a transmitter to a receiver via a communications link. The method comprises the following steps:
- determining a first block size based on at least one indication received from the receiver, the indication indicating whether a previously transmitted data block was successfully received by the receiver;
- determining at least one alternative block size related to the first block size;
- transmitting at least one current data block with a current block size selected from the first block size and the at least one alternative block size;
- receiving at least one indication from the receiver, the at least one indication indicating whether the transmitted at least one current data block was successfully received; and
- determining an adjusted block size and corresponding at least one adjusted alternative block size based on at least the received at least one indication.
The block size controller of fig. 2 further comprises an initialisation unit 230 that generates initial values of the block sizes Nmid> N|0W, Nhigh, and forwards the initial values to the optimizer 225. Hence, during an initialisation process, the block size optimizer 225 forwards the received initial values to the sequencer 226 and back to the rate evaluators 222, 223, and 224. The rate evaluators then determine an initial rate estimate as described above. In one embodiment, the initialisation unit 230 determines an initial estimate of an optimal block size Nmid = N0, and sets the alternative block sizes Nιow and Nhigh to the next smaller and the next larger block size, respectively.
In one embodiment, the initial block size No is determined by sending the first data block with an initially selected block size. The first data block, or a data block determined according to a suitable retransmission scheme, e.g. employing an incremental redundancy coding scheme, is retransmitted until the data included in the first data block has been received correctly by the receiver, and the initialisation unit determines the initial block size from the amount of data transmitted during the retransmissions.
In another embodiment, the initial block size N0 is determined by sending the first block with a large block size, e.g. the largest possible block size. Hence, in the absence of any prior knowledge, as large blocks as possible are chosen, thereby avoiding transmissions at unnecessarily low rates. The block size is then decreased as long as the blocks are not successfully received by the receiver, i.e. as long as a NACK is received from the receiver. In situations where some prior knowledge exists, a smaller block size may be used as a starting block size.
Hence, the initial block size is determined by starting with a large block, and then decreasing the size as long as the blocks are NACKed. The sequence of block sizes, while block errors occur, can be stored in a table. The table entries can be generated through analytical analysis or be based on simulations and/or measurements. In an alternative embodiment, the block size is divided by a constant, e.g., 2.0, each time an incorrect block is received during the initialization phase.
A particular efficient process for determining the optimal block size is based on a sequence of specifically selected block sizes, as will be described in greater detail below with reference to fig. 4. Consequently, in the embodiment of fig. 2, the initialisation unit 230 has access to a stored sequence of selected block sizes, designated 245, for use in the initialisation process. The stored sequence 245 is a subset of the total set of available block sizes 241. Accordingly, the initialisation sequence 245 may be stored in a memory or different storage means, as a separate table, as instructions for generating the sequence, or the like. Alternatively, the available set of block sizes 241 and 245 may be stored in the same memory, e.g. as a table of available block sizes where the initialisation block sizes are marked accordingly, e.g. by a flag or other table entry.
Fig. 4 shows a flow diagram of a process for determining an initial block size based on an optimal sequence of block sizes.
The process starts at step S401 , where the process generates a sequence of block sizes selected from the number of possible block sizes. To this end, the process receives a set of possible block sizes 441. Typically, the available block sizes depend on the communications system in question, and may be restricted to a limited set of discrete block sizes. For the purpose of the present description, it is assumed that a set {Ni,...,Nn} of n block sizes is available where Ni = Nmax is the largest block size.
The process further receives a distribution P(SNR) of the signal to noise ratio SNR, designated 442. The distribution P(SNR) depends on the channel conditions of the transmission channel over which the data packets are transmitted. For a given channel, an estimated distribution can be determined by measurements based on received pilot symbols known per se. Such a measurement may result in a distribution localised around a certain signal to noise ratio and with a width of a few dB. In the absence of such measurements or other information about the distribution of SNR, the distribution may be assumed as a flat distribution.
The process further receives probability distributions pB(SNR, Nj) (443) determining the probability, as a function of SNR, that a packet with block size Nj, je{1 ,...n}, is not successfully received. The probabilities PB(SNR1NJ) depend on the type of channel. For simple cases, the probabilities PB(SNR1NJ) can be expressed analytically. However, in practice, the' probabilities pB(SNR,Nj) are typically obtained for a given channel type by measurements of the block error rates for different block sizes and different signal to noise ratios. An example of the dependency of the BLER on the signal to noise ratio and block size is illustrated in fig. 5.
The process further receives a rate function R(SNR, N) (444) describing the throughput rate as a function of the signal to noise ratio and the block size. Again, the throughput rate R(SNR1N) depends on the channel type and can - for simple cases - be determined analytically. Alternatively, R(SNR1N) can be determined by measurements similar to PB(SNR1NJ). An example of the dependency of the throughput rate on the signal to noise ratio and block size is illustrated in fig. 6.
The probability distributions P(SNR) and pB(SNR,Nj) and the rate function R(SNR1N) may be pre-determined and stored, e.g. as a set of functions in analytical form, such as parametrised functions fitted to measured data, as a table of discrete data points, or the like.
In step S401 a subset NOi > N02 >..-> NOR, k≤n of the set of available block sizes is determined by the following process:
Noi is selected to be a suitably large initial block size. For example, NOi may be selected to be the largest block size, i.e. NOi=Nmaχ, thereby providing a resource-effective selection of NOi.
The remaining block sizes N02, ■■ ■, NOι< are determined iteratively according to the following equation:
Figure imgf000031_0001
Hence, NOj can be determined, based on the above stored distributions and rate functions, by numerically calculating the above integral for all block sizes from the set of available block sizes that are smaller than Noj, and by determining the block size for which the integral is largest. The numerical integration may be performed by any suitable numeric integration technique known per se.
Hence, NOj is determined to be the block size that maximises the average
Likelihood throughput given that transmissions with block sizes NOi N0 j-i have failed.
More particular, the above equation corresponds to a likelihood function
Figure imgf000032_0001
It is understood that the calculation of NOj may be based on alternative likelihood functions. For example, a more generalised likelihood function that takes the possibility of retransmission attempts into account is
L(SNR)
Figure imgf000032_0002
where Fj e{0,1} designates the ACK/NACK flag received for transmission attempt K with block size Nj. Accordingly pB(SNR,Nj,kj) designates the probability of failure, as a function of SNR, for transmission attempt kj with block size N-,.
In some embodiments, a sequence of block sizes is determined off-line by the above process, e.g. for a given channel type and for predetermined assumptions on the channel conditions. The determined sequence is stored in a table 445 in a memory or other storage device of the transmitter. Alternatively, the process determines several sequences for different channel types and/or channel conditions. The sequences are then stored in the transmitter, and the transmitter selects one of the sequences depending on the channel over which a transmission is to be initiated and/or the assumed and/or detected channel conditions.
The size of the determined sequence depends on the number of available block sizes in the communications system. Furthermore, system specifications may limit the allowed number of initial transmission attempts, thereby effectively limiting the number of block sizes of the sequence that can be used during initialisation. In most systems the process determines less than 10 block sizes, e.g. less than 7 block sizes, in particular 4-5 block sizes.
Once the sequence of block sizes is determined, the process of fig. 4 continues at step S402, and the transmitter unit performs the actual initialisation in the subsequent steps S402-S406. For example, in the embodiment of fig. 2, the initialisation unit 230 may perform the steps S402- S406. As mentioned above, in some embodiments, step S401 is performed once off-line, and the resulting sequence 445 is stored. During operation of the transmitter, the initialisation steps S402-S406 are performed based on the stored sequence 445 each time a transmission channel is initialised.
Hence, the sequence 445 only needs to be generated once. Furthermore, the sequence generation in step S401 does not need to be performed by the transmitter unit itself, but may be performed by a separate data processing system, e.g. a personal computer. The generated sequence is then loaded into the transmitter unit.
In step S402, the process initialises a counter i=1 and sets the current block size to the largest block size Noi= Noi=Nmax, or to another suitably large initial block size. For example, the initial block size may be determined based on some information about the SIR density function, e.g. from eqn. (1 ) where the
product γ[pB(SNR,NQj ) is equal to 1.
/=1
In step S403, the process transmits a data packet with the current block size Noi.
In step S404, the process determines, based on a received ACK/NACK flag, whether the transmitted data packet was successfully received by the receiver. If the data packet was successfully received or if the smallest possible block size has been reached, the process continues at step S406; otherwise the process continues at step S405.
In step S405, the counter i is incremented to i+1 , and the current block size is set to the next smaller block size from the sequence 445 accordingly. Subsequently, the process returns to step S403 and transmits the next data packet with the smaller packet size.
In step S406, the process sets the optimal initial block size No to be equal to the current block size NOi for which an ACK was received. Subsequently, the initialisation process terminates, i.e. outputs the initial block size N0 to the block size control unit that performs the sub-sequent control of the block size.
Hence, in summary, the above process determines an initial primary block size by performing the following steps: a) selecting a current block size from a sequence of possible block sizes; b) transmitting a data block with the current block size; c) receiving an indication from the receiver, the indication indicating whether the transmitted data block was successfully received; d) selecting a block size from the sequence of possible block sizes smaller than the current block size as a new current block size, if the indication indicates that the transmitted data block was not successfully received; e) repeating steps b) through d) with the new current block size until a an indication is received that the transmitted data block was successfully received; f) selecting the initial primary block size to be the latest new current block size.
In an alternative embodiment, the initialisation process makes use of a retransmission protocol when determining the initial block size. For example, the transmitter transmits a first block with a predetermined large block size, e.g. the largest available block size. If the transmitter receives a NACK, a retransmission of the same block or a modified block is performed, e.g. a block that is modified based on an incremental redundancy coding scheme. The retransmission procedure is repeated until an ACK is received. Then an estimated of a suitable block size is determined based on the number of retransmissions until the ACK was received or a similar quantity indicative of the amount of retransmitted data. Furthermore, alternative or additional information, such as the contents of the (re)transmitted blocks and/or the particular retransmission scheme employed, may be used in the determination of the suitable block size.
For example, the initialisation may be performed according to the following process: (a) The transmitter sends a data block with the largest available block size
Nmax-
(b) If the transmitter receives a NACK from the receiver indicating that the data block was not received correctly, the transmitter retransmits an identical data block. (c) The transmitter repeats step (b), until the transmitter receives an ACK from the receiver indicating that the data block was received correctly, (d) The transmitter sets a variable T to be equal to the number of retransmissions, i.e. the number of times step (b) was performed. (e) The transmitter sets the initial block size N0 to be equal to Nmax/T, or to the next smallest possible block size.
In another example, the initialisation is performed according to the following process:
(a) The transmitter sends a data block with the largest available block size
Nmax.
(b) If the transmitter receives a NACK from the receiver indicating that the data block was not received correctly, the transmitter retransmits an identical or modified data block according to a predetermined retransmission procedure employed by the communications system.
(c) The transmitter repeats step (b), until the transmitter receives an ACK from the receiver indicating that the data block was received correctly.
(d) The transmitter sets a variable T to be equal to the number of transmitted bits.
(e) The transmitter sets the initial block size N0 to be equal to (Nmax/T) Nmax, or to the next smallest possible block size.
Fig. 5 illustrates the block error rate as a function of signal to noise ratio for a number of different block sizes. In particular, the example of fig. 5 corresponds to a BPSK modulated "additive white Gaussian noise" (AWGN) channel of a wideband code division multiple access (WCDMA) system. The blocks are assumed to be coded using repetition coding. There is further assumed to be no re-transmissions or re-combining.
The chip rate is assumed to be Fc = 3.84 Mbps, the transmission time interval is assumed to be T^ = 2 ms, the spreading factor is assumed to be sf = 4. The maximum block size is Nmax = Tttj • Fc / sf = 1920 bits.
The bit energy Eb for BPSK coding is Eb = sf Ec / r, where Ec is the energy per chip and r the code rate. The bit error probability for an AWGN channel, is given by Pb
Figure imgf000037_0001
e'Eb lENo , where Q is the complementary Gaussian distribution and EN0 the noise energy, i.e. the signal to noise energy is SNR =
Assuming repetition coding, the coding rate is 1/r = Nmax / N, and the block error probability for the first transmission attempt becomes
Ps(SNR, Λ/,1) = 1 - (1 - pB )N = 1 - fl - θ{j2 - sf . /vmax - SNR /Nf .
This is also the block error rate (BLER), as in this example retransmissions are not considered for simplicity.
Fig. 5 shows the BLER as a function of SNR for an example of a set of block sizes, namely the log spaced block sizes 100 (curve 550), 139 (curve 551), 193 (curve 552), 268 (curve 553), 372 (curve 554), 517 (curve 555), 718 (curve 556), 996 (curve 557), 1383 (curve 558), and 1920 (curve 559).
Fig. 6 shows examples of the throughput rate as a function of block size for three different signal to noise ratios. In particular, fig. 6 shows the throughput in the same example system as used in fig. 5 for signal to noise ratios EJENo = -6dB (dashed curve 661 ), Ec/ENo = -3dB (dashed curve 662), and Ec/ENo = OdB (dashed curve 663).
In general, the throughput R may be expressed as a function of the received SNR and the block size N as follows:
R(SNR,N) = N 1 - PiP2 - Pn
7tf, 1 + P1 + pφ2 + ... + P1P2 - ... - Pn-1
where Tttι is the duration of the transmission, e.g., 2 ms, and pi are the probabilities of failure of the i-th transmission given that the previous attempts have failed. From this relation the following observations may be made: When no combining of retransmitted blocks is used, i.e., pi=P2=Pn, then
R = Rmin = Λ/(1 - P1 )/ Tu.
Assuming perfect combining, i.e., all blocks are correct after the first retransmission (P2=O), then
N 1
When the block error probability is small, Rmin and Rmax are similar. Significant combining gains are therefore only achievable at high block error probabilities. E.g., at 10% block error rate, the maximum rate improvement is 1 %. Furthermore, from numerical examples it has been observed that for blocks sizes in the range 200-2000 bits the optimized BLER is 11-15%.
In particular, for the example system described in connection with fig. 5, the throughput rate may be expressed as
R(SNR,N) = ^-Q{j2 sf Nmax .SNR/Nf. i w
As can be seen from fig. 5, for each SNR there is an optimal block size where the throughput rate has a maximum. Furthermore, it can be seen that the optimal block size increases with SNR.
Hence, in a system where the SNR is known to the transmitter, the transmitter can select a block size which increases the throughput rate. However, in many systems the SNR is not known to the transmitter, even though in many systems the SNR may at least be assumed to be constant, since the power control mechanism may be controlled by the receiver such that the SNR kept constant. In other systems, the power control mechanism attempts to keep the BLER constant. In such a system it would be advantageous to always select the largest block size. Hence, in systems where the SNR and/or channel conditions are unknown to the transmitter or at least uncertain, as is typically the case in a practical system, the block size control method and the initialisation method described herein are particularly advantageous.
Furthermore, the block size initialisation and control described herein is not limited to systems with constant SIR, since the block size control detects changes in the estimated BLER, e.g. due to changes in the channel.
It is understood that the assumptions made in connection with the example of figs. 5 and 6 are merely intended as examples, and other assumptions may be applicable depending on the application. For example, the specified parameters may assume different values, channel fading may be taken into consideration, other coding schemes than repetition coding may be used, block combining may be used, etc.
For example, the block size initialisation and control described herein may also be applied in situations where the ACK/NACK indications received by the transmitter are unreliable. Even though the initialisation procedure may result in a larger initial block size than for reliable ACK/NACK indications, the subsequent update process would still converge to an advantageous value.
Furthermore, the block size control method described herein may be applied both in systems with and without retransmissions. For example, in a system with retransmissions, a retransmission count may be forwarded to the optimiser unit and used in the selection of the primary block size.
Furthermore, the block size control described herein automatically adapts to fast fading situations. Furthermore, the block size control is adaptable to slow fading performance, e.g. by adapting time constants of the rate estimation, optimiser updates, etc. The time constants may be adapted based on estimates of the channel variation rate, Doppler, etc. The present invention may be applied to different communications systems. A possible application of the presented invention is for block size selection in the Enhanced uplink concept in WCDMA.
Although some embodiments have been described and shown in detail, the invention is not restricted to them, but may also be embodied in other ways within the scope of the subject matter defined in the following claims.
The method, product means, and device described herein can be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed microprocessor. In the device claims enumerating several means, several of these means can be embodied by one and the same item of hardware, e.g. a suitably programmed microprocessor, one or more digital signal processor, or the like. The mere fact that certain measures are recited in mutually different dependent claims or described in different embodiments does not indicate that a combination of these measures cannot be used to advantage.
It should be emphasized that the term "comprises/comprising" when used in this specification is taken to specify the presence of stated features, integers, steps or components but does not preclude the presence or addition of one or more other features, integers, steps, components or groups thereof.

Claims

CLAIMS:
1. A method of controlling a block size of data blocks to be transmitted from a transmitter (101 ) to a receiver (102) via a communications link (103), the method comprising determining an adjusted block size (112) based on at least one indication (111 ) indicating whether a previously transmitted data block with a current block size was successfully received by the receiver; characterised in that determining the adjusted block size comprises
- transmitting a number of data blocks having respective current block sizes (112), wherein each current block size is selected from at least two previously determined candidate block sizes (Nmicι, N|0W. Nhigh);
- determining at least one adjusted candidate block size from a number of indications (111), each indication indicating whether a corresponding one of the transmitted data blocks was successfully received by the receiver; and
- replacing at least one of the previously determined candidate block sizes with the determined at least one adjusted candidate block size.
2. A method according to claim 1 , wherein the at least two candidate block sizes comprise a primary block size and one or more alternative block sizes; and wherein the current block size is selected to be equal to the primary block size more frequently than to be equal to each of the one or more alternative block sizes.
3. A method according to claim 2, further comprising determining, from respective expected throughput rates for the primary block size and the one or more alternative block sizes, a relative frequency with which the primary block size is selected relative to the one or more alternative block sizes.
4. A method according to claim 2 or 3, wherein determining at least one adjusted candidate block size comprises - determining an adjusted primary block size from the one or more indications; and
- determining one or more adjusted alternative block sizes from the determined adjusted primary block size.
5. A method according to claim 4, wherein determining the adjusted primary block size comprises
- determining respective effective throughput rates for the transmitted data blocks of each of the candidate block sizes; and - determining the adjusted primary block size as one of the candidate block sizes that corresponds to the highest of the determined effective throughput rates.
6. A method according to claim 5, wherein determining respective effective throughput rates comprises
- determining respective block error rates for the transmitted data blocks of each of the candidate block sizes from said indications; and
- determining respective throughput rates from the block error rates and the corresponding candidate block sizes.
7. A method according to any one of claims 2 through 6, wherein the one or more alternative block sizes comprise a smallest block size smaller than the primary block size and a largest block size larger than the primary block size.
8. A method according to claim 7, wherein the at least two candidate block sizes are determined from a sequence of possible block sizes; and wherein the smallest block size and the largest block size are selected to be adjacent block sizes to the primary block size within said sequence.
9. A method according to any one of claims 1 through 8, further comprising determining an initial primary block size by - transmitting one or more data blocks with respective block sizes selected from a predetermined sequence of block sizes until at least one of the one or more data blocks is successfully received by the receiver; wherein a smaller block size is selected from said sequence for the transmission of a subsequent data block responsive to a previous one of the one or more data blocks not having been successfully received by the receiver; and
- selecting the initial primary block size to be the block size of a data block that was successfully received by the receiver.
10. A method according to claim 9, further comprising determining said predetermined sequence of block sizes by means of an iterative process, wherein during each iteration a subsequent block size is determined as a block size that maximises an average likelihood throughput calculated from at least one block size determined during at least one previous iteration.
11. A method according to claim 9 or 10, wherein the sequence of block sizes is precalculated for at least one of a predetermined assumed channel and predetermined assumed channel conditions.
12. A method according to claim 10 or 11 , wherein the subsequent block size Nn in the n-th iteration of the iterative process is determined from the block sizes N1 Nn-i determined in the n-1 previous iterations, from a predetermined distribution P(SNR) of the signal to noise ratio SNR, from respective probabilities PB(SNR1NJ), je{1 n-1} of receiving an indication that a data block of size Nj was not successfully received given a signal to noise ratio SNR, and from the expected throughput rate R(SNR1N) as a function of signal to noise ratio SNR and block size N, according to Nn = arg .
Figure imgf000044_0001
13. A method according to claim 11 or 12, comprising pre-calculating and storing at least two sequences of block sizes; wherein each pre-calculated sequence is calculated for at least one of a different assumed channel and different assumed channel conditions.
14. A method according to any one of claims 9 through 13, wherein the sequence of block sizes comprises less than 10 different block sizes preferably less than 7, more preferably between 4 and 5 block sizes.
15. A method according to any one of claims 1 through 8, further comprising determining an initial primary block size by
- transmitting at least a first data block with an initial candidate block size;
- retransmitting at least one data block obtained from at least the first data block until the at least one data block has been received correctly by the receiver;
- determining the initial primary block size from a quantity indicative of the amount of data transmitted during the retransmissions.
16. A method according to claim 15, wherein the quantity indicative of the amount of transmitted data includes at least one of the number of retransmissions and the number of bits transmitted during the retransmissions.
17. A method of determining a suitable block size of data blocks to be transmitted from a transmitter (101 ) to a receiver (102) via a communications link (103), the method comprising - transmitting (S403) one or more data blocks with respective block sizes (Noi) selected from a predetermined sequence of block sizes (445) until at least one of the one or more data blocks is successfully received by the receiver; wherein a smaller block size is selected (S405) from said sequence for the transmission of a subsequent data block responsive (S404) to a previous one of the one or more data blocks not having been successfully received by the receiver; and
- selecting (S406) as a suitable block size the block size of a data block that was successfully received by the receiver; characterised in that the method further comprises
- determining (S401 ) said predetermined sequence of block sizes by means of an iterative process, wherein during each iteration a subsequent block size is determined as a block size that maximises an average likelihood throughput calculated from at least one block size determined during at least one previous iteration.
18. A method according to claim 17, wherein the sequence of block sizes is precalculated for at least one of a predetermined assumed channel and predetermined assumed channel conditions.
19. A method according to claim 17 or 18, wherein the subsequent block size Nn in the n-th iteration of the iterative process is determined from the block sizes Ni Nn-I determined in the n-1 previous iterations, from a predetermined distribution P(SNR) of the signal to noise ratio SNR, from respective probabilities PB(SNR1NJ), je{1 ,...,n-1} of receiving an indication that a data block of size Nj was not successfully received given a signal to noise ratio SNR, and from the expected throughput rate R(SNR1N) as a function of signal to noise ratio SNR and block size N, according to Nn dSNR .
Figure imgf000046_0001
20. A method according to claim 18 or 19 comprising pre-calculating and storing at least two sequences of block sizes; wherein each pre-calculated sequence is calculated for at least one of a different assumed channel and different assumed channel conditions.
21. A method according to any one of claims 17 through 20, wherein the sequence of block sizes comprises less than 10 different block sizes preferably less than 7, more preferably between 4 and 5 block sizes.
22. A method according to any one of claims 17 through 21 , wherein replacing at least one of the previously determined candidate block sizes with the determined at least one adjusted candidate block size is conditioned on the determined at least one adjusted candidate block size resulting in a higher estimated throughput than at least one of the previously determined candidate block sizes.
23. A method according to any one of claims 16 through 22, further comprising adjusting the determined block size during transmission of subsequent data blocks by performing the following steps:
- transmitting a number of data blocks having respective current block sizes, wherein each current block size is selected from at least two previously determined candidate block sizes; - determining at least one adjusted candidate block size from a number of indications, each indication indicating whether a corresponding one of the transmitted data blocks was successfully received by the receiver; and - replacing at least one of the previously determined candidate block sizes with the determined at least one adjusted candidate block size.
24. A method according to claim 23, wherein the at least two candidate block sizes comprise a primary block size and one or more alternative block sizes; and wherein the current block size is selected to be equal to the primary block size more frequently than equal to each of the one or more alternative block sizes.
25. A method according to claim 24, further comprising determining, from respective expected throughput rates for the primary block size and the one or more alternative block sizes, a relative frequency with which the primary block size is selected relative to the one or more alternative block sizes.
26. A method according to claim 24 or 25, wherein determining at least one adjusted candidate block size comprises determining an adjusted primary block size from the one or more indications; and determining one or more adjusted alternative block sizes from the determined adjusted primary block size.
27. A method according to claim 26, wherein determining the adjusted primary block size comprises determining respective effective throughput rates for the transmitted data blocks of each of the candidate block sizes; and determining the adjusted primary block size as one of the candidate block sizes that corresponds to the highest of the determined effective throughput rates.
28. A method according to claim 27, wherein determining respective effective throughput rates comprises determining respective block error rates for the transmitted data blocks of each of the candidate block sizes from said indications; and determining respective throughput rates from the block error rates and the corresponding candidate block sizes.
29. A method according to any one of claims 23 through 28, wherein the one or more alternative block sizes comprise a smallest block size smaller than the primary block size and a largest block size larger than the primary block size.
30. A method according to claim 29, wherein the at least two candidate block sizes are determined from a sequence of possible block sizes; and wherein the smallest block size and the largest block size are selected to be adjacent block sizes to the primary block size within said sequence.
31. A control device (107) for controlling a block size of data blocks to be transmitted by a transmitter unit (101 ) to a receiver (102) via a communications link (103), wherein the control device is adapted to determine an adjusted block size based on at least one indication indicating whether a previously transmitted data block with a current block size was successfully received by the receiver; characterised in that the control device is further adapted to
- cause the transmitter unit to transmit a number of data blocks having respective current block sizes, wherein the control means is adapted to select each current block size from at least two previously determined candidate block sizes; - to determine at least one adjusted candidate block size from a number of indications, each indication indicating whether a corresponding one of the transmitted data blocks was successfully received by the receiver; and
- to replace at least one of the previously determined candidate block sizes with the determined at least one adjusted candidate block size.
32. A control device according to claim 31 , wherein the at least two candidate block sizes comprise a primary block size and one or more alternative block sizes; and wherein the control device comprises a selector unit (226) adapted to select the current block size to be equal to the primary block size more frequently than to be equal to each of the one or more alternative block sizes.
33. A control device according to claim 32, wherein the selector unit (226) is adapted to determine, from respective expected throughput rates for the primary block size and the one or more alternative block sizes, a relative frequency with which the primary block size is selected relative to the one or more alternative block sizes.
34. A control device according to claim 32 or 33, comprising an optimizer unit (225) adapted to determine an adjusted primary block size from the one or more indications, and to determine one or more adjusted alternative block sizes from the determined adjusted primary block size.
35. A control device according to claim 34, comprising at least one rate evaluation unit (222, 223, 224) adapted to determine respective effective throughput rates for the transmitted data blocks of each of the candidate block sizes; and wherein the optimizer unit is adapted to determine the adjusted primary block size as one of the candidate block sizes corresponding to the highest of the determined effective throughput rates.
36. A control device according to claim 35, wherein the at least one rate evaluation unit is adapted to determine respective block error rates for the transmitted data blocks of each of the candidate block sizes from the indications, and to determine respective throughput rates from the block error rates and the corresponding candidate block sizes.
37. A control device according to any one of claims 32 through 36, wherein the one or more alternative block sizes comprise a smallest block size smaller than the primary block size and a largest block size larger than the primary block size.
38. A control device according to claim 37, adapted to determine the at least two candidate block sizes from a sequence of possible block sizes, and to select the smallest block size and the largest block size to be adjacent block sizes to the primary block size within said sequence.
39. A control device according to any one of claims 31 through 38, further comprising an initialisation unit (230) for determining an initial primary block size, wherein the initialisation unit is adapted
- to cause the transmitter unit to transmit one or more data blocks with respective block sizes selected from a predetermined sequence of block sizes until at least one of the one or more data blocks is successfully received by the receiver; wherein a smaller block size is selected from said sequence for the transmission of a subsequent data block responsive to a previous one of the one or more data blocks not having been successfully received by the receiver; and
- to select the initial primary block size to be the block size of a data block that was successfully received by the receiver.
40. A control device according to claim 39, wherein the initialisation unit is adapted to determine said predetermined sequence of block sizes by means of an iterative process, wherein during each iteration a subsequent block size is determined as a block size that maximises an average likelihood throughput calculated from at least one block size determined during at least one previous iteration.
41. A control device according to claim 39 or 40, comprising storage means (245) for storing a pre-calculated sequence of block sizes for at least one of a predetermined assumed channel and predetermined assumed channel conditions.
42. A control device according to claim 40 or 41 , wherein the subsequent block size Nn in the n-th iteration of the iterative process is determined from the block sizes Ni, ..., Nn-i determined in the n-1 previous iterations, from a predetermined distribution P(SNR) of the signal to noise ratio SNR, from respective probabilities pB(SNR,Nj), je{1 ,...,n-1} of receiving an indication that a data block of size Nj was not successfully received given a signal to noise ratio SNR, and from the expected throughput rate R(SNR1N) as a function of signal to noise ratio SNR and block size N, according to
Nn = arg dSNR .
Figure imgf000051_0001
43. A control device according to claim 41 or 42; wherein the storage means (245) is adapted to store at least two pre-calculated sequences of block sizes; wherein each pre-calculated sequence is calculated for at least one of a different assumed channel and different assumed channel conditions.
44. A control device according to any one of claims 39 through 43, wherein the sequence of block sizes comprises less than 10 different block sizes preferably less than 7, more preferably between 4 and 5 block sizes.
45. A control device according to any one of claims 31 through 38, further comprising an initialisation unit (230) adapted to determine an initial primary block size by - causing the transmitter unit to transmit at least a first data block with an initial candidate block size, and to retransmit at least one data block obtained from at least the first data block until the at least one data block has been received correctly by the receiver; - determining the initial primary block size from a quantity indicative of the amount of data transmitted during the retransmissions.
46. A control device according to claim 45, wherein the quantity indicative of the amount of transmitted data includes at least one of the number of retransmissions and the number of bits transmitted during the retransmissions.
47. A control device (107) for controlling a block size of data blocks to be transmitted by a transmitter unit (101 ) to a receiver (102) via a communications link (103), the control device comprising an initialisation unit (230) for determining a suitable block size, and storage means (241 , 441 ) for storing a sequence of available block sizes, wherein the control device is adapted to
- cause the transmitter unit to transmit one or more data blocks with respective block sizes selected from a said sequence of block sizes until at least one of the one or more data blocks is successfully received by the receiver; wherein the initialisation unit is adapted to select a smaller block size from said sequence for the transmission of a subsequent data block responsive to a previous one of the one or more data blocks not having been successfully received by the receiver; and
- to select as suitable block size the block size of a data block that was successfully received by the receiver; characterised in that the initialisation unit is adapted to select said respective smaller block sizes from a predetermined subset of said stored sequence of block sizes, wherein each smaller block size is determined as a block size that maximises an average likelihood throughput calculated from a previous block size of said subset.
48. A control device according to claim 47, comprising storage means (245) adapted to store a pre-calculated sequence of block sizes for at least one of a predetermined assumed channel and predetermined assumed channel conditions.
49. A control device according to claim 47 or 48, wherein the subsequent block size Nn is determined in an n-th iteration of an iterative process from the block sizes Ni Nn-i determined in the n-1 previous iterations, from a predetermined distribution P(SNR) of the signal to noise ratio SNR, from respective probabilities pB(SNR,Nj), je{1 n-1} of receiving an indication that a data block of size Nj was not successfully received given a signal to noise ratio SNR, and from the expected throughput rate R(SNR1N) as a function of signal to noise ratio SNR and block size N, according to
Nn
Figure imgf000053_0001
50. A control device according to claim 48 or 49, wherein the storage means is adapted to store at least two pre-calculated sequences of block sizes; wherein each pre-calculated sequence is calculated for at least one of a different assumed channel and different assumed channel conditions.
51. A control device according to any one of claims 47 through 50, wherein the sequence of block sizes comprises less than 10 different block sizes preferably less than 7, more preferably between 4 and 5 block sizes.
52. A control device according to any one of claims 47 through 51 , wherein the control device is further adapted to adjust the determined block size during transmission of subsequent data blocks by performing the following steps: - transmitting a number of data blocks having respective current block sizes, wherein each current block size is selected from at least two previously determined candidate block sizes;
- determining at least one adjusted candidate block size from a number of indications, each indication indicating whether a corresponding one of the transmitted data blocks was successfully received; and
- replacing at least one of the previously determined candidate block sizes with the determined at least one adjusted candidate block size.
53. A control device according to claim 52, wherein the at least two candidate block sizes comprise a primary block size and one or more alternative block sizes; and wherein the control device comprises a selector unit (226) adapted to select the current block size to be equal to the primary block size more frequently than equal to each of the one or more alternative block sizes.
54. A control device according to claim 53, wherein the selector unit (226) is adapted to determine, from respective expected throughput rates for the primary block size and the one or more alternative block sizes, a relative frequency with which the primary block size is selected relative to the one or more alternative block sizes.
55. A control device according to claim 53 or 54, comprising an optimizer unit (225) adapted to determine an adjusted primary block size from the one or more indications, and to determine one or more adjusted alternative block sizes from the determined adjusted primary block size.
56. A control device according to claim 55, further comprising at least one rate evaluation unit (222, 223, 224) adapted to determine respective effective throughput rates for the transmitted data blocks of each of the candidate block sizes; and wherein the optimizer unit is adapted to determine the adjusted primary block size as one of the candidate block sizes corresponding to the highest of the determined effective throughput rates.
57. A control device according to claim 56, wherein the at least one rate evaluation unit is adapted to determine respective block error rates for the transmitted data blocks of each of the candidate block sizes from the indications, and to determine respective throughput rates from the block error rates and the corresponding candidate block sizes.
58. A control device according to any one of claims 53 through 57, wherein the one or more alternative block sizes comprise a smallest block size smaller than the primary block size and a largest block size larger than the primary block size.
59. A control device according to claim 58, wherein the optimizer unit is adapted to determine the at least two candidate block sizes from a sequence of possible block sizes, and to select the smallest block size and the largest block size to be adjacent block sizes to the primary block size within said sequence.
60. A transmitter unit comprising a control device according to any one of claims 31 through 59.
61. A data processing system configured to determine a subset of block sizes for use in an initialisation of a block size control process, the data processing system being configured to determine said subset from a sequence of available block sizes; characterised in that the data processing system is adapted to select during each iteration of an iterative process a block size from the sequence of block sizes to be included in the subset of block sizes as a block size that maximises an average likelihood throughput calculated from a previously selected block size of said subset.
62. A computer program product comprising program code means adapted to cause, when executed by a data processing system, the data processing system to determine a subset of block sizes for use in an initialisation of a block size control process, and to cause the data processing system to determine said subset from a sequence of available block sizes;
characterised in that the program code means are adapted to cause the data processing system to select, in each iteration of an iterative process, a block size from the sequence of block sizes to be included in the subset of block sizes as a block size that maximises an average likelihood throughput calculated from a previously selected block size of said subset.
PCT/EP2006/003503 2005-04-27 2006-04-18 Block size control WO2006114215A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP05388037.3 2005-04-27
EP20050388037 EP1717981B1 (en) 2005-04-27 2005-04-27 Block size control
US67738805P 2005-05-03 2005-05-03
US60/677,388 2005-05-03

Publications (2)

Publication Number Publication Date
WO2006114215A1 true WO2006114215A1 (en) 2006-11-02
WO2006114215A8 WO2006114215A8 (en) 2007-03-08

Family

ID=36540240

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2006/003503 WO2006114215A1 (en) 2005-04-27 2006-04-18 Block size control

Country Status (2)

Country Link
TW (1) TW200707960A (en)
WO (1) WO2006114215A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2427981B1 (en) * 2009-05-07 2017-06-14 QUALCOMM Incorporated System and method for adapting transmit data block size and rate based on quality of communication link

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3878333A (en) * 1972-12-12 1975-04-15 Oki Electric Ind Co Ltd Simplex ARQ system
US4691314A (en) * 1985-10-30 1987-09-01 Microcom, Inc. Method and apparatus for transmitting data in adjustable-sized packets
US20020089935A1 (en) * 2001-01-10 2002-07-11 Chan Joseph C. Method and apparatus for variable frame size radiolink protocol based on channel condition estimation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3878333A (en) * 1972-12-12 1975-04-15 Oki Electric Ind Co Ltd Simplex ARQ system
US4691314A (en) * 1985-10-30 1987-09-01 Microcom, Inc. Method and apparatus for transmitting data in adjustable-sized packets
US20020089935A1 (en) * 2001-01-10 2002-07-11 Chan Joseph C. Method and apparatus for variable frame size radiolink protocol based on channel condition estimation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2427981B1 (en) * 2009-05-07 2017-06-14 QUALCOMM Incorporated System and method for adapting transmit data block size and rate based on quality of communication link

Also Published As

Publication number Publication date
WO2006114215A8 (en) 2007-03-08
TW200707960A (en) 2007-02-16

Similar Documents

Publication Publication Date Title
US6915477B2 (en) Delay sensitive adaptive quality control loop for rate adaptation
KR100446182B1 (en) Communication system employing automatic repeat request
EP1808039B1 (en) Resource allocation in communication networks
EP3183830B1 (en) Rate adaption algorithm for a wireless connection
US7823040B2 (en) Method and apparatus for optimal redundancy version (RV) selection for UMTS HSDPA transmissions
US7095719B1 (en) Method and apparatus for dynamic packet selection in uncoordinated radio systems
RU2348115C2 (en) Reliable detection of erase and power control based on erase frequency in closed circuit
EP1921788A1 (en) Dynamic wireless link adaptation
JP5484693B2 (en) Hybrid automatic retransmission request method, transmitter, receiver, and communication system
KR20060079182A (en) Adaptive hybrid arq algorithms
KR20070085747A (en) Wireless communication method and apparatus for adaptively biasing channel quality indicators to maintain a desired block error rate
AU2001292848A1 (en) Dynamic wireless link adaptation
KR20130098317A (en) Method and apparatus for grant loss detection and related processing in a wireless communication network
KR20070096484A (en) Apparatus and method for performance harq in wireless communication system
EP1025666A1 (en) Bidirectional arq apparatus and method
EP3523899B1 (en) Network node and metho for outer loop link adaptation
JP2009004890A (en) Retransmission control method and controller
EP1717981B1 (en) Block size control
WO2006114215A1 (en) Block size control
KR100717999B1 (en) Apparatus for transmitting packet and receiving transmitted packet, system thereof, method thereof
WO2023241309A1 (en) Adaptive modulation and coding method and apparatus, base station, and storage medium
KR20030005897A (en) Method for transmitting data for the Hybrid Automatic Repeat request system
Su On adaptive threshold adjustment with error rate constraints for adaptive modulation and coding systems with hybrid ARQ
JP4828331B2 (en) Transmitting apparatus, receiving apparatus, and retransmission control method
Kundu et al. Implementation and throughput analysis of aggressive packet combining scheme in Rayleigh fading channel

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

NENP Non-entry into the national phase

Ref country code: RU

WWW Wipo information: withdrawn in national office

Country of ref document: RU

122 Ep: pct application non-entry in european phase

Ref document number: 06724372

Country of ref document: EP

Kind code of ref document: A1

WWW Wipo information: withdrawn in national office

Ref document number: 6724372

Country of ref document: EP