The present invention relates to modems and in particular to a method and apparatus for enhancing the performance of modems employing forward error correcting codes under conditions of impulsive noise.
Modems are commonly used to transmit and receive data across communications media such as optical fiber, copper wire and coaxial cable. Most typically, the final link leading from a central office to a subscriber""s home is of the copper twisted pair variety, which is usually poorly shielded and thus exposed to sources of noise which may corrupt the signals travelling thereon.
Some noise sources, such as thermal noise and crosstalk, are relatively time-invariant and their effects are either controllable (to a certain extent) or can be cancelled through the use of special techniques for coding the transmitted data. Other sources of noise are impulsive, i.e., they occur for a limited time and are generally unpredictable, such as lightning or the passing of a locomotive. Numerous prior art techniques have been developed to tackle these two types of noise; among these, forward error correction and interleaving are often used in combination to alleviate data corruption due to both time-invariant and impulsive noise sources.
Forward error correction, or FEC for short, consists of partitioning the data to be transmitted into sequential frames of data bits and appending several additional bits (so-called FEC overhead bits) to each frame. The FEC overhead bits in each frame represent the result of mathematical calculations performed on various sections of the data bits in the frame. The mathematical operations are specially chosen to permit a limited number of errors in the data bits to be corrected by the receiver performing similar operations and subsequently examining the FEC overhead bits.
Good FEC algorithms will typically provide correction for up to 9 bytes out of 200 with an associated bandwidth overhead on the order of 5 percent. However, impulsive noise may be of a significant duration and thus may corrupt frames beyond correctability by the FEC algorithm in use. To mitigate the effect of lengthy bursts of impulsive noise on a transmitted data signal, prior art modems employ a technique known as interleaving. Using this approach, data frames are segmented and the individual segments from a number of consecutive frames are interleaved.
It is conventional to interleave data spanning a period of 20 or more times the duration of the maximum impulse to be survived. Thus, when affected by a burst having the duration of one-half frame, the effect of the burst is to in fact corrupt each of at least 10 consecutive frames by at most 5% of the bits contained therein. The corrupted frames then easily lend themselves to correction by a standard FEC algorithm.
Unfortunately, a practical system employing sufficient interleaving to reduce error rates for multimedia traffic will introduce a delay on the order of nine milliseconds before the first bit in the first frame is actually transmitted. For real-time applications such as telephony, such long delays caused by a transmitting modem are unacceptable, especially since a de-interleaving procedure, which introduces an additional delay of similar magnitude, must be performed at the receiver. In addition, there are considerable memory requirements at both transmitter and receiver when storing dozens of frames, each of which may have a length of 250 bytes or more.
Therefore, there is a need for a modem with error correction which improves the protection afforded to data under conditions of impulsive noise, while continuing to minimize both the amount of overhead bandwidth introduced by the corrective measures applied by the modem and the delay through the modem.
It is an object of the present invention to mitigate or obviate one or more disadvantages of the prior art.
Therefore, the invention may be summarized according to a first broad aspect as a method of communicating frames of digital data across a communications medium extending between a first modem and a second modem, each frame comprising a data field and an error field, the first modem having a first startable timer, comprising the steps of: the first modem receiving a first set of frames sent by the second modem; the first modem determining, for each frame in the first set, whether the data field in the frame is error-free, contains correctable errors or contains uncorrectable errors; if the data field is error-free, the first modem verifying whether the first timer is running and if so, discarding the data field, otherwise forwarding the data field to a first digital interface; if the data field contains correctable errors, the first modem correcting said errors and verifying whether the first timer is running and if so, discarding the data field, otherwise forwarding the corrected data field to the first digital interface; if the data field contains uncorrectable errors, the first modem verifying whether the first timer is running and if so, discarding the data field, otherwise encoding a first error message into the error field of a first frame, sending the first frame to the second modem and starting the first timer to time out after a predetermined expiry time.
According to a second broad aspect, the present invention may be summarized as a method of communicating frames of digital data across a communications medium extending between a first modem and a second modem, each frame comprising a data field and an error field, the first modem having a first startable timer, comprising the steps of: the first modem receiving a first set of frames sent by the second modem; for each frame in the first set, the first modem verifying whether the first timer is running and if so, discarding the data field in the frame; otherwise, the first modem determining whether the data field in the frame is error-free, contains correctable errors or contains uncorrectable errors; if the data field is error-free, the first modem sending the data field to a first digital interface; if the data field contains correctable errors, the first modem correcting said errors and sending the corrected data field to the first digital interface; if the data field contains uncorrectable errors, the first modem discarding the data field, encoding a first error message into the error field of a first frame, sending the first frame to the second modem and starting the first timer to time out after a predetermined expiry time.
The invention may be summarized according to a third broad aspect as a modem for connection to a transmission medium and to a digital communications device, the modem comprising: analog interfacing means for connection to the transmission medium and for separating a bidirectional analog signal travelling on the transmission medium into a first received stream of frames and a second transmitted stream of frames, each frame comprising a data field and an error field; error message detection means connected to the analog interfacing means, for detecting a retransmission request in the data field of frames in the received stream of frames and producing both a xe2x80x9cretransmission requestxe2x80x9d message and a second received stream of frames; error correction decoding means connected to the error message detector, the error correction decoding means comprising a startable timer, for producing an xe2x80x9cuncorrectable errorxe2x80x9d message and error-free data stream from the second received stream of frames; digital interfacing means connected to the error correction decoding means, to the error message detection means and for connection to the digital communications device, for transmitting the error-free data stream to the device, for receiving and temporarily storing an original data stream from the device and for retransmitting previously stored portions of the original data stream upon receipt of said xe2x80x9cretransmission requestxe2x80x9d message from the error message detection means; error correction encoding means connected to the digital interfacing means, for increasing redundancy of the original data stream, thereby to produce a first transmitted stream of frames; an error message inserter connected to the error correction encoding means, to the error correction decoding means and to the first interfacing means, for encoding an error message into the first transmitted stream of frames upon receipt of said xe2x80x9cuncorrectable errorxe2x80x9d message from the error correction decoding means, thereby to produce the second transmitted stream of frames.