GB2545468A - Dc or nyquist free block-error correcting line encoder used with binary shift-keying modulation - Google Patents
Dc or nyquist free block-error correcting line encoder used with binary shift-keying modulation Download PDFInfo
- Publication number
- GB2545468A GB2545468A GB1522318.3A GB201522318A GB2545468A GB 2545468 A GB2545468 A GB 2545468A GB 201522318 A GB201522318 A GB 201522318A GB 2545468 A GB2545468 A GB 2545468A
- Authority
- GB
- United Kingdom
- Prior art keywords
- codewords
- initial
- codebook
- digital
- coding
- 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.)
- Granted
Links
- 238000004891 communication Methods 0.000 claims abstract description 22
- 238000000034 method Methods 0.000 claims description 41
- 238000012545 processing Methods 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 7
- 239000008186 active pharmaceutical agent Substances 0.000 abstract 2
- 238000012937 correction Methods 0.000 description 13
- 230000006399 behavior Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 5
- 238000001228 spectrum Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000005670 electromagnetic radiation Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 230000009467 reduction Effects 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
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/033—Theoretical methods to calculate these checking codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/47—Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
The invention relates to line encoding, in particular to DC free and/or Nyquist free encoding for terahertz communication possibly involving binary shift-keying modulation. A DS positive codebook and a DS negative codebook are used to encode input words according to current RDS. The two codebooks are built by obtaining an initial block error correcting code codebook made of initial codewords, for instance from a (11,15) Hamming code; obtaining digital sums of the initial codewords; and then forming the two coding codebooks as two sub-sets of the initial codebook, by selecting 2N initial codewords having the lowest absolute values of digital or alternate sum in the initial codebook.
Description
DC OR NYQUIST FREE BLOCK-ERROR CORRECTING LINE ENCODER USED WITH BINARY SHIFT-KEYING MODULATION
FIELD OF THE INVENTION
The present invention relates to line encoding and decoding, in particular to DC free and/or Nyquist free encoding and associated decoding.
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 THz frequencies provide huge bandwidth, therefore making it possibie to implement ultra-high speed communications.
For increased efficiency, simple modulation and coding schemes (also known as MCS) are preferably used to reduce complexity as iow as possible. For illustrative purposes, some MCSs already used in high speed wire communication can be transposed in terahertz communication, including binary shift-keying modulation (BPSK or 2-ASK or OOK).
To shape the stream spectrum for efficient modulation, line coding is used, for instance 8B10B, 64B66B, MB810, etc. For example, the 8B10B line coding is used to remove the DC components of the bitstream so that its spectrum has no power at the null frequency. This removal is advantageous to reduce the loss of information. This is because the information at null frequency is usually filtered by the decoupling capacitors that are used between different stages of the transceivers (filters, amplifiers ...etc.).
Line coding is usually implemented using PCI express, Gigabit Ethernet, DVi, HDMI and many other standards.
In addition to DC free line coding, terahertz communications usually implement error correction capabilities due to the mere nature of the wireless medium. Indeed, it has a poor SNR compared to wired medium, while HDMI, PCI express, and other standards do not provide error correction.
Document A.X. Widmer et P.A. Franaszek (“A DC-Balanced, Partitioned-Block, 8B/10B 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 yn 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 y„ 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 “tabie_5b_6b_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 tabie_5b_6b_RD_plus, while it is either 2 or 0 for the table J5b J3b„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 = [1 0 0 1 1 1; 1 0 0 0 1 0; ................ 011101; 0 10010; 101101; 1 1 0 0 0 1; 1 1 0 0 0 1; 0 0 10 10; 110101; 10 10 0 1; 10 10 0 1; 0 110 0 1; 0 1 10 0 1; 0 0 0 1 1 1; 1 1 1 0 0 0; 0 0 0 1 1 0; 111001; 100101; 100101; 0 10 10 1; 0 10 10 1; 110 10 0; 110100; 0 0 1 10 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; 00 1 1 00; 110011; 10 0 110; 100110; 0 10 110; 010110; 001001; 110110; 0 0 1110; 001110; 010001; 101110; 100001; 011110; 0 1 0 1 003; 10 10 11);
Similarly, the fast 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_p!us” and a second table “tabie 3b_4b_RD_minus”.
The tables used for the 3b/4b encoding disclosed in document A.X. Widmer et P.A. Franaszek are listed below, in table “tab!e_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 tab!e_3b_4b_RD_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_pius = [0100; tab!e_3b_4b_RD_minus = [1 0 1 1; 100 1; 100 1; 0 10 1; 0 10 1; 00 11; 1100; 00 10; 110 1; 10 10; 1010; 0 110; 0110; 000 1; 1110; 1 000]; 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 instream 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 equai to +1, then table__5b_6b__RD_plus is used (instead of table__5b_6b_RD__rninus). 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 Tabie 3 of the above-mentioned A.X. Widmeret 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 tabIe_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 addition to DC free property, Nyquist free property is also sought for line coding. This property is very interesting for ultra-high speed communications as it has a spectrum which shows a null component at the Nyquist frequency. Then, a Nyquist free line coding scheme releases the constraints on the design of filters, equalizers, etc., and thus improves the quality of the transmission on limited bandwidth channels.
In document D.Y, Young Kim et a!. (“White paper on the MB810 Line Code for 10GbE”, proposal for 10 Gigabit Ethernet (IEEE 802.3)), document S. Kang et ai. (“MB810, Dual mode Encoder/Decoder, and MB81G code generating method”) and document US2005/0012646, 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, yn 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=[ 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 {yri} 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 iine 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 MB'!2 and the MB34 line codes.
The following table illustrates the encoding process for the MB 12 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 etal. 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 tabie 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. Application of the present invention is directed to binary shift keying modulation, i.e. a modulation providing two states. Weil known binary shift keying modulations include the binary phase-shift keying (BPSK or 2-PSK} and the binary amplitude-shift keying (BASK or 2-ASK). OOK (on-off keying) is the simplest form of 2-ASK.
SUMMARY OF THE INVENTION
Better line DC free (and/or Nyquist free) encoders with error correction capabilities are required.
In this context, embodiments of the invention provide a method of processing a stream for transmission over a communication chain, comprising: obtaining two coding codebooks, each comprising N codewords; and encoding the stream using the two coding codebooks, an un-coded input word of the stream being encoded using either of the two coding codebooks depending on a running digital or alternate sum, wherein obtaining the two coding codebooks includes: obtaining an initial codebook of a block error correcting code, the initial codebook being made of initial codewords; obtaining digital or alternate sums of the initial codewords forming the initial codebook; forming the two coding codebooks as two sub-sets of the initial codebook, by selecting 2N initial codewords having the lowest absolute values of digital or alternate sum in the initial codebook.
The inventor has observed that building coding codebooks as defined above provides better performances compared to known line DC (and/or Nyquist) free and error correcting schemes. Better performances in term of bit error rate while having a coding rate above 0,5 for a number of initial codebooks (the optimal coding rate in this invention is equal to 0.6). .
From the decoding side having the same advantages, embodiments provide a method of processing an encoded stream received over a communication chain, comprising: obtaining two coding codebooks, each comprising N codewords; and decoding the encoded stream using the two coding codebooks, a coded input word of the encoded stream being decoded using either of the two coding codebooks, wherein obtaining the two coding codebooks includes: obtaining an initial codebook of a block error correcting code, the initial codebook being made of initial codewords; obtaining digital or alternate sums of the initial codewords forming the initial codebook; forming the two coding codebooks as two sub-sets of the initial codebook, by selecting 2N initial codewords having the lowest absolute values of digital or alternate sum in the initial codebook.
Correspondingly, embodiments of the invention provide a device for processing a stream for transmission over a communication chain, comprising: a codebook module configured for obtaining two coding codebooks, each comprising N codewords; and a line encoder configured for encoding the stream using the two coding codebooks, an un-coded input word of the stream being encoded using either of the two coding codebooks depending on a running digital or alternate sum, wherein the codebook module is further configured for: obtaining an initial codebook of a block error correcting code, the initial codebook being made of initial codewords; obtaining digital or alternate sums of the initial codewords forming the initial codebook; forming the two coding codebooks as two sub-sets of the initial codebook, by selecting 2N initial codewords having the lowest absolute values of digital or alternate sum in the initial codebook.
From the decoding side embodiments of the invention provide a device for processing an encoded stream received over a communication chain, comprising: a codebook module configured for obtaining two coding codebooks, each comprising N codewords; and a line decoder configured for decoding the encoded stream using the two coding codebooks, a coded input word of the encoded stream being decoded using either of the two coding codebooks, wherein the codebook module is further configured for: obtaining an initial codebook of a block error correcting code, the initial codebook being made of initial codewords; obtaining digital or alternate sums of the initial codewords forming the initiai codebook; forming the two coding codebooks as two sub-sets of the initiai codebook, by selecting 2N initial codewords having the lowest absolute values of digital or alternate sum in the initial codebook.
The devices have the same advantages as the methods 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, and can be transposed into system features dedicated to any device according to embodiments of the invention.
In embodiments, the block error correcting code is a Hamming code, in particular, the Hamming code may be a (11,15) Hamming code. The high performances measured by the inventor are particularly related to an efficient use of the (11,15) Hamming code, in particular, 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, stiil by selecting the codewords with the lowest DS or AS, for instance (26,31) Hamming code, (57,63) Hamming code, (2m - m - 1, 2m - 1) Hamming code, etc. in other embodiments, selecting the 2N initiai codewords includes selecting only initial codewords having an absolute value of digital or alternate sum less than a predefined value. This is to obtain the best DC or Nyquist free behavior of the line encoder. In particular, the predefined value is preferably 1 if enough codewords may be selected, or 3 to have a sufficient number (2N) of such codewords.
In some embodiments, selecting the 2N initial codewords includes selecting initiai codewords having the lowest absolute values of digital and alternate sums in the initial codebook. With this provision, the line encoder of the invention provides an optimized behaviour regarding DC free and Nyquist free properties. In particular, the absolute value of digital and alternate sums of an initial codeword may be evaluated as a sum of the respective absolute values of the digita! sum and of the alternate sums of the initial codeword. Note that the selection of the initial codewords may thus be performed in order to keep oniy initial codewords having such a sum less than 3 or 5, or even 7.
In other embodiments, N = 2m, where m is the bit size of any uncoded (or coded from the decoding perspective) input word forming the stream to be coded (or decoded) using the two coding codebooks, in other words, the two codebooks are made of a number of codewords corresponding to the number of possibilities for the uncoded input word. in some embodiments, a first one of the two coding codebooks includes only codewords with positive (including zero) digital or alternate sums (DS or AS), and a second one of the two coding codebooks includes 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 having the same absolute value of digital or alternate sum. In other words, the two coding codebooks have the same mean absolute digital or alternate value corresponding to a mean of the absolute values of the digital or alternate sums of their codewords.
The above provision provides the same DC free or Nyquist free behavior regardless of the current RDS or RAS when encoding.
In more specific embodiments, N is about a quarter of the number of initial 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 _ that is why a “quarter” _ are deleted since two codebooks are required).
In other specific embodiments, the 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 some embodiments, the method from the encoder’s perspective further comprises modulating the encoded stream using a binary shift-keying modulation (BSK) scheme. Conversely from the decoder’s perspective, the method may further comprise demodulating a received signal using a binary shift-keying modulation scheme to obtain the encoded stream,
In some embodiments, encoding a first uncoded input word of the stream includes: determining a first nominal codeword associated with the first uncoded word in a first one of the two coding codebooks, and determining a first substitute codeword from the second one of the two coding codebooks; 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 the selected codeword as a first encoded word for the stream. According to a specific feature, the current running digital or alternate sum is of the encoded stream comprising the selected codewords to a current stream part.
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-nuil 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 un-coded 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 un-coded 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 aiso 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 any 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.
Other embodiments of the invention also provide a method of processing, substantially as herein described with reference to, and as shown in, Figure 3, or Figures 3 and 4, or Figures 3, 4 and 5, or Figures 3, 4 and 6 of the accompanying drawings.
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:
Figures 1a and 1b schematically iliustrate the architecture of a conventional transmitter:
Figure 2 illustrates an exemplary and schematic architecture according to embodiments of the invention;
Figure 3 illustrates, using a flowchart, general steps of buiiding coding codewords according to embodiments of the invention based on digital sum approach;
Figure 4 illustrates a building of two coding codebooks from the codebook of the (11,15) Hamming code according to embodiments of the invention;
Figure 5 illustrates, using a flowchart, general steps of an encoding algorithm according to embodiments of the invention;
Figure 6 illustrates, using a flowchart, general steps of a decoding algorithm according to embodiments of the invention;
Figure 7 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 Nyqui st-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 provide an improved (in terms of BER/SNR performance thanks to a decreased DSV, and/or in terms of coding rate) DC-free and/or Nyquist-free line coding by improving the coding codebooks from which the codewords are selected.
Streams encoded using the invention may be transmitted with binary shiftkeying modulation.
Two coding codebooks are obtained for the bitstream to process. Each uncoded input word of the bitstream is encoded using either of the two coding codebooks depending on a running digital or alternate sum. Each of the coding codebooks includes N = 2m codewords, where m is the bit size of any uncoded (or coded from the decoding perspective) input word forming the stream to be coded (or decoded) using the two coding codebooks.
To properly build the two coding codebooks, an initial codebook of a block error correcting code, for instance a block error-correcting (11, 15) Hamming code, is obtained. The initial codebook is made of initial codewords. Digital or alternate sums of the initial codewords forming the initial codebook are also obtained. Next, the two coding codebooks are formed as two sub-sets of the initial codebook. The forming includes selecting 2N initial codewords having the lowest absolute values of digital or alternate sum in the initial codebook.
In particular, the initial codewords having an absolute value of digital or alternate sum less than a predefined value, for instance 1 or 3, may be preferably selected to form the two coding codebooks.
In the figures and in what follows, identical elements and steps are designated with a same numerical reference.
Figure 1a schematically illustrates the architecture of a 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 provides forward error correction (in particular block error correction) and 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 (in the coding codebooks) based on a current running digital sum and/or a current running alternate sum.
The same encoding is applied on all input bits. Encoded bits are then input to binary shift-keying modulator 120, such as 2-ASK or BPSK modulator, which generates a modulated wave based on the input bit values. For a binary modulation, each bit of the encoded bitstream is successively considered.
Figure 1b illustrates an exemplary architecture of the transmitter of Figure 1a providing block error correction and DC-free property. In other words, block 150 illustrates blocks 115 and 120 of Figure 1a.
The encoder 150 is made of a Block Error Correction block 151 implementing well-known codes in series with a DC free biock 152 implementing a separate DC free code such as for instance above-mentioned 8B10B, MB810 or conventional codes as those described with an optimum constraint length having coding rates equal to 1/2 and 1/3 in a table of publication B. Skiar (“Digital Communications: Fundamentals and Applications”, Prentice Hail 2001, ISBN: 0-13-084788-7). The DC free code usually provides two coding codebooks from which the codewords are selected, depending on a current running digital sum.
The same publication B. Skiar also gives some examples of biock error correcting codes, such as Reed-Solomon, LDPC (Low Density Parity Check Code), etc. that may be used.
Once the input bitstream is encoded by blocks 151 and 152, each of its bits is modulated by bipolar modulation block 120. Conventionally, each input bit is converted into a positive or negative integer (+1 and -1). Usually, bit “0" is coded with “+1” and bit “1” is coded with “-1”.
Embodiments of the invention provide DC-free and/or Nyquist free encodings as schematically shown in Figure 2. Compared to Figure 1b, the line encoder 210 uses a single code that is both DC and/or Nyquist free and biock error correcting, i.e, it generates a bitstream which is DC and/or Nyquist free and includes parity bits.
The present invention intends to improve the relevancy of the two coding codebooks 230 and 240 used in the line encoder to provide better BER and/or coding rate. This is achieved using the codebook forming mechanisms introduced above. initial biock error correcting codebook 220, for instance the codebook of (11, 15) Hamming code, is used to buiid the two coding codebooks 230 and 240. The building of coding codebooks 230 and 240 is made by selecting sub-sets of the initial (11,15) Hamming codebook based on DS or AS values of each of its initial codewords.
In particular, the 2N initial codewords having the lowest absoiute values of DS and/or AS are selected. The same number of codewords having an absolute value of DS and/or AS equal to 1 is added to each of the two coding codebooks 230 and 240. Similarly, the same number of codewords having an absolute value of DS and/or AS equal to 3 is added to each of the two coding codebooks 230 and 240. In other words, the two coding codebooks have the same number of codewords having the same absolute value of digital or alternate sum, for each possible absoiute DS or AS.
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 optimize the DC free behavior of the encoding scheme.
Of course variants of the invention may have interest in considering an alternate sum approach to optimize the Nyquist free behavior of the encoding scheme. These variants are based on the same teachings as explained beiow, where the digital sums should be replaced by alternate sums. Also, the DC free and Nyquist free approaches may be combined. For instance, the selection of initial codewords as described below may be performed by considering the sums of the DS and AS of each initial codeword of the initial codebook 220, or by considering the sums of their absolute values.
The process of the Figure starts at step 300 during which initial codebook 220 is obtained. It is for instance the codebook of (11,15) Hamming code providing block error correction.
The initial codebook includes a plurality of initial codewords, each having an own digital sum DS.
Optional step 305 consists in determining the bit size m of the input words of the bitstream. As explained below, this is to efficiently size the coding codebooks to encode each possible input word.
The bit size may be obtained directly from the settings of splitter 260.
Preferably, the coding codebooks are sized to include N=2m codewords.
Next, at step 310, the 2N initial codewords with the lowest absolute values of DS are selected from initial codebook 220. Preferably, the same number of codewords with positive DS and of codewords with negative DS (and the same absoiute value of DS) is selected. For instance, the same number of codewords with 08=+1 and of codewords with DS=-1 is selected.
Next, at step 315, the 2N selected codewords are split into to form the two coding codebooks 230 and 240,
Preferably, coding codebook 230 includes only codewords with positive (including zero) digital or alternate sums (DS or AS), and coding codebook 240 includes only codewords with negative (including zero) digital or alternate sums.
One may note that a bijection exist between a codeword in codebook 230 and a codeword having the opposite DS value in codebook 240. Keeping such association, any input word may thus be 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.
One of the two coding codebooks may be considered as a nominal codebook from which the line encoder selects a nominal codeword for a current input word. Then, the second coding codebook is 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 to encode the current input word may be 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, but opposite values.
Once the two coding codebooks are available at the line encoder, the encoding of the input bitstream may start.
Referring now to Figures 4 to 6, a first illustration of building the two coding codebooks from (11,15) Hamming code and of using them for encoding or decoding is provided.
Initial codebook 220 is partly illustrated under reference 405, as being the codebook of (11,15) Hamming code. The latter comprises 211=2048 codewords. Obtaining codebook 400 is step 300.
To obtain a good coding rate, it is decided to use 9-bit input words in the bitstream, i.e. m=9 and 2m=512, This is step 305. it results that the obtained coding rate is 9/15 = 0.6.
Each of the two coding codebooks 230 and 240 is made of 512 codewords, meaning that they each represent about a quarter of the number of initial codewords in initial codebook 400.
To build the required coding codebooks in steps 310 and 315, initial codebook 220 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 Ό00000000000000’ and ‘111111111111111% the absolute digital sums of which are 15 (not shown in Figure 4).
One may note that the same sub-grouping is obtained based on the alternate sums of the initial codewords.
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 230 to be built should contain 512 initial codewords with positive DS. It is sought to have the lowest mean absolute digital value corresponding to a mean of the absolute values of the digital or alternate sums of the selected codewords. This is to optimize the DC free behaviour of the line encoder.
To achieve this, the 435 codewords of sub-group 440 (DS=+1) are selected together with 77 codewords taken from sub-group 450 (DS=+3).
Similarly, to form coding codebook 240, the 435 codewords of sub-group 445 (DS=-1) are selected together with 77 codewords taken from sub-group 455 (DS=-3).
Thus, the selection selects the same number of codewords with positive digital sums (DS=+1 or +3) and of codewords with negative digital sums (DS=-1 or -3).
Figure 5 illustrates, using a flowchart, general steps of an encoding algorithm according to embodiments of the invention, which starts at step 505.
At step 510, the running digital sum RDS is initialized to zero.
At step 515, the input word is obtained, e.g. a 9-bit uncoded word.
Next, step 520 consists in determining the encoding codeword for the input word. Since two coding codebooks are available, two or more codewords may be available for encoding the input word.
Thus, a first nominal codeword c__p is determined from positive codebook 230 and a first substitute codeword c_n is determined from negative codebook 240.
Next, the selection between the nominal and substitute codewords for the input word is performed based on the current running digital sum RDS.
It is preferably performed by minimizing the following formula: abs(RDS+DS(GW}) wherein abs(x) is the absolute value of x; RDS is the current running digital sum; CW is the encoding codeword selected between c_n and c_p; and DS(CW) is the digital sum of codeword CW.
This minimization may be simplified in this example by determining whether or not: abs(RDS+DS(c_p}} < abs(RDS+DS(c_n}}
This is step 525, which is followed, depending on its results, by step 530 or step 535.
If the test is positive, then the encoder outputs c_p as encoded word c. Otherwise (test negative), the encoder outputs c_n as encoded word c.
When the codeword has been found, the RDS value is updated at step 540 based on the digital sum of the selected codeword c: RDS+DS(c).
Figure 6 illustrates, using a flowchart, general steps of a decoding algorithm according to embodiments of the invention. The decoding takes place after a signal received over a communication chain (for instance a signal as generated by encoder 200) is demodulated using a binary shift-keying modulation scheme. An encoded stream is thus obtained, that is to be decoded,
The decoder receives a new 15-bit word w to be decoded (step 620) from the encoded stream and applies a conventional Hamming error correction. Corrected word wc (15 bit long) is thus obtained.
At step 630, the decoder searches, in positive codebook 230 and negative codebook 240, for a codeword c having a null hamming distance with the corrected received word wc. The two coding codebooks 230 and 240 have been built by the decoder in a similar way as described above for the encoder.
If such a codeword cannot be found, the decoder searches for a codeword c having a non-null minimal hamming distance with the received word w.
This ends the decoding of the received word: c is the decoded 9-bit word.
Next, step 640 consists for the decoder to select the next word w to be decoded.
Figure 7 is a schematic block diagram of a general architecture of a device 700 for implementing of one or more embodiments of the invention. The device 700 comprises a communication bus connected to: - a central processing unit 701, such as a microprocessor, denoted CPU; - a random access memory 702, 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 703, denoted ROM, for storing computer programs for implementing embodiments of the invention; - a network interface 704 is typically connected to a communication network over which digital data to be processed are transmitted or received. The network interface 704 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 701; - a user interface 705 for receiving inputs from a user or to display information to a user;
- a hard disk 706 denoted HD - an I/O module 707 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 703, on the hard disk 706 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 704, in order to be stored in one of the storage means of the device 700, such as the hard disk 706, before being executed.
The centra! processing unit 701 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 701 is capable of executing instructions from main RAM memory 702 relating to a software application after those instructions have been loaded from the program ROM 703 or the hard-disc (HD) 706 for example. Such a software application, when executed by the CPU 701, 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 stream for transmission over a communication chain, comprising: obtaining two coding codebooks, each comprising N codewords; and encoding the stream using the two coding codebooks, an un-coded input word of the stream being encoded using either of the two coding codebooks depending on a running digital or aiternate sum, wherein obtaining the two coding codebooks includes: obtaining an initial codebook of a block error correcting code, the initial codebook being made of initial codewords; obtaining digital or aiternate sums of the initiai codewords forming the initial codebook; forming the two coding codebooks as two sub-sets of the initiai codebook, by selecting 2N initial codewords having the lowest absolute values of digital or alternate sum in the initiai codebook.
2. A method of processing an encoded stream received over a communication chain, comprising: obtaining two coding codebooks, each comprising N codewords; and decoding the encoded stream using the two coding codebooks, a coded input word of the encoded stream being decoded using either of the two coding codebooks, wherein obtaining the two coding codebooks includes: obtaining an initial codebook of a block error correcting code, the initiai codebook being made of initial codewords; obtaining digital or alternate sums of the initiai codewords forming the initial codebook; forming the two coding codebooks as two sub-sets of the initiai codebook, by selecting 2N initial codewords having the lowest absolute values of digital or alternate sum in the initial codebook.
3. The method of Claim 1 or 2, wherein the block error correcting code is a Hamming code.
4. The method of Claim 3, wherein the Hamming code is a (11,15) Hamming code.
5. The method of Claim 1 or 2, wherein selecting the 2N initial codewords includes selecting only initial codewords having an absolute value of digital or alternate sum less than a predefined value.
6. The method of Claim 5, wherein the predefined value is 1 or 3.
7. The method of Claim 1 or 2, wherein selecting the 2N initial codewords includes selecting initial codewords having the lowest absolute values of digital and alternate sums in the initial codebook.
8. The method of Claim 7, wherein the absolute value of digital and alternate sums of an initial codeword is evaluated as a sum of the respective absolute values of the digital sum and of the alternate sums of the initial codeword.
9. The method of Claim 1, wherein N = 2m, where m is the bit size of any uncoded input word forming the stream to be coded using the two coding codebooks.
10. The method of Claim 2, wherein N = 2m, where m is the bit size of any coded input word forming the encoded stream to be decoded using the two coding codebooks.
11. The method of Claim 1 or 2, wherein a first one of the two coding codebooks includes only codewords with positive digital or alternate sums, and a second one of the two coding codebooks includes only codewords with negative digital or alternate sums.
12. The method of Claim 11, wherein the two coding codebooks have the same number of codewords having the same absolute value of digital or alternate sum.
13. The method of Claim 11, wherein N is about a quarter of the number of initial codewords in the initial codebook.
14. The method of Claim 11, wherein the 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.
15. The method of Claim 1, further comprising modulating the encoded stream using a binary shift-keying modulation (BSK) scheme.
16. The method of Claim 2, further comprising demodulating a received signal using a binary shift-keying modulation scheme to obtain the encoded stream,
17. The method of Ciaim 1, wherein encoding a first uncoded input word of the stream includes: determining a first nominal codeword associated with the first uncoded word in a first one of the two coding codebooks, and determining a first substitute codeword from the second one of the two coding codebooks; selecting one of the first nominal codeword and first substitute codeword, based on a current running digitai or alternate sum; updating the current running digital or alternate sum based on the digital or alternate sum of the selected codeword; and outputting the selected codeword as a first encoded word for the stream.
18. A device for processing a stream for transmission over a communication chain, comprising; a codebook module configured for obtaining two coding codebooks, each comprising N codewords; and a line encoder configured for encoding the stream using the two coding codebooks, an un-coded input word of the stream being encoded using either of the two coding codebooks depending on a running digitai or aiternate sum, wherein the codebook module is further configured for; obtaining an initial codebook of a block error correcting code, the initial codebook being made of initiai codewords; obtaining digital or aiternate sums of the initial codewords forming the initial codebook; forming the two coding codebooks as two sub-sets of the initial codebook, by selecting 2N initial codewords having the lowest absolute values of digitai or alternate sum in the initial codebook.
19. A device for processing an encoded stream received over a communication chain, comprising: a codebook module configured for obtaining two coding codebooks, each comprising N codewords; and a line decoder configured for decoding the encoded stream using the two coding codebooks, a coded input word of the encoded stream being decoded using either of the two coding codebooks, wherein the codebook module is further configured for: obtaining an initial codebook of a block error correcting code, the initial codebook being made of initial codewords; obtaining digital or alternate sums of the initial codewords forming the initial codebook; forming the two coding codebooks as two sub-sets of the initial codebook, by selecting 2N initial codewords having the lowest absolute values of digital or alternate sum in the initial codebook.
20. 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 or 2.
21. A method of processing, substantially as herein described with reference to, and as shown in, Figure 3, or Figures 3 and 4, or Figures 3, 4 and 5, or Figures 3, 4 and 6 of the accompanying drawings.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1522318.3A GB2545468B (en) | 2015-12-17 | 2015-12-17 | Dc or nyquist free block-error correcting line encoder used with binary shift-keying modulation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1522318.3A GB2545468B (en) | 2015-12-17 | 2015-12-17 | Dc or nyquist free block-error correcting line encoder used with binary shift-keying modulation |
Publications (3)
Publication Number | Publication Date |
---|---|
GB201522318D0 GB201522318D0 (en) | 2016-02-03 |
GB2545468A true GB2545468A (en) | 2017-06-21 |
GB2545468B GB2545468B (en) | 2018-10-31 |
Family
ID=55311168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB1522318.3A Active GB2545468B (en) | 2015-12-17 | 2015-12-17 | Dc or nyquist free block-error correcting line encoder used with binary shift-keying modulation |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2545468B (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6198413B1 (en) * | 1999-07-01 | 2001-03-06 | International Business Machines Corporation | Partitioned DC balanced (0,6) 16B/18B transmission code with error correction |
-
2015
- 2015-12-17 GB GB1522318.3A patent/GB2545468B/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6198413B1 (en) * | 1999-07-01 | 2001-03-06 | International Business Machines Corporation | Partitioned DC balanced (0,6) 16B/18B transmission code with error correction |
Also Published As
Publication number | Publication date |
---|---|
GB2545468B (en) | 2018-10-31 |
GB201522318D0 (en) | 2016-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10069519B1 (en) | Partition based distribution matcher for probabilistic constellation shaping | |
EP3635893B1 (en) | Virtual lookup table for probabilistic constellation shaping | |
US10749554B1 (en) | System and method for short block length distribution matching | |
US10541711B1 (en) | Short block length distribution matching algorithm | |
US20220263694A1 (en) | Apparatus for multi-level encoding | |
KR101817168B1 (en) | Method and Apparatus for Approximated Belief Propagation Decoding of Polar Code | |
CN114257342B (en) | Coding and decoding method for two-user multiple access system based on non-binary polar code | |
US10523480B1 (en) | K-bit enumerative sphere shaping of multidimensional constellations | |
US6067326A (en) | 4 x 4 dimensional block modulation code for a PAM-5 constellation | |
US7778334B2 (en) | Modulation scheme for communication environments | |
EP3547572A1 (en) | A method for generating optical signal, and associated optical transmitter and optical receiver | |
US9668144B2 (en) | Method of shaping the spectrum of an input bitstream | |
JPH10224235A (en) | Trellis coding method for co-channel interference | |
Le Ruyet et al. | Digital communications 1: source and channel coding | |
GB2545468A (en) | Dc or nyquist free block-error correcting line encoder used with binary shift-keying modulation | |
GB2545466B (en) | Dc-free or nyquist-free block-error correcting line encoders based on n-ask modulation | |
CN112825558B (en) | Encoding method, decoding method and device | |
WO2021124483A1 (en) | Optical transmission system, optical sender, and optical receiver | |
CN108155948B (en) | A kind of Partial Differential decoding method and system for 24 Wei Gelai modulation | |
KR20040033022A (en) | Modulation code system and methods of encoding and decoding a signal by multiple integration | |
US10177792B2 (en) | DC-free nyquist-free error correcting line coding | |
CN115567162B (en) | A probabilistic constellation shaping method and system, and an optical communication method and system | |
RU2801163C1 (en) | Device for multilevel coding | |
RU2389147C2 (en) | Modulation scheme for data transmission medium | |
GB2540202A (en) | Enhanced line encoding |