The present invention relates generally to a multi-carrier communication system and, more specifically, to correcting data transmission errors caused by impulse noise.
A multi-carrier communication system, such as a Discrete Multi-Tone (DMT) system in the various types of Digital Subscriber Line-xDSL (e.g., ADSL and VDSL) systems, carries information from a transmitter to a receiver over a number of tones. The tones are also commonly referred to as sub-carriers or sub-channels. Each tone acts as a separate communication channel to carry information between a local transmitter-receiver device and a remote transmitter-receiver device.
DMT communication systems use a modulation method in which the available bandwidth of a communication loop, such as twisted-pair copper media, is divided into numerous sub-channels. The term communication loop is understood to refer generally to a physical transmission medium, including copper, optical fiber, and so forth, as well as other transmission mediums, including radio frequency (RF) and other physical or non-physical communication signal paths.
There are various sources of interference and noise in a multi-carrier communication system. Interference and noise may corrupt the data-bearing signal on each tone as the signal travels through the communication loop and is decoded at the receiver. The received data-bearing signal may be decoded erroneously by the receiver because of this signal corruption.
In order to account for potential interference on the transmission line and to guarantee a reliable communication between the transmitter and receiver, each tone can carry a limited number of data bits per unit time. This number is related to a bit error rate (BER) for a given tone. The number of data bits or the amount of information that a tone carries may vary from tone to tone and depends on the relative power of the data-bearing signal compared to the power of the corrupting signal on that particular tone. The number of bits that a specific tone may carry decreases as the relative strength of the corrupting signal increases.
Examining DMT modulation helps understand how noise affects a DMT communication system. For example, when modulating on a DMT communication system, data samples on each tone are represented as one of a set of finite number of points in a two dimensional (2D) Quadrature Amplitude Modulation (QAM) constellation.
The transmitted data point is located at the center of each cell bounded by the decision boundaries 102. For example, a first cell 104 with an expected transmitted data point having coordinates of (+0.5, +0.5). If there is no noise or other sources of error, the received data point will coincide with the transmit point located at the center of each cell bounded by the decision boundaries 102.
The dashed lines indicate decision boundaries 102 for the 4×4 QAM constellation grid 100 of potential data values. The dots represent the received signal points which due to noise or interference will differ from the transmitted point represented by the center of each cell. These error differences are known as error samples and may be processed to determine the power of the noise that perturbs the actual received value from the expected value for each point.
The center coordinates of a particular cell for example, (+0.5, +0.5) for sample cell 104, represent the expected amplitude and phase of the transmitted data for that data point. A transmitted data point within the boundaries of a given cell allows that transmitted data point to be assigned a data value associated with that cell. However, because of noise error present in the system, the received data point or actual signal may be detected some distance from the expected ideal reference signal or transmitted point. The distance from the expected transmitted point, for example the center of sample cell 104 at coordinates (+0.5, +0.5), to the actual coordinates of the received error samples in that cell represent the detected transmission error.
The probability of the error samples decreases as the absolute value of the magnitude of the error increases, thus creating a bell shaped curve. The Gaussian distribution of the error samples 250 from background noise will have a given probability distribution. The Gaussian distribution of the error samples 250 will also have a standard deviation 254 derived from the Gaussian distribution of background noise approximately equal to the square root of the power level of the noise. The standard deviation 254, in addition to other statistical parameters known in the art, may be calculated and used, or stored and later used by the DMT system.
It is often assumed that the corrupting signal is an additive, white Gaussian noise (AWGN) source. With this assumption, the number of data bits that each tone can carry relates directly to the signal-to-noise power ratio (SNR). The relative power of noise and data-bearing signal may be measured during a training period established between a first transmitter-receiver device and a second transmitter-receiver device in the discrete multi-tone system. Using these measurements, a bit-loading algorithm may determine how much information bit can be loaded on each tone reliably.
However, bit-loading algorithms are typically designed based on the assumption that noise is additive, white and Gaussian. This assumption and the corresponding solution may not be true in many practical cases where various sources of interference do not have a white, Gaussian distribution. Impulse noise is one of those noise sources.
A bit loading algorithm, based on the assumption of AWGN sources, underestimates the effects of impulse noise. The result of impulse noise on a system designed with an AWGN assumption is an excessive rate of error. Current error detection schemes employed in digital subscriber line data transmission standards may identify an impulse noise error but do not localize errors to within a single DSL frame (the smallest symbol size). This interferes with being able to precisely analyze the location and periodicity of error events. The DSL standard aggregates all bytes to be delivered into a group called a frame. For DSL, each frame is sent out at a rate of approximately 4000 per second. A frame transports N bytes during this time. A checksum is calculated and sent as the first byte (error check byte) of every 68th data frame comprising a superframe (for ADSL); this means that the receiver cannot locate a corrupted frame with any precision finer than the superframe. The error check bytes represent the checksum or other error product of an error detection calculation known in the art, such as CRC (Cyclic Redundancy Code/Checksum). A checksum is a computed value which depends on the contents of a block of data and is transmitted along with the data in order to detect corruption of the data upon reception. The checksum may be 8 bits (modulo 256 sum), 16, 32, or some other size.
Using a CRC, T error check bytes appended to a frame within a byte stream are based on determining the remainder of a polynomial division of the bits in the byte stream with a generating polynomial of 8*T bits. The value of T, that is the number of bytes to append to the incoming stream, can vary and generally the error detecting capacity of the CRC increases as T increases with the offsetting disadvantage that the data payload (N-T) decreases, where the frame size is fixed at N.
The transmitter receives N-T bytes and appends T error check bytes (T≧1) to form a byte group composed of N-bytes bytes that are tone-mapped and modulated for transmission. The values of the T error check bytes and the methods for generating them are chosen such that reception errors can be detected by the receiver. The receiver detects the reception errors by receiving the signal and generating the N bytes for the frames, performs the complementary operation on the N received bytes. In one embodiment of the present invention, a binary polynomial division of the received bytes is performed; if no reception errors occurred then the remainder would result in a known value, often zero, otherwise the frame is declared to be in error. If in error, the receiver sends that determination to other elements of the receiver for possible corrective action. The remaining N-T bytes are passed along for subsequent processing in the receive chain.
In any event, such imprecision prohibits the ability to analyze error rates beyond the superframe, detect repetitive or spurious impulse noise, or to try to take corrective action on a known corrupted frame. The use of the current checksum is merely for line quality monitoring.
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which:
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that certain embodiments of the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to obscure the presented embodiments of the invention. The following detailed description includes several modules, which will be described below. These modules may be implemented by hardware components, such as logic, or may be embodied in machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor programmed with the instructions to perform the operations described herein. Alternatively, the operations may be performed by a combination of hardware and software. The following detailed description refers to bytes and frames of data. It can be appreciated by those skilled in the art that a byte is bit group composed of eight bits and a frame is merely a set of bit groups. For simplicity, the specification will refer to a byte, but it can be appreciated the methods and apparatuses disclosed herein may operate on a bit group composed of one or more bits.
Apparati, systems, and methods are described for a multi-carrier communication system that detects and corrects impulse noise present at a receiver of the communication system. A transmitter-receiver device may detect impulse noise present in a multiple tone system, and specifically in a received frame composed of a bit group, and mark that frame for erasure decoding if impulse noise is detected.
The first transmitter-receiver device 402, such as a Discrete Multi-Tone transceiver, transmits and receives communication signals from the second transmitter-receiver device 404 over a transmission medium 406, such as a telephone line. Other devices such as telephones 408 may also connect to this transmission medium 406. An isolating filter 410 generally exists between the telephone and the transmission medium 406. A training period occurs when initially establishing communications between the first transmitter-receiver device 402 and a second transmitter-receiver device 404 to measure AWGN (Additive White Gaussian Noise).
The discrete multiple tone system 400 may include a central office, and an end user. The central office may contain the first transmitter-receiver device 402 that communicates with the second transmitter-receiver device 404 at an end user's location.
xDSL transmitters 422, 424 (e.g., ADSL and VDSL) take data in groups of N bytes—where N is determined by the transmission bit rate and varies according to standard and line conditions—and maps the bits in these N bytes to a set of amplitude and phase values for a plurality of tone generators that transmit for a short period of time. The implementation of the plurality of tone generators is typically performed using the Inverse Fast Fourier Transform (IFFT) method that is well known by those of ordinary skill in the art. After this frame time, the transmitter 422, 424 receives a new set of N bytes for further transmission.
Each transmitter 422, 424 portion of the transmitter-receiver device 402, 404 may transmit data over a number of mutually independent sub-channels (i.e., tones). Each sub-channel carries only a certain portion of data through QAM (Quadrature Amplitude Modulation) of the sub-carrier. The number of information bits loaded on each tone and the size of corresponding QAM constellation may potentially vary from one tone to another and depend generally on the relative power of signal and noise at the receiver 426, 428. When the characteristics of signal and noise are known for all tones, a bit-loading algorithm can determine the optimal distribution of data bits and signal power amongst sub-channels. Thus, the transmitter 422, 424 portion of the transmitter-receiver device 402, 404 modulates each sub-carrier with a data point in a QAM constellation.
Each transmitter-receiver device also includes a receiver 426, 428 portion that contains a noise detector 416, 418. Each noise detector 416, 418 may contain software and/or logic programmed to detect for the presence of impulse noise present in the system. In one embodiment, each noise detector 416, 418 may detect impulse noise by comparing error check bytes transmitted with a frame of data composed of a plurality of bit groups to error check bytes generated at the receiver for the same plurality of bit groups. If the generated error check bytes do not match, each noise detector 416, 418 may create a plurality of flag values to flag the corresponding plurality of bit groups for erasure decoding and correction.
In another embodiment, each noise detector 416, 418 may detect an error difference between the amplitude of each transmitted data point in the QAM constellation and expected amplitude for each data point in the QAM constellation. A plurality of data points comprises a bit group and a plurality of bit groups comprises a data frame. Each noise detector 416, 418 may generate an error value corresponding to the difference between the actual detected constellation point and the expected transmitted constellation point. The error difference or noise amplitude value for each transmitted data point may also be referred to as an error sample. Each noise detector 416, 418 may measure an average error amplitude value of all of the detected error samples to determine a standard deviation of a Gaussian distribution of background noise and compare an amount of peak error samples to a threshold value to determine if impulse noise is present on a particular tone. The threshold value may be based upon a standard deviation and/or average or other statistical value derived from the Gaussian distribution of background noise. If impulse noise is present within the plurality of received tones, each noise detector 416, 418 may create a plurality of flag values to flag the corresponding plurality of bit groups for erasure decoding and correction.
In yet another embodiment, each noise detector 416, 418 may sum the square of the noise amplitude values to create a total noise power present on the transmission medium. Each noise detector 416, 418 may then compare the total noise power to a threshold value to determine if impulse noise is present on a particular tone. If impulse noise is present within the plurality of received tones, each noise detector 416, 418 may create a plurality of flag values to flag the corresponding plurality of bit groups for erasure decoding and correction.
In order to decode and correct bit groups of a corrupted frame, an encoding algorithm may be used that supports erasure decoding. One such algorithm, for example, is Reed-Solomon (RS) encoding/decoding. RS codes are block-based error correcting codes with a wide range of applications in digital communications and storage. They are used to correct errors in many systems such as digital storage devices, wireless/mobile communications, and digital video broadcasting. The RS decoder processes blocks generated by an RS encoder, attempting to correct errors and recover information symbols corresponding to bit groups. The number and type of errors that can be corrected depend on the characteristics of the code. RS codes are Bose-Chaudhuri-Hocquenghem (BCH) codes, which in turn are linear block codes and are well known in the art. Most importantly, the decoder 512 (See
Once the data bits have been formed into bit groups and further grouped into frames, the frames are passed on to a corrupted frame detector 508. For simplicity, hereinafter, bit groups will be referred to as bytes but embodiments of the present invention are not so limited. Further, it can be appreciated that in various other embodiments, a flag value may be a single bit value or another value associated with two or more bits.
In one embodiment the corrupted frame detector 508 analyzes each byte up to N-bytes where N-bytes comprises a data frame. The output of the corrupted frame detector results in an N-byte array and N-bit array. Each bit of the N-bit array represents a flag value for each corresponding byte of the N-byte array. The flag values of the N-bit array are determined by the corrupted frame detector 508 and correspond to whether the bytes of the frame have been flagged for erasure decoding. For example, a corrupt frame may be marked for erasure decoding by setting all corresponding values of the N-bit array to ‘1.’ If the frame is not corrupt, the values of the N-bit array may be set to the value ‘0.’ In another embodiment, the corrupted frame detector 506 may alternatively output only a single bit indicating a corrupt frame, and retain that value to flag all N bytes of the frame.
Both corrupt and non-corrupt frames composed of their corresponding N-byte arrays and the N-bit arrays are passed to a de-interleaver 510 where they are de-interleaved as illustrated in
Interleaved frame group 552 illustrates three interleaved frames and interleaved bit group 550 illustrates their corresponding bits/flags. Byte array 560, corresponding to frame 2, has been flagged corrupt as illustrated by bit array 558 having flag values set to ‘1.’ Frame 1 and frame 3 have not been flagged as corrupt. Upon de-interleaving the three frames and their corresponding bit arrays, the original byte order is restored as shown by de-interleaved frame group 556. However, as shown by de-interleaved bit group 554, the erasure flags have also been reordered and the bytes flagged for correction (i.e., ‘1’) are distributed throughout each bit array corresponding to the frames (byte arrays). Such a distribution increases the decoder's ability to correct the identified corrupted bytes, as is commonly known in the art.
Among various embodiments of the present invention, both de-interleavers could be implemented in hardware, both in software, or one in hardware and the other in software. If the erasure bit (flag) de-interleaver is implemented in software it may be executed optionally.
A CRC is more complicated than a checksum and is widely known to those of skill in the art. Using a CRC, T error check bytes appended to a frame within a byte stream are based on determining the remainder of a polynomial division of the bits in the byte stream with a generating polynomial of 8*T bits. The value of T, that is the number of bytes to append to the incoming stream, can vary and generally the error detecting capacity of the CRC increases as T increases with the offsetting disadvantage that the data payload (N-T) decreases, where the frame size is fixed at N.
For example, the transmitter (e.g., transmitter 422, 424 of
In one embodiment of the present invention, an 8 bit CRC is used as follows:
crc(D)=M(D) D modulo G(D) where M(D)=m0Dk−1+m1D k-2+ . . . +mk-2D+mk-1, is the message polynomial,
k=(N−1)×8, N=Total number of bytes in modulated frame
G(D)=D8+D4+D2+D2+1, is the generating polynomial,
crc(D)=c0D7+c1D6+ . . . +c6D+c7, is the check polynomial, and D is the delay operator.
That is, the CRC is the remainder when M(D) D8 is divided by G(D). Each byte shall be input into the crc(D) equation least significant bit first. Alternative embodiments could use CRCs with a greater number of generator polynomial bits, such as the CRC16 generator.
Returning to
If a transmission error has occurred, then erasure marker 608 generates an N-bit array 610 of flag values, each set to a value indicating the frame composed of the N-byte array 612 is corrupt (e.g., set to ‘1’). However, if there has not been a transmission error, then the erasure marker 608 generates an N-bit array 610 of flag values, wherein each flag value is set to indicate the frame composed of N-byte array 612 is not corrupt (e.g., set to ‘0’). In either case, a plurality of N-bit and N-byte arrays corresponding to corrupt and non-corrupt frames are de-interleaved, decoded, and corrected, as discussed above with respect to erasure decoding.
In another embodiment of the present invention, a receiver (e.g., receiver 426, 428 of
If the sum of the noise power across all the used tones at the receiver is calculated, this sum will remain fairly constant, because of the uniformity of the average power. For any one tone the instantaneous noise power will fluctuate while maintaining a certain average power, but the instantaneous fluctuations will average out when summed across all used tones in the receiver particularly when the number of tones is large.
In the case where the received frame was corrupted by a strong impulse, several of the tones will have an elevated noise power, most likely enough to cause false decoder decisions. False decoding will reduce the apparent noise because the distance from the received point to the true point will be less than the distance from the received point to the decision point. This is due to the decoder deciding on the point that is closest to the received signal. Even with this reduction in apparent noise for some tones, the instantaneous noise power will still increase dramatically in the presence of a strong impulse.
If the data frame is corrupt, the severely corrupted frame module 708 generates an N-bit array 712 of flag values, each set to a value indicating the frame composed of N-byte array 710 is corrupt (e.g., set to ‘1’). However, if the data frame is not corrupt, then the corrupted frame module 708 generates an N-bit array 712 of flag values, wherein each flag value is set to indicate the frame composed of N-byte array 710 is not corrupt (e.g., set to ‘0’). In either case, a plurality of N-bit and N-byte arrays corresponding to corrupt and non-corrupt frames are de-interleaved, decoded, and corrected, as discussed above with respect to erasure decoding.
Among varying embodiments, the threshold value discussed above can be either a fixed value or calculated from the long-term average and variation of previously computed total noise power values. One method of determining the threshold would be to set it to be the total noise power average plus k times total noise power variance, where total noise power variance is based on the variation of the total noise power over a set of measurements of a set of previous frames, the total noise power average is the average of total noise power over the set of previous frames, and k is a constant that determines the sensitivity of the corrupted frame detector. As k increases the detector becomes less sensitive and may fail to detect some severely corrupted frames, as k decreases the detector becomes more sensitive and may generate false alarms.
The outlier counter 804 analyzes each noise power value for each tone of the N-byte array 710 and compares that value to an outlier threshold value. An outlier count is incremented by one for each noise power value that exceeds the outlier threshold value. For example,
The total number of outlier values is then passed to severely corrupted frame module 806 to determine if the total outlier count is greater than an outlier frequency threshold value. If the outlier frequency threshold value is exceeded, the data frame is corrupt and the severely corrupted frame module 708 generates an N-bit array 712 of flag values, each set to a value indicating the frame composed of N-byte array 710 is corrupt (e.g., set to ‘1’). However, if the data frame is not corrupt, then the corrupted frame module 708 generates an N-bit array 712 of flag values, wherein each flag value is set to indicate the frame composed of N-byte array 710 is not corrupt (e.g., set to ‘0’). In either case, a plurality of N-bit and N-byte arrays corresponding to corrupt and non-corrupt frames are de-interleaved, decoded, and corrected, as discussed above with respect to erasure decoding.
In one embodiment, the outlier threshold value is set to be an outlier threshold factor times the average total noise power, as discussed above. In another embodiment, the outlier frequency threshold may be set to an outlier frequency threshold factor times the number of loaded tones. The outlier threshold factor and outlier frequency threshold factor are design parameters that determine the sensitivity of the corrupted frame detector. As these parameters increase the detector becomes less sensitive and may fail to detect some severely corrupted frames. On the other hand, as these parameters decrease the detector becomes more sensitive and may generate false alarms.
At operation 1004, the system generates a plurality of flag values corresponding to the plurality of the up to R bit groups for each corrupt data frame of the plurality of data frames to a first value and generating a plurality of flag values corresponding to the plurality of bit groups for each non-corrupt data frame of the plurality of data frames to a second value.
At operation 1008, the system de-interleaves a plurality of corrupt and non-corrupt bit groups and de-interleaves a plurality of flag values corresponding to the plurality of corrupt and non-corrupt bit groups.
The system further operates to correct the corrupt bit groups by decoding the de-interleaved bit groups including the corrupt and non-corrupt bit groups using erasure decoding, at operation 1010.
The operation of analyzing may be accomplished by two different operations, as selected at operation 1104. At operation 1106, the analysis includes analyzing noise power values by comparing an outlier frequency value to an outlier frequency threshold value.
At operation 1108, the alternate analysis includes analyzing noise power values by comparing total noise power for each data frame to a noise power threshold value.
Operation 1110 includes generating a plurality of flag values corresponding to the plurality of bit groups for each corrupt data frame of the plurality of data frames to a first value and generating a plurality of flag values corresponding to the plurality of bit groups for each non-corrupt data frame of the plurality of data frames to a second value.
Once generated, operation 1112, the system de-interleaves the plurality of corrupt and non-corrupt bit groups and de-interleaves the plurality of flag values corresponding to the plurality of corrupt and non-corrupt bit groups. Lastly, at operation 1114, the process concludes by correcting the corrupt bit groups by decoding the de-interleaved bit groups including the corrupt and non-corrupt bit groups using erasure decoding.
Operation 1206 includes generating a plurality of flag values corresponding to the plurality of bit groups for each corrupt data frame of the plurality of data frames to a first value and generating a plurality of flag values corresponding to the plurality of bit groups for each non-corrupt data frame of the plurality of data frames to a second value.
Once generated, at operation 1208 includes de-interleaving a plurality of corrupt and non-corrupt bit groups and de-interleaving a plurality of flag values corresponding to the plurality of corrupt and non-corrupt bit groups. Lastly, at operation 1210, the process concludes by correcting the corrupt bit groups as identified by the error check byte comparison of operation 1204 by decoding the de-interleaved bit groups including the corrupt and non-corrupt bit groups using erasure decoding.
In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
For example, a machine-readable medium may be provided having one or more instructions stored thereon, which instructions may be used to program a computer system or other electronic device to perform the operations described. A machine-readable medium may include any mechanism for storing or transmitting information in a form (e.g., software or processing application) readable by a machine (e.g., a computer). The machine-readable medium may include, but is not limited to, magnetic storage media (e.g., a floppy diskette), optical storage media (e.g., CD-ROM, CD-RW, DVD, etc.), magneto-optical storage media, read only memory (ROM), random access memory (RAM), erasable programmable memory (e.g., EPROM and EEPROM), flash memory, electrical, optical, acoustical, or other forms of propagated signal (e.g. carrier waves, infrared signals, digital signals, etc.), or other types of media suitable for storing electronic instructions.
The instructions and operations also may be practiced in distributed computing environments where the machine-readable media is stored on and/or executed by more than one computer system. In addition, the information transferred between computer systems may either be pulled or pushed across the communication media connecting the computer systems.
In general, although exemplary frequencies and tones are used in the description above, other frequencies, tones, and combinations thereof may be applicable to or affected by certain embodiments of the present invention.
Furthermore, referring to
In an embodiment, the transmitter-receiver device may take advantage of an extremely low noise, high linearity ADSL Analog Front End (AFE) and digital echo canceller, providing excellent long loop and bridge tap performance.
Thus, the transmitter-receiver device may reduce the need for a technician visit and provides superior modem training capability, particularly for those customers at the edge of the DSL coverage area.
The transmitter-receiver device may utilize impulse noise compensation and non-linear echo compensation to increase reliability and performance in actual ADSL end user environments. The transmitter-receiver device may detect real-world conflicts such as dimmer switches, fluorescent lighting, AM radio interference, unfiltered devices connected to the ADSL line (alarm systems, water meters, and half ringers) and poor wiring. This extra step ensures a better user experience, reduces truck rolls, and reduces lengthy troubleshooting calls.
Referring to
While some specific embodiments of the invention have been shown the invention is not to be limited to these embodiments. The invention is to be understood as not limited by the specific embodiments described herein, but only by scope of the appended claims.
This application claims the benefit of U.S. Provisional Application No. 60/619,358, filed Oct. 15, 2004, and U.S. Provisional Application No. 60/619,359, filed Oct. 15, 2004, and U.S. Provisional Application No. 60/619,300, filed Oct. 15, 2004, which are incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
60619358 | Oct 2004 | US | |
60619359 | Oct 2004 | US | |
60619300 | Oct 2004 | US |