GB2545466B - Dc-free or nyquist-free block-error correcting line encoders based on n-ask modulation - Google Patents
Dc-free or nyquist-free block-error correcting line encoders based on n-ask modulation Download PDFInfo
- Publication number
- GB2545466B GB2545466B GB1522313.4A GB201522313A GB2545466B GB 2545466 B GB2545466 B GB 2545466B GB 201522313 A GB201522313 A GB 201522313A GB 2545466 B GB2545466 B GB 2545466B
- Authority
- GB
- United Kingdom
- Prior art keywords
- sub
- codewords
- digital
- coding
- codebook
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 44
- 238000004891 communication Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 6
- 230000006399 behavior Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 12
- 238000013459 approach Methods 0.000 description 9
- 238000012937 correction Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000005670 electromagnetic radiation Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
- H03M5/14—Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0059—Convolutional codes
- H04L1/006—Trellis-coded modulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/02—Details ; arrangements for supplying electrical power along data transmission lines
- H04L25/0264—Arrangements for coupling to transmission lines
- H04L25/028—Arrangements specific to the transmitter end
- H04L25/0284—Arrangements to ensure DC-balance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/02—Details ; arrangements for supplying electrical power along data transmission lines
- H04L25/06—DC level restoring means; Bias distortion correction ; Decision circuits providing symbol by symbol detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/38—Synchronous or start-stop systems, e.g. for Baudot code
- H04L25/40—Transmitting circuits; Receiving circuits
- H04L25/49—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
- H04L25/4906—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/02—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
DC-FREE OR NYQUIST-FREE BLOCK-ERROR CORRECTING LINE ENCODERS
BASED ON N-ASK MODULATION
FIELD OF THE INVENTION
The present invention relates to line encoding, in particular to DC free and/or Nyquist free encoding.
The invention has applications in wireless communication systems, in particular, in terahertz telecommunication systems, i.e. in systems based on radio waves belonging to frequency band from 100 GHz up to 10 THz. This Terahertz.” band overlaps radio electromagnetic radiations and optic electromagnetic radiations.
BACKGROUND OF THE INVENTION
Document A.X. Widmer et P.A. Franaszek (“A DC-Balanced, Partitioned-Biock, 8Β/Ί0Β Transmission Code”, IBM Journal of Research and development, vol. 27, No. 5, Sep. 1983, pp. 440-451) discloses one of the most popular DC free code. The proposed scheme, called “8B10B” encodes each 8 bits of a digital data stream into 10 bits plus a “status information” obtained from the previous encoding. The idea is to continuously balance between the ones (“1”) and the zeros (“0”) so that at each time the encoded bitstream has exactly the same number of ones and the number of zeros. With such continuous balancing, the bitstream has a null mean value (it has no continuous component), it is said to be "DC free”. DC free encoders are of particular importance, in particular because some electronic systems remove low frequency components (thus including DC component). Thus it is sought to avoid providing or to drastically reduce the energy in the low frequency components.
The “DC free” encoding modifies the inputted bitstream into an output bitstream having a bounded digital sum variation. The digital sum variation (DSV) is computed from the running digital sum (RDS) which is defined as follows (after modulating the bitstream with 1 and -1, meaning that each one in the bitstream counts for 1 and each zero in the bitstream counts for -1):
I and J are integers and yf, are the bits of the bitstream.
The running digital sum (RDS) also represents the difference between the number of ones and the number of zeros in the bitstream part considered (from I to J).
The digital sum variation (DSV) is computed according to the following formula:
I and J are integers and yf, are the bits of the bitstream.
For the encoding, the bitstream is subdivided into blocks of 8 bits (one byte) and presented to the encoder. Each byte is then subdivided into two sub-blocks: one sub-block comprising for instance the five first bits and one sub-block comprising for instance the last three bits, thereby creating two sub-streams of five-bit words and three-bit words respectively.
The first five bits are encoded using a 5b/6b code thereby obtaining 6 bits. The 5b/6b encoding is based on two tables or “codebooks” available at the encoder. A first table contains codewords having more ones than zeros (or the same number of ones and zeros for some codewords in the table). A second table contains codewords having more zeros than ones (or the same number of ones and zeros for some codewords in the table).
The tables used for the 5b/6b encoding disclosed in above-cited document A.X. Widmer et P.A. Franaszek are listed below. In the first table referred to as “table__5bJ3b__RD__plus”, codewords have a number of zeros at least equal to the number of ones. In the second table referred to as “table 5b ,6b. RD minus”, the codewords have a number of ones at least equal to the number of zeros. One may note that the difference between the number of ones and the number of zeros is either 0 or -2 for table__5b_6b__RD__plus, while it is either 2 or 0 for the table 5b..6b RD minus. This difference within a single codeword CW ~ {yn} is named digital sum (DS):
Also, each time a codeword has a null DS in one of the tables, the same codeword is used at the same table position in the other table, meaning that it is associated with the same uncoded input word. It results that the two tables implement a pure bijective conversion function.
table__5b__6b__RD__plus =[0 1 1 0 0 0; table__5b__6b__RD__minus = [1001 1 1; 1 0 0 0 1 0; 011101; 0 10 0 10; 101101; 1 1 0 0 0 1; 1 1 0 0 01; 0 0 10 10; 110101; 10 10 0 1; 10 10 01; 0 110 0 1; 0 110 01; 000111; 111000; 0 0 0 1 1 0; 111001; 10 0 10 1; 10 0 10 1; 0 10 10 1; 0 10 10 1; 110 10 0; 110100; 0 0 110 1; 0 0 110 1; 10 110 0; 101100; 0 1110 0; 011100; 1 0 1 0 0 0; 010111; 1 0 0 1 0 0; 011011; 1 0 0 0 1 1; 1 0 0 0 1 1; 0 10 0 11; 0 10 0 11; 110 0 10; 110010; 0 0 10 11; 0 0 10 11; 10 10 10; 101010; 0 110 10; 011010; 000101; 111010; 0 0 1 1 0 0; 110011; 10 0 110; 100110; 0 10 110; 010110; 001001; 110110; 0 0 1110; 001110; 010001; 101110; 100001; 011110; 0 10 10 0]; 101011];
Similarly, the last three bits are encoded using a 3b/4b code thereby obtaining 4 bits. The 3b/4b encoding is also based on two tables or “codebooks” available at the encoder: a first table “table 3b 4b RD plus” and a second table “ t a b I e___3 b__4 b__ R D__m i n u s ”.
The tables used for the 3b/4b encoding disclosed in document A.X. Widmer et P.A. Franaszek are listed below. In table “table 3b 4b RD plus”, the codewords have a number of zeros at least equal to the number of ones. In table “table__3b__4b__RD__minus”, the codewords have a number of ones at least equal to the number of zeros. Again, the digital sum (DS) of each codeword in table 3b 4b Rr) plus is either 0 or -2, while the digital sum (DS) of each codeword in table 3b..4b RD minus is either 2 or 0. table__3b__4b__RD__plus = [0100: table_3b_4b_RD_minus = [101 1; 10 0 1; 10 0 1; 0 10 1; 0 10 1; 0 0 11; 110 0; 00 10; 110 1; 10 10;1010; 0 110;0110; 0 0 0 1;1110; 1 0 0 0]; 0 111]:
Let’s now consider encoding the following byte: 0 0 0 0 1 0 0 1. The encoded word would be: - 1 0 0 1 0 0 1 0 1 1 when an initial running disparity is equal: +1; - 1 0 0 1 0 0 0 1 0 0 when an initial running disparity is equal: -1.
The running disparity is defined in document A.X. Widmer et P.A.
Franaszek as being the number of ones minus the number of zeros in the bitstream due to each encoded 6 bits (and respectively 4 bits) at the output of the 5b/6b (and respectively 3b/4b) encoder. The running disparity may be seen as the running digital sum (RDS) of the bitstream as being encoded (successively each 6-bit sub-block and then each 4-bit sub-block). At each new encoding, the running disparity is updated with the digital sum of the codeword selected for encoding the current sub-block (either 6-bit or 4-bit long).
To illustrate the above, an uncoded byte to be encoded (e.g. 0 0 0 0 1 0 0 1) is divided into two parts: five first bits (i.e. 0 0 0 0 1) and three last bits (i.e. 0 0 1).
In an example, the running disparity is equal to +1, then table 5b .,6b. RD plus is used (instead of table 5b 6b . RD minus). The 5b/6b encoder encodes the five first bits with: 1 0 0 1 0 0 (since 0 0 0 0 1 is encoded using entry D.16 in the 5b/6b codeword Table 3 of the above-mentioned A.X. Widmer et P.A. Franaszek publication). The running disparity is updated, and its new value is thus equal to: +1 + (2 - 4) = -1 (+1 is the previous/initial running disparity and (2 - 4) is the running disparity or digital sum of the encoded word (1 0 0 1 0 0)).
Since the updated running disparity is equal to -1, table table__3b__4b_RD__minus is used for the 3b/4b encoding. The output for encoding 0 0 1 is equal to: 1 1 0 1, and the running disparity is updated again (in the example its new value is -1 +(3-1) = +1.
For each byte to be encoded two codewords are possible depending on the initial polarity (positive or negative) of the running disparity.
In document D.Y. Young Kim et al. (“White paper on the MB810 Line Code for 10GbE”, proposal for 10 Gigabit Ethernet (IEEE 802.3)), document S. Kang et al. (“MB810, Dual mode Encoder/Decoder, and MB810 code generating method”) and document US2005Z0012646, the authors disclosed a new line coding scheme providing a spectrum having null power at the null frequency and a null power at the Nyquist frequency (i.e. half the sampling frequency). Such a line encoder is called “DC free” and “Nyquist free” line encoder. A code parameter called “running alternate sum” (RAS) is considered for building the corresponding line code:
I and J are integers, yR are the bits of the bitstream (after modulation with 1 or -1). The RAS is the sum of the coded output symbols within an arbitrary interval between n=l and n=J, with alternating polarity.
Similarly to the Running Digital Sum, a parameter named “Alternative Sum Variation” (ASV) is computed according to the following equation:
If the ASV is finite (i.e. RAS is bounded), then the bitstream {yrJ has a spectrum component null at the Nyquist frequency.
Similar to the digital sum (DS), each codeword in the tables has its own alternate sum (AS) as being the sum of its bits (modulated with 1 and -1) with alternating polarity.
For example, let’s consider the binary sequence “1100”, the DS (Digital Sum) computation gives: DS = 1 + 1 - 1 - 1 = 0
The AS (Alternate Sum) is: AS = -1 + 1+1-1=0
The DS and the AS of the above binary sequence are null. In addition, shifting this binary sequence, as explained below, provides the same values for AS and DS: “1001” => DS=1-1-1+1=0 AS = -1 -1 + 1 +1 = 0 “0011” => DS = -1-1 + 1+1=0
AS = + 1-1-1+1=0 “0110” => DS = - 1 + 1 + 1 - 1 = 0 AS = + 1 + 1-1-1=0
The line code MB24 has the following codebook {1100,1001,0011,0110}. The MB24 line code is thus a DC free and Nyquist free line code. The MB24 encoding is defined by the table below:
Decoding a MB24 line code is straightforward. Indeed, one can see from the above table that the two bits in the middle of each codeword correspond to the uncoded word. The decoder architecture is very simple.
Similar construction can be done in order to design the MB12 and the MB34 line codes.
The following table illustrates the encoding process for the MB12 code:
The MB12 encoder is initialized to state S1 and then according to the input bit and the table above two output bits are selected and the current state of the encoder is updated.
The following table illustrates the encoding process for the MB34 code:
The MB34 encoder is initialized to state S1 and then according to three input bits and the table above, four output bits are selected and the current state of the encoder is updated.
An example of the MB810 is illustrated and deeply discussed in above-cited document S. Kang et al. and document US2005/0012646.
Other codes are disclosed in the prior art that deal with the DC free, or DC free and Nyquist free characteristics.
The code disclosed in document J. G. Kim (“An improved DC free Nyquist free Error Control Line Code”, ICCS‘94, November 1994, Singapore) uses the extended Hamming code for building a “DC free” and “Nyquist free” error correcting code.
The (4,8) extended Hamming code has some interesting characteristics since 12 among 16 of the codebook codewords have a null running digital sum and a null alternate digital sum as shown in the table below.
In above-cited document J. G. Kim, the idea is to build a new code starting from a part of the codewords listed in the above table. Twelve of these codewords have a null DS and a null AS. Thus, starting from these twelve codewords, a table can be built by concatenating two by two each of the twelve codewords of the table. This new table contains 144 codewords of 16 bits, each one having a null running digital sum and a null running alternate sum. A third table is then obtained by selecting only 128 codewords out of the 144 codewords of the second table. With this third table having 128 codewords, one can encode a seven-bit word into a 16-bit codeword belonging to the third table (since 27 = 128). The coding rate that is obtained is 7/16 = 0.4375.
To transmit the encoded words (e.g. codewords) as obtained above for bitstream, they are used to modulate the amplitude of a carrier wave.
Amplitude-shift keying (ASK) is a form of amplitude modulation that represents digital data as variations in the amplitude of the carrier wave. ASK uses a finite number of amplitudes, each assigned to a unique pattern of binary input digits. Usually, each value of the amplitude relates to an equal number of bits. Each pattern of bits forms the symbol that is represented by the amplitude.
One property of ASK modulation is to provide reliability levels, i.e. different levels of sensitivity to noise, for the source bits.
Usually, ASK constellation is generated in order to space regularly the symbols (carrier amplitudes) and the source bits are mapped on the symbols.
Thus, whatever the mapping between the source bits and the symbols, the sensitivity to noise of each source bit is not the same.
For instance, in case of 4ASK modulation using constellation 125 of Figure 1a, the MSB (most significant bit of a two-bit input) is less sensitive to noise than the LSB (less significant bit of the two-bit input). In what follows, the part of the input that is less sensitive to noise is named “the most reliable bit or bits”.
The constellation of Figure 1a corresponds to the following combination of the input bits: 2 * (2 * MSB-1 )+(2 * LSB-1). One may notice that this combination is weighted with a higher weight provided to MSB compared to LSB (twice as big).
The difference in sensitivity to noise is due to the difference between the weights assigned to MSB and LSB, and thus between the values of the mean distance when considering all symbols, the distance being the gap between the two symbols.
For the LSB, the mean distance between O’ and T is 3a and for MSB, the mean distance between Ό’ and Ί’ is 4a.
SUMMARY OF THE INVENTION
The inventors have noted that using known line DC free (and/or Nyquist free) encoders with an ASK modulation is not optimal. The present invention lies within this context, seeking to provide an improved (in terms of BER/SNR performance) DC free line encoding scheme involving ASK modulation.
According to embodiments of the invention, there is provided a method of processing a plurality of sub-streams for transmission over a communication chain, comprising: obtaining, for each sub-stream of the sub-streams, at least one associated coding codebook; encoding each sub-stream using the at least one associated coding codebook, usually by selecting codewords from them; and modulating the encoded sub-streams as a weighted combination thereof, wherein obtaining the codebooks for the sub-streams includes: obtaining an initial codebook made of codewords and obtaining digital (in the meaning of DC free encoding) or alternate (in the meaning of Nyquist free encoding) sums of the codewords forming the initial codebook; forming a plurality of coding codebooks as sub-sets (which are not necessarily disjoints sub-sets) of the initial codebook, each coding codebook being associated with a mean absolute digital or alternate value corresponding to a mean of the absolute values of the digital or alternate sums of the codewords composing the sub-set; and assigning, for the encoding step, the coding codebooks of the plurality of coding codebooks to the sub-streams of the plurality of sub-streams, according to an inverse relationship between the mean absolute digital or alternate values of the coding codebooks and weights applied to the sub-streams in the weighted combination of the modulating step.
In particular, an inverse relationship means that the codebooks are for instance considered in an increasing order of their mean absolute digital or alternate values while considering the sub-streams according to a decreasing order of their assigned modulation weights.
The DC free (or Nyquist free) behaviour or the line encoders are improved, meaning that less energy is provided around the DC (or Nyquist) component. It results that less information is lost when such component and its close proximity are removed by electronic filters.
This improved behaviour is achieved thanks to the inverse consideration of mean absolute values and modulation weights. This is because a better balance is obtained between the contributions of each part of the stream (i.e. each sub-stream, for instance MSB sub-stream and LSB sub-stream in case of 4-ASK modulation). A consequence of this improved behaviour is some improvements in BER/SNR performance of the resulting line coding scheme, compared to conventional line encoders used with an ASK modulator.
Furthermore, these embodiments of the invention remain simple to implement at both the encoder and the decoder.
Correspondingly, embodiments of the invention provide a device for processing a plurality of sub-streams for transmission over a communication chain, comprising: a codebook module configured for obtaining, for each sub-stream of the sub-streams, at least one associated coding codebook; a plurality of line encoders, each encoding a respective using the at least one associated coding codebook, usually by selecting codewords from them; and a modulator configured for modulating the encoded sub-streams as a weighted combination thereof, wherein the codebook module is further configured for: obtaining an initial codebook made of codewords and obtaining digital (in the meaning of DC free encoding) or alternate (in the meaning of Nyquist free encoding) sums of the codewords forming the initial codebook; forming a plurality of coding codebooks as sub-sets (which are not necessarily disjoints sub-sets) of the initial codebook, each coding codebook being associated with a mean absolute digital or alternate value corresponding to a mean of the absolute values of the digital or alternate sums of the codewords composing the sub-set; and assigning, for the encoding step, the coding codebooks of the plurality of coding codebooks to the sub-streams of the plurality of sub-streams, according to an inverse relationship between the mean absolute digital or alternate values of the coding codebooks and weights applied to the sub-streams in the weighted combination of the modulating step.
The device has the same advantages as the method defined above.
Optional features of embodiments of the invention are defined in the appended claims. Some of these features are explained here below with reference to a method, arid can be transposed into system features dedicated to any device according to embodiments of the invention.
In embodiments, the assigning step assigns a coding codebook whose mean absolute digital or alternate value is high to a sub-stream whose modulation weight is low. In other words, a first coding codebook whose mean absolute digital or alternate value is higher than a second coding codebook is assigned to a first substream whose modulation weight is less than a second sub-stream to which the second coding codebook is assigned. This provision reflects the inverse relationship defined above.
In some embodiments, forming a first one of the coding codebooks includes selecting a predefined number of codewords from the initial codebook so that a mean absolute digital or alternate value for the selected codewords is as close as possible to a target mean value. This approach advantageously takes place in situations where the modulation is set in advance with known modulation weights. As a consequence, this is the encoding which is adjusted to the modulation weights in order to obtain the best DC free behaviour.
Of course, another approach may build the coding codebooks and then set the modulation weights according to the mean values of the coding codebooks.
In specific embodiments, the target mean value is one of the weights used in the weighted combination. As a consequence, the obtained coding codebook will be assigned to another sub-stream (other than the one weighted by said weight in the modulation combination) in order to counterbalance the modulation weight used.
Preferably, all the coding codebooks are formed in order to reach all the weights used in the modulation combination. This is to provide an efficient counterbalancing between the sub-streams.
In other specific embodiments, the predefined number equals 2m, where m is the bit size of an uncoded word forming the sub-stream to be coded by said first coding codebook. In other words, the codebook is made of a number of codewords corresponding to the number of possibilities for the uncoded input word.
In some embodiments, two coding codebooks are assigned to a first substream, a first one of the two coding codebooks including only codewords with positive (including zero) digital or alternate sums (DS or AS), and the second one of the two coding codebooks including only codewords with negative (including zero) digital or alternate sums. This approach ensures an efficient DC free or Nyquist free behavior to be obtained since, by having the choice between a DS or AS positive competing codeword and a DS or AS negative competing codeword, the RDS or RAS are kept as low as possible.
In specific embodiments, the two coding codebooks have the same number of codewords and the same mean absolute digital or alternate value. This provision provides the same DC free or Nyquist free behavior regardless of the current RDS or RAS when encoding.
In more specific embodiments, said same number is a power of two which is a quarter of the number of codewords in the initial codebook. The inventor has observed that this feature usually provides the best result in terms of BER vs. coding rate. Indeed, the feature makes it possible to discard all the codewords that are inefficient in terms of DC free or Nyquist free behaviour (e.g. the codewords 00000000 and 11111111 for one byte input words), while limiting the reduction of the coding rate by the minimum (i.e. two bits are deleted since two codebooks are required).
In other specific embodiments, an uncoded input word is associated with one codeword in each of the two coding codebooks, the two associated codewords having the same absolute value of digital or alternate sum.
Each of these two provisions provides the same DC free or Nyquist free behavior regardless of the current RDS or RAS when encoding.
In yet other specific embodiments, each sub-stream of the plurality is assigned two coding codebooks. It means that a choice between a DS/AS positive or negative codeword depending on the current RDS or RAS is performed for each substream. It may result in having an optimized selection of codewords in the codebooks, in terms of DC free or Nyquist free behavior.
As known in prior art, the RDS or RAS used in the codeword selection process may be updated after each encoding process (encoding one input word of all the sub-streams).
In some embodiments, at least one (ideally only one) sub-stream of the plurality is assigned only one coding codebook, said coding codebook including codewords with positive (including zero) digital or alternate sums and codewords with negative (including zero) digital or alternate sums. This makes it possible to easily determine a codeword for an uncoded input word of one sub-stream, before determining the most efficient competing codewords for the other sub-streams. This is particularly of interest in case of 4-ASK modulation in which case the other sub-stream is only a single second sub-stream and the selection between competing codewords is made simple to a mere selection between two codewords.
In specific embodiments, the coding codebook includes the same number of codewords with positive (including zero) digital or alternate sums and of codewords with negative (including zero) digital or alternate sums. Note that the total number of codewords in the coding codebook is preferably made of a power of two, 2m, to optimize the encoding of n-bit input words.
In more specific embodiments, a total number of codewords in the coding codebook is a power of two which is half the number of codewords in the initial codebook. The inventor has observed that this feature usually provides the best result in terms of BER vs. coding rate. Indeed, the feature makes it possible to discard all the codewords that are inefficient in terms of DC free or Nyquist free behaviour (e.g. the codewords 00000000 and 11111111 for one byte input words), while limiting the reduction of the coding rate by the minimum (i.e. a single bit is deleted, corresponding to a reduction of half the size of the codebook from the initial codebook).
Whatever the number of coding codebooks per sub-stream, embodiments of the invention provide that encoding each sub-stream using the at least one associated coding codebook includes minimizing the following formula: abs(RS+Ci ,S(CWi)+... +cn.S(CWn)) wherein abs(x) is the absolute value of x; RS is a current running digital sum and/or running alternate sum; c, is the weight applied to sub-stream i in the weighted combination for modulating; CW, is a codeword associated with an uncoded input word of sub-stream i and selected from the at least one coding codebook associated with sub-stream i; and S(CW) is the digital or alternate sum of codeword CW.
Thanks to this provision, the RS is kept minimal, thus offering an optimal DC free or Nyquist free behaviour. Indeed, this optimization is to be considered as minimizing the digital sum variation (DSV) and/or alternate sum variation (ASV) for the overall bitstream.
This approach mirrors a joint coding of the sub-streams because the choice of a codeword in one sub-stream depends on the codeword selected for another substream.
Note that in all the above provisions, digital or alternate sums are considered. However, some embodiments may consider digital and alternate sums to provide both DC free and Nyquist free improved behaviors.
In yet other embodiments, the initial codebook is a codebook of a block error-correcting code. This is to provide both DC/Nyquist free behavior and error correcting behavior of the encoding scheme.
In specific embodiments, the block error-correcting code is the (11, 15) Hamming code. The inventor has obtained substantially higher coding rates than in document J. G. Kim mentioned above, with similar BER. Other Hamming codes may be used, still by selecting the codewords with lowest DS or AS, for instance (26,31) Hamming code, (57,63) Hamming code, (2m - m - 1, 2m - 1) Hamming code, etc.
In some embodiments, encoding each sub-stream using the at least one associated coding codebook includes selecting a codeword from the at least one associated coding codebook based on a current running digital or alternate sum, and the current running digital or alternate sum is a weighted running digital or alternate sum applying the same weights to the codewords of the sub-streams as the modulation weights applied to the sub-streams in the weighted combination. Thus, as the bitstream is being encoded, the influence of the amplitude-based modulation (and thus of the transmission) is taken into account.
In specific embodiments, the method further comprises updating the current running digital or alternate sum as a weighted running digital or alternate sum using the digital or alternate sums of the codewords selected for the plurality of sub-streams and using respective weights from the weighted combination of the modulating step. Of course the same weights are applied to the codewords when updating and when modulating. This is to mirror the behaviour of the bitstream when being transmitted. The updated current running digital or alternate sum is thus used to encode a next bitstream part, i.e. next uncoded input words of each sub-streams.
In some embodiments, encoding a first uncoded word of a first sub-stream includes: determining a first nominal codeword associated with the first uncoded word in the first coding codebook, and determining a first substitute codeword from the second coding codebook; selecting one of the first nominal codeword and first substitute codeword, based on a current running digital or alternate sum; updating the current running digital or alternate sum based on the digital or alternate sum of the selected codeword; and outputting, in the weighted combination of the modulating step, the selected codeword as a first encoded word for the first sub-stream.
According to a specific feature, the current running digital or alternate sum is of an encoded bitstream comprising the selected codewords for the sub-streams up to a current bitstream part. The bitstream is made of the plurality of sub-streams.
According to yet another specific feature, the method may further comprise signalling when a substitute codeword is outputted.
For example, said encoded word further comprises a parity bit code and said parity bit code is indicative of whether a nominal codeword or a substitute codeword is outputted.
Therefore, when using, for example, the digital or alternate sum values, the action of substitution can adjust one of the running sums without disturbing the other (no trade-off is required). This is the case, for example, since the digital sum and the alternate sum cannot be non-null at the same time.
For example, the substitute codeword has a negative digital or alternate sum when the digital or alternate sum of a previous codeword used for encoding a previous input word is positive.
According to embodiments, the substitute codeword has a positive digital or alternate sum when the digital or alternate sum of a previous codeword used for encoding a previous input word is negative.
According to embodiments, said substitute codeword has a digital or alternate sum that keeps the current running digital or alternate sum null.
For example, said substitute codeword has a same size as the nominal codeword.
Embodiments of the invention also provide a non-transitory computer-readable medium storing a program which, when executed by a microprocessor or computer system in a device, causes the device to perform the method as defined above.
The non-transitory computer-readable medium may have features and advantages that are analogous to those set out above and below in relation to the methods and node devices.
At least parts of the methods according to the invention may be computer implemented. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit", "module" or "system". Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium.
Since the present invention can be implemented in software, the present invention can be embodied as computer readable code for provision to a programmable apparatus on any suitable carrier medium. A tangible carrier medium may comprise a storage medium such as a floppy disk, a CD-ROM, a hard disk drive, a magnetic tape device or a solid state memory device and the like. A transient carrier medium may include a signal such as an electrical signal, an electronic signal, an optical signal, an acoustic signal, a magnetic signal or an electromagnetic signal, e.g. a microwave or RF signal.
BRIEF DESCRIPTION OF THE DRAWINGS
Features and advantages of the invention will become apparent from the following description of non-limiting exemplary embodiments, with reference to the appended drawings, in which:
Figure 1a schematically illustrates the architecture of the conventional transmitter:
Figure 1b schematically illustrates the architecture of a transmitter according to co-pending application GB 1417280.3;
Figure 2a illustrates an exemplary architecture of the transmitter of Figure 1b, i.e. according to co-pending application GB 1417280.3;
Figure 2b illustrates an exemplary and schematic architecture according to embodiments of the invention;
Figure 3 illustrates, using a flowchart, general steps of building coding codewords according to embodiments of the invention based on digital sum approach;
Figure 4 illustrates a building of coding codebooks from the codebook of the (11,15) Hamming code according to first embodiments of the invention;
Figure 5 illustrates an exemplary architecture of an encoder using the coding codebooks of Figure 4;
Figure 6 illustrates, using a flowchart, general steps of an encoding algorithm according to embodiments of the invention;
Figure 7 illustrates, using a flowchart, general steps of a decoding algorithm according to embodiments of the invention;
Figure 8 illustrates a building of coding codebooks from the codebook of the (11,15) Hamming code according to second embodiments of the invention;
Figure 9 illustrates an exemplary architecture of an encoder using the coding codebooks of Figure 8; and
Figure 10 schematically illustrates a general architecture of a device according to embodiments.
DETAILED DESCRIPTION OF THE INVENTION A DC-free and/or Nyquist-free communication system uses a DC-free and/or Nyquist-free line coding scheme in order to suppress the DC component or component at Nyquist frequency of bitstream data that could not travel correctly in the communication chain and/or in the transceivers.
The DC-free line coding maintains a running digital sum (RDS) value bounded within a digital sum variation (DSV) and uses some known technics like 8B10B, 64B66B, MB810 etc. to keep the bounding. These technics are already implemented in some standards (PCI express, Gigabit Ethernet, DVI, HDMI, etc.). The Nyquist-free line coding maintains a running alternate sum (RAS) value bounded within an alternate sum variation (ASV).
In addition, an ECC (Error Correction Coding) feature may be applied to the bitstream data in order to perform the error correction. Hence, a combination of a line coding with an error correction coding is commonly used in order to have both error correction and DC free capabilities.
The present invention particularly regards a DC-free and/or Nyquist-free line coding when used in cooperation with an amplitude-based modulation. For instance, embodiments of the present invention provide an improved (in terms of BER/SNR performance thanks to a decreased DSV) DC-free and/or Nyquist-free line coding by performing joint encoding of different binary sub-streams before applying an amplitude shift keying (ASK) modulation.
Amplitude-based modulation, such as n-ASK modulation, is usually expressed as a linear combination of sub-streams, the weight or coefficient assigned to each sub-stream represents the quality or reliability level of the corresponding sub stream. High reliability level is equivalent to high coefficient and low reliability level is equivalent to low coefficient. Thus both representations are considered equivalent herein. Also, the coefficients and weights are considered equivalent terms, and they can be used interchangeably. Same equivalence applies between the terms quality and reliability.
The variation of the quality of transmission of bits belonging to the same bitstream may be due to characteristics of the modulation used for transmitting the bitstream. For instance, in case of a pure amplitude modulation wherein the modulated signal is a linear combination of the inputs, the input bits which are multiplied by the highest weights are the least sensitive to noise. They are thus allocated to the bits encoded with the line encoder that better matches the spectrum (for instance with less energy around null frequencies).
Other types of modulation (other than pure amplitude modulations) may also have uneven quality of transmission for each bit.
The present invention has thus application within this context.
For example, when encoding the bitstream with a 4-ASK modulation (2 bits symbol), 1 bit of the input symbol is more robustly transmitted than the other. According to embodiments of the present invention, selecting codewords by the line encoders takes into account the weights used in the weighted combination for modulating. According to embodiments of the present invention, the current running digital sum and/or running alternate sum (used to select the correct codeword from two or more codewords) are weighted running digital sum and/or weighted running alternate sum applying the same weights to the codewords as the weighted combination for modulating.
This makes it possible to use the contributions of the amplitude-based modulation scheme to drastically reduce the DSV of the modulated bitstream, and thus to improve BER/SNR of the transmitted bitstream.
The ASK modulation may be modelled as a weighted linear combination of sub-streams.
The present invention seeks to improve the coding codebooks from which the codewords are selected. This is mainly because the known codebooks do not take into account the modulation used thereafter. A coding codebook or coding codebooks are thus obtained for each substream splitting a main bitstream.
To do so, an initial codebook made of codewords, for instance a block error-correcting (11, 15) Hamming code is obtained. Digital or alternate sums of the codewords forming the initial codebook are also obtained. Next, a plurality of coding codebooks is formed as sub-sets (which are not necessarily disjoints sub-sets) of the initial codebook. Each coding codebook is associated with a mean absolute digital or alternate value corresponding to a mean of the absolute values of the digital or alternate sums of the codewords composing the sub-set.
According to the invention, the coding codebooks of the plurality of coding codebooks are assigned, for encoding the sub-streams, to the sub-streams of the plurality of sub-streams, according to an inverse relationship between the mean absolute digital or alternate values of the coding codebooks and weights applied to the sub-streams in the weighted combination of the modulating step.
An inverse relationship may mean assigning a coding codebook whose mean absolute digital or alternate value is high to a sub-stream whose modulation weight is low. In other words, a first coding codebook whose mean absolute digital or alternate value is higher than a second coding codebook is assigned to a first substream whose modulation weight is less than a second sub-stream to which the second coding codebook is assigned.
The impact of the modulation weights in the DC free behaviour of the encoding scheme is thus counterbalanced thanks to the appropriate forming of the codebooks.
In the figures and in what follows, identical elements and steps are designated with a same numerical reference.
With reference to Figures 1a and 1b, the architectures of a conventional transmitter and a transmitter disclosed in co-pending application GB 1417280.3 are described in order to better assess the new aspect according to the present embodiments.
Figure 1a schematically illustrates the architecture of the conventional transmitter.
Bits are provided by a data source 105 and are scrambled in a scrambler 110 in order to randomize ‘0’ and T bits before being input to a line coder 115 which carries out an encoding process.
For example, the line coder may carry out an encoding that removes the DC component (i.e. the mean value of the amplitude of the signal) of the incoming stream, i.e. the line coder is a DC-free coder. The 8b10b or MB12 encoding processes perform such removal for example.
In such encoding processes, encoding an uncoded word in the line coder includes selecting a codeword from codewords based on a current running digital sum and/or a current running alternate sum.
The same encoding is applied on ail input bits. Encoded bits are then input to ASK modulator 120 which generates a modulated wave based on the input bit values. For instance, for a 4-ASK modulation, bits are grouped two by two.
The curves of graphs 130 and 135 respectively show examples of input data and the related generated waveform when using a 4-ASK modulator and constellation 125.
Figure 1b schematically illustrates the architecture of a transmitter according to co-pending application GB 1417280.3.
As for the conventional transmitter, the bits provided by data source 105 are scrambled in scrambler 110 before being input to split module 160. In split module 160, the bits are split into two sub-streams. A first sub-stream is named “DM” and a second sub-stream named “DL”.
The split is performed based on the coding rates of the two DC-free line encoders 170 and 180 which encode the two sub-streams.
Source bits are grouped by blocks. Considering a size “d” of the source bits block, “dM” is the size of the blocks of the first sub-stream and “dL” the size of the blocks of the second sub-stream.
The relationship between these block sizes is as follows: d= dM+dL, dL= dM * (CR2/CR1), where CR1 is the coding rate of the first line encoder and CR2 the coding rate of the second line encoder.
The first sub-stream DM is input to first line encoder 170 and the second sub-stream DL is input to second line encoder 180. Outputs of both line encoders are connected to the inputs of 4-ASK modulator 190. For example, the output of first line encoder 170 is connected to the MSB input of modulator 190 and the output of second line encoder 180 is connected to the LSB input of modulator 190.
In this coding scheme, the plurality of sub-streams of uncoded words is encoded using a plurality of respective line encoders. As for the conventional encoder, encoding an uncoded word in each of one or more line encoders includes selecting a codeword from codewords based on a current running digital sum and/or a current running alternate sum.
The acronyms “MSB” and “LSB” do not refer to the significance of the bits issued from the data source. Instead, the MSB input of the 4-ASK modulator (or the like) receives the bits which are the most reliable (less corrupted during the communication due to higher modulation weight) as compared to the bits received by the LSB input.
Input bits fed to 4-ASK modulator 190 are used to generate a modulated wave, usually by modulating the amplitude of a carrier wave as a function of a weighted combination of the input bits, i.e. of the codewords selected for the plurality of line encoders 170 and 180.
Figure 2a illustrates an exemplary architecture of the transmitter of Figure 1b, i.e. according to co-pending application GB 1417280.3. In other words, block 210 illustrates the DC-free encoding as of Figure 1b.
The 4-ASK modulation is a linear combination of the bits encoded by the DC-free line coders 225 and 230. If both the MSB and the LSB sub-streams are DC-free then the bitstream obtained by performing the linear combination (for modulation) is also DC free. This is because the digital sum of one block of output codewords (i.e. symbols) is also a linear combination of the digital sum of a block of MSB codewords and the digital sum of a block of LSB codewords.
Due to weighted combination for 4-ASK modulation (assuming that it uses a weight equal to 2 for the MSB and a weight equal to one for the LSB), the digital sum for the output modulated symbols is equal to 2*X+Y where X is the digital sum of the MSB block and Y is the digital sum of the LSB block.
The inventors have noted that using known line DC free (and/or Nyquist free) encoders with an ASK modulation is not optimal, for various reasons.
The present invention intends to improve the relevancy of the coding codebooks used in line encoders 225 and 230. This is achieved using the mechanisms introduced above.
In addition, the inventors have noted that the DC-free encodings by line coders 225 and 230 are performed independently because they are parallelized. In particular, a respective current running digital sum (RDS) is kept up-to-date for each line coder. It means that the maximum running digital sum reaches 2*DSVMSb+DSVLsb, where DSVmsb is the digital sum variation (DSV) for line coder feeding MSB input of ASK modulator 235 (line coder 225 for instance) and DSVLsb is the digital sum variation (DSV) for line coder feeding LSB input of ASK modulator 235 (line coder 230 for instance).
Some specific embodiments of the invention also intends to substantially reduce such digital sum variation (DSV) for the whole set of line coders.
Embodiments of the invention provides DC-free encodings as schematically shown in Figure 2b.
Initial codebook 285, for instance the codebook of (11, 15) Hamming code, is used to build the coding codebook 290 and 295 of each of DC free line encoders 265 and 270. The building of coding codebooks 290 and 295 also takes into account the ASK weights used in modulator 275.
This is for example to build coding codebooks as subsets of initial codebook 285 by selecting a predefined number of codewords from it so that a mean absolute digital or alternate value for the selected codewords is as close as possible to each of the modulation weights. Thus, a plurality of codebooks 290 and 295 with mean absolute digital or alternate values equal to the modulation weights is obtained.
They can thus be assigned to the sub-streams, here DM and DL, based on an inverse relationship between their mean absolute digital or alternate values and the modulation weights applied to the sub-streams.
It results that a coding codebook whose mean absolute digital or alternate value is high is assigned to a sub-stream whose modulation weight is low. A consequence of that is that the higher impact of MSB (DM) sub-stream in the DC free behavior of the encoding scheme is counterbalanced with a smaller DSV. A subsequent consequence of that is that the power or energy of the signal at the null frequency of encoded bitstream 280 is lower than the power or energy of the signal at the null frequency of encoded bitstream 240 (without the invention).
In addition, the various DC-free line encodings (for MSB and LSB blocks in case of 4-ASK for instance) are performed jointly in block 250 when feeding th© modulator for the same output modulated symbol. Joint encoding means that the codewords for the plurality of sub-streams are jointly selected. In other words, the selection of a codeword in a line encoder depends on another codeword selected in another line encoder and used in the same weighted combination for modulating (for the same output modulated symbol).
Joint encoding also makes it possible to reduce the digital sum at the output modulated symbols. It is believed that the smallest digital sum for the output symbols is 2*DSVMsb-DSVlsb· A consequence of the joint encoding according to embodiments of the invention is that the power or energy of the signal at the null frequency of encoded bitstream 280 is lower than the power or energy of the signal at the null frequency of encoded bitstream 240.
While Figure 2b shows a device with two sub-streams due to 4-ASK modulation, the present invention may apply to any N-ASK modulation (N being an integer power of two, N) with ‘n’ line encoders receiving input words B1s ..., Bn of substreams and outputting ‘n’ codewords s-., ..., snto N-ASK modulator which performs a linear combination using respective weights c-i.....cn to provide output symbol S forming the encoded and modulated bitstream.
Figure 3 illustrates, using a flowchart, general steps of building coding codewords according to embodiments of the invention based on digital sum approach. This is to adjust the DC free behavior of the encoding scheme.
Of course variants of the invention may have interest in considering an alternate sum approach to adjust the Nyquist free behavior of the encoding scheme. These variants are based on the same teachings as explained below, where the digital sums should be replaced by alternate sums.
The process of the Figure starts at step 300 during which initial codebook 285 is obtained. It is for instance the codebook of (11,15) Hamming code providing block error correction.
The initial codebook includes a plurality of codewords, each having an own digital sum DS.
Optional step 305 consists in determining the bit size n, of the input words of sub-stream B,. As explained below, this is to efficiently size the coding codebooks to encode each possible input word.
The bit sizes may be obtained directly from the settings of splitter 260.
Next, at step 310, the modulation weights Ci, ...,cn are obtained from N-ASK modulator 275, wherein c, is associated with sub-stream B, in the meaning that q is applied to the bits of B, during the weighted combination of modulation.
If necessary, the weights are normalized with respect to the smallest weight. This is to have all the weights in range [1, <x>[. More generally, what is sought is that the ratio between the modulation weights be kept between the mean absolute values of digital sums of built coding codebooks as explained below. As a consequence, the weights may be normalized with respect to other normalizing values. For instance, given a minimum mean absolute value of digital sums achievable by selecting a predefined number of codewords from initial codebook 285, all the weights may be normalized by the same normalizing value so that the smallest weight equals said minimum mean absolute value.
As it transpires from the explanation below, preferred embodiments may seek to divide all the weights with the same coefficient so that the smallest weight cy equals the smallest mean absolute digital value achievable by a sub-set of initial codebook 285 adapted to sub-stream Bz to which it will be assigned (i.e. sub-stream with highest weight, so that the sub-set includes 2nz codewords). This is to be able to build a codebook for a maximum number of sub-streams
Next to step 310, step 315 consists in building an assignment table which associates each sub-stream B, with a target mean absolute digital value t, taken from the weights {c}. The assignment is made according to an inverse relationship between the weights, i.e. the highest weight is assigned as the target value for the sub-stream having the lowest weight, the next highest weight is assigned as the target value for the sub-stream having the next lowest weight, and so on.
The table below illustrates such a result in case weights {c} are initially in an increasing order:
Next to step 315, step 320 consists in building at least one coding codebook for each sub-stream B,, as a sub-set of the initial codebook which provides the closest mean absolute digital value to the target value t,. The mean absolute digital value of the sub-set is the mean of the absolute values of the digital sums of the codewords composing the sub-set.
Each built coding codebook for sub-stream B, is preferably made of a number 2!li of codewords that fits bit size ns. A substitute option may be enabled or disabled for each sub-stream.
When the substitute option is disabled for sub-stream B,, only one coding codebook is built at step 320 for this sub-stream. The coding codebook thus includes codewords with positive (including zero) digital sums and codewords with negative (including zero) digital sums. In particular, it includes the same number of codewords
with positive (including zero) digital sums and of codewords with negative (including zero) digital sums.
When the substitute option is enabled for sub-stream B;, two coding codebooks are built for the sub-stream. The first coding codebook includes only codewords with positive (including zero) digital sums, and the second coding codebook including only codewords with negative (including zero) digital sums. Preferably, the two coding codebooks have the same number of codewords and the same mean absolute digital value which is as close as possible to target t,.
In this situation, one of the codebooks may be the nominal codebook from which the respective line encoder selects a nominal codeword for a current input word. The second codebook is thus a substitute codebook from which the line encoder selects a substitute codeword for the same current input word. As explained below, the selection between the nominal codeword and the substitute codeword is performed based on a current running digital sum RDS.
Preferably, the nominal codeword and the substitute codeword for the same input word have the same absolute value of digital sum.
Examples of codebook building processes and of encoding processes are described below with reference to Figures 4 to 9.
Next to step 320, step 325 consists in assigning the built codebooks to the sub-streams. This is made based on the assignment table determined at step 315, an example of which is provided above.
Once the codebooks have been assigned to respective line encoders (i.e. to sub-streams BQ, the encoding of the input bit stream may start.
Referring now to Figures 4 to 7, a first Illustration of building coding codebooks from (11,15) Hamming code and of using them for encoding is provided.
Initial codebook 400 is partly illustrated under reference 405, as being the codebook of (11,15) Hamming code. The latter comprises 2''=2048 codewords. Obtaining codebook 400 is step 300.
To obtain a good coding rate, it is decided to use 9-bit input words for both DM and DL sub-streams, i.e. n,~9 and 2n~512. This is step 305.
In the example of the Figures, modulation is of 4-ASK type with MSB modulation weight c-j = 3.4 and LSB modulation weight c2 = 1. Obtaining these weights is step 310. Of course, the invention may apply to any other values of weights.
Next, to counterbalance the impact of the ASK weights, DM is assigned c2 as target value (tQ and DL is assigned c-t as target value (t2). This is step 315.
In the present example, one coding codebook 290 is built for sub-stream DM (substitute option disabled for DM) while two coding codebooks 295, 295’ are built for sub-stream DL (substitute option enabled for DL). This is step 320.
Each of the coding codebooks is made of 512 codewords, meaning that they each represent about a quarter of the number of codewords in initial codebook 400.
To build the required coding codebooks, initial codebook 400 may be organized in sub-groups, each grouping the codewords having the same absolute value of digital sum.
As shown, sub-group 415 contains 870 codewords having an absolute value of digital sum equal to 1; sub-group 420 contains 560 codewords having an absolute value of the digital sum equal to 3; sub-group 425 contains 336 codewords having an absolute value of the digital sum equal to 5; sub-group 430 contains 210 codewords having an absolute value of the digital sum equal to 7; and sub-group 435 contains 70 codewords having an absolute value of the digital sum equal to 9. The last two codewords of the (11,15) Hamming code are ‘000000000000000’ and ‘11111111111111T, the absolute digital sums of which are 15 (not shown in Figure 4).
Each of these sub-groups may also be split into two according to the sign of the codeword digital sum, to obtain tables 440 to 465. Table 440 contains 435 codewords having an absolute value of the digital sum equal to +1, and table 445 contains the same number (435) of codewords having an absolute value of the digital sum equal to -1. Similarly, table 450 contains 280 codewords having an absolute value of the digital sum equal to +3, and table 455 contains the same number (280) of codewords having an absolute value of the digital sum equal to -3. Table 460 contains 168 codewords having an absolute value of the digital sum equal to +5, and table 465 contains the same number (168) of codewords having an absolute value of the digital sum equal to -5. And so on (not shown).
In the present example, coding codebook 290 to be built for sub-stream DM should contain 512 codewords and have a mean absolute digital value equal to ^=02=1. This is easily achieved by selecting 512 codewords from the 870 codewords of sub-group 415.
To optimize the DC free behavior of the encoding scheme with respect to sub-stream DM, the selection selects the same number of codewords with positive digital sums (DS=+1) and of codewords with negative digital sums (DS=-1).
Coding codebooks 295 and 295’ to be built for sub-stream DL should also contain 512 codewords each, and have a mean absolute digital value equal to t2=c1=3.4. Coding codebook 295 is only made of codewords having positive digital sums, while coding codebook 295’ is only made of codewords having only digital sums.
To optimize the DC free behavior of the encoding scheme with respect to sub-stream DL, the selection preferably selects codewords having the lowest digital sums. It means that coding codebook 295 (respectively 295’) should preferably be built by selecting codewords from table 440 (respectively 445) and then codewords from table 450 (respectively 455) and then codewords from table 460 (respectively 465) if required.
Let assume ‘z’ be the number of codewords selected from table 440. These codewords amount for !z’ in an overall digital sum.
As selecting codewords only from tables 440 and 450 cannot allow having a mean absolute digital sum equal to target t2, it is envisioned to select all 280 codewords from table 450 (DS=+3) and to select 512-280-z codewords from table 460 (DS=+5). Codewords selected from tables 450 and 460 amount for 3*280+5*(512-280-z) in an overall digital sum.
As a result, ‘z’ may be determined based on the absolute digital sum target t2 as follows: t2 = 3.4 = [z + 3*280 + 5*(512-280-z)] / 512
Thus z ~ 64.
Coding codebook 295 may thus be built by selecting 64 codewords from table 440, 280 codewords from table 450 and 168 codewords from table 460.
Coding codebook 295 has a mean absolute value of digital sums close to 3.4, the target value.
Note that the selection of the 64 codewords from table 440 is regardless the codewords selected for coding codebook 290. They may include or not some codewords with DS=+1 in common.
For illustrative purposes only, if t2 were equal to 2 (conventional MSB weight in 4-ASK modulation), 256 codewords could be selected from table 440 and 256 codewords could be selected from table 450.
In a similar fashion, coding codebook 295’ may be built by selecting 64 codewords from table 445, 280 codewords from table 455 and 168 codewords from table 465.
Coding codebook 295’ has a mean absolute value of digital sums close to 3.4, the target value.
One can see that by appropriately selecting the codewords from tables 440 to 465, a large number of mean absolute value of digital sums can be achieved, thereby counterbalancing a large number of modulation weights.
Figure 5 illustrates an exemplary architecture of an encoder using the coding codebooks of Figure 4. MSB line encoder 265 uses MSB codebook 290 as built above to encode MSB input words made of 9 bits while LSB line encoder 270 uses LSB codebooks 295 and 295’ as built above to encode LSB input words made of 9 bits. The MSB and LSB 9~bit words are obtained from splitter 260.
Thanks to the coding codebooks, a mapping is performed between each 9-bit input word B, (MSB or LSB) (“000000000”,”000000001 ”,”000000010”, ...) and an output word Si made of 15 bits. A coding rate of 18/30=0.6 is thus obtained.
Each output word s, is received as an input by ASK modulator 275 which perform a linear combination of the encoded MSB and the LSB bits.
Figure 6 illustrates, using a flowchart, general steps of an encoding algorithm according to embodiments of the invention, which starts at step 605.
At step 610, the running digital sum RDS is initialized to zero.
At step 615, the n input words are obtained, i.e. the MSB uncoded 9-bit word B| and the LSB uncoded 9-bit word B2 in the case of Figures 4 and 5.
Next, step 620 consists in determining the encoding codewords for the input words. If only one coding codebook is available for an input word, the determined codewords directly encode the input word, while if two or more coding codebooks are available, two or more codewords may be available for encoding the input word.
In the example above, the MSB word is directly encoded using coding codebook 290 (a single codeword is associated with input MSB word). The encoded 15-bit word is noted c__msb.
As far as the LSB word is concerned, it requires determining a first nominal codeword from codebook 295 and a first substitute codeword from codebook 295’. As for the MSB word, a single codeword is associated with each possible input word in each of the two coding codebooks 295 and 295’.
The nominal codeword obtained from LSB Positive codebook 295 is noted c_lsb_p, while the substitute codeword obtained from LSB Negative codebook 295’ is noted cjsb_n.
Next, the selection between the nominal and substitute codewords for each input word is performed based on the current running digital sum RDS.
It is preferably performed through joint encoding of the sub-streams B, which are based on two or mode codebooks, by minimizing the following formula: abs(RDS+c1.DS(CW1)+.. .+cn.DS(CWn)) wherein abs(x) is the absolute value of x; RDS is the current running digital sum; CWj is a codeword associated with an uncoded input word B, and selected from one coding codebook associated with sub-stream B,; and DS(CW) is the digital sum of codeword CW.
The minimization provides all codewords CW, for encoding each input word Bi.
In this formula, the evaluated running digital sum is a weighted running digital sum applying the same weights to the codewords of the sub-streams as the modulation weights applied to the sub-streams in the weighted combination.
Note that CW; and DS(CWj) are directly known if only one coding codebook is available for sub-stream B,, as it is the case for MSB sub-stream in the example of Figures 4 and 5.
This minimization may be simplified in this example by determining whether or not: abs(RDS+3.4*DS(c__msb)+DS(cJsb_p)) < abs(RDS+3.4*DS(c„msb)+DS(cJsb_n))
This is step 625, which is followed, depending on its results, by step 630 or step 635.
If the test is positive, then the encoder outputs cjsb p as LSB encoded word. Otherwise (test negative), the encoder outputs cjsb__n as LSB encoded word.
When the codewords have been all found, the RDS value is updated at step 640 based on the digital sums of the selected codewords.
More particularly, the RDS value is updated as a weighted running digital sum using the digital sums of the codewords CW, selected for the plurality of substreams and using the respective modulation weights c,: RDS+c-i ,DS(CW1)+.. ,+cn.DS(CWn).
In the present example, the RDS value is updated either by RDS=RDS+3.4*DS(c_msb)+DS(cJsb__p)or RDS=RDS+3.4*DS(c_msb)+DS(cJsb_n).
Figure 7 illustrates, using a flowchart, general steps of a decoding algorithm according to embodiments of the invention.
The decoding of the MSB bitstream ΒΊ and the LSB bitstream B2 is performed separately and thus can be done in parallel.
The decoder receives the words w msb (1 Sbits) and wjsb (1 Sbits) to be decoded (step 720) and applies a conventional Hamming error correction. Corrected words wc_msb (1 Sbits) and wcjsb (1 Sbits) are then obtained.
At step 730, the decoder searches, in MSB codebook 290, for a codeword c msb having a null hamming distance with the corrected received word wc msb. If such a codeword cannot be found, the decoder searches for a codeword c_msb having a non-null minimal hamming distance with the received word w__msb.
This ends the decoding of the MSB word: c_msb is the decoded MSB word.
At step 740, the decoder searches, in the LSB Positive codebook 295 and in the LSB Negative codebook 295’, a codeword cjsb having a null hamming distance with the corrected received word wcjsb. If such a codeword cannot be found, the decoder searches for a codeword cjsb having a non-null minimal hamming distance with th© received word w_lsb.
This ends the decoding of the LSB word: cjsb is the decoded LSB word.
Next, step 750 consists for the decoder to select the next words to be decoded.
Figures 8 and 9 illustrate the building of coding codebooks from (11,15) Hamming code according to second embodiments of the invention. These two figures are based on Figures 4 and 5 above, therefore using the same references.
Initial codebook 400 is still the codebook of (11,15) Hamming code.
In these second embodiments, the coding rate obtained is 0.633. This is because the MSB input word is now set to 10-bit long, meaning that n-f=10 while Π2=9 ((10+9)/30=0.633).
An impact of such bit size 011=10) is that the MSB coding codebook 290 must be built to contain 210=1024 codewords.
Modulation is still of 4-ASK type, but with conventional MSB modulation weight οΊ ~ 2 and LSB modulation weight c2 = 1.
Next, to counterbalance the impact of the ASK weights, DM is assigned c2 as target value (ti) and DL is assigned Ci as target value (t2). However, the target values may be optionally updated to take into account the minimum mean absolute value of digital sums achievable by selecting 1024 codewords from the codebook of (11,15) Hamming code.
This is because as the (11,15) Hamming code includes only 870 codewords having an absolute digital sum equal to 1, the 1024-entry coding codebook with minimal mean absolute digital sum necessarily includes some codewords having an absolute digital sum equal to 3. In other words target ^=1 cannot be achieved.
Keeping, the same number of codewords with positive digital sums and of codewords with negative digital sums, the 1024-entry coding codebook with minimal mean absolute digital sum is built with the 870 codewords of sub-group 415 and with 154 codewords selected from sub-group 420 (preferably 77 from table 450 and 77 from table 455).
The mean absolute value of the digital sum for MSB coding codebook 290 is (870 + 3*154)/1024 = 1.3. This is the minimum mean absolute value that can be reached.
Thus, it may be decided to normalize the target values with this minimum mean absolute value. This is to be able to build coding codebooks with mean absolute values that are as close as possible to the targets. This is also to keep, if possible, the same ratio between the modulation weights and the target values (i.e. the mean absolute values of the codebooks) to achieve the best DC free behavior for the encoding scheme.
For instance t-ι is set to 1.3 while t2 is set to 1.3 * 2 ~ 2.6.
In the present example, one coding codebook 290 is built for sub-stream DM (substitute option disabled for DM) while two coding codebooks 295, 295’ are built for sub-stream DL (substitute option enabled for DL). This is step 320.
As t! ~ 1.3, MSB coding codebook 290 may be the 1024-entry coding codebook already built.
Implementing the process described above with respect to Figures 4 and 5, LSB coding codebook 295 with t2 = 2.6 may be built by selecting 168 codewords from table 440, 280 codewords from table 450 and 64 codewords from table 460. And LSB coding codebook 295' may be built by selecting 168 codewords from table 445, 280 codewords from table 455 and 64 codewords from table 465.
All the examples above are mainly based on providing DC-free encoding and decoding. This is done by focusing on the value of the weighted running digital sum.
In variants, Nyquist-free encoding and decoding may be sought, in which case the above algorithms can be implemented in a similar way while considering a weighted running alternate sum (RAS) instead of the weighted RDS, and the alternate sums (AS) instead of the digital sums (DS).
In that case, the codewords may be searched in codebooks built based on alternate sum values. Sub-groups and tables 415 to 465 may be built based on the alternate sums of their codewords.
Also, the formula to minimize in the encoding process of Figure 6 may thus be changed into: abs(RAS+c1.AS(CW1)+...+cr,.AS(CWn)) wherein AS(CW) is the alternate sum of codeword CW, and the updating of step 640 may be correspondingly changed into RAS = RAS+c1.AS(CWi)+...+cn.AS(CWn).
Of course, a specific variant may seek to provide a DC-free and Nyquist-free encoding, in which case the weighted-RDS-based approach is combined with the weighted-RAS-based approach.
Figure 10 is a schematic block diagram of a general architecture of a device 1000 for implementing of one or more embodiments of the invention. The device 1000 comprises a communication bus connected to:
- a central processing unit 1001, such as a microprocessor, denoted CPU; - a random access memory 1002, denoted RAM, for storing the executable code of the method of embodiments of the invention as well as the registers adapted to record variables and parameters necessary for implementing a method according to embodiments, the memory capacity thereof can be expanded by an optional RAM connected to an expansion port for example; - a read only memory 1003, denoted ROM, for storing computer programs for implementing embodiments of the invention; - a network interface 1004 is typically connected to a communication network over which digital data to be processed are transmitted or received. The network interface 1004 can be a single network interface, or composed of a set of different network interfaces (for instance wired and wireless interfaces, or different kinds of wired or wireless interfaces). Data are written to the network interface for transmission or are read from the network interface for reception under the control of the software application running In the CPU 1001; - a user interface 1005 for receiving inputs from a user or to display information to a user; - a hard disk 1006 denoted HD - an I/O module 1007 for receiving/sending data from/to external devices such as a video source or display
The executable code may be stored either in read only memory 1003, on the hard disk 1006 or on a removable digital medium such as for example a disk. According to a variant, the executable code of the programs can be received by means of a communication network, via the network interface 1004, in order to be stored in one of the storage means of the device 1000, such as the hard disk 1006, before being executed.
The central processing unit 1001 is adapted to control and direct the execution of the instructions or portions of software code of the program or programs according to embodiments of the invention, which instructions are stored in one of the aforementioned storage means. After powering on, the CPU 1001 Is capable of executing instructions from main RAM memory 1002 relating to a software application after those instructions have been loaded from the program ROM 1003 or the hard-disc (HD) 1006 for example. Such a software application, when executed by the CPU 1001, causes the steps of a method according to embodiments to be performed.
While the invention has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive, the invention being not restricted to the disclosed embodiment. Other variations to the disclosed embodiment can be understood and effected by those skilled in the art in practicing the claimed invention, from a study of the drawings, the disclosure and the appended claims.
In the claims, the word “comprising” does not exclude other elements or steps, and the indefinite article “a” or “an” does not exclude a plurality. The mere fact that different features are recited in mutually different dependent claims does not indicate that a combination of these features cannot be advantageously used. Any reference signs in the claims should not be construed as limiting the scope of the invention.
Claims (21)
1. A method of processing a plurality of sub-streams for transmission over a communication chain, comprising: obtaining, for each sub-stream of the sub-streams, at least one associated coding codebook; encoding each sub-stream using the at least one associated coding codebook; and modulating the encoded sub-streams as a weighted combination thereof, wherein obtaining the codebooks for the sub-streams includes: obtaining an initial codebook made of codewords and obtaining digital or alternate sums of the codewords forming the initial codebook; forming a plurality of coding codebooks as sub-sets of the initial codebook, each coding codebook being associated with a mean absolute digital or alternate value corresponding to a mean of the absolute values of the digital or alternate sums of the codewords composing the sub-set; and assigning, for the encoding step, the coding codebooks of the plurality of coding codebooks to the sub-streams of the plurality of sub-streams, according to an inverse relationship between the mean absolute digital or alternate values of the coding codebooks and weights applied to the sub-streams in the weighted combination of the modulating step.
2. The method of Claim 1, wherein the assigning step assigns a coding codebook whose mean absolute digital or alternate value is high to a sub-stream whose modulation weight is low.
3. The method of Claim 1, wherein forming a first one of the coding codebooks includes selecting a predefined number of codewords from the initial codebook so that a mean absolute digital or alternate value for the selected codewords is as close as possible to a target mean value.
4. The method of Claim 3, wherein the target mean value is one of the weights used in the weighted combination.
5. The method of Claim 3, wherein the predefined number equals 2m, where m is the bit size of an uncoded word forming the sub-stream to be coded by said first coding codebook.
6. The method of Claim 1, wherein two coding codebooks are assigned to a first sub-stream, a first one of the two coding codebooks including only codewords with positive digital or alternate sums, and the second one of the two coding codebooks including only codewords with negative digital or alternate sums.
7. The method of Claim 6, wherein the two coding codebooks have the same number of codewords and the same mean absolute digital or alternate value.
8. The method of Claim 7, wherein said same number is a power of two which is a quarter of the number of codewords in the initial codebook.
9. The method of Claim 6, wherein an uncoded input word is associated with one codeword in each of the two coding codebooks, the two associated codewords having the same absolute value of digital or alternate sum.
10. The method of Claim 6, wherein each sub-stream of the plurality is assigned two coding codebooks.
11. The method of Claim 1, wherein at least one sub-stream of the plurality is assigned only one coding codebook, said coding codebook including codewords with positive digital or alternate sums and codewords with negative digital or alternate sums.
12. The method of Claim 11, wherein the coding codebook includes the same number of codewords with positive digital or alternate sums and of codewords with negative digital or alternate sums.
13. The method of Claim 12, wherein a total number of codewords in the coding codebook is a power of two which is half the number of codewords in the initial codebook.
14. The method of Claim 1, wherein encoding each sub-stream using the at least one associated coding codebook includes minimizing the following formula: abs(RS+Ci ,S(CWi)+... +cn.S(CWn)) wherein abs(x) is the absolute value of x; RS is a current running digital sum and/or running alternate sum; c, is the weight applied to sub-stream i in the weighted combination for modulating; CW, is a codeword associated with an uncoded input word of sub-stream i and selected from the at least one coding codebook associated with sub-stream i; and S(CW) is the digital or alternate sum of codeword CW.
15. The method of Claim 1, wherein the initial codebook is a codebook of a block error-correcting code.
16. The method of Claim 15, wherein the block error-correcting code is the (11, 15) Hamming code.
17. The method of Claim 1, wherein encoding each sub-stream using the at least one associated coding codebook includes selecting a codeword from the at least one associated coding codebook based on a current running digital or alternate sum, and the current running digital or alternate sum is a weighted running digital_or alternate sum applying the same weights to the codewords of the sub-streams as the modulation weights applied to the sub-streams in the weighted combination.
18. The method of Claim 17, further comprising updating the current running digital or alternate sum as a weighted running digital or alternate sum using the digital or alternate sums of the codewords selected for the plurality of sub-streams and using respective weights from the weighted combination of the modulating step.
19. The method of Claim 1, wherein encoding a first uncoded word of a first sub-stream includes: determining a first nominal codeword associated with the first uncoded word in the first coding codebook, and determining a first substitute codeword from the second coding codebook; selecting one of the first nominal codeword and first substitute codeword, based on a current running digital or alternate sum; updating the current running digital or alternate sum based on the digital or alternate sum of the selected codeword; and outputting, in the weighted combination of the modulating step, the selected codeword as a first encoded word for the first sub-stream.
20. A device for processing a plurality of sub-streams for transmission over a communication chain, comprising: a codebook module configured for obtaining, for each sub-stream of the sub-streams, at least one associated coding codebook; a plurality of line encoders, each encoding a respective using the at least one associated coding codebook; and a modulator configured for modulating the encoded sub-streams as a weighted combination thereof, wherein the codebook module is further configured for: obtaining an initial codebook made of codewords and obtaining digital or alternate sums of the codewords forming the initial codebook; forming a plurality of coding codebooks as sub-sets of the initial codebook, each coding codebook being associated with a mean absolute digital or alternate value corresponding to a mean of the absolute values of the digital or alternate sums of the codewords composing the sub-set; and assigning, for the encoding step, the coding codebooks of the plurality of coding codebooks to the sub-streams of the plurality of sub-streams, according to an inverse relationship between the mean absolute digital or alternate values of the coding codebooks and weights applied to the sub-streams in the weighted combination of the modulating step.
21. A non-transitory computer-readable medium storing a program which, when executed by a microprocessor or computer system in a device, causes the device to perform the method of Claim 1.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1522313.4A GB2545466B (en) | 2015-12-17 | 2015-12-17 | Dc-free or nyquist-free block-error correcting line encoders based on n-ask modulation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1522313.4A GB2545466B (en) | 2015-12-17 | 2015-12-17 | Dc-free or nyquist-free block-error correcting line encoders based on n-ask modulation |
Publications (3)
Publication Number | Publication Date |
---|---|
GB201522313D0 GB201522313D0 (en) | 2016-02-03 |
GB2545466A GB2545466A (en) | 2017-06-21 |
GB2545466B true GB2545466B (en) | 2019-08-07 |
Family
ID=55311163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB1522313.4A Expired - Fee Related GB2545466B (en) | 2015-12-17 | 2015-12-17 | Dc-free or nyquist-free block-error correcting line encoders based on n-ask modulation |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2545466B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109827926A (en) * | 2018-12-29 | 2019-05-31 | 中国科学院紫金山天文台 | A kind of terahertz wave spectrometer control system and observation method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2523566A (en) * | 2014-02-27 | 2015-09-02 | Canon Kk | Method of shaping the spectrum of an input bitstream |
-
2015
- 2015-12-17 GB GB1522313.4A patent/GB2545466B/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2523566A (en) * | 2014-02-27 | 2015-09-02 | Canon Kk | Method of shaping the spectrum of an input bitstream |
Also Published As
Publication number | Publication date |
---|---|
GB201522313D0 (en) | 2016-02-03 |
GB2545466A (en) | 2017-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3590209B2 (en) | Modulation coding method | |
JP4836962B2 (en) | Multilevel low density parity check coded modulation | |
WO2020035685A1 (en) | Joint source channel coding based on channel capacity using neural networks | |
WO2020035684A1 (en) | Joint source channel coding of information sources using neural networks | |
WO2020174574A1 (en) | Distribution shaping method, distribution shaping terminating method, distribution shaping encoder, distribution shaping decoder, and transmission system | |
WO2018192640A1 (en) | Polar coding with dynamic frozen bits | |
US11831433B2 (en) | Error correction encoding device and method for reducing the number of bits to be protected by soft decision error correction | |
KR20220085049A (en) | Device for multi-level encoding | |
EP1058432B1 (en) | A low disparity coding method for digital data | |
EP0414368B1 (en) | Apparatus for data and forward error correction coding for low DC-offset and short run length | |
GB2545466B (en) | Dc-free or nyquist-free block-error correcting line encoders based on n-ask modulation | |
US20220038117A1 (en) | Device and method for transmitting data by using multilevel coding, and communication system | |
US20180205952A1 (en) | Method and apparatus for performing arithmetic coding by limited carry operation | |
US8054207B1 (en) | Enumerative DC-RLL constrained coding | |
US4498173A (en) | Technique for digital split-channel transmission using interpolative coders and decoders | |
JP2002280907A (en) | Modulation method, modulator, demodulation method, demodulator, information recording medium, information transmission method and information transmitter | |
EP4142229A1 (en) | System and method for transition encoding with flexible word-size | |
CN116707707A (en) | Joint polarization detection decoding method and related equipment | |
US7667626B1 (en) | Enumerative DC-RLL constrained coding | |
US6788223B2 (en) | High rate coding for media noise | |
CN116325674A (en) | Transmission code processing device, transmission code processing method, and optical transmitter | |
GB2545468A (en) | Dc or nyquist free block-error correcting line encoder used with binary shift-keying modulation | |
JP2003087121A (en) | Block coding/decoding method and apparatus for increasing code rate | |
RU2801163C1 (en) | Device for multilevel coding | |
JP2001069181A (en) | Digital data transmission method and apparatus for implementing the method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PCNP | Patent ceased through non-payment of renewal fee |
Effective date: 20191217 |