Hubbry Logo
Code rateCode rateMain
Open search
Code rate
Community hub
Code rate
logo
8 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
Contribute something
Code rate
Code rate
from Wikipedia
Different code rates (Hamming code).

In telecommunication and information theory, the code rate (or information rate[1]) of a forward error correction code is the proportion of the data-stream that is useful (non-redundant). That is, if the code rate is for every k bits of useful information, the coder generates a total of n bits of data, of which are redundant.

If R is the gross bit rate or data signalling rate (inclusive of redundant error coding), the net bit rate (the useful bit rate exclusive of error correction codes) is .

For example: The code rate of a convolutional code will typically be 12, 23, 34, 56, 78, etc., corresponding to one redundant bit inserted after every single, second, third, etc., bit. The code rate of the octet oriented Reed Solomon block code denoted RS(204,188) is 188/204, meaning that 204 − 188 = 16 redundant octets (or bytes) are added to each block of 188 octets of useful information.

A few error correction codes do not have a fixed code rate—rateless erasure codes.

Note that bit/s is a more widespread unit of measurement for the information rate, implying that it is synonymous with net bit rate or useful bit rate exclusive of error-correction codes.

See also

[edit]

References

[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
In , the code rate is a measure of the efficiency of an error-correcting code, defined as the of the number of symbols kk to the total number of symbols nn in a codeword, denoted R=k/nR = k/n. This parameter represents the fraction of the transmitted that carries useful , with the remainder consisting of redundant bits added for . The rate plays a critical role in balancing data throughput and error resilience in communication systems. A higher rate implies greater and higher information density but reduces the available for correcting errors, making the code more susceptible to . Conversely, a lower rate introduces more , enhancing error-correcting capability at the cost of reduced effective bandwidth. This trade-off is central to the design of practical codes, such as linear block codes and convolutional codes. According to Claude Shannon's , reliable communication over a noisy channel is achievable with arbitrarily small error probability if the code rate is below the channel's capacity, which depends on the characteristics and signal power. This establishes the theoretical limit on achievable rates and has guided the development of modern coding schemes that approach capacity, such as and low-density parity-check codes. Code rates are essential in diverse applications, including communications, digital storage devices, and systems, where optimizing rate directly impacts performance and resource utilization.

Fundamentals

Definition

In , the code rate is defined as the proportion of useful information-carrying symbols to the total number of symbols in an encoded message within schemes. This measure, often denoted as RR, captures the efficiency of data transmission by indicating how much of the encoded output consists of actual information versus added redundancy. The code rate quantifies the inherent trade-off between transmission efficiency and error resilience: a higher rate implies less redundancy, allowing more information per unit of transmission but offering reduced protection against noise or errors, while a lower rate incorporates more redundant symbols (such as parity bits) to enhance detection and correction capabilities at the cost of bandwidth. In general terms, R=knR = \frac{k}{n}, where kk represents the dimension or number of information symbols and nn the total length of the encoded sequence, though this is normalized by the alphabet size in non-binary cases to reflect the logarithmic information content. The concept of code rate originates in Claude Shannon's 1948 foundational work on , where rate is tied to —the maximum reliable transmission rate—and demonstrates that codes operating below this capacity can achieve arbitrarily low probabilities through appropriate .

Notation

In , the code rate is standardly denoted by the symbol RR, representing the ratio of information-bearing content to the total encoded output. For , the primary notation employs kk to indicate the number of symbols or bits and nn for the total of the codeword in symbols or bits, yielding the formula R=kn.R = \frac{k}{n}. This convention is widely adopted for linear , where kk corresponds to the dimension of the code subspace over the . In general non-linear , an equivalent expression uses MM for the number of codewords and qq for the alphabet size, giving R=logqMnR = \frac{\log_q M}{n}, which simplifies to kn\frac{k}{n} for linear codes since M=qkM = q^k. Variations in notation appear across contexts; for instance, mm is occasionally substituted for kk to denote the message length, particularly in early or applied descriptions of encoding processes. For convolutional codes, the notation parallels with kk input bits and nn output bits per encoding step, maintaining R=knR = \frac{k}{n}; alternatively, some treatments use bb for the number of input bits and vv for output bits to emphasize the per-step R=bvR = \frac{b}{v}. The terminology distinguishes the code rate RR from the broader information rate, though the terms are often used interchangeably to describe the efficiency of data preservation in the encoded stream as a proportion of non-redundant content. This rate is conventionally expressed as a (e.g., 12\frac{1}{2}) or equivalent (e.g., 0.5) for clarity in analysis and design. The code rate is inherently dimensionless as a pure ratio, but its interpretation varies by symbol alphabet: in binary codes (q=2q = 2), it directly measures bits per bit, while for q-ary codes (q>2q > 2), it quantifies symbols per symbol, with the bit-level information rate scaling as Rlog2qR \log_2 q bits per channel use.

Code Rate in Code Types

Block Codes

Block codes are a class of error-correcting codes characterized by fixed-length codewords, where each block consists of kk information symbols that are encoded into a total of nn symbols, with n>kn > k. This structure ensures that the encoding process operates on discrete blocks of data, introducing redundancy through the addition of nkn - k parity or check symbols to enable error detection and correction. The code rate RR for a block code is precisely defined as the ratio of the number of information symbols to the total number of symbols in the codeword, given by R=kn,R = \frac{k}{n}, where kk represents the dimension of the code (the number of independent information symbols) and nn is the block length (the length of each codeword). This rate quantifies the efficiency of the encoding, indicating the proportion of the transmitted symbols that carry actual information versus redundancy. A representative example is the (7,4) , a binary linear that encodes 4 bits into 7-bit codewords, yielding a rate of R=470.571R = \frac{4}{7} \approx 0.571. Here, the consists of nk=3n - k = 3 parity bits, which allow the code to correct single-bit errors but inherently reduce the rate compared to uncoded transmission. In block codes, the rate decreases as more parity symbols are incorporated to enhance error-correcting capability, since increasing nkn - k while holding kk fixed lowers the k/nk/n ratio. For linear block codes, which form a subspace of the over a , this rate formula remains invariant, as the preserves the dimensional structure where kk is the of the subspace.

Convolutional Codes

Convolutional codes are a class of error-correcting codes generated using a linear that processes an input sequence to produce a continuous output , where each output depends on the current input bit and a finite number of previous input bits stored in the register's memory. The encoder typically operates by sliding a window over the input bits, computing parity checks via modulo-2 addition of selected bits within the window, resulting in an interleaved of information and parity bits that contrasts with the fixed-block processing of . This structure allows for streaming encoding and decoding, making convolutional codes suitable for real-time applications in noisy channels. The code rate RR for convolutional codes is defined as R=bvR = \frac{b}{v}, where bb represents the number of input bits processed per time unit (or branch), and vv denotes the number of output bits generated per time unit. For instance, a rate-1/2 convolutional code processes one input bit to produce two output bits, one of which carries the input while the other serves as a . This rate measures the of transmission relative to the total output, with lower rates providing greater for correction at the cost of bandwidth. The constraint length KK, which equals the number of shift register stages plus one, determines the memory span influencing each output symbol but does not alter the nominal code rate R=bvR = \frac{b}{v}. A larger KK incorporates more previous bits into parity computations, increasing the minimum distance between codewords and thereby enhancing error-detection and correction capabilities, which improves the effective rate by reducing the impact of errors on throughput. However, this comes at the expense of higher decoding complexity, as the number of possible states grows exponentially with KK. A prominent example is the standard (2,1,7) with rate R=12R = \frac{1}{2} and constraint length K=7K = 7, widely adopted in deep space communications such as the Voyager missions for its balance of performance and implementability. In this code, the encoder uses two generator polynomials to produce parity bits: g1(D)=1+D2+D3+D5+D6g_1(D) = 1 + D^2 + D^3 + D^5 + D^6 ( 171) for the first output stream and g2(D)=1+D+D3+D5+D6g_2(D) = 1 + D + D^3 + D^5 + D^6 ( 133, with symbol inversion on this path) for the second, where the outputs are the modulo-2 of the input with these polynomials. This configuration yields two output bits per input bit, providing robust error correction over long-distance links with high noise levels.

Significance

Relation to Error Correction

The code rate R=k/nR = k/n in an error-correcting code represents the ratio of information bits kk to the total number of codeword bits nn, where a lower rate introduces more redundancy to enhance error correction capabilities. This redundancy directly impacts the minimum Hamming distance dd, the smallest number of positions in which any two distinct codewords differ, as greater redundancy allows for a larger dd, enabling the code to tolerate more errors. Specifically, the Singleton bound establishes that dnk+1d \leq n - k + 1, which rearranges to R=k/n1(d1)/nR = k/n \leq 1 - (d-1)/n, demonstrating that achieving a higher dd necessitates a lower rate by allocating more bits to parity or check information. The correction capacity of a is quantified by the maximum number of tt it can reliably correct, given by t=(d1)/2t = \lfloor (d-1)/2 \rfloor, ensuring that spheres of tt around codewords do not overlap. A lower rate facilitates a larger dd, thereby increasing tt and improving the code's ability to correct in noisy channels, as the added provides more to distinguish erroneous received words from valid codewords. This relationship holds across linear and nonlinear codes, with the floor function accounting for the integer nature of error counts. In practice, high-rate codes approaching R1R \approx 1 offer limited error detection and virtually no reliable correction, as their small dd (often d=1d=1 or 22) allows only detection of few errors without the capability to identify the correct codeword. Conversely, low-rate codes, such as those with R=1/3R = 1/3, incorporate substantial to achieve larger dd, enabling correction of multiple errors per block, though at the cost of reduced data throughput. For instance, the repetition code, which encodes each information bit nn times to form a codeword of length nn and rate R=1/nR = 1/n, has d=nd = n and corrects up to t=(n1)/2t = \lfloor (n-1)/2 \rfloor errors via majority decoding, illustrating extreme for robust correction but with very low efficiency unsuitable for high-data-rate applications./06%3A_Information_Communication/6.25%3A_Repetition_Codes)

Theoretical Bounds

The theoretical bounds on code rates establish fundamental limits on the efficiency of error-correcting codes in reliable communication over noisy channels. Central to these limits is Shannon's , which asserts that for a discrete memoryless channel with capacity CC, reliable communication is possible the code rate RR satisfies R<CR < C, measured in bits per channel use. This capacity CC represents the supremum of rates at which information can be transmitted with arbitrarily low error probability as the block length nn approaches infinity. For the binary symmetric channel (BSC) with crossover probability pp, the capacity is given by C=1H2(p)C = 1 - H_2(p), where H2(p)=plog2p(1p)log2(1p)H_2(p) = -p \log_2 p - (1-p) \log_2 (1-p) is the binary entropy function. The implications of this theorem for code rates are profound: if R>CR > C, the probability of decoding error tends to 1 as nn \to \infty, rendering reliable communication impossible regardless of the coding scheme. Conversely, for any R<CR < C, there exist codes achieving error probability approaching 0 for sufficiently large nn, enabling near-error-free transmission at rates up to but not exceeding the capacity. These achievability and converse results highlight the as the ultimate upper bound on code rates, independent of specific code structures. For finite-length block codes capable of correcting up to tt errors, the Hamming bound (also known as the sphere-packing bound) provides a non-asymptotic upper limit on the achievable rate. For a qq-ary block code of length nn that corrects tt errors, the rate R=k/nR = k/n satisfies R1logqBq(n,t)n,R \leq 1 - \frac{\log_q |B_q(n, t)|}{n}, where kk is the dimension, and Bq(n,t)|B_q(n, t)| is the volume of a Hamming ball of radius tt in qq-ary space of length nn, given by Bq(n,t)=i=0t(ni)(q1)i.|B_q(n, t)| = \sum_{i=0}^t \binom{n}{i} (q-1)^i. This bound arises from the requirement that disjoint spheres of radius tt around codewords must pack into the entire space without overlap, limiting the number of codewords qkq^k to at most qn/Bq(n,t)q^n / |B_q(n, t)|. Codes achieving equality in this bound are termed perfect, such as the Hamming codes for t=1t=1. In the asymptotic regime as nn \to \infty, modern codes can approach the Shannon capacity closely. Turbo codes, introduced by Berrou, Glavieux, and Thitimajshima, achieve rates within 0.5 dB of capacity on the AWGN channel for moderate block lengths using iterative decoding. Similarly, low-density parity-check (LDPC) codes, originally proposed by Gallager, perform within 0.0045 dB of capacity on the and near the Shannon limit on other channels with decoding, demonstrating that rates arbitrarily close to CC are attainable for large nn.

Applications and Techniques

Digital Communications

In digital communications, the code rate plays a crucial role in channel coding schemes that integrate with modulation techniques to enable reliable data transmission over noisy channels. By determining the of bits to total encoded bits, the code rate influences the trade-off between error resilience and , allowing systems to adapt to fluctuating channel conditions such as or interference. For example, in New Radio (NR), polar codes with low code rates around 1/3 are employed for control channels like the Physical Downlink Control Channel (PDCCH) to provide robust protection for short payloads and critical signaling, ensuring low latency and high reliability in varying environments. Standards in and communications exemplify the practical application of code rates. In systems under IEEE 802.11n, convolutional codes and Low-Density Parity-Check (LDPC) codes support rates ranging from 1/2 to 5/6, combined with modulation schemes like 64-QAM, to optimize throughput in high-data-rate scenarios such as video streaming. Similarly, the standard for broadcasting uses LDPC codes with adaptive rates up to 9/10, paired with modulations from QPSK to 32-APSK, to maximize link capacity while accommodating diverse propagation conditions. Adaptive coding and modulation (ACM) techniques dynamically adjust the code rate based on (SNR) measurements to maintain target bit error rates (BER), typically below 10510^{-5}. In good channel conditions (high SNR), higher code rates are selected to boost efficiency, whereas low rates enhance error correction in poor conditions (low SNR), as implemented in DVB-S2's ACM mode where the return link feedback enables per-user rate optimization. This approach ensures consistent performance across heterogeneous networks, such as links affected by weather. The impact of code rate on system throughput is quantified by the effective data rate formula: Effective data rate=R×fs×log2M\text{Effective data rate} = R \times f_s \times \log_2 M where RR is the code rate, fsf_s is the , and MM is the constellation size (e.g., 16 for 16-QAM). This relationship highlights how lower code rates, while improving reliability, reduce overall throughput unless compensated by higher-order modulation or increased s, a principle central to standards like and IEEE 802.11n.

Rate Adjustment Methods

Puncturing is a technique used to increase the code rate of a by selectively deleting certain parity bits from the output of a lower-rate mother code, thereby reducing redundancy without altering the encoder structure. For instance, a rate-1/3 can be punctured by removing one of the three output streams, resulting in an effective rate of 2/3. This method preserves the systematic nature of the code and allows for flexible rate adaptation in systems requiring variable throughput. Repetition coding decreases the effective code rate by appending multiple copies of the encoded symbols, enhancing error resilience in noisy environments at the cost of increased bandwidth. A rate-1/2 code, for example, can be repeated twice to achieve an effective rate of 1/4, which is particularly useful for channels with high error rates where additional redundancy is beneficial. This approach is straightforward to implement and compatible with existing decoders that treat repetitions as additional parity information. (Note: Lin and Costello, "Error Control Coding: Fundamentals and Applications", but URL to publisher; alternatively, use IEEE paper if needed, but this is standard text.) Rate-compatible punctured convolutional (RCPC) codes form a family derived from a single low-rate mother code by applying varying degrees of puncturing, ensuring that higher-rate codes are subsets of lower-rate ones to enable incremental transmission. These codes maintain the same minimum free distance across rates, facilitating seamless transitions between rates such as from 1/2 to 8/9 without performance degradation in hybrid ARQ schemes. Introduced by Hagenauer, RCPC codes are widely adopted for their compatibility and decoding efficiency using the . Hybrid methods often integrate puncturing with interleaving to adjust rates dynamically while mitigating burst errors, as seen in the where rate matching employs puncturing for high-rate voice and data traffic to align the coded with . In , the process combines convolutional or turbo encoding with puncturing patterns specified in standards, allowing adaptation for multiplexed transport channels without redesigning the core code. This combination ensures robust performance in varying mobile conditions by spreading punctured bits across interleaved blocks.

References

Add your contribution
Related Hubs
Contribute something
User Avatar
No comments yet.