The present invention relates generally to network communications and, more particularly, to accounting for interference in a data transmission system.
In many transmission systems, both the receiver and transmitter include a clock that controls various activities. The clock is typically a crystal oscillator that controls processing-related activities associated with transmitting and receiving data over a channel. Due to minor variations in the clocks, the receiver and transmitter clocks are often offset from each other, i.e., the frequency of the clock at the receiver is often different from that at the transmitter.
One problem associated with mismatched clock frequencies is that the receiver may be unable to recover the transmitted signal without errors. For example, a discrete multitone (DMT) transmission system may transmit data over 256 distinct carriers (also referred to as tones) with each carrier being separated by 4.3125 KHz. When the transmitting and receiving clocks are mismatched, received tones may leak into one another. This is known as Intercarrier Interference (ICI). When the ICI is particularly high, the receiver may be unable to recover the transmitted signal without errors.
There exists a need for systems and methods for accounting for ICI in data transmission systems.
These and other needs are met by the present invention, where an effective signal-to-noise ratio (SNR) that accounts for ICI is determined. A receiving station may estimate the ICI per tone and the noise per tone associated with data transmitted from a transmitting station. The receiving station may add the ICI and noise per tone values to generate an effective noise per tone value and then determine an effective signal-to-noise ratio (SNR) using the effective noise per tone. The effective SNR may then be used to determine bit loading information. The receiving station may transmit the bit loading information to the transmitting station, which may use the bit loading information when transmitting data.
According to one aspect of the invention, a first device that transmits data over a network medium is provided. The device includes a memory configured to store ICI information for each of a number of respective tones used in a discrete multitone transmission system. The device also includes logic configured to receive data signals transmitted on the plurality of tones, estimate a noise value for each tone, generate an effective noise value for each tone using the ICI information and the estimated noise value for each tone and determine a signal-to-noise ratio (SNR) for each tone using the effective noise values. The device also includes a transmitter configured to transmit bit loading information to a second device, the bit loading information being based on the determined SNR.
Another aspect of the present invention provides a method in a first network device that transmits data using DMT modulation. The method includes storing ICI information in a memory, receiving a number of signals transmitted on a number of tones, estimating an amount of noise associated with each tone and estimating an amount of signal energy associated with each tone. The method also includes calculating an effective noise value for each of the tones using the ICI information and the estimated amount of noise associated with each of the tones. The method further includes calculating a SNR for each of the tones using the estimated amount of signal energy and the effective noise value for each of the tones and determining bit loading information for each tone based on the SNR for each of the tones.
Other advantages and features of the present invention will become readily apparent to those skilled in this art from the following detailed description. The embodiments shown and described provide illustration of the best mode contemplated for carrying out the invention. The invention is capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawings are to be regarded as illustrative in nature, and not as restrictive.
Reference is made to the attached drawings, wherein elements having the same reference number designation represent like elements throughout.
Channel 130 may include a wired or wireless transmission channel. For example, channel 130 may include conventional telephone wiring, e.g., twisted pair copper wire. Alternatively, channel 130 may include coaxial cable, a radio frequency (RF) link or some other medium that permits data to be transmitted between stations.
The number of components illustrated in
Data device 210 may include some type of computing device, such as a personal computer, laptop, personal digital assistant (PDA) or some other intelligent processing device. Data device 210 may also include a media access controller (MAC) that transmits and receives data packets to/from transceiver 220.
Transceiver 220 may include one or more physical layer transceivers that transmit and receive data via channel 130. In accordance with an exemplary embodiment of the present invention, stations 110 and 120 communicate using DMT modulation techniques. Accordingly, transceiver 220, consistent with the present invention, may include a transmitter portion that receives a digital data stream from data device 210 and converts the data into a series of tones. As discussed previously, 256 carriers or tones may be used to carry data in a DMT transmission system with each tone being separated by 4.3125 KHz. Alternatively, other numbers of tones may be used to carry the data and other separations between tones may be used. Transceiver 220 may also include a receiver portion that receives data transmitted in accordance with a DMT protocol and converts received tones into a serial bit stream, as described in more detail below.
Loading logic 230 may analyze signals received from station 110 and determine the number of bits that may be loaded in each tone when station 110 transmits data to station 120. Station 120 may then transmit this bit loading information to station 110 so that station 110 will load the appropriate number of bits per tone when transmitting data to station 120. Station 120 may optionally use this information when loading data for transmission to station 110. In accordance with an exemplary implementation of the present invention, loading logic 230 takes into account ICI when determining the number of bits to load in each tone, as described in more detail below.
As discussed above, transceiver 220 may include a transmitter portion and a receiver portion.
Encoder 310 receives a stream of data bits from data device 210 and may organize the bits into groups. Encoder 310 encodes or maps the data bits into tones using, for example, a quadrature amplitude modulation (QAM) protocol by representing each grouping of bits with a discrete tone. In accordance with an exemplary implementation of the present invention, each tone may be modulated to carry up to 15 bits of data. Encoder 310 maps the designated number of bits to each respective tone and represents each tone with a complex number that indicates phase and amplitude information for that particular tone in the frequency domain.
IFFT logic 320 receives the complex numbers representing the tones from encoder 310. IFFT logic 320 converts the frequency domain information into time domain information. IFFT logic 320 may also add a cyclic prefix or guard band to the time domain information to eliminate the effects of InterSymbol Interference (ISI).
Parallel-to-serial converter 330 may convert the parallel time domain information from IFFT logic 320 into a serial signal stream. D/A converter 340 may convert the serial signal stream of data to an analog format and pass the analog signal to analog front end (AFE) 350. AFE 350 receives the analog waveforms transmits the analog waveforms on channel 130. AFE 350 may include a low-pass filter that filters the analog waveforms before transmitting the waveforms on channel 130.
AFE 410 receives analog waveforms transmitted on channel 130 and forwards these waveforms to A/D converter 420. AFE 410 may include an anti-aliasing filter that filters the received analog waveforms. A/D converter 420 converts the analog waveforms into a digital format. Serial-to-parallel converter 430 converts the serial waveform into a parallel format. Serial-to-parallel converter 430 may also remove the cyclic prefix from the signal.
FFT logic 440 transforms the parallel data from the time domain signal back into a frequency domain representation containing amplitude and phase information for each tone. FFT logic 440 also forwards the frequency domain information to loading logic 230, which determines the number of bits that should be loaded on each tone, as described in more detail below. Loading logic 230 may forward this information to transmitter 300, as described in more detail below. Decoder 450 decodes the frequency domain representation back into the original serial bit stream which may be forwarded, for example, to data device 210.
As discussed above, the receiver 400 and loading logic 230 determine a number of data bits to load in each tone based on the network conditions. According to an exemplary implementation of the present invention, receiver 400 takes into account ICI to determine the number of bits to load in each tone, as described in more detail below, and forwards this information to transmitter 300. Transmitter 300 may then forward the bit loading information to station 110 indicating the appropriate number of bits to load in each tone when transmitting data to station 120.
Memory 530 may include a conventional memory device, such as a conventional random access memory (RAM) device. ICI table 510 may be a conventional memory device that stores ICI data associated with DMT transmission. For example, ICI table 510 may store the estimated ICI for each of the 256 tones used in an exemplary DMT system. The ICI information for each tone may be determined during a design stage associated with network 100. The ICI may be determined using a worst case scenario or may be determined for a number of particular clock offsets.
If the ICI information is determined using a worst case scenario, the maximum offset in frequency between a clock at a transmitting node (e.g., station 110) and a clock at a receiving node (e.g., station 120) may be assumed. In addition, a worst case attenuation profile for the signals transmitted between stations 110 and 120 may be assumed. That is, a worst case signal attenuation value per tone may be assumed. The particular signal attenuation values may be different for each tone. The ICI for each tone may then be computed using the maximum frequency offset and the selected attenuation values. For example, simulations may be generated using the maximum frequency offset and selected attenuation values. The total amount of energy that leaks out of or into each particular tone may then be calculated. That is, the total energy that leaks out of a particular tone is determined. The sum of energies that leak into this particular tone from all the other tones may then be determined. These values are then summed to determine the maximum ICI for that particular tone. The process may then be repeated for each of the tones used in the DMT system.
It should be understood that the maximum frequency offset may be based on the type of crystal oscillators (i.e., clocks) used in stations 110 and 120 and their expected accuracies/tolerances. It should also be understood that the selected attenuation profile may be based on simulations performed for an exemplary DMT transmission system that includes two stations located a predetermined distance apart, such as a maximum distance, and connected by a predetermined channel medium. The distance between the stations and the type of channel medium employed may be chosen to emulate a typical generic network. This enables the determined ICI values to be used in any general purpose network. Alternatively, the simulations may be chosen to be specific to a particular network, such as network 100.
If the ICI is determined based on the particular clock offset, simulations may be generated using the selected clock offsets and the selected attenuation profile. The total amount of energy that leaks out of or into a particular tone may be determined at each clock offset. The process may be repeated for each tone at each particular clock offset. These values may be stored in ICI table 510.
The actual clock offset between transmitting station 110 and receiving station 120 may be estimated during training. Training refers to a period in which communications between two stations are initialized. In conventional DMT systems, two stations exchange handshaking information upon start-up. This information may include, for example, the particular protocol to be used between the two stations. The two stations may also perform channel analysis and exchange other information needed for transmitting and receiving data.
Station 120 may estimate the clock offset from station 110 by comparing the phase information associated with the pilot tone in successive symbols. Station 120 may then identify the ICI based on the clock offset.
For example,
In the scenario described above with respect to determining ICI using a worst case scenario, ICI table 510 would only include a single row with the ICI information for each tone. That is, the worst case scenario would be used to estimate ICI for all transmissions. In this manner, station 120 will use the same ICI information when determining bit loading information for all stations in network 100. In either situation (ICI determined using a worst case scenario or ICI determined based on a particular clock offset), the ICI per tone information may be used to determine an effective signal-to-noise ratio (SNR), as described in more detail below.
Returning to
For example, in an exemplary implementation consistent with the present invention, SN calculator 520 may detect one or more inter-packet gaps (i.e., one or more periods of transmission inactivity) and determine an average noise energy over these gaps. It will be appreciated that any signal energy measured during an inter-packet gap would be considered “noise.” The average noise energy may be continuously updated when inter-packet gaps are detected. Alternatively, the average noise energy may be updated at predetermined intervals. SN calculator 520 may store this value in memory 530. It should be understood that other techniques may be used to determine the noise energy per tone.
SN calculator 520 may then determine the effective signal-to-noise ratio for each tone based on the estimated received signal energy for each tone, the average noise energy stored in memory 530 and the ICI information stored in ICI table 510. For example, SN calculator 520 may determine/estimate the signal energy for each received tone. SN calculator 520 may then add the ICI per tone information stored in ICI table 510 to the measured/estimated average noise energy per tone stored in memory 530 to generate an effective noise per tone value. In alternative implementations, SN calculator 520 may perform processing on the ICI per tone information stored in ICI table 510 prior to adding the ICI per tone information to the measured/estimated noise per tone. SN calculator 520 may then divide the estimated signal energy for each tone by the effective noise per tone. This value represents the effective SNR for that tone.
Loading controller 540 receives the effective SNR and determines how many bits of information that station 110 should load per tone when transmitting data to station 120. For example, loading controller 540 may include a loading control algorithm that identifies how many bits to load per tone based on the effective SNR. For example, a large number of bits may be assigned to those tones that have a high SNR, while few bits, if any, may be assigned to those tones that have a low SNR. Loading controller 540 passes the bits per tone information to transmitter 300. Transmitter 300 may then transmit this information to station 110, which uses the bit loading information when transmitting data to station 120.
Loading logic 230 is illustrated in
As discussed above, loading logic 230 works in conjunction with transceiver 220 to identify the number of bits that a transmitting station, such as station 110, should load per tone when transmitting data to a receiving station, such as station 120. Station 120, as described above, determines this information and then informs station 110 as to the appropriate bit loading information.
If the ICI is determined based on a particular clock offset, the particular clock offset may be estimated during training. For example, station 110 may transmit a number of symbols to station 120. Station 120 may decode the symbols and compare the phase of successive pilot tones to estimate the clock offset. Station 120 may store this value in memory 530. This information may then be used as an index to ICI lookup table 510 to determine the ICI for each tone. For example, as discussed previously and illustrated in
In either case, (ICI determined using worst case scenario or ICI determined for a number of clock offsets), the ICI values for each respective tone may be stored in ICI table 510 (act 710). If the ICI values were determined based on a worst case scenario, assume that network 100 starts up. Alternatively, if the network 100 has already started up, assume that the training process continues. The training process may include a handshaking procedure between stations 110 and 120. For example, the handshaking may indicate that the stations will communicate via DMT modulation and indicate the particular tones that will be used.
Stations 110 and 120 may also perform a channel analysis with respect to channel 130. For example, SN calculator 520 may measure the signal energy associated with each tone in any conventional manner (act 720). SN calculator 520 may store this information in memory 530 (act 720).
SN calculator 520 may then determine average noise energy associated with channel 130 (act 730). For example, as discussed above, in an exemplary implementation consistent with the present invention, station 120 may receive a number of signals from station 110. SN calculator 520 may detect one or more inter-packet gaps (i.e., one or more periods of transmission inactivity) and determine an average noise energy over these gaps. The average noise energy may be continuously updated when inter-packet gaps are detected. Alternatively, the average noise energy may be updated at predetermined intervals. SN calculator 520 may store the noise energy value in memory 530 (act 730). This value represents the average noise for each of the tones.
SN calculator 520 may then determine an effective SNR for each tone (act 740). For example, if the worst case scenario is being used, SN calculator 520 retrieves the ICI per tone from ICI table 510 and adds the estimated noise value stored in memory 530 to the ICI value for each tone to generate an effective noise value for each of the respective tones.
Alternatively, ICI per tone value may be based on the estimated clock offset. In this case SN calculator 520 retrieves the estimated clock offset information determined during training and stored in memory 530. SN calculator 520 may use this clock offset value as an index to ICI table 510. For example, if the estimated clock offset is “B,” SN calculator 520 access row B of ICI table 510 to retrieve the ICI per tone values. SN calculator 520 then adds the estimated noise energy stored in memory 530 to each of the ICI values stored in line B of ICI table 510 to generate the effective noise values for each tone. In either situation, the effective noise per tone value includes the estimated noise associated with channel 130 and the ICI per tone values.
SN calculator 520 may then calculate an effective SNR for each tone (act 750). For example, SN calculator 520 may divide the estimated signal energy per tone (determined at act 720) stored in memory 530 by the effective noise for each tone (determined at act 740) to generate an effective SNR for each tone (act 750). This information may then be forwarded to loading controller 540.
Loading controller 540 may then determine the number of bits that station 110 should load in each tone when transmitting data to station 120 based on the effective SNR (act 760). For example, loading controller 540 may determine the number of bits for each respective tone based on the SNR ratio for each tone and a maximum error probability allowed. The number of bits loaded in each tone may vary based on the particular tone's SNR. For example, a tone with a higher SNR may be allocated more bits than a tone with a lower SNR. The bit loading may also be chosen so that the effective bit error rate (BER) is below a predetermined threshold. The bit loading may also include a predetermined margin of safety so that the number of bits loaded per tone achieves the desired BER with some room to spare. That is, the number of bits loaded per tone may be less than the maximum number of bits that could theoretically be loaded per tone. This may allow station 110 to account for other noise factors that may exist on channel 130 when transmitting data to station 120.
In any event, loading controller 540 forwards the allocated bits per tone to transmitter 300. Transmitter 300 may then transmit this information to station 110. That is, encoder 310 of station 120 may then transmit the bit loading information indicating the appropriate number of bits that station 110 should load in each tone when transmitting data to station 120 (act 770). This may also be part of the training process between stations 110 and 120.
Station 110 receives the bit loading information from station 120 (act 780). Station 110 decodes the bit loading information and identifies the number of bits to load in each tone when transmitting data to station 120 (act 780). Station 110 may then load each tone with the allocated number of bits when transmitting data to station 120. That is, encoder 310 of station 110 maps data bits in a serial bit stream to the tones such that each tone is loaded with the appropriate number of bits determined by station 120. In this manner, receiver 400 is able to account for ICI when determining the appropriate number of bits to load per tone. This enables stations 110 and 120 to communicate effectively over channel 130.
Station 110 may also use this bit loading information when transmitting data to other stations in network 100. For example, station 120 may represent a master station in network 100 and each other station, such as station 110, may communicate with station 110 upon start-up to identify the appropriate bit loading information to use when transmitting data in network 100. Alternatively, station 120 may represent the first station to which station 110 has communicated and station 110 may use the determined bit loading information when transmitting data to other stations in network 100. Station 120 may optionally use the bit loading information determined at act 760 when transmitting data to other stations, such as station 110.
In an alternative implementation, transceivers with different A/D and D/A sampling rates and FFT sizes may transmit data at the maximum speed allowed by any one of these devices.
Receiver 850 includes AFE 855, A/D converter 860, serial-to-parallel converter 865, FFT logic 870 and decoder 875. These components perform similar functions as described above with respect to
Assume that a first transceiver, such as transceiver 800, uses a sampling rate identified as fs1 and has an FFT size of N1 samples per symbol. According to this implementation, a second transceiver with N2 samples per symbol could interoperate with transceiver 800 provided its sampling rate (i.e., fs2) is equal to fs1*(N2/N1). That is, fs2=(fs1)(N2/N1). In this manner, numerous transceivers with different sampling rates could then be used together in the same network.
During handshaking, handshake logic 840 and 880 exchange information. For example, the FFT used by the two transceivers is exchanged. If one transmitter, such as transmitter 810, uses a bigger FFT size than another transceiver, it loads the data only into as many tones (starting from the lowest frequency tone) as the receiver can handle. If the receiver uses a bigger FFT size than the transmitter, then it decodes data only from as many tones as the transmitter can handle and again starts from the lowest frequency tone.
Described has been a system and method for accounting for ICI in a DMT transmission system. An advantage of the present invention is that the effective noise over a channel may be more accurately estimated by including the ICI information. Bit loading logic may then use this information to determine an appropriate number of bits that may be loaded in each tone without causing errors during transmission. As a result, data communications between stations may be improved.
Only the preferred embodiments of the invention and a few examples of its versatility are shown and described in the present disclosure. It is to be understood that the invention is capable of use in various other combinations and environments and is capable of modifications within the scope of the inventive concept as expressed herein.
For example, while the present invention has been described with respect to two stations transmitting data between themselves, the present invention may also be implemented in other network devices. In addition, a series of acts has been described with regard to
The scope of the invention is defined by the claims and their equivalents.
Number | Name | Date | Kind |
---|---|---|---|
5228062 | Bingham | Jul 1993 | A |
5983111 | Kim | Nov 1999 | A |
6370188 | Wu et al. | Apr 2002 | B1 |
6452907 | Levin | Sep 2002 | B1 |
6456653 | Sayeed | Sep 2002 | B1 |
6870888 | Shapiro et al. | Mar 2005 | B1 |
6999507 | Jin | Feb 2006 | B2 |
7050825 | Ginesi et al. | May 2006 | B2 |
20030114127 | Baldwin | Jun 2003 | A1 |
20030210645 | Gummadi et al. | Nov 2003 | A1 |
20040005010 | He et al. | Jan 2004 | A1 |