US6931583B2 - Decoding extended error correcting codes using soft information - Google Patents

Decoding extended error correcting codes using soft information Download PDF

Info

Publication number
US6931583B2
US6931583B2 US10/394,793 US39479303A US6931583B2 US 6931583 B2 US6931583 B2 US 6931583B2 US 39479303 A US39479303 A US 39479303A US 6931583 B2 US6931583 B2 US 6931583B2
Authority
US
United States
Prior art keywords
codeword
decoder
extended
parity
soft
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US10/394,793
Other versions
US20040187072A1 (en
Inventor
Mitchell D. Trott
Tibor Boros
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Arraycomm LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Arraycomm LLC filed Critical Arraycomm LLC
Priority to US10/394,793 priority Critical patent/US6931583B2/en
Assigned to ARRAYCOMM, INC. reassignment ARRAYCOMM, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BOROS, TIBOR, TROTT, MITCHELL D.
Priority to PCT/US2004/008223 priority patent/WO2004086627A2/en
Publication of US20040187072A1 publication Critical patent/US20040187072A1/en
Application granted granted Critical
Publication of US6931583B2 publication Critical patent/US6931583B2/en
Assigned to ARRAYCOMM LLC. reassignment ARRAYCOMM LLC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: ARRAYCOMM, INC.
Assigned to ARRAYCOMM LLC. reassignment ARRAYCOMM LLC. CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED ON REEL 017034 FRAME 0620. ASSIGNOR(S) HEREBY CONFIRMS THE NATURE OF CONVEYANCE IS AN ASSIGNNMENT AND NOT A CHANGE OF NAME. Assignors: ARRAYCOMM, INC.
Assigned to INTEL CORPORATION reassignment INTEL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ARRAYCOMM LLC
Adjusted expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Definitions

  • the present invention applies to the field of data coding and, in particular, to an error-correcting decoder.
  • Digital devices such as computers and various digital communications equipment, store and process data as binary digits, also known as bits.
  • a bit is either zero or one (“0” or “1”). All digital information, such as mp3 files, jpeg images, text files, DVD movies, and so on are stored as a collection of bits.
  • errors may be introduced so that the bits received are not identical to the original bits.
  • various error detection and correction devices have been developed, such as, e.g., parity check codes, checksums, block codes, and cyclic redundancy checks.
  • Parity check codes are well known.
  • a parity check code adds a single parity bit to a block of data bits so that the number of “1” bits is even. Odd parity checking works in the same manner, except the number of “1” bits is made to be odd. For example, over the block “0011010110” the parity bit added would be “1,” because there are five “1s” in the block, which is an odd number, and one more “1” makes it even.
  • Block codes such as Hamming codes
  • An error correcting block generates a codeword using a block of data bits.
  • the codewords contain enough redundancy to be used to correct a predetermined number of bit errors, the number depending on the amount of redundancy.
  • Block codes are based on the principle that if allowed codewords are kept a minimum distance from each other, errors can be corrected. For example, allowed Hamming codewords are three bit differences apart from all other Hamming codewords. Thus, the Hamming code can correct one error. Codes can be developed to correct any number of errors.
  • Block codes can either be used to correct errors or to detect them.
  • a block code can generally detect a larger number of errors than it can correct.
  • the Hamming code can detect two errors.
  • An extended block code encodes a block of data using both a block encoder and a single parity check code. An advantage of this is that the extended block code can sometimes detect one more error than the block code can detect. For example, a Hamming code can detect two errors and an extended Hamming code can detect three errors. However, both the Hamming code and the extended Hamming code can only be used to correct one error. Traditional decoding of extended codewords does not increase the error correction capabilities of the block code. The extended block code cannot be used to correct more errors than the block code alone.
  • a communications device includes a decoder that has a soft decoder to receive an extended codeword and a strength of each bit of the extended codeword, and to produce a codeword by soft decoding the extended codeword using the received strengths, and a block decoder coupled to the soft decoder to produce a corrected codeword by block decoding the codeword using an error correcting block code.
  • FIG. 1 is a flow diagram of decoding processing according to one embodiment of the present invention
  • FIG. 2 is a detailed flow diagram of decoding processing according to another embodiment of the present invention.
  • FIG. 3 is a simplified block diagram of an extended decoder according to one embodiment of the present invention.
  • FIG. 4 is a simplified block diagram of a soft decoder component of the extended decoder according to an embodiment of the present invention
  • FIG. 5 is a simplified block diagram of a base station on which an embodiment of the invention can be implemented.
  • FIG. 6 is a simplified block diagram of a remote terminal on which an embodiment of the invention can be implemented.
  • an extended Hamming code is capable of correcting two errors using the soft information that is a byproduct of demodulation.
  • the extended codeword is soft decoded only if the parity checks and then block decoded to correct either the second error or the error introduced during soft decoding.
  • FIG. 1 is a flow chart showing a method for receiving and decoding a signal containing an extended codeword, according to one embodiment.
  • a signal containing the extended codeword is received 102 .
  • the signal can be received through any communication medium, including for example radio waves, coax cable, or twisted pair.
  • the signal is then demodulated 104 using any demodulation technique.
  • Demodulation includes deriving binary data from constellation points. Constellation points are well known. Constellation points can be represented as complex coordinates that stand for the in-phase and quadrature components of received waveforms, and are sometimes referred to as I/Q points.
  • the two possible constellation points are (1,0) and ( ⁇ 1,0). On an X-Y coordinate plane they appear as the numbers 1 and ⁇ 1.
  • the BPSK demodulator can map a “1” bit to 1 and a “0” bit to ⁇ 1.
  • the constellation points received by the BPSK demodulator appear are real numbers, e.g., 1.12, 0.25, ⁇ 0.13, ⁇ 0.88.
  • the BPSK demodulator would map these point to data bits by first hard-limiting them to either 1 or ⁇ 1, the two allowed constellation points in BPSK.
  • the demodulator can use the distance each point is from an allowed constellation point to perform this limiting; therefore, in this example the data bits would be “1100.”
  • the distance between each received constellation point and the decision boundary can be calculated. As shown above, this distance is related to the likelihood of error in the transmission of the bit. Thus, this distance can be referred to as the “strength” of a bit.
  • the strengths of the bits are 1.12, 0.25, 0.13, and 0.88 respectively.
  • the strength of each bit is the value of its received constellation point.
  • the weakest bit among these four is the third bit because it has the smallest strength, that is, its constellation point lies closest to the decision boundary.
  • a similar concept of distance from a decision line can be used determine bit strengths for other modulation formats, such as QPSK, 8-PSK, 16-QAM, or any other constellation based modulation scheme.
  • other methods exist for determining the strength of each bit of the extended codeword.
  • the result of demodulating 104 the signal is the extended codeword in bits and the strength of each bit.
  • the codeword is the received version of the codeword produced by the encoder.
  • the extended codeword is produced at the transmitter by encoding a block of data bits using a block encoder, and encoding the resulting codeword with a single parity check code.
  • the bit strengths are a byproduct of the demodulation process but can also be calculated independently.
  • the parity of the demodulated extended codeword is checked 106 . Assuming even parity is used, this can be done by adding the number of “1” bits in the extended codeword and checking whether the resulting number is even. In hardware this can also be done using an exclusive or (“XOR”) gate and a feedback register.
  • XOR exclusive or
  • the determination is based on the result of the parity checking 106 . If it is determined 108 that the weakest bit should be flipped, then the weakest bit is located by finding the bit with the smallest distance from a decision boundary, and then complemented, i.e. flipped. If it is determined 108 that the weakest bit should not be flipped, then no action is taken. In either case, the parity bit can then be removed from the extended codeword, and the resulting codeword can be block decoded 110 .
  • the determination 108 whether to flip the weakest bit is made according to one embodiment of the present invention is set forth with reference to FIG. 2 .
  • the extended codeword and the strengths of the bits of the extended codeword are received 202 , after demodulation, as discussed above with reference to FIG. 1 .
  • the parity is checked 204 , as discussed with reference to FIG. 1 .
  • the processing depends 206 on whether the block decoding corrects an even or an odd number of errors. This information will generally be fixed in the decoder, thus, this determination will not need to be made during the operation of the decoder. If the block decoder can correct up to an odd number of errors 206 , e.g. a Hamming decoder, then the weakest bit is flipped 214 —after being located 212 —if the parity checking 208 does not indicate an error. However, if the block decoder can correct up to an even number of errors 206 , e.g. a two error-correcting block code, then the weakest bit is flipped 214 if the parity checking 210 does indicate an error. In either case, the result is block decoded 216 as discussed with reference to FIG. 1 .
  • the data bits “1011” are encoded with a Hamming code that inserts three parity bits in positions four, six, and seven into the Hamming codeword “1010100.”
  • the parity check code adds one more bit to make the total number of “1” bits even.
  • the extended codeword is therefore “10101001.”
  • the received 202 and demodulated extended codeword is “11001001,” and the respective bit strengths are 1.20, 0.12, 0.30, 1.23, 0.54, 1.11, and 0.33.
  • the parity of the extended codeword is checked 204 . Since the number of “1” bits is four, the parity checks. The Hamming code corrects up to one error, which is an odd number. The parity check indicates no errors 208 . Thus, the weakest bit position is determined 212 . The smallest distance to the decision boundary is 0.12, thus the bit in the second position is the weakest bit. Then, this bit is flipped 214 . The extended codeword is now “10001001.” The last bit is the extra parity bit, which can now be removed resulting in “1000100.” The codeword “1000100” now has only one error in the third position, and is thus correctible by Hamming block decoding 216 .
  • the decoder 306 in FIG. 3 is shown in the context of a radio communications device that includes an antenna 302 that receives radio signals and a receiver 304 that demodulates the signals to extract the extended codeword, and to produce or calculate the relative strength of each bit.
  • the receiver 304 can be configured to receive signals on different communications media.
  • the extended codeword and the bit strengths are then passed to the soft decoder 308 .
  • One embodiment of the soft decoder is shown in detail in FIG. 4 .
  • the extended codeword is passed to a parity checker 402 that checks the parity of the extended codeword.
  • the parity checker is connected to a bypass switch 404 that allows the extended codeword to bypass the error corrector 406 when instructed to do so by the parity checker.
  • the parity checker activates the bypass switch 404 to bypass the soft error corrector 406 if the parity checker 402 indicates that the parity checks, i.e. indicates no errors.
  • the parity checker activates the bypass switch 404 to bypass the soft error corrector 406 if the parity does not check, i.e. indicates an error.
  • the soft error corrector 406 When the soft error corrector 406 is not bypassed, it uses the bit strengths to find the position of the weakest bit, and flips this bit. Whether the soft error corrector is bypassed or not, the parity bit from the parity check code is removed by the parity bit remover 408 , and a codeword is then output from the soft decoder 308 to the block decoder 310 .
  • the block decoder 310 can be a linear block decoder, a Hamming decoder, or any other block decoder configured to locate and correct some number of bit errors.
  • the corrected codeword is then output from the decoder 306 .
  • the block decoder 310 can also remove the parity bits it uses, and only output the corrected data bits.
  • the architecture described with reference to FIGS. 3 and 4 allows for the correction of one more bit than would be possible using a block decoder alone.
  • This architecture only requires the block decoder to compute the syndrome once.
  • the soft decoder 308 introduces errors from time to time, but only when the block decoder 310 will correct these errors.
  • FIG. 3 shows an example of a base station of a wireless communications system or network suitable for implementing the present invention.
  • the system or network includes a number of subscriber stations, also referred to as remote terminals or user terminals, such as that shown in FIG. 4 .
  • the base station may be connected to a wide area network (WAN) through its host DSP 31 for providing any required data services and connections external to the immediate wireless system.
  • WAN wide area network
  • a plurality of antennas 3 is used, for example four antennas, although other numbers of antennas may be selected.
  • a set of spatial multiplexing weights for each subscriber station are applied to the respective modulated signals to produce spatially multiplexed signals to be transmitted by the bank of four antennas.
  • the host DSP 31 produces and maintains spatial signatures for each subscriber station for each conventional channel and calculates spatial multiplexing and demultiplexing weights using received signal measurements. In this manner, the signals from the current active subscriber stations, some of which may be active on the same conventional channel, are separated and interference and noise suppressed.
  • an optimized multi-lobe antenna radiation pattern tailored to the current active subscriber station connections and interference situation is created. Suitable smart antenna technologies for achieving such a spatially directed beam are described, for example, in U.S. Pat. No. 5,828,658, issued Oct.
  • the channels used may be partitioned in any manner.
  • the channels used may be partitioned as defined in the GSM (Global System for Mobile Communications) air interface, or any other time division air interface protocol, such as Digital Cellular, PCS (Personal Communication System), PHS (Personal Handyphone System) or WLL (Wireless Local Loop).
  • GSM Global System for Mobile Communications
  • PCS Personal Computer System
  • PHS Personal Handyphone System
  • WLL Wireless Local Loop
  • continuous analog or CDMA channels can be used.
  • the outputs of the antennas are connected to a duplexer switch 7 , which in a TDD embodiment, may be a time switch.
  • a duplexer switch 7 which in a TDD embodiment, may be a time switch.
  • Two possible implementations of the duplexer switch are as a frequency duplexer in a frequency division duplex (FDD) system, and as a time switch in a time division duplex (TDD) system.
  • the antenna outputs are connected via the duplexer switch to a receiver 5 , and are converted down in analog by RF receiver (“RX”) modules 5 from the carrier frequency to an FM intermediate frequency (“IF”).
  • RX RF receiver
  • IF FM intermediate frequency
  • ADCs analog to digital converters
  • Final down-converting to baseband is carried out digitally.
  • Digital filters can be used to implement the down-converting and the digital filtering, the latter using finite impulse response (FIR) filtering techniques. This is shown as block 13 .
  • the invention can be adapted to suit a wide variety
  • each antenna's digital filter 13 there are, in the present example, eight down-converted outputs from each antenna's digital filter 13 , one per receive timeslot.
  • the particular number of timeslots can be varied to suit network needs. While GSM uses eight uplink and eight downlink timeslots for each TDMA frame, desirable results can also be achieved with any number of TDMA timeslots for the uplink and downlink in each frame.
  • DSP digital signal processor
  • the four down-converted outputs from the four antennas are fed to a digital signal processor (DSP) 17 (hereinafter “timeslot processor”) for further processing, including calibration, according to one aspect of this invention.
  • Eight Motorola DSP56300 Family DSPs can be used as timeslot processors, one per receive timeslot.
  • the timeslot processors 17 monitor the received signal power and estimate the frequency offset and time alignment. They also determine smart antenna weights for each antenna element. These are used in the SDMA scheme to determine a signal from a particular remote user and to demodulate the determined signal.
  • the output of the timeslot processors 17 is demodulated burst data for each of the eight receive timeslots.
  • This data is sent to the host DSP processor 31 whose main function is to control all elements of the system and interface with the higher level processing, which is the processing which deals with what signals are required for communications in all the different control and service communication channels defined in the system's communication protocol.
  • the host DSP 31 can be a Motorola DSP56300 Family DSP.
  • timeslot processors send the determined receive weights for each user terminal to the host DSP 31 .
  • the host DSP 31 maintains state and timing information, receives uplink burst data from the timeslot processors 17 , and programs the timeslot processors 17 .
  • DSP 31 may include a memory element to store data, instructions, or hopping functions or sequences.
  • the base station may have a separate memory element or have access to an auxiliary memory element.
  • DSP 31 formats service data and traffic data for further higher processing in the base station, receives downlink messages and traffic data from the other parts of the base station, processes the downlink bursts and formats and sends the downlink bursts to a transmit controller/modulator, shown as 37 .
  • the host DSP also manages programming of other components of the base station including the transmit controller/modulator 37 and the RF timing controller shown as 33 .
  • the RF timing controller 33 interfaces with the RF system, shown as block 45 and also produces a number of timing signals that are used by both the RF system and the modem.
  • the RF controller 33 reads and transmits power monitoring and control values, controls the duplexer 7 and receives timing parameters and other settings for each burst from the host DSP 31 .
  • the transmit controller/modulator 37 receives transmit data from the host DSP 31 .
  • the transmit controller uses this data to produce analog IF outputs which are sent to the RF transmitter (TX) modules 35 .
  • TX RF transmitter
  • the received data bits are converted into a complex modulated signal, up-converted to an IF frequency, sampled, multiplied by transmit weights obtained from host DSP 31 , and converted via digital to analog converters (“DACs”) which are part of transmit controller/modulator 37 to analog transmit waveforms.
  • DACs digital to analog converters
  • the analog waveforms are sent to the transmit modules 35 .
  • the transmit modules 35 up-convert the signals to the transmission frequency and amplify the signals.
  • the amplified transmission signal outputs are sent to antennas 3 via the duplexer/time switch 7 .
  • FIG. 4 depicts an example component arrangement in a remote terminal that provides data or voice communication.
  • the remote terminal's antenna 45 is connected to a duplexer 46 to permit the antenna 45 to be used for both transmission and reception.
  • the antenna can be omni-directional or directional. For optimal performance, the antenna can be made up of multiple elements and employ spatial processing as discussed above for the base station. In an alternate embodiment, separate receive and transmit antennas are used eliminating the need for the duplexer 46 . In another alternate embodiment, where time division duplexing is used, a transmit/receive (TR) switch can be used instead of a duplexer as is well known in the art.
  • the duplexer output 47 serves as input to a receiver 48 .
  • the receiver 48 produces a down-converted signal 49 , which is the input to a demodulator 51 .
  • a demodulated received sound or voice signal 67 is input to a speaker 66 .
  • the remote terminal has a corresponding transmit chain in which data or voice to be transmitted is modulated in a modulator 57 .
  • the modulated signal to be transmitted 59 output by the modulator 57 , is up-converted and amplified by a transmitter 60 , producing a transmitter output signal 61 .
  • the transmitter output 61 is then input to the duplexer 46 for transmission by the antenna 45 .
  • the demodulated received data 52 is supplied to a remote terminal central processing unit 68 (CPU) as is received data before demodulation 50 .
  • the remote terminal CPU 68 can be implemented with a standard DSP (digital signal processor) device such as a Motorola series 56300 Family DSP. This DSP can also perform the functions of the demodulator 51 and the modulator 57 .
  • the remote terminal CPU 68 controls the receiver through line 63 , the transmitter through line 62 , the demodulator through line 52 and the modulator through line 58 . It also communicates with a keyboard 53 through line 54 and a display 56 through line 55 .
  • a microphone 64 and speaker 66 are connected through the modulator 57 and the demodulator 51 through lines 65 and 66 , respectively for a voice communications remote terminal.
  • the microphone and speaker are also in direct communication with the CPU to provide voice or data communications.
  • remote terminal CPU 68 may also include a memory element to store data, instructions, and hopping functions or sequences. Alternatively, the remote terminal may have a separate memory element or have access to an auxiliary memory element.
  • the speaker 66 , and the microphone 64 are replaced or augmented by digital interfaces well-known in the art that allow data to be transmitted to and from an external data processing device (for example, a computer).
  • the remote terminal's CPU is coupled to a standard digital interface such as a PCMCIA interface to an external computer and the display, keyboard, microphone and speaker are a part of the external computer.
  • the remote terminal's CPU 68 communicates with these components through the digital interface and the external computer's controller.
  • the microphone and speaker can be deleted.
  • the keyboard and display can be deleted.
  • the present invention includes various steps.
  • the steps of the present invention may be performed by hardware components, such as those shown in FIGS. 3 and 4 , or may be embodied in machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the steps.
  • the steps may be performed by a combination of hardware and software.
  • the steps have been described as being performed by either the base station or the user terminal. However, many of the steps described as being performed by the base station may be performed by the user terminal and vice versa.
  • the invention is equally applicable to systems in which terminals communicate with each other without either one being designated as a base station, a user terminal, a remote terminal or a subscriber station.
  • the present invention is equally applicable and useful in a peer-to-peer wireless network of communications devices using spatial processing.
  • These devices may be cellular phones, PDA's, laptop computers, or any other wireless devices.
  • these communications devices of wireless communications networks may be generally referred to as radios.
  • the base station is described as performing spatial processing using an antenna array.
  • the user terminals can also contain antenna arrays, and can also perform spatial processing both on receiving and transmitting (uplink and downlink) within the scope of the present invention.
  • Embodiments of the present invention may be provided as a computer program product, which may include a machine-readable medium having stored thereon instructions, which may be used to program a computer (or other electronic devices) to perform a process according to the present invention.
  • the machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnet or optical cards, flash memory, or other type of media/machine-readable medium suitable for storing electronic instructions.
  • the present invention may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
  • a communication link e.g., a modem or network connection

Abstract

In one embodiment, the present invention can be used to correct one more error in an extended codeword encoded with a block code and a single parity check code than the block code is able to correct. In one embodiment, a communications device includes a decoder that has a soft decoder to receive an extended codeword and a strength of each bit of the extended codeword, and to produce a codeword by soft decoding the extended codeword using the received strengths, and a block decoder coupled to the soft decoder to produce a corrected codeword by block decoding the codeword using an error correcting block code.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention applies to the field of data coding and, in particular, to an error-correcting decoder.
2. Description of the Prior Art
Digital devices, such as computers and various digital communications equipment, store and process data as binary digits, also known as bits. A bit is either zero or one (“0” or “1”). All digital information, such as mp3 files, jpeg images, text files, DVD movies, and so on are stored as a collection of bits. When bits are transferred over a communication medium, errors may be introduced so that the bits received are not identical to the original bits. To ensure the accuracy of received data, various error detection and correction devices have been developed, such as, e.g., parity check codes, checksums, block codes, and cyclic redundancy checks.
Parity check codes are well known. A parity check code adds a single parity bit to a block of data bits so that the number of “1” bits is even. Odd parity checking works in the same manner, except the number of “1” bits is made to be odd. For example, over the block “0011010110” the parity bit added would be “1,” because there are five “1s” in the block, which is an odd number, and one more “1” makes it even.
Block codes, such as Hamming codes, are also well known. An error correcting block generates a codeword using a block of data bits. The codewords contain enough redundancy to be used to correct a predetermined number of bit errors, the number depending on the amount of redundancy. Block codes are based on the principle that if allowed codewords are kept a minimum distance from each other, errors can be corrected. For example, allowed Hamming codewords are three bit differences apart from all other Hamming codewords. Thus, the Hamming code can correct one error. Codes can be developed to correct any number of errors.
Block codes can either be used to correct errors or to detect them. A block code can generally detect a larger number of errors than it can correct. For example, the Hamming code can detect two errors. An extended block code encodes a block of data using both a block encoder and a single parity check code. An advantage of this is that the extended block code can sometimes detect one more error than the block code can detect. For example, a Hamming code can detect two errors and an extended Hamming code can detect three errors. However, both the Hamming code and the extended Hamming code can only be used to correct one error. Traditional decoding of extended codewords does not increase the error correction capabilities of the block code. The extended block code cannot be used to correct more errors than the block code alone.
BRIEF SUMMARY OF THE INVENTION
In one embodiment, the present invention can be used to correct one more error in an extended codeword encoded with a block code and a single parity check code than the block code is able to correct. In one embodiment, a communications device includes a decoder that has a soft decoder to receive an extended codeword and a strength of each bit of the extended codeword, and to produce a codeword by soft decoding the extended codeword using the received strengths, and a block decoder coupled to the soft decoder to produce a corrected codeword by block decoding the codeword using an error correcting block code.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements and in which:
FIG. 1 is a flow diagram of decoding processing according to one embodiment of the present invention;
FIG. 2 is a detailed flow diagram of decoding processing according to another embodiment of the present invention;
FIG. 3 is a simplified block diagram of an extended decoder according to one embodiment of the present invention;
FIG. 4 is a simplified block diagram of a soft decoder component of the extended decoder according to an embodiment of the present invention;
FIG. 5 is a simplified block diagram of a base station on which an embodiment of the invention can be implemented; and
FIG. 6 is a simplified block diagram of a remote terminal on which an embodiment of the invention can be implemented.
DETAILED DESCRIPTION OF THE INVENTION
According to one embodiment of the invention, an extended Hamming code is capable of correcting two errors using the soft information that is a byproduct of demodulation. In one embodiment, the extended codeword is soft decoded only if the parity checks and then block decoded to correct either the second error or the error introduced during soft decoding.
Decoding the Extended Codeword
One embodiment of the present invention is discussed with reference to FIG. 1. FIG. 1 is a flow chart showing a method for receiving and decoding a signal containing an extended codeword, according to one embodiment. First, a signal containing the extended codeword is received 102. The signal can be received through any communication medium, including for example radio waves, coax cable, or twisted pair.
The signal is then demodulated 104 using any demodulation technique. Demodulation includes deriving binary data from constellation points. Constellation points are well known. Constellation points can be represented as complex coordinates that stand for the in-phase and quadrature components of received waveforms, and are sometimes referred to as I/Q points.
As a simple example, in the binary phase shift keying (BPSK) modulation format the two possible constellation points are (1,0) and (−1,0). On an X-Y coordinate plane they appear as the numbers 1 and −1. The BPSK demodulator can map a “1” bit to 1 and a “0” bit to −1. In one embodiment, the constellation points received by the BPSK demodulator appear are real numbers, e.g., 1.12, 0.25, −0.13, −0.88. The BPSK demodulator would map these point to data bits by first hard-limiting them to either 1 or −1, the two allowed constellation points in BPSK. In one embodiment, the demodulator can use the distance each point is from an allowed constellation point to perform this limiting; therefore, in this example the data bits would be “1100.”
Some data bits are more probably correct than others. In this example, since zero (0) is the midpoint between the two allowed constellation point, zero is the decision boundary. Numbers to the right of the decision boundary, i.e. positive number, are hard limited to “1” and numbers to the left of the decision boundary, i.e., negative numbers, are hard limited to −1. The closer each point is to the decision boundary, the higher the likelihood of an error.
In the above example, the distance between each received constellation point and the decision boundary can be calculated. As shown above, this distance is related to the likelihood of error in the transmission of the bit. Thus, this distance can be referred to as the “strength” of a bit. For example, the strengths of the bits are 1.12, 0.25, 0.13, and 0.88 respectively. In this BPSK example, the strength of each bit is the value of its received constellation point.
In this example, the weakest bit among these four is the third bit because it has the smallest strength, that is, its constellation point lies closest to the decision boundary. In certain embodiments, a similar concept of distance from a decision line can be used determine bit strengths for other modulation formats, such as QPSK, 8-PSK, 16-QAM, or any other constellation based modulation scheme. In other embodiments, for example where the noise is not random, other methods exist for determining the strength of each bit of the extended codeword.
The result of demodulating 104 the signal is the extended codeword in bits and the strength of each bit. The codeword is the received version of the codeword produced by the encoder. As explained above, the extended codeword is produced at the transmitter by encoding a block of data bits using a block encoder, and encoding the resulting codeword with a single parity check code. The bit strengths are a byproduct of the demodulation process but can also be calculated independently.
Next, the parity of the demodulated extended codeword is checked 106. Assuming even parity is used, this can be done by adding the number of “1” bits in the extended codeword and checking whether the resulting number is even. In hardware this can also be done using an exclusive or (“XOR”) gate and a feedback register.
Then, it is determined 108 whether the weakest bit of the extended codeword should be flipped, meaning made “1” if “0” and made “0” if “1.” In one embodiment, the determination is based on the result of the parity checking 106. If it is determined 108 that the weakest bit should be flipped, then the weakest bit is located by finding the bit with the smallest distance from a decision boundary, and then complemented, i.e. flipped. If it is determined 108 that the weakest bit should not be flipped, then no action is taken. In either case, the parity bit can then be removed from the extended codeword, and the resulting codeword can be block decoded 110.
A more detailed explanation of how the determination 108 whether to flip the weakest bit is made according to one embodiment of the present invention is set forth with reference to FIG. 2. First, the extended codeword and the strengths of the bits of the extended codeword are received 202, after demodulation, as discussed above with reference to FIG. 1. The parity is checked 204, as discussed with reference to FIG. 1.
In one embodiment, the processing depends 206 on whether the block decoding corrects an even or an odd number of errors. This information will generally be fixed in the decoder, thus, this determination will not need to be made during the operation of the decoder. If the block decoder can correct up to an odd number of errors 206, e.g. a Hamming decoder, then the weakest bit is flipped 214—after being located 212—if the parity checking 208 does not indicate an error. However, if the block decoder can correct up to an even number of errors 206, e.g. a two error-correcting block code, then the weakest bit is flipped 214 if the parity checking 210 does indicate an error. In either case, the result is block decoded 216 as discussed with reference to FIG. 1.
Demonstrative Example
As an example, at the encoder, the data bits “1011” are encoded with a Hamming code that inserts three parity bits in positions four, six, and seven into the Hamming codeword “1010100.” At the encoder, the parity check code adds one more bit to make the total number of “1” bits even. In this case, the extended codeword is therefore “10101001.” After transmission, the received 202 and demodulated extended codeword is “11001001,” and the respective bit strengths are 1.20, 0.12, 0.30, 1.23, 0.54, 1.11, and 0.33.
The parity of the extended codeword is checked 204. Since the number of “1” bits is four, the parity checks. The Hamming code corrects up to one error, which is an odd number. The parity check indicates no errors 208. Thus, the weakest bit position is determined 212. The smallest distance to the decision boundary is 0.12, thus the bit in the second position is the weakest bit. Then, this bit is flipped 214. The extended codeword is now “10001001.” The last bit is the extra parity bit, which can now be removed resulting in “1000100.” The codeword “1000100” now has only one error in the third position, and is thus correctible by Hamming block decoding 216.
In the example above, two errors introduced during transmission have been corrected. Were there no errors during transmission, the parity would still check. Then, when the weakest bit is flipped, one error would be introduced into the codeword, which can still be corrected using Hamming decoding. This quick demonstration was only one example. The invention is not limited to any particular code length, error-correction capability in the block decoder, or any other specific characteristic of this example.
Decoder Architecture
One embodiment of the decoder architecture is described with reference to FIGS. 3 and 4 below. Data values produced by the components shown in FIGS. 3 and 4 are shown as ovals. The decoder 306 in FIG. 3 is shown in the context of a radio communications device that includes an antenna 302 that receives radio signals and a receiver 304 that demodulates the signals to extract the extended codeword, and to produce or calculate the relative strength of each bit. In other embodiments, the receiver 304 can be configured to receive signals on different communications media.
The extended codeword and the bit strengths are then passed to the soft decoder 308. One embodiment of the soft decoder is shown in detail in FIG. 4. With reference to FIG. 4, the extended codeword is passed to a parity checker 402 that checks the parity of the extended codeword. The parity checker is connected to a bypass switch 404 that allows the extended codeword to bypass the error corrector 406 when instructed to do so by the parity checker. In one embodiment—where the block decoder 310 can correct up to an odd number of errors—the parity checker activates the bypass switch 404 to bypass the soft error corrector 406 if the parity checker 402 indicates that the parity checks, i.e. indicates no errors. In another embodiment, the parity checker activates the bypass switch 404 to bypass the soft error corrector 406 if the parity does not check, i.e. indicates an error.
When the soft error corrector 406 is not bypassed, it uses the bit strengths to find the position of the weakest bit, and flips this bit. Whether the soft error corrector is bypassed or not, the parity bit from the parity check code is removed by the parity bit remover 408, and a codeword is then output from the soft decoder 308 to the block decoder 310. The block decoder 310 can be a linear block decoder, a Hamming decoder, or any other block decoder configured to locate and correct some number of bit errors. The corrected codeword is then output from the decoder 306. In other embodiments, the block decoder 310 can also remove the parity bits it uses, and only output the corrected data bits.
In one embodiment, the architecture described with reference to FIGS. 3 and 4 allows for the correction of one more bit than would be possible using a block decoder alone. This architecture only requires the block decoder to compute the syndrome once. In this architecture, the soft decoder 308 introduces errors from time to time, but only when the block decoder 310 will correct these errors.
Base Station Structure
The decoder 306 described with reference to FIGS. 3 and 4 can be used for error correction in any communications system. A base station and a user terminal of a radio communications network that can use the decoder 306 for error correction is now described. FIG. 3 shows an example of a base station of a wireless communications system or network suitable for implementing the present invention. The system or network includes a number of subscriber stations, also referred to as remote terminals or user terminals, such as that shown in FIG. 4. The base station may be connected to a wide area network (WAN) through its host DSP 31 for providing any required data services and connections external to the immediate wireless system. To support spatial diversity, a plurality of antennas 3 is used, for example four antennas, although other numbers of antennas may be selected.
A set of spatial multiplexing weights for each subscriber station are applied to the respective modulated signals to produce spatially multiplexed signals to be transmitted by the bank of four antennas. The host DSP 31 produces and maintains spatial signatures for each subscriber station for each conventional channel and calculates spatial multiplexing and demultiplexing weights using received signal measurements. In this manner, the signals from the current active subscriber stations, some of which may be active on the same conventional channel, are separated and interference and noise suppressed. When communicating from the base station to the subscriber stations, an optimized multi-lobe antenna radiation pattern tailored to the current active subscriber station connections and interference situation is created. Suitable smart antenna technologies for achieving such a spatially directed beam are described, for example, in U.S. Pat. No. 5,828,658, issued Oct. 27, 1998 to Ottersten et al. and U.S. Pat. No. 5,642,353, issued Jun. 24, 1997 to Roy, III et al. The channels used may be partitioned in any manner. In one embodiment the channels used may be partitioned as defined in the GSM (Global System for Mobile Communications) air interface, or any other time division air interface protocol, such as Digital Cellular, PCS (Personal Communication System), PHS (Personal Handyphone System) or WLL (Wireless Local Loop). Alternatively, continuous analog or CDMA channels can be used.
The outputs of the antennas are connected to a duplexer switch 7, which in a TDD embodiment, may be a time switch. Two possible implementations of the duplexer switch are as a frequency duplexer in a frequency division duplex (FDD) system, and as a time switch in a time division duplex (TDD) system. When receiving, the antenna outputs are connected via the duplexer switch to a receiver 5, and are converted down in analog by RF receiver (“RX”) modules 5 from the carrier frequency to an FM intermediate frequency (“IF”). This signal then is digitized (sampled) by analog to digital converters (“ADCs”) 9. Final down-converting to baseband is carried out digitally. Digital filters can be used to implement the down-converting and the digital filtering, the latter using finite impulse response (FIR) filtering techniques. This is shown as block 13. The invention can be adapted to suit a wide variety of RF and IF carrier frequencies and bands.
There are, in the present example, eight down-converted outputs from each antenna's digital filter 13, one per receive timeslot. The particular number of timeslots can be varied to suit network needs. While GSM uses eight uplink and eight downlink timeslots for each TDMA frame, desirable results can also be achieved with any number of TDMA timeslots for the uplink and downlink in each frame. For each of the eight receive timeslots, the four down-converted outputs from the four antennas are fed to a digital signal processor (DSP) 17 (hereinafter “timeslot processor”) for further processing, including calibration, according to one aspect of this invention. Eight Motorola DSP56300 Family DSPs can be used as timeslot processors, one per receive timeslot. The timeslot processors 17 monitor the received signal power and estimate the frequency offset and time alignment. They also determine smart antenna weights for each antenna element. These are used in the SDMA scheme to determine a signal from a particular remote user and to demodulate the determined signal.
The output of the timeslot processors 17 is demodulated burst data for each of the eight receive timeslots. This data is sent to the host DSP processor 31 whose main function is to control all elements of the system and interface with the higher level processing, which is the processing which deals with what signals are required for communications in all the different control and service communication channels defined in the system's communication protocol. The host DSP 31 can be a Motorola DSP56300 Family DSP. In addition, timeslot processors send the determined receive weights for each user terminal to the host DSP 31. The host DSP 31 maintains state and timing information, receives uplink burst data from the timeslot processors 17, and programs the timeslot processors 17. In addition it decrypts, descrambles, checks error correcting code, and deconstructs bursts of the uplink signals, then formats the uplink signals to be sent for higher level processing in other parts of the base station. Furthermore DSP 31 may include a memory element to store data, instructions, or hopping functions or sequences. Alternatively, the base station may have a separate memory element or have access to an auxiliary memory element. With respect to the other parts of the base station it formats service data and traffic data for further higher processing in the base station, receives downlink messages and traffic data from the other parts of the base station, processes the downlink bursts and formats and sends the downlink bursts to a transmit controller/modulator, shown as 37. The host DSP also manages programming of other components of the base station including the transmit controller/modulator 37 and the RF timing controller shown as 33.
The RF timing controller 33 interfaces with the RF system, shown as block 45 and also produces a number of timing signals that are used by both the RF system and the modem. The RF controller 33 reads and transmits power monitoring and control values, controls the duplexer 7 and receives timing parameters and other settings for each burst from the host DSP 31.
The transmit controller/modulator 37, receives transmit data from the host DSP 31. The transmit controller uses this data to produce analog IF outputs which are sent to the RF transmitter (TX) modules 35. Specifically, the received data bits are converted into a complex modulated signal, up-converted to an IF frequency, sampled, multiplied by transmit weights obtained from host DSP 31, and converted via digital to analog converters (“DACs”) which are part of transmit controller/modulator 37 to analog transmit waveforms. The analog waveforms are sent to the transmit modules 35. The transmit modules 35 up-convert the signals to the transmission frequency and amplify the signals. The amplified transmission signal outputs are sent to antennas 3 via the duplexer/time switch 7.
User Terminal Structure
FIG. 4 depicts an example component arrangement in a remote terminal that provides data or voice communication. The remote terminal's antenna 45 is connected to a duplexer 46 to permit the antenna 45 to be used for both transmission and reception. The antenna can be omni-directional or directional. For optimal performance, the antenna can be made up of multiple elements and employ spatial processing as discussed above for the base station. In an alternate embodiment, separate receive and transmit antennas are used eliminating the need for the duplexer 46. In another alternate embodiment, where time division duplexing is used, a transmit/receive (TR) switch can be used instead of a duplexer as is well known in the art. The duplexer output 47 serves as input to a receiver 48. The receiver 48 produces a down-converted signal 49, which is the input to a demodulator 51. A demodulated received sound or voice signal 67 is input to a speaker 66.
The remote terminal has a corresponding transmit chain in which data or voice to be transmitted is modulated in a modulator 57. The modulated signal to be transmitted 59, output by the modulator 57, is up-converted and amplified by a transmitter 60, producing a transmitter output signal 61. The transmitter output 61 is then input to the duplexer 46 for transmission by the antenna 45.
The demodulated received data 52 is supplied to a remote terminal central processing unit 68 (CPU) as is received data before demodulation 50. The remote terminal CPU 68 can be implemented with a standard DSP (digital signal processor) device such as a Motorola series 56300 Family DSP. This DSP can also perform the functions of the demodulator 51 and the modulator 57. The remote terminal CPU 68 controls the receiver through line 63, the transmitter through line 62, the demodulator through line 52 and the modulator through line 58. It also communicates with a keyboard 53 through line 54 and a display 56 through line 55. A microphone 64 and speaker 66 are connected through the modulator 57 and the demodulator 51 through lines 65 and 66, respectively for a voice communications remote terminal. In another embodiment, the microphone and speaker are also in direct communication with the CPU to provide voice or data communications. Furthermore remote terminal CPU 68 may also include a memory element to store data, instructions, and hopping functions or sequences. Alternatively, the remote terminal may have a separate memory element or have access to an auxiliary memory element.
In one embodiment, the speaker 66, and the microphone 64 are replaced or augmented by digital interfaces well-known in the art that allow data to be transmitted to and from an external data processing device (for example, a computer). In one embodiment, the remote terminal's CPU is coupled to a standard digital interface such as a PCMCIA interface to an external computer and the display, keyboard, microphone and speaker are a part of the external computer. The remote terminal's CPU 68 communicates with these components through the digital interface and the external computer's controller. For data only communications, the microphone and speaker can be deleted. For voice only communications, the keyboard and display can be deleted.
General Matters
In the description above, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form.
The present invention includes various steps. The steps of the present invention may be performed by hardware components, such as those shown in FIGS. 3 and 4, or may be embodied in machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the steps. Alternatively, the steps may be performed by a combination of hardware and software. The steps have been described as being performed by either the base station or the user terminal. However, many of the steps described as being performed by the base station may be performed by the user terminal and vice versa. Furthermore, the invention is equally applicable to systems in which terminals communicate with each other without either one being designated as a base station, a user terminal, a remote terminal or a subscriber station. Thus, the present invention is equally applicable and useful in a peer-to-peer wireless network of communications devices using spatial processing. These devices may be cellular phones, PDA's, laptop computers, or any other wireless devices. Generally, since both the base stations and the terminals use radio waves, these communications devices of wireless communications networks may be generally referred to as radios.
In portions of the description above, only the base station is described as performing spatial processing using an antenna array. However, the user terminals can also contain antenna arrays, and can also perform spatial processing both on receiving and transmitting (uplink and downlink) within the scope of the present invention.
Embodiments of the present invention may be provided as a computer program product, which may include a machine-readable medium having stored thereon instructions, which may be used to program a computer (or other electronic devices) to perform a process according to the present invention. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnet or optical cards, flash memory, or other type of media/machine-readable medium suitable for storing electronic instructions. Moreover, the present invention may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
Many of the methods and calculations are described in their most basic form, but steps can be added to or deleted from any of the methods and information can be added or subtracted from any of the described message signals without departing from the basic scope of the present invention. It will be apparent to those skilled in the art that many further modifications and adaptations can be made. The particular embodiments are not provided to limit the invention but to illustrate it. The scope of the present invention is not to be determined by the specific examples provided above but only by the claims below.
It should also be appreciated that reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature may be included in the practice of the invention. Similarly, it should be appreciated that in the foregoing description of exemplary embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various inventive aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims following the Detailed Description are hereby expressly incorporated into this Detailed Description, with each claim standing on its own as a separate embodiment of this invention.

Claims (13)

1. A decoder comprising:
a soft decoder to receive an extended codeword and a strength of each bit of the extended codeword, and to produce a codeword by soft decoding the extended codeword using the received strengths, the soft decoder including a parity checker to check a parity of the extended codeword, a soft error corrector to flip a weakest bit of the extended codeword based on the strength of each bit, and a bypass switch coupled to the parity checker that determines whether to pass the extended codeword to the soft error corrector based on the parity of the extended codeword; and
a block decoder coupled to the soft decoder to produce a corrected codeword by block decoding the codeword using an error correcting block code.
2. The decoder of claim 1, wherein the block decoder can correct a predetermined odd number of bit errors in the codeword, and wherein the bypass switch passes the extended codeword to the soft decoder if the parity of the extended codeword indicates no errors.
3. The decoder of claim 1, wherein the block decoder can correct a predetermined even number of bit errors in the codeword, and wherein the bypass switch passes the extended codeword to the soft decoder if the parity of the extended codeword indicates an error.
4. The decoder of claim 1, wherein the block decoder comprises a linear block decoder.
5. The decoder of claim 4, wherein the block decoder comprises a Hamming decoder.
6. The decoder of claim 1, wherein the block decoder can correct a predetermined number of bit errors in the codeword, and wherein the decoder corrects one more than the predetermined number of bit errors in the codeword.
7. A communications device comprising:
a receiver to receive a signal containing an extended codeword, and to extract the extended codeword and determine a strength of each bit of the extracted extended codeword by demodulating the signal;
a soft decoder to produce a codeword by soft decoding the extended codeword using the received strengths, the soft decoder including a parity checker to check a parity of the extended codeword, a soft error corrector to flip a weakest bit of the extended codeword based on the strength of each bit, and a bypass switch coupled to the parity checker that determines whether to pass the extended codeword to the soft error corrector based on the parity of the extended codeword; and
a block decoder coupled to the soft decoder to produce a corrected codeword by block decoding the codeword using an error correcting block code.
8. The communications device of claim 7, wherein the block decoder can correct a predetermined odd number of bit errors in the codeword, and wherein the bypass switch passes the extended codeword to the soft decoder if the parity of the extended codeword indicates no errors.
9. The communications device of claim 7, wherein the block decoder can correct a predetermined even number of bit errors in the codeword, and wherein the bypass switch passes the extended codeword to the soft decoder if the parity of the extended codeword indicates an error.
10. The communications device of claim 7, wherein the communications device comprises a radio.
11. The communications device of claim 10, wherein the radio comprises a user terminal of a wireless radio communications system.
12. The communications device of claim 10, wherein the communications device further comprises an antenna to receive radio signals coupled to the receiver.
13. An apparatus comprising:
a parity checker to check a parity of an extended codeword;
a soft error corrector to flip a weakest bit of the extended codeword;
a bypass switch coupled to the parity checker that determines whether to pass the extended codeword to the soft error corrector based on the parity on the extended codeword;
a parity bit remover to produce a codeword by removing a parity bit of the extended codeword; and
a block decoder to produce a corrected codeword by block decoding the codeword using an error correcting block code.
US10/394,793 2003-03-21 2003-03-21 Decoding extended error correcting codes using soft information Expired - Fee Related US6931583B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/394,793 US6931583B2 (en) 2003-03-21 2003-03-21 Decoding extended error correcting codes using soft information
PCT/US2004/008223 WO2004086627A2 (en) 2003-03-21 2004-03-18 Decoding extended error correcting codes using soft information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/394,793 US6931583B2 (en) 2003-03-21 2003-03-21 Decoding extended error correcting codes using soft information

Publications (2)

Publication Number Publication Date
US20040187072A1 US20040187072A1 (en) 2004-09-23
US6931583B2 true US6931583B2 (en) 2005-08-16

Family

ID=32988455

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/394,793 Expired - Fee Related US6931583B2 (en) 2003-03-21 2003-03-21 Decoding extended error correcting codes using soft information

Country Status (2)

Country Link
US (1) US6931583B2 (en)
WO (1) WO2004086627A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169745A1 (en) * 2006-08-22 2010-07-01 Panasonic Corporation Soft output decoder, iterative decoder, and soft decision value calculating method
US8315326B2 (en) 2000-06-13 2012-11-20 Aloft Media, Llc Apparatus for generating at least one signal based on at least one aspect of at least two received signals
US8792594B2 (en) 2012-12-03 2014-07-29 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150084560A (en) * 2014-01-14 2015-07-22 에스케이하이닉스 주식회사 Encoding device, decoding device and operating method thereof
US9543981B2 (en) * 2014-03-25 2017-01-10 Texas Instruments Incorporated CRC-based forward error correction circuitry and method
US10484135B2 (en) * 2014-12-15 2019-11-19 Qualcomm Incorporated Mitigation of bursty interference
US10958948B2 (en) * 2017-08-29 2021-03-23 Charter Communications Operating, Llc Apparatus and methods for latency reduction in digital content switching operations

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763331A (en) * 1985-12-11 1988-08-09 Nippon Telegraph And Telephone Corporation Method for decoding error correcting block codes
US5461629A (en) * 1992-09-09 1995-10-24 Echelon Corporation Error correction in a spread spectrum transceiver
US5828676A (en) * 1994-04-08 1998-10-27 Echelon Corporation Method and apparatus for robust communication based upon angular modulation
US6526538B1 (en) * 1998-09-28 2003-02-25 Comtech Telecommunications Corp. Turbo product code decoder

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763331A (en) * 1985-12-11 1988-08-09 Nippon Telegraph And Telephone Corporation Method for decoding error correcting block codes
US5461629A (en) * 1992-09-09 1995-10-24 Echelon Corporation Error correction in a spread spectrum transceiver
US5828676A (en) * 1994-04-08 1998-10-27 Echelon Corporation Method and apparatus for robust communication based upon angular modulation
US6526538B1 (en) * 1998-09-28 2003-02-25 Comtech Telecommunications Corp. Turbo product code decoder

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9515788B2 (en) 2000-06-13 2016-12-06 Comcast Cable Communications, Llc Originator and recipient based transmissions in wireless communications
US9654323B2 (en) 2000-06-13 2017-05-16 Comcast Cable Communications, Llc Data routing for OFDM transmission based on observed node capacities
US9344233B2 (en) 2000-06-13 2016-05-17 Comcast Cable Communications, Llc Originator and recipient based transmissions in wireless communications
US8315327B2 (en) 2000-06-13 2012-11-20 Aloft Media, Llc Apparatus for transmitting a signal including transmit data to a multiple-input capable node
US9356666B1 (en) 2000-06-13 2016-05-31 Comcast Cable Communications, Llc Originator and recipient based transmissions in wireless communications
US8451928B2 (en) 2000-06-13 2013-05-28 Aloft Media, Llc Apparatus for calculating weights associated with a first signal and applying the weights to a second signal
US8451929B2 (en) 2000-06-13 2013-05-28 Aloft Media, Llc Apparatus for calculating weights associated with a received signal and applying the weights to transmit data
US10349332B2 (en) 2000-06-13 2019-07-09 Comcast Cable Communications, Llc Network communication using selected resources
US9106286B2 (en) 2000-06-13 2015-08-11 Comcast Cable Communications, Llc Network communication using diversity
USRE45775E1 (en) 2000-06-13 2015-10-20 Comcast Cable Communications, Llc Method and system for robust, secure, and high-efficiency voice and packet transmission over ad-hoc, mesh, and MIMO communication networks
USRE45807E1 (en) 2000-06-13 2015-11-17 Comcast Cable Communications, Llc Apparatus for transmitting a signal including transmit data to a multiple-input capable node
US9391745B2 (en) 2000-06-13 2016-07-12 Comcast Cable Communications, Llc Multi-user transmissions
US9197297B2 (en) 2000-06-13 2015-11-24 Comcast Cable Communications, Llc Network communication using diversity
US9209871B2 (en) 2000-06-13 2015-12-08 Comcast Cable Communications, Llc Network communication using diversity
US8315326B2 (en) 2000-06-13 2012-11-20 Aloft Media, Llc Apparatus for generating at least one signal based on at least one aspect of at least two received signals
US10257765B2 (en) 2000-06-13 2019-04-09 Comcast Cable Communications, Llc Transmission of OFDM symbols
US9820209B1 (en) 2000-06-13 2017-11-14 Comcast Cable Communications, Llc Data routing for OFDM transmissions
US9722842B2 (en) 2000-06-13 2017-08-01 Comcast Cable Communications, Llc Transmission of data using a plurality of radio frequency channels
US9401783B1 (en) 2000-06-13 2016-07-26 Comcast Cable Communications, Llc Transmission of data to multiple nodes
US8363744B2 (en) 2001-06-10 2013-01-29 Aloft Media, Llc Method and system for robust, secure, and high-efficiency voice and packet transmission over ad-hoc, mesh, and MIMO communication networks
US20100169745A1 (en) * 2006-08-22 2010-07-01 Panasonic Corporation Soft output decoder, iterative decoder, and soft decision value calculating method
US8261163B2 (en) * 2006-08-22 2012-09-04 Panasonic Corporation Soft output decoder, iterative decoder, and soft decision value calculating method
US9455861B2 (en) 2012-12-03 2016-09-27 Ln2 Db, Llc Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
US9461863B2 (en) 2012-12-03 2016-10-04 Ln2 Db, Llc Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
US9391643B2 (en) 2012-12-03 2016-07-12 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
US9191256B2 (en) 2012-12-03 2015-11-17 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
US9838154B2 (en) 2012-12-03 2017-12-05 Ln2 Db, Llc Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
US10135567B2 (en) 2012-12-03 2018-11-20 Ln2 Db, Llc Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
US8792594B2 (en) 2012-12-03 2014-07-29 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems

Also Published As

Publication number Publication date
US20040187072A1 (en) 2004-09-23
WO2004086627A3 (en) 2005-01-13
WO2004086627A2 (en) 2004-10-07

Similar Documents

Publication Publication Date Title
US5657325A (en) Transmitter and method for transmitting information packets with incremental redundancy
US10211952B2 (en) Scheme for communication using integer-forcing scheme in wireless communication system
EP0999669A1 (en) Method and apparatus for diversity reception of user messages with different forward error correction
EP1641135B1 (en) Channel estimation using a non-pilot portion of a signal
US6684366B1 (en) Multi-rate codec with puncture control
JP2001523918A (en) Method and apparatus for time-efficient retransmission using symbol accumulation
US20040063406A1 (en) Transmission link adaptation
WO1999014885A2 (en) Time diversity in a tdma system
US7352774B2 (en) Multiplexing different types of data sequences
US6511280B1 (en) Adaptive Reed-Solomon decoder and methods thereof
US20040001539A1 (en) Training using overhead data in a wireless communications network
US20040223472A1 (en) Data randomization in a wireless communication system
US6931583B2 (en) Decoding extended error correcting codes using soft information
US6651210B1 (en) Flexible multi-bit per symbol rate encoding
CA2275643C (en) Receiver decoder circuitry, and associated method, for decoding a channel encoded signal
JP4012464B2 (en) Multi-bit quadrature amplitude encoding per symbol rate
AU2002213448A1 (en) Encoded qam
US6950979B2 (en) Low complexity encoder and decoder
JP2004048637A (en) Device and program for switching modulation system of digital radio machine
JP2002111565A (en) Array antenna communication device and radio communication method
US7634704B2 (en) Encoding method, transmitter, network element and communication terminal
AU2003270856B2 (en) Messaging for transmission link adaptation
US7136424B2 (en) Method or communications system using a robust diversity combination
US20210099246A1 (en) Wireless communication apparatus, data reception method, and program

Legal Events

Date Code Title Description
AS Assignment

Owner name: ARRAYCOMM, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TROTT, MITCHELL D.;BOROS, TIBOR;REEL/FRAME:013896/0277

Effective date: 20030320

AS Assignment

Owner name: ARRAYCOMM LLC.,CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:ARRAYCOMM, INC.;REEL/FRAME:017034/0620

Effective date: 20051116

Owner name: ARRAYCOMM LLC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:ARRAYCOMM, INC.;REEL/FRAME:017034/0620

Effective date: 20051116

AS Assignment

Owner name: ARRAYCOMM LLC., CALIFORNIA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED ON REEL 017034 FRAME 0620;ASSIGNOR:ARRAYCOMM, INC.;REEL/FRAME:021619/0313

Effective date: 20051116

Owner name: ARRAYCOMM LLC.,CALIFORNIA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED ON REEL 017034 FRAME 0620. ASSIGNOR(S) HEREBY CONFIRMS THE NATURE OF CONVEYANCE IS AN ASSIGNNMENT AND NOT A CHANGE OF NAME;ASSIGNOR:ARRAYCOMM, INC.;REEL/FRAME:021619/0313

Effective date: 20051116

Owner name: ARRAYCOMM LLC., CALIFORNIA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED ON REEL 017034 FRAME 0620. ASSIGNOR(S) HEREBY CONFIRMS THE NATURE OF CONVEYANCE IS AN ASSIGNNMENT AND NOT A CHANGE OF NAME;ASSIGNOR:ARRAYCOMM, INC.;REEL/FRAME:021619/0313

Effective date: 20051116

AS Assignment

Owner name: INTEL CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ARRAYCOMM LLC;REEL/FRAME:021794/0107

Effective date: 20081002

Owner name: INTEL CORPORATION,CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ARRAYCOMM LLC;REEL/FRAME:021794/0107

Effective date: 20081002

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20130816