Embodiments of the inventive subject matter generally relate to the field of communication systems and, more particularly, to rate adaptation for a communication system based, at least in part, on raw bit error rate.
In network communication systems, data can be transmitted from a first network device through a communication channel to a second network device. The data transmission rate can be selected in accordance with communication channel conditions. When the communication channel has improved channel conditions, then higher data rates reliably can be transmitted. However, when the communication channel has increased noise and/or interference, data more reliably can by decreasing data rates. Commonly, a signal-to-noise ratio (SNR) metric is used to determine conditions within the communication channel. SNR is oftentimes determined by transmitting and receiving known sequences which can reduce overall throughput since the known sequences typically do not carry data.
Disclosed are various embodiments of adapting a data transmission rate of a network device for use in a communication channel. In one embodiment, a target raw bit error rate for a first network device can be determined for transmitting data. The first network device can include a physical interface for communicating through the communication channel and a first physical interface setting can be selected for the physical interface. The first network device can transmit data to a second network device and the first network device can receive an actual raw bit error rate associated with the transmitted data. The physical interface setting can be modified in accordance with a determined difference between the target and the actual raw bit error rates.
The present embodiments may be better understood, and numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The description that follows includes exemplary systems, methods, techniques, instruction sequences and computer program products that embody techniques of the present inventive subject matter. However, it is understood that the described embodiments may be practiced without these specific details. For instance, although examples refer to wireless networks implementing IEEE 802.11n protocols, other wireless protocols can be used such as BLUETOOTH ®. Similarly, although orthogonal frequency division multiplexing (OFDM) modulation is specifically used in examples, other modulation schemes can be practiced. In other instances, well-known instruction instances, protocols, structures and techniques have not been shown in detail in order not to obfuscate the description.
In network communication systems, data can be transmitted from a first network device through a communication channel to a second network device. The data transmission rate can be selected in accordance with communication channel conditions. For example, higher data rates can be selected when relatively good (interference free, low noise) channel conditions with less noise are present. In contrast, lower data rates can be selected when channel conditions include relatively more noise and/or interference. Data rates are usually controlled by settings at a physical (PHY) interface at each network device. The PHY interface usually includes components related to the physical interface with the communication channel.
A signal-to-noise ratio (SNR) is a signaling metric that can be used to determine channel conditions within the communication channel. The SNR can describe the difference between a received signal and a perceived noise floor. In some communication systems, the SNR can be measured and a PHY data rate can be selected in accordance with the SNR. For example, relatively noisier communication channels (lower SNR) can use lower PHY data rates while communication channels with less noise (higher SNR) can use relatively higher PHY data rates. The SNR determination can depend on known training sequences being sent through the communication channel. Unfortunately, these known sequences can reduce the actual data throughput through the communication channel since the training sequences typically do not carry data.
Relatively noisy communication channels can cause errors to be received with the transmitted data. Forward error correction (FEC) coding can be used to enhance communication sent through noisy channels. FEC coding can add extra (redundant) data to the transmitted data. When the transmitted data is received, the FEC data can be used to detect and correct errors that may have been introduced into the data during transmission via the communication channel.
Oftentimes, transmitted data can be arranged into blocks. FEC coding can detect and correct small errors that can have been introduced when block data is transmitted through the communication channel. A block error rate can be defined by a ratio of blocks that could not be correctly received to a number of blocks that were received. Determining the block error rate can provide some feedback beyond SNR measurements to assist in selecting a PHY data rate. The block error rate can directly correspond to actual channel conditions. Unfortunately, a block error rate is a coarse metric in that blocks either succeed or fail. Moreover, many communication systems prefer to operate with a block error rate close to zero, therefore a measured block error rate of zero may not provide much information to help select a faster PHY data rate.
Similar to the block error rate is a packet error rate. FEC coding can detect and correct small errors that can have been introduced when packets of data are transmitted through the communication channel. A packet error rate can be defined as a ratio of packets that could not be correctly received to a number of packets that were received. The packet error rate may still be too coarse of a metric to help select PHY data rates in accordance with channel conditions.
One embodiment of a PHY rate adaptation method can use a determined raw bit error rate to guide selection of PHY data rates. The raw bit error rate (BER) can be defined as a ratio of corrected data bits to a total number of received data bits. The raw BER can provide an indicator of communication channel conditions without the need for training sequences which may improve the actual throughput through the communication channel.
Second network device 122 can be similar to first network device 102, including PHY interface 124 and MAC 126, which in some embodiments function similarly to PHY interface 104 and MAC 106 respectively. For example, PHY interface 124 can receive data from communication channel 110 and process and pass the data to MAC 126. MAC 126 can then deliver the data for processing within second network device 122.
By way of example, and not limitation, a rate adaptation method can use an actual raw BER to determine, at least in part, PHY interface 104 settings related to PHY data rates for data transmissions from first network device 102 through communication channel 110 to second network device 122. In one embodiment, an actual raw BER can be compared to a target raw BER. The outcome of this comparison can be used to guide the selection of PHY data rates for PHY interface 104. Actual raw BERs can be determined at a receiving network device, such as second network device 122, particularly when transmitted data is FEC coded. That is, FEC coded data transmissions can be decoded and a number of incorrect bits (bits received in error) can be determined relative to a total number of bits received to determine the actual raw BER. The actual raw BER can be received by the first network device 102. In one embodiment, when the actual raw BER is greater than the target raw BER, then PHY interface 104 can receive settings for a lower data rate. Alternatively, when the actual raw BER is less than the target raw BER, then the PHY interface 104 can receive settings for a relatively higher data rate.
In one embodiment, before first network device 102 transmits data through the communication channel 110, a target raw BER can be determined. The target raw BER can be determined empirically or experimentally. In one embodiment, the target raw BER can be determined, at least in part, by a selected FEC coding scheme. More robust FEC coding schemes can be more tolerant of bit errors. For example, an FEC convolutional code with a code rate of 0.5 can be found to have a block error rate of 1 block in 100 when the raw BER is 2%. If that block error rate is acceptable, then the raw BER of 2% can be set as the target raw BER for network device 102. As will be further described below, the target raw BER can be used by first network device 102 to guide the selection of PHY data rates. A target raw BER related to block data transfer can be determined when data is arranged into blocks prior to transmission. A target raw BER related to block data transfer can be used to guide PHY data rate selection and will be described in conjunction with
In some embodiments, when determining the target raw BER, configuration of related FEC encoders on the transmitter side and FEC decoders on the receiver side (in addition to the type of FEC code) can be taken into account. For example, relatively lower code rates can provide more parity bits available for correction. Thus, relatively lower code rates can increase the target raw BER. Also, block size can influence target raw BER. Increasing block sizes can provide more code gain and increase tolerated bit errors, and therefore, increase the target raw BER. Many FEC decoders can be iterative in nature. FEC performance can be determined, in part, by the number of iterations made in the decoder. While more iterations can increase the target raw BER, higher data rates can provide less time for iterations, thus reducing the target raw BER.
Initial PHY settings can be selected for use by network device 102. As described above, PHY settings can determine a data transmission rate. In one embodiment, PHY settings can be stored in PHY interface 104. In another embodiment, PHY settings can be stored in a register separate from PHY interface 104 and written or transferred to PHY interface 104 when network device 102 is in operation. In some embodiments, initial PHY settings can depend on a particular selected communication channel and/or any protocols used within the communication channel. For example, if communication channel 110 is a wireless channel and protocols defined by the IEEE 802.11n standard are followed, then initial PHY settings may be selected from one of the modulation and coding schemes (MCS) specified within the IEEE 802.11n standard. Alternatively, if communication channel 110 is a powerline channel and protocols defined by the IEEE 1901.2010 standard are followed, then initial PHY settings may be selected from one of the supported carrier modulation formats described within the IEEE 1901.2010 standard specification.
Data can be sent through communication channel 110 from first network device 102 to second network device 122. For example, data can be transmitted from PHY interface 104, through communication channel 110 to PHY interface 124. FEC coding data can be added to the transmitted data by PHY interface 104. In other embodiments, FEC coding data can be added to data by other blocks or modules (not shown) within first network device 102.
An actual raw BER can be determined at the second network device 122. As described above, the raw bit error rate (BER) can be defined to be a ratio of corrected data bits to a total number of received data bits. In one embodiment, the actual raw BER can be determined by PHY interface 124. In other embodiments, the raw BER can be determined by other blocks or modules (not shown) within second network device 122. Since FEC coded data includes both information and parity bits, second network device 122 can decode and correct the received data from the coded data. In some embodiments, data can be corrected with a FEC decoder (not shown). If the FEC decoder is able to decode the received data correctly, then the FEC decoder can estimate the number of bits that needed to be corrected and can determine the actual raw BER. The actual raw BER can be representative of conditions within communication channel 110. For example, relatively high raw BERs can indicate relatively noisy channel conditions while relatively low raw BERs can indicate a relatively more quite channel condition. Actual raw BERs can be determined, at least in part, by detecting and correcting errors indicated by the FEC coded data.
First network device 102 can receive the actual raw BER from the second network device 122. In one embodiment, the actual raw BER can be sent within a directed message from second network device 122 to first network device 102. In another embodiment, the actual raw BER can be sent from second network device 122 in response to a query from first network device 102. First network device 102 can adjust PHY settings in accordance with the actual raw BER and the target raw BER. For example, if the actual raw BER is greater than the target raw BER, then the PHY settings can be adjusted downward to allow for slower, more robust data transmission. On the other hand, if the actual raw BER is less than the target raw BER, then the PHY settings can be adjusted upward to allow for a faster data transmission. In one embodiment, the PHY settings can be adjusted such that the actual raw BER can be close to, but less than a rate that can cause more errors than can be corrected by second network device 122. In other words, the PHY settings can be used to manipulate the actual raw BER to increase data throughput while not exceeding an amount of errors that can be corrected by a FEC decoder.
Rate adaptation control module 206 can provide PHY settings to data rate controller 208 in PHY interface 104. The provided PHY settings can include an initial PHY data rate setting as described in stage B above. In one embodiment, data rate controller 208 can determine modulation characteristics for data to be transmitted into communication channel 110. PHY interface 104 can transmit data from MAC 106 at the data rate determined by data rate control module 208 to communication channel 110.
PHY interface 104 can receive a determined actual raw BER from a separate, network device that has received the data transmitted from the network device 102 (such as second network device 122 described above). In one embodiment, PHY interface 124 can provide the actual raw BER to rate adaptation control module 206. In other embodiments, the actual raw BER can be provided by other modules such as MAC 126. Rate adaptation control module 206 can compare the actual raw BER to the target raw BER. In one embodiment, the target raw BER can be determined by rate adaptation control module 206. In another embodiment, target raw BER can be received by and stored in rate adaptation control module 206. For example, software or firmware can determine and store the target raw BER in the rate adaptation control module 206. If the actual raw BER is greater than the target raw BER, then rate adaptation control module 206 can select a slower data rate PHY setting for data rate controller 208. Alternatively, if the actual raw BER is less than the target raw BER, then rate adaptation control module 206 can select a faster data rate PHY setting.
In one embodiment, the actual raw BER is to be greater than or less than the target raw BER by a predetermined amount (a tolerance range) before any changes are made to the PHY settings. In one embodiment, if the actual raw BER is greater than the upper limit of the tolerance range, then PHY settings selects a slower data rate PHY setting. Alternatively, if actual raw BER is less than the lower limit of the tolerance range, then rate adaptation control module 206 can select a faster data rate PHY setting for data rate control block 208. In some embodiments, the tolerance may be a predetermined buffer amount and, in some embodiments, can provide hysteresis to the PHY setting adjustments. In this manner, raw BER that is observed in communication channel 110 can be used by network device 102 to select PHY settings and affect data transmission speeds.
In one embodiment, PHY interface 104 can also receive block error rates as observed by a receiving network device (e.g., network device 122 in
For example, in one embodiment, if the actual raw block error rate is greater than the upper limit of the tolerance range, then the target raw BER is reduced. Alternatively, if actual raw block error rate is less than the lower limit of the tolerance range, then the target raw BER can be increased.
FEC code performance can depend, at least in part, on the type of noise present in communication channel 110. While many FEC codes can perform well in the presence of Gaussian noise, some FEC codes may not perform well in the presence of time-domain (short bursts of noise) or frequency domain (noise in a particular frequency such as radio transmissions) noise sources. In such instances allowing target raw BER to be flexible can offer some advantages. For example, a noise pattern (time-domain or frequency domain) can be identified and a pattern for the target raw BER to correct the noise can be calculated. In one embodiment, a range for the target raw BER can be determined (e.g., determining the range from the target raw BER pattern determined).
As described above, data 202 can be received by MAC 106. MAC 106 can provide a data interface between components and modules within network device 102 and the communication channel 110 through the PHY interface 104. Data from MAC 106 can be received by FEC coder 304 in PHY interface 104. In one embodiment, FEC coder can 304 apply FEC coding to individual carriers.
Rate adaptation control module 306 can select initial PHY settings for PHY interface 104 through data rate controller 208. In one embodiment, PHY settings can be data rate settings for individual carriers used to transmit data by PHY interface 104. In one embodiment, the target raw BER for each carrier can be provided by or stored in rate adaptation control module 306. In another embodiment, target raw BER for each carrier can received by rate adaptation control module 306. In another embodiment, target raw BER for each carrier can be received by and stored in rate adaptation control module 306. For example, software or firmware can determine and store the target raw BER for each carrier in the rate adaptation control module 306. PHY interface 104 can transmit data from MAC 106 at the data rate determined by data rate controller 208 to communication channel 110.
PHY interface 104 can receive an actual raw BER for each carrier from a separate, network device that has received the data transmitted from the network device 102 (such as second network device 122). In other embodiments, the actual raw BER for each carrier can be provided by other modules such as MAC 126. In one embodiment, PHY interface 124 can provide the actual raw BER for each carrier to rate adaptation control module 306. Rate adaptation control module 306 can compare the actual raw BERs for each carrier to target raw BERs for each carrier. If actual raw BER for a carrier is greater than target raw BER for the same carrier, then rate adaptation control module 306 can adjust the PHY settings for that carrier to provide a slower data rate setting. On the other hand, if actual raw BER for a carrier is less than the target raw BER for the same carrier, then rate adaptation control module 306 can adjust the PHY settings for that carrier to provide a faster data rate setting for that carrier can be selected. In this manner, PHY settings for each carrier can be individually adjusted to accommodate noise characteristics of communication channel 110.
In one embodiment, the actual raw BER for a carrier is greater than or less than the target raw BER for the same carrier by a predetermined amount (a tolerance range) before any changes can be made to the PHY settings. In one embodiment, if the actual raw BER for a carrier is greater than the upper limit of the tolerance range, then PHY settings for that carrier are selected for a slower data rate PHY setting. Alternatively, if actual raw BER for a carrier is less than the lower limit of the tolerance range, then rate adaptation control module 306 selects a faster data rate PHY setting for data rate controller 208 for that carrier. In some embodiments, tolerance may be a predetermined buffer amount and, in some embodiments, can provide hysteresis to the PHY setting adjustments. In this manner, raw BER for a carrier that is observed in communication channel 110 can be used by network device 102 to select PHY settings and affect data transmission speeds.
As described above, data 202 to be transmitted can be received by MAC 106. Data from MAC 106 can be received by FEC coder 404 in PHY interface 104. In one embodiment, FEC coder 404 can apply FEC coding to individual time-domain symbols.
Rate adaptation control module 406 can select initial PHY settings for PHY interface 104 through data rate controller 208. In one embodiment, PHY settings can be data rate settings for individual time-domain symbols used to transmit data by PHY interface 104. In one embodiment, the target raw BER for each time-domain symbol can be determined by rate adaptation control module 406. In another embodiment, target raw BER for each time-domain symbol can be received by and stored in rate adaptation control module 406. For example, software or firmware can determine and store the target raw BER for each time-domain symbol in the rate adaptation control module 406. PHY interface 104 can transmit data from MAC 106 at the data rate determined by data rate control module 208 to communication channel 110.
PHY interface 104 can receive determined actual raw BER for each time-domain symbol from a separate, network device that received the data transmitted from the network device 102 (such as second network device 122). In one embodiment, PHY interface 124 can provide the actual raw BER for each time-domain symbol to rate adaptation control module 406. In other embodiments, the actual raw BER for each time-domain symbol can be provided by other modules such as MAC 126. Rate adaptation control module 406 can compare the actual raw BER for each time-domain symbol to target raw BER for each time-domain symbol. If the actual raw BER for a time-domain symbol is greater than the target raw BER for the same time-domain symbol, then rate adaptation control module 406 can adjust the PHY settings for that time-domain symbol to provide a slower data rate setting. On the other hand, if the actual raw BER for a time-domain symbol is less than the target raw BER, then rate adaptation control module 406 can adjust the PHY settings for a faster data transmission for that time-domain symbol. In this manner, PHY settings for each time-domain symbol can be individually adjusted to accommodate noise characteristics of communication channel 110.
In another embodiment, if particular time-domain symbols are determined to have a relatively higher actual raw BER, then those time-domain symbols can be excluded from use. Some time-domain symbols can have a relatively higher BER because of particular characteristics (noise and/or interference) in communication channel 110. Data throughput through communication channel 110 can be improved by excluding those time-domain symbols with relatively higher BER. In other words, when transmitting data, time-domain symbols with an actual raw BER greater than a high error threshold can be excluded from use in data transmissions. In one embodiment, the high error threshold can be determined by rate adaptation control module 406. In other embodiments, the high error threshold can be determined by other modules in network device 102 (not shown).
In one embodiment, the actual raw BER is to be greater than or less than the target raw BER by a predetermined amount (a tolerance range) before any changes can be made to the PHY settings. In one embodiment, if the actual raw BER is greater than the upper limit of the tolerance range, then PHY settings selects a slower data rate PHY setting. Alternatively, if actual raw BER is less than the lower limit of the tolerance range, then rate adaptation control module 406 can select a faster data rate PHY setting for data rate controller 408. In some embodiments, the tolerance range may be a predetermined buffer amount and, in some embodiments, can provide hysteresis to the PHY setting adjustments. In this manner, raw BER that is observed in communication channel 110 can be used by network device 102 to select PHY settings and affect data transmission speeds.
Proceeding to 505, the network device 102 applies the selected FEC coding to the data to be transmitted. FEC codes can enable bit error detection and correction. In some embodiments, FEC coded data can enable the detection and correction of transmitted data blocks. In some other embodiments, FEC coded data can also enable detection and correction of erroneous carriers. For example, when an OFDM modulation is used to transmit data, FEC coded data can be used to detect when one or more carriers used within the OFDM modulation are received in error. In still other embodiments, FEC coded data can enable detection and correction of erroneous time-domain symbols. For example, when FEC coded data is transmitted through distinct time-domain symbols, FEC coded data can be used to detect when one or more time-domain symbols have been received in error.
Proceeding to 506, the network device 102 transmits the data through the communication channel 110 to second network device 122 (
Proceeding to 508, the actual raw BER of the transmitted data is received. In one embodiment, network device 122 can determine and send the actual raw BER to network device 102. In other embodiments, network device 102 may be able to determine the actual raw BER, for example, through receiving tangential information from the network device 122 or other information from the communication medium 110.
Proceeding to 510, the network device 122 compares the actual raw BER to the target raw BER. Proceeding to 512, the network device 102 may adjust the PHY settings as described above in accordance with the comparison of the actual raw BER and the target raw BER. Proceeding to 514, network device 102 can adjust the target raw BER. This step can be optional as shown by the dashed lines in
Flow diagram 500 can apply to the rate adaptation described in
It should be understood that
As will be appreciated by one skilled in the art, aspects of the present inventive subject matter may be embodied as a system, method, or computer program product. Accordingly, aspects of the present inventive subject matter may take the form of an entirely hardware embodiment, a software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present inventive subject matter may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present inventive subject matter may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present inventive subject matter are described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the inventive subject matter. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
Network interfaces 604 can include PHY interfaces 104, 124 as described in
Rate adaptation module 608 can include elements and modules described in conjunction with rate adaptation control modules 206, 306 and/or 406. In one embodiment, rate adaptation module 608 can include functionality to receive and compare actual and target raw BERs as well as adjust PHY settings within network interfaces 604.
The memory unit 606 can embody functionality to implement embodiments described in
While the embodiments are described with reference to various implementations and exploitations, it will be understood that these embodiments are illustrative and that the scope of the inventive subject matter is not limited to them. In general, techniques for rate adaptation using raw BER as described herein may be implemented with facilities consistent with any hardware system or hardware systems. Many variations, modifications, additions, and improvements are possible.
Plural instances may be provided for components, operations or structures described herein as a single instance. Finally, boundaries between various components, operations and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of the inventive subject matter. In general, structures and functionality presented as separate components in the exemplary configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements may fall within the scope of the inventive subject matter.