US20040073861A1 - Interleaved reed solomon coding for home networking - Google Patents
Interleaved reed solomon coding for home networking Download PDFInfo
- Publication number
- US20040073861A1 US20040073861A1 US10/628,675 US62867503A US2004073861A1 US 20040073861 A1 US20040073861 A1 US 20040073861A1 US 62867503 A US62867503 A US 62867503A US 2004073861 A1 US2004073861 A1 US 2004073861A1
- Authority
- US
- United States
- Prior art keywords
- encoded data
- error correctable
- data packet
- packet
- reed solomon
- 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.)
- Abandoned
Links
- 230000006855 networking Effects 0.000 title description 7
- 235000014676 Phragmites communis Nutrition 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 12
- 125000004122 cyclic group Chemical group 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 230000009897 systematic effect Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 208000011580 syndromic disease Diseases 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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/0041—Arrangements at the transmitter end
-
- 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/0045—Arrangements at the receiver end
-
- 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/0071—Use of interleaving
Definitions
- the present invention relates to the field of data encoding and decoding, and in particular, data encoding/decoding for use in a home network communications system.
- a method of transmitting and receiving data packets over a channel susceptible to random burst, and/or even additive white gaussian noise, channel errors is provided.
- Each data packet is encoded to form error correctable encoded data packets.
- Each error correctable encoded data packet is interleaved to form interleaved error correctable encoded data packets.
- Each interleaved error correctable encoded data packet is modulated to form modulated interleaved error correctable encoded data packets.
- Each modulated interleaved error correctable encoded data packet is transmitted over the channel.
- the channel can be a telephone line.
- the encoding includes performing Reed Solomon encoding on each data packet to form Reed Solomon error correctable encoded data packets.
- Each data packet is cyclic redundancy check encoded prior to performing Reed Solomon encoding.
- Modulated interleaved error correctable encoded data packets are received from the channel.
- Each modulated interleaved error correctable encoded data packet is demodulated to form demodulated interleaved error correctable encoded data packets.
- Each demodulated error correctable encoded data packet is deinterleaved to form deinterleaved demodulated error correctable encoded data packets.
- Each deinterleaved demodulated error correctable encoded data packet is decoded to extract each transmitted data packet.
- the decoding includes performing Reed Solomon decoding on each deinterleaved demodulated error correctable encoded data packet to form Reed Solomon decoded data packets.
- Each Reed Solomon decoded data packet is cyclic redundancy check decoded after performing Reed Solomon decoding.
- a system for transmitting and receiving data packets over a channel susceptible to random burst and/or white gaussian noise channel errors is also provided.
- a transmitter and a receiver are coupled to the channel.
- the transmitter includes:
- an encoder for encoding each data packet to form error correctable encoded data packets
- an interleaver coupled to the encoder for interleaving each error correctable encoded data packet to form interleaved error correctable encoded data packets
- a modulator coupled to the interleaver for modulating each interleaved error correctable encoded data packet to form modulated interleaved error correctable encoded data packets.
- the receiver includes:
- a demodulator for receiving modulated interleaved error correctable encoded data packets from the channel and demodulating each modulated interleaved error correctable encoded data packet to form demodulated interleaved error correctable encoded data packets;
- a deinterleaver coupled to the demodulator for deinterleaving each demodulated error correctable encoded data packet to form deinterleaved demodulated error correctable encoded data packets
- a decoder coupled to the deinterleaver for decoding each deinterleaved demodulated error correctable encoded data packet to extract each transmitted data packet.
- FIG. 1 shows in block diagram form a home networking environment within which the present invention can be implemented.
- FIG. 2 shows in block diagram form an embodiment of the present invention.
- FIG. 3 shows in block diagram form an embodiment of an intrapacket encoder in accordance with the present invention.
- FIG. 4 shows in block diagram form the operation of an interleaver in accordance with the present invention.
- FIG. 5 shows in block diagram form an embodiment of an intrapacket decoder in accordance with the present invention.
- FIG. 6 shows in block diagram form an embodiment of a CRC encoder in accordance with the present invention.
- FIG. 7 shows in block diagram form an embodiment of a CRC decoder in accordance with the present invention.
- FIG. 8 shows in block diagram form an embodiment of a Reed Solomon encoder in accordance with the present invention.
- FIG. 9 shows in block diagram form an embodiment of a Reed Solomon decoder in accordance with the present invention.
- FIG. 1 depicts a typical home environment.
- Home network 10 includes existing (installed) plain old telephone service (POTS)wiring 12 , network clients 14 , the computer port side of modem 16 and fax 18 .
- POTS wiring 12 provides wiring infrastructure used to network multiple clients at a customer premises (e.g., home) 20 .
- POTS wiring 12 can be conventional unshielded twisted pair (UTP) wiring that is generally routed internally in the walls of the customer premises 20 to various locations (e.g., rooms) within the customer premises.
- Subscriber loop 22 also called a “local loop” is a physical wiring link that directly connects an individual customer premises 20 to the Central Office through telephone network interface 24 , a demarcation point between the inside and outside of customer premises 20 .
- the decision feedback equalizer makes tentative decisions as to what bits were being sent and then tries to subtract out the sources of errors based upon the tentative decisions.
- the attempt to subtract out the errors tends to create further errors. In other words, it actually hurts the system rather than helping it.
- the HPNA specifications do not use any error correcting code system. It uses a simple well-known cyclic redundancy check (CRC).
- CRC cyclic redundancy check
- a number is developed based upon the statistical computation on the bytes which are in the packet.
- the receive end if the number matches a preset number, there is a presumption that the number is correct and, therefore, that there are not any errors. If the number does not match, there is a presumption that there are errors.
- the receiver thereupon indicates that the packet should be discarded and requests that the transmitter resend the packet.
- source computer 14 a is desirous of communicating via a home networking protocol (e.g., HPNA specification versions 1.0 and 2.0) with destination computer 14 b over a channel 12 a.
- a home networking protocol e.g., HPNA specification versions 1.0 and 2.0
- Source computer 14 a wishes to send a packet(s) of data to destination computer 14 b.
- Source computer 14 a includes data source 30 and transmitter 32 .
- Transmitter 32 is typically a chip residing on a board within source computer 14 a.
- Transmitter 32 includes intrapacket encoder 34 and modulator 36 .
- Intrapacket encoder 34 performs Reed Solomon encoding to help protect the packet from errors.
- Source 30 provides the data packet to intrapacket encoder 34 , which encodes the packet, as described in more detail below.
- the encoded packet gets modulated by modulator 36 and gets sent over channel 12 a to destination computer 14 b.
- Destination computer 14 b includes receiver 38 .
- Receiver 38 has a demodulator 40 and intrapacket decoder 42 .
- Demodulator 40 demodulates the received encoded packet in accordance with the home networking protocol modulation/demodulation implemented as set forth in the HPNA specification, namely, Quadrature Amplitude Modulation (QAM).
- QAM Quadrature Amplitude Modulation
- the modulation uses constellation sizes from 4 QAM up to 256 QAM.
- Intrapacket decoder 42 receives the demodulated encoded packet, decodes the encoded packet and provides a correct packet of bytes to packet destination 44 .
- modulation/demodulation/transmission/reception are as provided by the commercially available Broadcom Model No. 4210 HomeNetworking Controller chip.
- Intrapacket encoder 34 is depicted in block diagram form.
- Intrapacket encoder 34 includes CRC encoder 46 , Reed Solomon encoder 48 and interleaver 50 .
- a packet 45 arriving at intrapacket encoder 34 is encoded by CRC encoder 46 in the manner briefly described above, adding bytes so that the receiver can later detect whether the packet is error free or not. Since the destination computer does not have any knowledge as to what is being sent by the source computer, the destination computer needs this mechanism to determine if the data received is real data or not. After the bytes get added by CRC encoder 46 , the packet gets passed on to Reed Solomon encoder 48 . Reed Solomon encoder 48 adds redundancy to protect against packet errors.
- the added redundancy is provided by the well-known Reed Solomon process, allowing the receiver to correct certain types of errors which will occur in the packet being transmitted.
- the added redundancy packet is then passed on to interleaver 50 .
- Interleaver 50 reorders the bytes to protect them against burst errors. As such, when an error burst occurs it won't affect the same group of bytes that the Reed Solomon encoder outputs, but will be dispersed over a number of bytes.
- CRC encoder 46 takes in a packet of the information bytes and runs through a computation which generates a series of check sum bytes for error detection use at the receiver. This process provides a good indication at the receiver as to whether the packet is error-free with little added redundancy.
- the same computation is performed and the check sum bytes seen at the decoder in the receiver are examined to determine if they match the check sum bytes added by CRC encoder 46 . If the check sum bytes match, such indicates that the packet is good, that is, it's error-free and useable by the destination computer. Otherwise, if the check sum bytes do not match, such indicates that the packet is not good, and that a retransmission is needed.
- the operation of CRC encoder 46 which is currently implemented pursuant to the HPNA specifications via software encoding, is described in further detail below.
- Reed Solomon encoder 48 implements a well-known class of error correcting codes wherein a block of bytes from within the packet are taken and from which a set of parity bytes is computed. These parity bytes are added on to the packet, giving added redundancy to protect the packet against errors which may occur over the transmission channel. Encoding is performed within each packet. The encoding is not stretched across multiple packets. In other words, each packet is encoded as its own entity.
- One of the parameters associated with the Reed Solomon encoding is the Galois field size. Galois field size involves math theory and abstract algebra concepts as to how to manipulate these bytes, that is, the various symbols within a Reed Solomon codeword.
- Galois field 256 GF( 256 )
- each byte is a coordinate of the codeword.
- This Galois field size provides the convenience of having computations based on byte boundaries.
- Each byte is a coordinate of a codeword and the modulation scheme utilizes constellation sizes from QPSK, which has four elements, up to 256 QAM, which has eight elements.
- each byte will contain at least one symbol which will go out onto the channel. Therefore, an error burst which affects multiple channel symbols will only affect a small number of bytes. For example, if there is a transmission of two bits per channel symbol, and the burst error affects four channel symbols, the burst error will be confined to one byte.
- the code rate is the division of the number of information coordinates by the number of codeword coordinates. Given the rate at which errors are expected to be seen in the channel, the Reed Solomon code rate can be 4/5 to 8/9.
- the codeword size is the number of bytes which constitute a codeword. Reed Solomon codewords are naturally defined such that the codeword size is one less than the Galois field size. As such, when using GF( 256 ), the corresponding Reed Solomon codeword would normally be 255 bytes long.
- the Reed Solomon codeword size can be reduced, for example to 40 bytes, without sacrificing code rate, resulting in a decreased decoder complexity.
- systematic encoding is implemented by Reed Solomon encoder 48 , wherein the series of bytes which come in don't get changed, but merely additional bytes are computed which get appended to the end of the packet being encoded, providing the added redundancy. As such, additional computation is not needed on the bytes which come in.
- the Reed Solomon encoding is implemented in C language as part of driver software for the Broadcom Model No. 4210 HomeNetworking Controller chip.
- interleaver 50 is described.
- Interleaver 50 reorders bytes within a packet after encoding to protect it against burst errors.
- FIG. 4 there is depicted an example of a 3 ⁇ 4 interleaver.
- Byte stream sequence 52 from Reed Solomon encoder 48 is shown entering interleaver 50 in order.
- Interleaver 50 is in essence a memory buffer wherein the bytes are read in by rows, for example, bytes c 1 , c 2 , c 3 , c 4 being read into the first row; bytes c 5 , c 6 , c 7 , c 8 being read into the second row; and bytes c 9 , c 10 , c 11 , c 12 being read into the third row.
- Interleaver 50 then outputs, as read out by columns, reordered byte stream sequence 54 .
- the size of interleaver 50 is chosen such that the number of columns is equal to the codeword size and the number of rows is equal to the maximum size of the packet that can be handled. A smaller than maximum packet will accordingly not fill all the rows.
- Intrapacket decoder 48 includes deinterleaver 56 , Reed Solomon decoder 58 and CRC decoder 60 .
- the bytes are deinterleaved by deinterleaver 56 so that the bytes are reordered in the proper order for the Reed Solomon decoding that follows.
- Reed Solomon decoder 58 corrects errors that have occurred within the packet.
- CRC decoder 60 performs computations on the bytes of the packet in order to determine whether or not the packet was error-free.
- Deinterleaver 56 is in essence the inverse of interleaver 50 described above. Deinterleaver 56 disperses corrupted bytes over many codewords. That is, when there is a number of bytes clumped together which have errors in them, after being processed by the deinterleaver, the bytes with errors in them are dispersed throughout the entire packet because they are going to be reordered and spread apart. Rather than requiring Reed Solomon decoder 58 to be able decode one localized burst, the decoder will see much more random errors and fewer errors per codeword block. As such, this aspect reduces required error correction strength of the Reed Solomon decoder and, as a result, its complexity. The same structure that is used in the interleaver is used, but in reverse, namely, with data read in as columns and read out as rows.
- Reed Solomon decoder 58 it corrects a number of errors up to half the number of parity bytes per block, that is, half the number of bytes of redundancy added per block. As can be seen, with the combination of Reed Solomon encoding and interleaving, a burst error is dispersed over many codewords and a less powerful code is needed to correct all the errors within the packet. Similar to the encoder, the decoder is implemented in C language as part of the software driver for the Broadcom Model No. 4210 HomeNetworking chip set.
- the Reed Solomon decoder implements the basic steps implementing a typical Reed Solomon decoding algorithm. Error coordinates need to be located within a codeword, that is, determining which bytes within a codeword are in error. Syndromes are first computed, which are quantities computed from receive coordinates and prove helpful in the algorithm process. The error locator polynomial is then constructed using the well-known Berlekamp Massey algorithm, which gives a quantity that is passed on to the next step, namely, performing a Chien search. The Chien search determines which bytes within a codeword had an error. Once it is determined which bytes were in error, the magnitude of the error is then determined, so that the error can be corrected (subtracted off), for example, by an algorithm developed by Forney. Once the corrections are made to the codeword, the redundant bytes (parity bytes added in at the encoder) are removed.
- CRC decoder 60 runs a computation on the packet it receives in order to determine whether or not it has errors. It then compares the result of the computation with the last few bytes of the packet, and if there is a match, the packet is error-free and can be used by the destination computer. If it doesn't match, the packet is indicated as being invalid and that a valid packet needs to be resent.
- CRC encoder 46 utilizes the standard CRC-32 encoder typically implemented in Ethernet and compression algorithm systems. It provides a relatively straightforward way to add some minimal redundancy to the transmitted data to determine whether there are any errors at the receiver.
- packet 62 containing L bytes u 1 , u 2 , . . . uL to be encoded.
- the first four bytes u 1 , u 2 , u 3 , u 4 have the bits within them complemented by inverter 64 , namely bits that are 0 become 1 and bits that are 1 become 0.
- the CRC encoder is unable to detect a leading run of 0s, that is, it is unable to tell whether there is one 0 or a long string of 0s. Accordingly, the complementing is performed to start the encoder in a situation where it would see a string of 0s at the outset.
- the complemented bytes, along with the rest of the packet are loaded into buffer 66 while feeding back a generator polynomial, as indicated by numeral 68 , a procedure which performs a mathematical computation on the bytes.
- the contents of the buffer are constantly changing based on the bytes that come into the buffer and the computation performed thereon by the CRC-32 feedback polynomial.
- inverter 70 performs another complementing.
- the four byte buffer contents as complemented will be taken as parity bytes to be associated with the packet.
- These four parity bytes 72 will be a unique four byte check sum element for the packet and are concatenated at the end of the packet.
- CRC decoder 60 is implemented in a very similar fashion to that of CRC encoder 46 .
- the last four bytes are not concerned with at first.
- the other L bytes of the sequence u 1 , u 2 , . . . ul sequence 62 are re-encoded in the same way as at encoder 46 . That is, the first four bytes u 1 , u 2 , u 3 , u 4 have the bits within them complemented by inverter 74 , namely bits that are 0 become 1 and bits that are 1 become 0.
- Reed Solomon encoder 48 and its counterpart Reed Solomon decoder 58 are described in more detail.
- Encoder 48 breaks packet 86 into K byte blocks, where K is a parameter associated with the Reed Solomon encoder. Redundancy is then added to the K bytes and expands them into N byte segments of the packet.
- Computations are then performed on the bytes through feedback polynomial g(x), as indicated by numeral 92 , a known generator polynomial for the Reed Solomon code.
- the computation provides a series 94 of N-K redundancy bytes y 1 . . . yn-k.
- the N-K bytes are appended at the end of the K bytes X 1 . . . Xk.
- a coded packet 96 having a series of N byte segments. In the event that the packet does not end on a K byte boundary, the end of the packet has 0s added to complete the full block up to the boundary.
- the encoding is then done over Galois field 256 .
- this encoding is a systematic implementation, wherein the X 1 . . . Xk bytes pass through without being modified and, as such, the Y 1 . . . Yn-k are only calculated. This allows the data that came into the encoder to be provided directly at the output of the encoder.
- the systematic coding is helpful in reducing the number of operations performed both a the encoder and at the decoder.
- Decoder 58 performs the inverse operation of encoder 48 .
- Coded packet 98 having groups of N bytes received at decoder 58 have a computation performed on them to obtain decoded packet 100 having groups of K bytes.
- the decoding will attempt to compute the K bytes which most likely led to the N bytes.
- Received bytes 102 r 1 . . . rn are taken wherein syndromes are computed, as indicated by block 104 .
- the syndromes are intermediate parameters in the decoding algorithm which will be helpful in the later stages of the processing.
- the Berlekamp Massey algorithm is applied, as indicated by block 106 , generating an error locator polynomial.
- This polynomial a mathematical construct, has as its root values 1 through N, which represent the locations of the errors within the N byte block.
- a Chien search as indicated by block 108 , is then performed.
- a cycling through all possible values of 1 through N is undertaken in order to determine what the roots are of the error locator polynomial and thereby determine the actual error location.
- the error magnitude is then determined, so that the errors can be subtracted off and the original K bytes recovered.
- the standard Forney algorithm as indicated by block 110 , is then performed to compute the error magnitude.
- error event polynomial 112 e 1 . . . en is generated.
- error event polynomial is combined with the received bytes, as indicated by block 114 , a valid N byte Reed Solomon codeword will be produced. From the N bytes the K bytes are extracted and concatenated and then passed on to the CRC decoder in the next stage of the decoding process.
- error correction encoding has been applied to packets involved in home networking transmission to protect the packet transmission from errors that are incurred in home networking channels.
- Reed Solomon encoding used in conjunction with interleaving helps avoid an impact on the packet transmission resulting from home networking channel transmission errors of a bursty nature which can randomly affect bunches of bytes in a row.
- the present invention provides a significant improvement in error correction based upon these types of errors.
- the encoding and interleaving can be performed in software as part of the software driver for existing commercially available HPNA specification implemented chip sets, such as the Broadcom Model No. BCM 4210 chip set.
- This software implementation would not require modification of existing hardware and is distinct from other interleaved Reed Solomon encoding systems (such as those typically found in the compact disc audio system) which perform the operations in hardware.
- Such a software implementation does not impede the performance of the computers which implement current HPNA specification versions 1.0 and 2.0.
- the central processing unit (CPU) processing power needed to encode, decode, and interleave can be less than 50 percent of the total processing power.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
Description
- This patent application is a continuation of U.S. patent application Ser. No. 09/573,243 filed on May 18, 2000.
- The present invention relates to the field of data encoding and decoding, and in particular, data encoding/decoding for use in a home network communications system.
- As computers become more and more cost effective for the everyday consumer and for small businesses, such computers become more plentiful for use within local area environments such as homes, office buildings and the like. For example, within a home a person with a computer in the bedroom, and another in the living room, may want to share common files, utilize a common digital subscriber line (DSL), or otherwise transfer information between the computers. Accordingly, various technologies are being developed for computer interconnection of multiple computers located within such environments. One example of such technologies are the Home Phoneline Network Alliance (HPNA) specifications for local area network (LAN) computer interconnection which utilize existing telephone lines within the local environment for the transmission of data packets between the computers. Another example is the use of existing power lines within the home as a transmission medium.
- A method of transmitting and receiving data packets over a channel susceptible to random burst, and/or even additive white gaussian noise, channel errors is provided. Each data packet is encoded to form error correctable encoded data packets. Each error correctable encoded data packet is interleaved to form interleaved error correctable encoded data packets. Each interleaved error correctable encoded data packet is modulated to form modulated interleaved error correctable encoded data packets. Each modulated interleaved error correctable encoded data packet is transmitted over the channel. The channel can be a telephone line. The encoding includes performing Reed Solomon encoding on each data packet to form Reed Solomon error correctable encoded data packets. Each data packet is cyclic redundancy check encoded prior to performing Reed Solomon encoding. Modulated interleaved error correctable encoded data packets are received from the channel. Each modulated interleaved error correctable encoded data packet is demodulated to form demodulated interleaved error correctable encoded data packets. Each demodulated error correctable encoded data packet is deinterleaved to form deinterleaved demodulated error correctable encoded data packets. Each deinterleaved demodulated error correctable encoded data packet is decoded to extract each transmitted data packet. The decoding includes performing Reed Solomon decoding on each deinterleaved demodulated error correctable encoded data packet to form Reed Solomon decoded data packets. Each Reed Solomon decoded data packet is cyclic redundancy check decoded after performing Reed Solomon decoding.
- A system for transmitting and receiving data packets over a channel susceptible to random burst and/or white gaussian noise channel errors is also provided. A transmitter and a receiver are coupled to the channel.
- The transmitter includes:
- an encoder for encoding each data packet to form error correctable encoded data packets;
- an interleaver coupled to the encoder for interleaving each error correctable encoded data packet to form interleaved error correctable encoded data packets;
- a modulator coupled to the interleaver for modulating each interleaved error correctable encoded data packet to form modulated interleaved error correctable encoded data packets.
- The receiver includes:
- a demodulator for receiving modulated interleaved error correctable encoded data packets from the channel and demodulating each modulated interleaved error correctable encoded data packet to form demodulated interleaved error correctable encoded data packets;
- a deinterleaver coupled to the demodulator for deinterleaving each demodulated error correctable encoded data packet to form deinterleaved demodulated error correctable encoded data packets;
- a decoder coupled to the deinterleaver for decoding each deinterleaved demodulated error correctable encoded data packet to extract each transmitted data packet.
- FIG. 1 shows in block diagram form a home networking environment within which the present invention can be implemented.
- FIG. 2 shows in block diagram form an embodiment of the present invention.
- FIG. 3 shows in block diagram form an embodiment of an intrapacket encoder in accordance with the present invention.
- FIG. 4 shows in block diagram form the operation of an interleaver in accordance with the present invention.
- FIG. 5 shows in block diagram form an embodiment of an intrapacket decoder in accordance with the present invention.
- FIG. 6 shows in block diagram form an embodiment of a CRC encoder in accordance with the present invention.
- FIG. 7 shows in block diagram form an embodiment of a CRC decoder in accordance with the present invention.
- FIG. 8 shows in block diagram form an embodiment of a Reed Solomon encoder in accordance with the present invention.
- FIG. 9 shows in block diagram form an embodiment of a Reed Solomon decoder in accordance with the present invention.
- FIG. 1 depicts a typical home environment.
Home network 10 includes existing (installed) plain old telephone service (POTS)wiring 12,network clients 14, the computer port side ofmodem 16 andfax 18.POTS wiring 12 provides wiring infrastructure used to network multiple clients at a customer premises (e.g., home) 20.POTS wiring 12 can be conventional unshielded twisted pair (UTP) wiring that is generally routed internally in the walls of thecustomer premises 20 to various locations (e.g., rooms) within the customer premises. Subscriber loop 22(also called a “local loop”) is a physical wiring link that directly connects anindividual customer premises 20 to the Central Office throughtelephone network interface 24, a demarcation point between the inside and outside ofcustomer premises 20. - Of particular importance for these networks are systems that provide communication between computers as reliably and with as high a data rate as possible. Such reliability necessitates combating the introduction of errors in data packets that are transmitted between computers. Such errors can arise from various electrical signals which can occur from electrical devices within the home, for example, impulse noise from a refrigerator, or from a phone ringing. These types of electrical appliances generate electrical signals which will couple into the UTP or whatever medium that is being used to transmit the data between the computers which are communicating. Such a ringing phone generates an electrical impulse signal which can corrupt a portion of the data packet being transmitted. Such errors are localized in time and corrupt a small segment of the data being transferred back and forth. These types of errors are generally referred to a “error bursts”. Channels over which data is transmitted that have such errors are generally referred to as “bursty error channels”.
- Further, even in channels where bursts are not received, distortions can occur from additive white gaussian noise.
- While within the HPNA specifications there is provided a means for the system to adapt itself to changes in the channel when there is suddenly an increase in noise or there is some other disturbance that is causing gross changes in the wiring, however, such adaptation does take some time. Therefore, during the time period from when the channel changes occur until the computers catch up (adapt), there may be quite a few errors occurring.
- Also, in accordance with the HPNA specifications, within the receiver there is a device called the decision feedback equalizer. It makes tentative decisions as to what bits were being sent and then tries to subtract out the sources of errors based upon the tentative decisions. However, in the case where the tentative decisions are not very good, the attempt to subtract out the errors tends to create further errors. In other words, it actually hurts the system rather than helping it.
- Reiterating, these types of error events are ones that are generally localized in time, namely, they don't happen at a regular occurrence. Most of the time the transmission will be acceptable, but occasionally there can be a bunch of errors grouped together. At the rate at which these errors typically occur, the transmitted packets will see at most one error burst.
- At present, the HPNA specifications do not use any error correcting code system. It uses a simple well-known cyclic redundancy check (CRC). In accordance with the CRC process a number is developed based upon the statistical computation on the bytes which are in the packet. At the receive end, if the number matches a preset number, there is a presumption that the number is correct and, therefore, that there are not any errors. If the number does not match, there is a presumption that there are errors. The receiver thereupon indicates that the packet should be discarded and requests that the transmitter resend the packet.
- Therefore, a need exists for error correcting codes which can form part of the technologies being developed which utilize telephone wiring (or alternatively power line wiring) within the home or office. If error correcting codes in accordance with the present invention are implemented, fewer packets will have errors that require a retransmission of the packet. As such, more of the packets will arrive correctly at the receiver on the first try, and thereby result in a higher data rate, and, in turn, provide a net increase in system data throughput.
- Referring to FIG. 2, there is depicted in block diagram form an embodiment of the present invention wherein
source computer 14 a is desirous of communicating via a home networking protocol (e.g., HPNA specification versions 1.0 and 2.0) withdestination computer 14 b over achannel 12 a. The environment in which the embodiment operates is similar to that depicted in FIG. 1.Source computer 14 a wishes to send a packet(s) of data todestination computer 14 b.Source computer 14 a includesdata source 30 andtransmitter 32.Transmitter 32 is typically a chip residing on a board withinsource computer 14 a.Transmitter 32 includesintrapacket encoder 34 andmodulator 36.Intrapacket encoder 34 performs Reed Solomon encoding to help protect the packet from errors.Source 30 provides the data packet tointrapacket encoder 34, which encodes the packet, as described in more detail below. The encoded packet gets modulated bymodulator 36 and gets sent overchannel 12 a todestination computer 14 b.Destination computer 14 b includesreceiver 38.Receiver 38 has ademodulator 40 andintrapacket decoder 42.Demodulator 40 demodulates the received encoded packet in accordance with the home networking protocol modulation/demodulation implemented as set forth in the HPNA specification, namely, Quadrature Amplitude Modulation (QAM). The modulation uses constellation sizes from 4 QAM up to 256 QAM.Intrapacket decoder 42 receives the demodulated encoded packet, decodes the encoded packet and provides a correct packet of bytes topacket destination 44. - The modulation/demodulation/transmission/reception are as provided by the commercially available Broadcom Model No. 4210 HomeNetworking Controller chip.
- Referring to FIG. 3,
intrapacket encoder 34 is depicted in block diagram form.Intrapacket encoder 34 includesCRC encoder 46,Reed Solomon encoder 48 andinterleaver 50. A packet 45 arriving atintrapacket encoder 34 is encoded byCRC encoder 46 in the manner briefly described above, adding bytes so that the receiver can later detect whether the packet is error free or not. Since the destination computer does not have any knowledge as to what is being sent by the source computer, the destination computer needs this mechanism to determine if the data received is real data or not. After the bytes get added byCRC encoder 46, the packet gets passed on toReed Solomon encoder 48.Reed Solomon encoder 48 adds redundancy to protect against packet errors. The added redundancy is provided by the well-known Reed Solomon process, allowing the receiver to correct certain types of errors which will occur in the packet being transmitted. The added redundancy packet is then passed on tointerleaver 50.Interleaver 50 reorders the bytes to protect them against burst errors. As such, when an error burst occurs it won't affect the same group of bytes that the Reed Solomon encoder outputs, but will be dispersed over a number of bytes. - Still referring to FIG. 3,
CRC encoder 46 takes in a packet of the information bytes and runs through a computation which generates a series of check sum bytes for error detection use at the receiver. This process provides a good indication at the receiver as to whether the packet is error-free with little added redundancy. At the receiver, the same computation is performed and the check sum bytes seen at the decoder in the receiver are examined to determine if they match the check sum bytes added byCRC encoder 46. If the check sum bytes match, such indicates that the packet is good, that is, it's error-free and useable by the destination computer. Otherwise, if the check sum bytes do not match, such indicates that the packet is not good, and that a retransmission is needed. The operation ofCRC encoder 46, which is currently implemented pursuant to the HPNA specifications via software encoding, is described in further detail below. - Still referring to FIG. 3,
Reed Solomon encoder 48 implements a well-known class of error correcting codes wherein a block of bytes from within the packet are taken and from which a set of parity bytes is computed. These parity bytes are added on to the packet, giving added redundancy to protect the packet against errors which may occur over the transmission channel. Encoding is performed within each packet. The encoding is not stretched across multiple packets. In other words, each packet is encoded as its own entity. One of the parameters associated with the Reed Solomon encoding is the Galois field size. Galois field size involves math theory and abstract algebra concepts as to how to manipulate these bytes, that is, the various symbols within a Reed Solomon codeword. The number of bits are specified which correspond to a coordinate of the code word. In accordance with the present invention Galois field 256, GF(256), is chosen, wherein each byte is a coordinate of the codeword. This Galois field size provides the convenience of having computations based on byte boundaries. Each byte is a coordinate of a codeword and the modulation scheme utilizes constellation sizes from QPSK, which has four elements, up to 256 QAM, which has eight elements. - As such, each byte will contain at least one symbol which will go out onto the channel. Therefore, an error burst which affects multiple channel symbols will only affect a small number of bytes. For example, if there is a transmission of two bits per channel symbol, and the burst error affects four channel symbols, the burst error will be confined to one byte.
- By having a large Galois field size there is provided the advantage of “trapping” the bursts which occur in the channel to a very small fraction of the codeword, i.e., within a few codeword coordinates, allowing it to be easily correctable.
- This choice of Galois field size allows an efficient implementation in software and an efficient use of memory. As part of the Reed Solomon encoding process, the code rate and codeword size are determined. The code rate is the division of the number of information coordinates by the number of codeword coordinates. Given the rate at which errors are expected to be seen in the channel, the Reed Solomon code rate can be 4/5 to 8/9. The codeword size is the number of bytes which constitute a codeword. Reed Solomon codewords are naturally defined such that the codeword size is one less than the Galois field size. As such, when using GF(256), the corresponding Reed Solomon codeword would normally be 255 bytes long. However, in accordance with the present invention, the Reed Solomon codeword size can be reduced, for example to 40 bytes, without sacrificing code rate, resulting in a decreased decoder complexity. Further, systematic encoding is implemented by
Reed Solomon encoder 48, wherein the series of bytes which come in don't get changed, but merely additional bytes are computed which get appended to the end of the packet being encoded, providing the added redundancy. As such, additional computation is not needed on the bytes which come in. The Reed Solomon encoding is implemented in C language as part of driver software for the Broadcom Model No. 4210 HomeNetworking Controller chip. - Referring to FIGS. 3 and 4,
interleaver 50 is described. -
Interleaver 50 reorders bytes within a packet after encoding to protect it against burst errors. In FIG. 4, there is depicted an example of a 3×4 interleaver.Byte stream sequence 52 fromReed Solomon encoder 48 is shown enteringinterleaver 50 in order.Interleaver 50 is in essence a memory buffer wherein the bytes are read in by rows, for example, bytes c1, c2, c3, c4 being read into the first row; bytes c5, c6, c7, c8 being read into the second row; and bytes c9, c10, c11, c12 being read into the third row.Interleaver 50 then outputs, as read out by columns, reorderedbyte stream sequence 54. The size ofinterleaver 50 is chosen such that the number of columns is equal to the codeword size and the number of rows is equal to the maximum size of the packet that can be handled. A smaller than maximum packet will accordingly not fill all the rows. - Referring to FIG. 5,
intrapacket decoder 42 is shown in more detail.Intrapacket decoder 48 includesdeinterleaver 56,Reed Solomon decoder 58 andCRC decoder 60. Coming in fromdemodulator 40, the bytes are deinterleaved bydeinterleaver 56 so that the bytes are reordered in the proper order for the Reed Solomon decoding that follows.Reed Solomon decoder 58 corrects errors that have occurred within the packet.CRC decoder 60 performs computations on the bytes of the packet in order to determine whether or not the packet was error-free. - Still referring to FIG. 5,
deinterleaver 56 is discussed in more detail.Deinterleaver 56 is in essence the inverse ofinterleaver 50 described above.Deinterleaver 56 disperses corrupted bytes over many codewords. That is, when there is a number of bytes clumped together which have errors in them, after being processed by the deinterleaver, the bytes with errors in them are dispersed throughout the entire packet because they are going to be reordered and spread apart. Rather than requiringReed Solomon decoder 58 to be able decode one localized burst, the decoder will see much more random errors and fewer errors per codeword block. As such, this aspect reduces required error correction strength of the Reed Solomon decoder and, as a result, its complexity. The same structure that is used in the interleaver is used, but in reverse, namely, with data read in as columns and read out as rows. - With regard to
Reed Solomon decoder 58, it corrects a number of errors up to half the number of parity bytes per block, that is, half the number of bytes of redundancy added per block. As can be seen, with the combination of Reed Solomon encoding and interleaving, a burst error is dispersed over many codewords and a less powerful code is needed to correct all the errors within the packet. Similar to the encoder, the decoder is implemented in C language as part of the software driver for the Broadcom Model No. 4210 HomeNetworking chip set. - The Reed Solomon decoder implements the basic steps implementing a typical Reed Solomon decoding algorithm. Error coordinates need to be located within a codeword, that is, determining which bytes within a codeword are in error. Syndromes are first computed, which are quantities computed from receive coordinates and prove helpful in the algorithm process. The error locator polynomial is then constructed using the well-known Berlekamp Massey algorithm, which gives a quantity that is passed on to the next step, namely, performing a Chien search. The Chien search determines which bytes within a codeword had an error. Once it is determined which bytes were in error, the magnitude of the error is then determined, so that the error can be corrected (subtracted off), for example, by an algorithm developed by Forney. Once the corrections are made to the codeword, the redundant bytes (parity bytes added in at the encoder) are removed.
- Still referring to FIG. 5,
CRC decoder 60 runs a computation on the packet it receives in order to determine whether or not it has errors. It then compares the result of the computation with the last few bytes of the packet, and if there is a match, the packet is error-free and can be used by the destination computer. If it doesn't match, the packet is indicated as being invalid and that a valid packet needs to be resent. - With the combination of the Reed Solomon encoding and interleaving, the amount of time that good packets are seen at the CRC decoder increases and the need for packet retransmissions is reduced. Such will thereby improve the overall throughput of the entire system.
- Referring now to FIGS. 6 and 7
CRC encoder 46 and itscounterpart CRC decoder 60 are described in more detail. Referring to FIG. 6,CRC encoder 46 utilizes the standard CRC-32 encoder typically implemented in Ethernet and compression algorithm systems. It provides a relatively straightforward way to add some minimal redundancy to the transmitted data to determine whether there are any errors at the receiver. As an operational example, considerpacket 62 containing L bytes u1, u2, . . . uL to be encoded. The first four bytes u1, u2, u3, u4 have the bits within them complemented by inverter 64, namely bits that are 0 become 1 and bits that are 1 become 0. This is undertaken because the CRC encoder is unable to detect a leading run of 0s, that is, it is unable to tell whether there is one 0 or a long string of 0s. Accordingly, the complementing is performed to start the encoder in a situation where it would see a string of 0s at the outset. The complemented bytes, along with the rest of the packet are loaded intobuffer 66 while feeding back a generator polynomial, as indicated bynumeral 68, a procedure which performs a mathematical computation on the bytes. As one byte at a time is cycled throughbuffer 66, the contents of the buffer, a four byte buffer for example, are constantly changing based on the bytes that come into the buffer and the computation performed thereon by the CRC-32 feedback polynomial. Once the end of the packet is reached,inverter 70 performs another complementing. The four byte buffer contents as complemented will be taken as parity bytes to be associated with the packet. These fourparity bytes 72 will be a unique four byte check sum element for the packet and are concatenated at the end of the packet. - Referring to FIG. 7, corresponding
CRC decoder 60 is described in more detail.CRC decoder 60 is implemented in a very similar fashion to that ofCRC encoder 46. The last four bytes are not concerned with at first. The other L bytes of the sequence u1, u2 , . . .ul sequence 62 are re-encoded in the same way as atencoder 46. That is, the first four bytes u1, u2, u3, u4 have the bits within them complemented byinverter 74, namely bits that are 0 become 1 and bits that are 1 become 0. The complemented bytes, along with the rest of the packet are loaded intobuffer 76 while feeding back a generator polynomial, as indicated bynumeral 78, a similar CRC-32 mathematical computation procedure performed on the bytes. As one byte at a time is cycled throughbuffer 76, the contents of the similar four byte buffer constantly change based on the bytes that come into the buffer and the computation performed thereon by the CRC-32 feedback polynomial. Once the end of the packet is reached,inverter 80 performs another complementing function resulting inbytes 82. When a comparison is made atcomparator 84 betweenbytes 82 andbytes 72, if these bytes match the packet is considered valid. If these bytes do not match, a error is indicated and a retransmission of the packet is requested from the transmitter by a standard feedback acknowledgment process. - Referring now to FIGS. 8 and 9
Reed Solomon encoder 48 and its counterpartReed Solomon decoder 58 are described in more detail. Referring to FIG. 8, considerpacket 86 to be processed.Encoder 48 breakspacket 86 into K byte blocks, where K is a parameter associated with the Reed Solomon encoder. Redundancy is then added to the K bytes and expands them into N byte segments of the packet. For example, typical values for N and K can be N=40 and K=32, providing, for example, a 4/5 code rate, as was previously described. For one segment of the packet X1 . . .Xk bytes 88 are fed intoN-K byte buffer 90. Computations are then performed on the bytes through feedback polynomial g(x), as indicated bynumeral 92, a known generator polynomial for the Reed Solomon code. The computation provides aseries 94 of N-K redundancy bytes y1 . . . yn-k. The N-K bytes are appended at the end of the K bytes X1 . . . Xk. As such, there is provided a codedpacket 96, having a series of N byte segments. In the event that the packet does not end on a K byte boundary, the end of the packet has 0s added to complete the full block up to the boundary. The encoding is then done over Galois field 256. It should be noted that this encoding is a systematic implementation, wherein the X1 . . . Xk bytes pass through without being modified and, as such, the Y1 . . . Yn-k are only calculated. This allows the data that came into the encoder to be provided directly at the output of the encoder. The systematic coding is helpful in reducing the number of operations performed both a the encoder and at the decoder. - Referring to FIG. 9, corresponding
Reed Solomon decoder 58 is described in more detail.Decoder 58 performs the inverse operation ofencoder 48.Coded packet 98 having groups of N bytes received atdecoder 58 have a computation performed on them to obtain decodedpacket 100 having groups of K bytes. Given the N bytes that are received, the decoding will attempt to compute the K bytes which most likely led to the N bytes.Received bytes 102 r1 . . . rn are taken wherein syndromes are computed, as indicated byblock 104. The syndromes are intermediate parameters in the decoding algorithm which will be helpful in the later stages of the processing. After the syndromes are computed, the Berlekamp Massey algorithm is applied, as indicated byblock 106, generating an error locator polynomial. This polynomial, a mathematical construct, has as itsroot values 1 through N, which represent the locations of the errors within the N byte block. A Chien search, as indicated byblock 108, is then performed. A cycling through all possible values of 1 through N is undertaken in order to determine what the roots are of the error locator polynomial and thereby determine the actual error location. Once the error location is determined, the error magnitude is then determined, so that the errors can be subtracted off and the original K bytes recovered. The standard Forney algorithm, as indicated byblock 110, is then performed to compute the error magnitude. Once the error magnitude and locations are determined,error event polynomial 112 e1 . . . en is generated. When the error event polynomial is combined with the received bytes, as indicated byblock 114, a valid N byte Reed Solomon codeword will be produced. From the N bytes the K bytes are extracted and concatenated and then passed on to the CRC decoder in the next stage of the decoding process. - In essence, as set forth above, in accordance with the present invention, error correction encoding has been applied to packets involved in home networking transmission to protect the packet transmission from errors that are incurred in home networking channels. Reed Solomon encoding used in conjunction with interleaving helps avoid an impact on the packet transmission resulting from home networking channel transmission errors of a bursty nature which can randomly affect bunches of bytes in a row. The present invention provides a significant improvement in error correction based upon these types of errors.
- It should be noted, that in accordance with the present invention, rather than implementing the encoding and the decoding algorithms in hardware, the encoding and interleaving can be performed in software as part of the software driver for existing commercially available HPNA specification implemented chip sets, such as the Broadcom Model No. BCM 4210 chip set. This software implementation would not require modification of existing hardware and is distinct from other interleaved Reed Solomon encoding systems (such as those typically found in the compact disc audio system) which perform the operations in hardware. Such a software implementation does not impede the performance of the computers which implement current HPNA specification versions 1.0 and 2.0. The central processing unit (CPU) processing power needed to encode, decode, and interleave can be less than 50 percent of the total processing power.
- Those skilled in the art can appreciate that, while one embodiment of the present invention has been described, various alternatives can be utilized to practice the invention. For example, different parameters for N and K, different Reed Solomon polynomials, non-systematic rather than systematic encoding, different types of interleavers, all can be chosen rather than the aspects set forth in the embodiments described herein.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/628,675 US20040073861A1 (en) | 2000-05-18 | 2003-07-28 | Interleaved reed solomon coding for home networking |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/573,243 US7549107B1 (en) | 2000-05-18 | 2000-05-18 | Interleaved reed solomon coding for home networking |
US10/628,675 US20040073861A1 (en) | 2000-05-18 | 2003-07-28 | Interleaved reed solomon coding for home networking |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/573,243 Continuation US7549107B1 (en) | 2000-05-18 | 2000-05-18 | Interleaved reed solomon coding for home networking |
Publications (1)
Publication Number | Publication Date |
---|---|
US20040073861A1 true US20040073861A1 (en) | 2004-04-15 |
Family
ID=24291200
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/573,243 Expired - Fee Related US7549107B1 (en) | 2000-05-18 | 2000-05-18 | Interleaved reed solomon coding for home networking |
US10/628,675 Abandoned US20040073861A1 (en) | 2000-05-18 | 2003-07-28 | Interleaved reed solomon coding for home networking |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/573,243 Expired - Fee Related US7549107B1 (en) | 2000-05-18 | 2000-05-18 | Interleaved reed solomon coding for home networking |
Country Status (4)
Country | Link |
---|---|
US (2) | US7549107B1 (en) |
EP (1) | EP1285504A2 (en) |
AU (1) | AU2001255678A1 (en) |
WO (1) | WO2001089135A2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009129675A1 (en) * | 2008-04-23 | 2009-10-29 | 中兴通讯股份有限公司 | A decoding method and device for reed-solomon code |
US20210326201A1 (en) * | 2020-04-16 | 2021-10-21 | SK Hynix Inc. | Controller and operating method thereof |
US20230421294A1 (en) * | 2021-06-24 | 2023-12-28 | SK Hynix Inc. | Transmitting device, transmitting and receiving system using the transmitting device, and transmitting and receiving method |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7630489B2 (en) * | 2004-09-16 | 2009-12-08 | Infineon Technologies Ag | Adaptive communication systems and methods |
DE102006026895B3 (en) * | 2006-06-09 | 2007-11-08 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Convolution interleaver device for processing code word, has interlacing device changing sequence of interlacing units to receive interlaced code words, where interlacing device does not change sequence of symbols within interlacing units |
KR100847560B1 (en) * | 2006-12-11 | 2008-07-21 | 삼성전자주식회사 | Circuits and methods for correcting errors in downloading firmware |
WO2014003599A1 (en) | 2012-06-29 | 2014-01-03 | Ems Corparation | Redundant disc encoding via erasure decoding |
Citations (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5383204A (en) * | 1993-06-29 | 1995-01-17 | Mitsubishi Semiconductor America, Inc. | Parallel encoding apparatus and method implementing cyclic redundancy check and Reed-Solomon codes |
US5533019A (en) * | 1994-01-31 | 1996-07-02 | Motorola, Inc. | Packet data in an analog cellular radiotelephone system |
US5666370A (en) * | 1993-09-10 | 1997-09-09 | Hughes Electronics | High performance error control coding in channel encoders and decoders |
US5708961A (en) * | 1995-05-01 | 1998-01-13 | Bell Atlantic Network Services, Inc. | Wireless on-premises video distribution using digital multiplexing |
US5727025A (en) * | 1994-01-24 | 1998-03-10 | Yamar Ltd. | Voice, music, video and data transmission over direct current wires |
US5910949A (en) * | 1995-10-18 | 1999-06-08 | Telefonaktiebolaget Lm Ericsson | Packet channel feedback |
US6005477A (en) * | 1997-04-17 | 1999-12-21 | Abb Research Ltd. | Method and apparatus for information transmission via power supply lines |
US6034996A (en) * | 1997-06-19 | 2000-03-07 | Globespan, Inc. | System and method for concatenating reed-solomon and trellis codes |
US6130894A (en) * | 1998-03-09 | 2000-10-10 | Broadcom Homenetworking, Inc. | Off-line broadband network interface |
US6157642A (en) * | 1997-10-14 | 2000-12-05 | Teledesic Llc | Coding system and method for low-earth orbit satellite data communication |
US6201563B1 (en) * | 1998-06-08 | 2001-03-13 | Lsi Logic Corporation | Trellis code modulation decoder structure for advanced digital television receiver |
US6263466B1 (en) * | 1998-03-05 | 2001-07-17 | Teledesic Llc | System and method of separately coding the header and payload of a data packet for use in satellite data communication |
US6292917B1 (en) * | 1998-09-30 | 2001-09-18 | Agere Systems Guardian Corp. | Unequal error protection for digital broadcasting using channel classification |
US6323788B1 (en) * | 1999-05-20 | 2001-11-27 | Samsung Electronics Co., Ltd. | Interleaving apparatus and method for use in serial concatenated convolutional code encoder in a mobile communication system |
US6337877B1 (en) * | 1998-08-27 | 2002-01-08 | Legerity, Inc. | Method and apparatus for scaling modem transfer capacity in a multi-channel communications system |
US6366771B1 (en) * | 1995-06-21 | 2002-04-02 | Arron S. Angle | Wireless communication network having voice and data communication capability |
US6377814B1 (en) * | 2000-02-07 | 2002-04-23 | Qualcomm Incorporated | Method and apparatus for supervising transmit power in a high data rate system |
US6389034B1 (en) * | 1998-09-04 | 2002-05-14 | Nortel Networks Limited | System for providing stream based and packet based services |
US6438109B1 (en) * | 2000-02-07 | 2002-08-20 | Motorola, Inc. | Method to establish a home network on multiple physical layers |
US6449288B1 (en) * | 1998-05-09 | 2002-09-10 | Centillium Communications, Inc. | Bi-level framing structure for improved efficiency DSL over noisy lines |
US6480976B1 (en) * | 1999-03-11 | 2002-11-12 | Globespanvirata, Inc. | System and method for resource optimized integrated forward error correction in a DMT communication system |
US6487200B1 (en) * | 1996-04-04 | 2002-11-26 | At&T Corp. | Packet telephone system |
US6511020B2 (en) * | 2000-01-07 | 2003-01-28 | The Boeing Company | Method for limiting interference between satellite communications systems |
US6519326B1 (en) * | 1998-05-06 | 2003-02-11 | At&T Corp. | Telephone voice-ringing using a transmitted voice announcement |
US6526581B1 (en) * | 1999-08-03 | 2003-02-25 | Ucentric Holdings, Llc | Multi-service in-home network with an open interface |
US6542500B1 (en) * | 1997-12-31 | 2003-04-01 | At&T Corp. | Network server platform (NSP) for a hybrid coaxial/twisted pair local loop network service architecture |
US6601209B1 (en) * | 2000-03-17 | 2003-07-29 | Verizon Laboratories Inc. | System and method for reliable data transmission over fading internet communication channels |
US6678740B1 (en) * | 2000-01-14 | 2004-01-13 | Terayon Communication Systems, Inc. | Process carried out by a gateway in a home network to receive video-on-demand and other requested programs and services |
US6725372B1 (en) * | 1999-12-02 | 2004-04-20 | Verizon Laboratories Inc. | Digital watermarking |
US6732315B2 (en) * | 2000-01-31 | 2004-05-04 | Texas Instruments Incorporated | Home networking over phone lines |
US6778646B1 (en) * | 1999-11-04 | 2004-08-17 | 2Wire, Inc. | System and method for coupling multiple home networks |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4559625A (en) * | 1983-07-28 | 1985-12-17 | Cyclotomics, Inc. | Interleavers for digital communications |
US5448593A (en) * | 1984-03-06 | 1995-09-05 | Cyplex Corporation | Frequency hopping time-diversity communications systems and transceivers for local area networks |
US5896443A (en) * | 1997-01-10 | 1999-04-20 | Intel Corporation | Phone line computer networking |
US6480521B1 (en) | 1997-03-26 | 2002-11-12 | Qualcomm Incorporated | Method and apparatus for transmitting high speed data in a spread spectrum communications system |
AU8479298A (en) | 1997-07-15 | 1999-02-10 | Comsat Corporation | Method and apparatus for adaptive loss-less compression of cell/packet headers |
US6069899A (en) * | 1997-08-28 | 2000-05-30 | Broadcam Homenetworking, Inc. | Home area network system and method |
US7027537B1 (en) * | 1999-03-05 | 2006-04-11 | The Board Of Trustees Of The Leland Stanford Junior University | Iterative multi-user detection |
US6868072B1 (en) * | 1999-03-19 | 2005-03-15 | Broadcom Corporation | Home phone line network architecture |
US6574237B1 (en) * | 1999-03-19 | 2003-06-03 | Agere Systems Inc. | Inoperable network device |
US7127734B1 (en) * | 1999-04-12 | 2006-10-24 | Texas Instruments Incorporated | System and methods for home network communications |
US6989733B2 (en) * | 2000-05-02 | 2006-01-24 | Phonex Broadbank Corp. | Method and system for adapting a telephone line modem for use on the power line |
-
2000
- 2000-05-18 US US09/573,243 patent/US7549107B1/en not_active Expired - Fee Related
-
2001
- 2001-04-25 EP EP01928866A patent/EP1285504A2/en not_active Withdrawn
- 2001-04-25 WO PCT/US2001/013356 patent/WO2001089135A2/en active Application Filing
- 2001-04-25 AU AU2001255678A patent/AU2001255678A1/en not_active Abandoned
-
2003
- 2003-07-28 US US10/628,675 patent/US20040073861A1/en not_active Abandoned
Patent Citations (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5383204A (en) * | 1993-06-29 | 1995-01-17 | Mitsubishi Semiconductor America, Inc. | Parallel encoding apparatus and method implementing cyclic redundancy check and Reed-Solomon codes |
US5666370A (en) * | 1993-09-10 | 1997-09-09 | Hughes Electronics | High performance error control coding in channel encoders and decoders |
US5727025A (en) * | 1994-01-24 | 1998-03-10 | Yamar Ltd. | Voice, music, video and data transmission over direct current wires |
US5533019A (en) * | 1994-01-31 | 1996-07-02 | Motorola, Inc. | Packet data in an analog cellular radiotelephone system |
US5708961A (en) * | 1995-05-01 | 1998-01-13 | Bell Atlantic Network Services, Inc. | Wireless on-premises video distribution using digital multiplexing |
US6366771B1 (en) * | 1995-06-21 | 2002-04-02 | Arron S. Angle | Wireless communication network having voice and data communication capability |
US5910949A (en) * | 1995-10-18 | 1999-06-08 | Telefonaktiebolaget Lm Ericsson | Packet channel feedback |
US6487200B1 (en) * | 1996-04-04 | 2002-11-26 | At&T Corp. | Packet telephone system |
US6005477A (en) * | 1997-04-17 | 1999-12-21 | Abb Research Ltd. | Method and apparatus for information transmission via power supply lines |
US6034996A (en) * | 1997-06-19 | 2000-03-07 | Globespan, Inc. | System and method for concatenating reed-solomon and trellis codes |
US6157642A (en) * | 1997-10-14 | 2000-12-05 | Teledesic Llc | Coding system and method for low-earth orbit satellite data communication |
US6542500B1 (en) * | 1997-12-31 | 2003-04-01 | At&T Corp. | Network server platform (NSP) for a hybrid coaxial/twisted pair local loop network service architecture |
US6263466B1 (en) * | 1998-03-05 | 2001-07-17 | Teledesic Llc | System and method of separately coding the header and payload of a data packet for use in satellite data communication |
US6130894A (en) * | 1998-03-09 | 2000-10-10 | Broadcom Homenetworking, Inc. | Off-line broadband network interface |
US6519326B1 (en) * | 1998-05-06 | 2003-02-11 | At&T Corp. | Telephone voice-ringing using a transmitted voice announcement |
US6449288B1 (en) * | 1998-05-09 | 2002-09-10 | Centillium Communications, Inc. | Bi-level framing structure for improved efficiency DSL over noisy lines |
US6201563B1 (en) * | 1998-06-08 | 2001-03-13 | Lsi Logic Corporation | Trellis code modulation decoder structure for advanced digital television receiver |
US6337877B1 (en) * | 1998-08-27 | 2002-01-08 | Legerity, Inc. | Method and apparatus for scaling modem transfer capacity in a multi-channel communications system |
US6389034B1 (en) * | 1998-09-04 | 2002-05-14 | Nortel Networks Limited | System for providing stream based and packet based services |
US6292917B1 (en) * | 1998-09-30 | 2001-09-18 | Agere Systems Guardian Corp. | Unequal error protection for digital broadcasting using channel classification |
US6480976B1 (en) * | 1999-03-11 | 2002-11-12 | Globespanvirata, Inc. | System and method for resource optimized integrated forward error correction in a DMT communication system |
US6323788B1 (en) * | 1999-05-20 | 2001-11-27 | Samsung Electronics Co., Ltd. | Interleaving apparatus and method for use in serial concatenated convolutional code encoder in a mobile communication system |
US6526581B1 (en) * | 1999-08-03 | 2003-02-25 | Ucentric Holdings, Llc | Multi-service in-home network with an open interface |
US6778646B1 (en) * | 1999-11-04 | 2004-08-17 | 2Wire, Inc. | System and method for coupling multiple home networks |
US6725372B1 (en) * | 1999-12-02 | 2004-04-20 | Verizon Laboratories Inc. | Digital watermarking |
US6511020B2 (en) * | 2000-01-07 | 2003-01-28 | The Boeing Company | Method for limiting interference between satellite communications systems |
US6678740B1 (en) * | 2000-01-14 | 2004-01-13 | Terayon Communication Systems, Inc. | Process carried out by a gateway in a home network to receive video-on-demand and other requested programs and services |
US6732315B2 (en) * | 2000-01-31 | 2004-05-04 | Texas Instruments Incorporated | Home networking over phone lines |
US6438109B1 (en) * | 2000-02-07 | 2002-08-20 | Motorola, Inc. | Method to establish a home network on multiple physical layers |
US6377814B1 (en) * | 2000-02-07 | 2002-04-23 | Qualcomm Incorporated | Method and apparatus for supervising transmit power in a high data rate system |
US6601209B1 (en) * | 2000-03-17 | 2003-07-29 | Verizon Laboratories Inc. | System and method for reliable data transmission over fading internet communication channels |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009129675A1 (en) * | 2008-04-23 | 2009-10-29 | 中兴通讯股份有限公司 | A decoding method and device for reed-solomon code |
US20110041034A1 (en) * | 2008-04-23 | 2011-02-17 | Zte Corporation | Decoding Method and Device for Reed-Solomon Code |
US8286063B2 (en) | 2008-04-23 | 2012-10-09 | Zte Corporation | Decoding method and device for Reed-Solomon code |
US20210326201A1 (en) * | 2020-04-16 | 2021-10-21 | SK Hynix Inc. | Controller and operating method thereof |
US11693729B2 (en) * | 2020-04-16 | 2023-07-04 | SK Hynix Inc. | Controller and operating method thereof |
US20230421294A1 (en) * | 2021-06-24 | 2023-12-28 | SK Hynix Inc. | Transmitting device, transmitting and receiving system using the transmitting device, and transmitting and receiving method |
Also Published As
Publication number | Publication date |
---|---|
US7549107B1 (en) | 2009-06-16 |
AU2001255678A1 (en) | 2001-11-26 |
EP1285504A2 (en) | 2003-02-26 |
WO2001089135A2 (en) | 2001-11-22 |
WO2001089135A3 (en) | 2002-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100560712B1 (en) | Information data multiplexing transmission system, multiplexer and demultiplexer used therefor, and error correcting encoder and decoder | |
KR100935377B1 (en) | SYSTEM AND METHOD FOR COMMUNICATING DATA IN xDSL USING DATA RETRANSMISSION | |
US7017102B1 (en) | Forward Error Correction (FEC) for packetized data networks | |
US8667362B2 (en) | System and method for mitigating burst noise in a communications system | |
EP2044714B1 (en) | System and method for variable forward error correction (fec) protection | |
CA2157069C (en) | Adaptive forward error correction system | |
Wicker | Adaptive rate error control through the use of diversity combining and majority-logic decoding in a hybrid-ARQ protocol | |
US7234095B2 (en) | Turbo encoded hybrid automatic repeat request system and error detection method | |
US20020157058A1 (en) | System and method for feedback-based unequal error protection coding | |
US10721020B2 (en) | Parity frame | |
US20020146074A1 (en) | Unequal error protection of variable-length data packets based on recursive systematic convolutional coding | |
US20030002499A1 (en) | FEC block reconstruction system, method and computer program product for mitigating burst noise in a communications system | |
JP2002185336A (en) | Turbocoding method using highest minimum distance and system for realizing the same | |
US7289530B1 (en) | System and method for coding a digital wrapper frame | |
GB2216752A (en) | Forward error correction in packet switched communications | |
EP2427973B1 (en) | Joint design of discrete multi-tone (DMT) modulation and coding for DSL systems | |
US7549107B1 (en) | Interleaved reed solomon coding for home networking | |
Shiozaki et al. | A hybrid ARQ scheme with adaptive forward error correction for satellite communications | |
Joe | An adaptive hybrid ARQ scheme with concatenated FEC codes for wireless ATM | |
Chaudhary et al. | Error control techniques and their applications | |
Deng et al. | Reliability and throughput analysis of a concatenated coding scheme | |
Liu et al. | Performance of video transport over wireless networks using hybrid ARQ | |
Kim et al. | Progressive video coding for noisy channels | |
Rasmussen et al. | A comparison of trellis coded and Reed-Solomon coded hybrid-ARQ protocols over slowly fading Rayleigh channels | |
WO2003001338A2 (en) | System, method and computer program product for mitigating burst noise in a communications system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001 Effective date: 20160201 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001 Effective date: 20160201 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001 Effective date: 20170120 Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001 Effective date: 20170120 |
|
AS | Assignment |
Owner name: BROADCOM CORPORATION, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041712/0001 Effective date: 20170119 |