1. Technical Field of the Invention
The invention relates generally to communication systems; and, more particularly, it relates to decoding processing within such communication systems.
2. Description of Related Art
Various communication systems have been under constant development for many years. Within certain types of communication systems, FEC (Forward Error Correction) is employed such that various parameters employed within the receiver end/decoder end of a communication channel are appropriately suited to be able to correct for most (ideally, any) errors that may be introduced within signal transmitted across the communication channel from a transmitter end to a receiver end. Sometimes, it is desirable to adjust certain of the various operational parameters within a receiver end communication device in an effort to compensate for any changes to the operating conditions (or communication device status) thereby providing relatively good performance and error correction.
However, in order to change these operational parameters within an FEC functional block within a receiver end communication device, the parameter configuration should be changed on the fly (i.e., in real time) for adaptive modulation and coding. In order to support this approach to performing FEC decoding, the FEC decoding parameters must be known and programmed to an FEC decoding functional block before input signals get into the FEC block. However, the approaches for doing this within the prior art do not provide for very operation and performance.
One prior art way of adaptively modifying the operational parameters for an FEC block is to send the FEC parameter information in frame headers and to extract the FEC parameters out of them. Once these FEC decoding parameters have been extracted from the frame headers, then those FEC decoding parameters may then be programmed back to the corresponding FEC block. This approach is typically a 1 to 1 approach, in that, a header includes FEC operational parameter information corresponding to an immediately following and subsequent FEC block. This prior art is shown pictorially in the following described prior art figures.
Moreover, in this prior art approach, the frame headers are either not protected by any error control code, or they are protected by a different FEC that protects the FEC blocks within the input signal stream. This different FEC that may be employed to protect the frame headers is less powerful than the one for the actual data part of the input signal stream. This type of prior art receiver suffers from many deficiencies.
For example, it cannot operate at low SNR (Signal to Noise Ratio) because the frame headers are vulnerable to noise, as they are typically not protected by any error control code. Also, this prior art approach suffers from the inherently slow and serial approach performed by this prior art receiver architecture that includes a parameter extraction functional block that must be employed before performing any FEC decoding of the FEC blocks of the input signal stream that immediately follow the frame header (e.g., the frame header that includes the FEC decoding parameters for that immediately following FEC block). Also in the prior art, the information pertaining to the FEC parameters is embedded in the header before the FEC, and it uses a different coding than the data part of the input signal stream or no coding at all thereby providing little protection.
As such, it is clear that there is a need in the art for a manner by which FEC operational parameters may be modified and adjusted on the fly (i.e., in real time) to effectuate higher performance within error correctional coding communication systems.
Various aspects of the invention can be found in a receiver. The receiver includes a demodulator, an FEC (Forward Error Correction) chain decoding functional block, and a parameter extraction functional block. The demodulator is operable to demodulate an input signal stream thereby generating a demodulated signal stream that includes FEC (Forward Error Correction) blocks. The FEC decoding chain functional block is operable to be configured to perform FEC decoding of a first plurality of FEC blocks of the demodulated signal stream using a first plurality of FEC decoding parameters, and the FEC decoding chain functional block is operable to detect a CP (Control Packet) when performing FEC decoding of the first plurality of FEC blocks of the demodulated signal stream.
The parameter extraction functional block is operable to extract a second plurality of FEC decoding parameters from the CP. The parameter extraction functional block is operable to provide the second plurality of FEC decoding parameters to the FEC decoding chain functional block, and the FEC decoding chain functional block is operable to be reconfigured to perform subsequent FEC decoding using the second plurality of FEC decoding parameters.
The second plurality of FEC decoding parameters corresponds to a second plurality of FEC blocks that is located a number of FEC blocks after the CP within the demodulated signal stream, and wherein the FEC decoding chain functional block performs FEC decoding of the second plurality of FEC blocks of the demodulated signal stream using the second plurality of FEC decoding parameters.
In certain embodiments, the FEC blocks of the demodulated signal stream may be implemented as QBs (Queue Blocks) such that each QB includes a corresponding plurality of TBs (Turbo Blocks). In such instances, the FEC decoding chain functional block performs FEC decoding on the QBs thereby generating MPEG (Moving Picture Experts Group) blocks, and the CP is a CP MPEG block.
The FEC decoding chain functional block may be implemented as including a plurality of functional blocks such that operation of each functional block therein is governed by at least one parameter. The CP includes at least one QB descriptor that contains a condensed representation of a plurality of parameters. The parameter extraction functional block processes the QB descriptor to extract the second plurality of FEC decoding parameters from the CP, and the parameter extraction functional block provides the extracted second plurality of FEC decoding parameters back to the FEC decoding chain functional block to adjust at least one parameter of the plurality of parameters thereby modifying the operation of at least one functional block of the plurality of functional blocks within the FEC decoding chain functional block when decoding the second plurality of FEC blocks. The types of QB descriptors that may be employed may be a QB repeat descriptor or a QB sequence repeat descriptor.
In some embodiments, the FEC decoding chain functional block may be implemented as including a turbo decoder, a de-interleaver, a RS (Reed Solomon) decoder, a descrambler, and an MPEG packetizer. The operation of each of these operational functional blocks may be governed by one or more corresponding parameters. As one example, one parameter that may be employed to govern operation of the turbo decoder could be a turbo code rate, a number of TBs (Turbo Blocks) within the FEC blocks of the demodulated signal stream, and/or a constellation scaling parameter. The other operational functional blocks may have other corresponding parameters that govern their operation as well.
The FEC blocks that have been processed by the FEC decoding chain functional block can be provided to a MAC (Medium Access Controller). The FEC decoding chain functional block is operable to generate an error flag when decoding the CP, and the error flag is operable to direct the parameter extraction functional block to process the CP to extract the second plurality of FEC decoding parameters from the CP.
The receiver is also operable to accommodate processing of FEC blocks of an overlap queue. The overlap queue includes FEC blocks that are located between the CP and the second plurality of FEC blocks. The FEC decoding of the FEC blocks of the overlap queue can be performed according to an overlap QB (Queue Block) descriptor, that is included within the CP and extracted there from, that contains a condensed representation of a plurality of parameters. Alternatively, the FEC decoding of the FEC blocks of the overlap queue may simply be performed according to a predetermined plurality of parameters.
The receiver may be implemented within a wide variety of communication devices. Such a communication device may also be implemented within a wide variety of communication systems including a one-way satellite communication system, a two-way satellite communication system, or an HDTV (High Definition Television) communication system.
The invention envisions any type of communication device that supports the functionality and/or processing described herein. Moreover, various types of methods may be performed to support the functionality described herein without departing from the scope and spirit of the invention as well.
A novel solution of employing a parameter extraction functional block that follows the FEC (Forward Error Correction) decoding functional block is introduced. Information on the FEC decoding operational parameters is embedded in the packets that come out of the FEC decoding functional block so that it is protected by the inherent error correctional functionality and benefits provided by the FEC employed within the communication device. This packet that includes the FEC operational parameters is referred to as a CP (Control Packet). As one particular example, in the context where the communication device performs FEC decoding on an MPEG (Moving Picture Experts Group (Note: this group is an International Standards Organisation/International Electrotechnical Commission)) stream (e.g., an MPEG-2 transport stream in some instances), the CP is referred to as a CP MPEG block within the MPEG stream. Clearly, other types of communication systems and protocols could also benefit from various aspects of the invention, and appropriately modified FEC block therein could also includes CP blocks in accordance with the scope and spirit of various aspects of the invention. Generally speaking, this block may be referred to as a CP. However, as a reminder, in many of the embodiments to follow, a FEC decoding chain operates on an MPEG stream including a number of MPEG blocks, and the CP is referred to as a CP MPEG block in such embodiments.
The CP specifies the FEC configurations for 1 or more FEC blocks following it (i.e., not just a singular FEC block immediately following the CP). There are two issues that must be dealt with appropriately to use this advantageous approach. A first issue is that the FEC parameters that are used to perform the FEC decoding of the CP must be known beforehand. This first issue may be dealt with quite easily by programming the FEC parameters for the CP as being of a default type (e.g., a predetermined type) that the FEC decoding functional block is easily able to decode.
A second issue is the manner of how to deal with the FEC blocks that follow the CP that have already arrived in the FEC decoding functional block by the time the CP is fully decoded by the FEC decoding functional block because of the inherent latency of the FEC decoding functional block. This second issue (latency) may be resolved by the approach presented below. The CPs specify the FEC configurations for the packets that are located some number of FEC blocks away from the CPs; there are intentionally left 1 or more FEC blocks after the CP for which the FEC operational parameters of the CP do not correspond. The distance between the various CPs and the packets that are to be FEC decoded using the FEC decoding parameter specified in the CP can be selected depending on the intrinsic FEC latency of the FEC decoding functional block.
Various communication devices and communication system embodiments are described initially below in which many of the various aspects of the invention may be implemented. In general, any communication device that performs encoding and/or decoding of signals may benefit from the invention. Generally speaking, the processing operations at the transmitter end of a communication channel may be performed in accordance with adaptive modulation and encoding, and the processing operations at the receiver end of a communication channel may be performed in accordance with FEC (Forward Error Correction) decoding with dynamic parameters.
Here, the communication to and from the satellite may cooperatively be viewed as being a wireless communication channel, or each of the communication links to and from the satellite may be viewed as being two distinct wireless communication channels.
For example, the wireless communication “channel” may be viewed as not including multiple wireless hops in one embodiment. In other multi-hop embodiments, the satellite receives a signal received from the satellite transmitter (via its satellite dish), amplifies it, and relays it to satellite receiver (via its satellite dish); the satellite receiver may also be implemented using terrestrial receivers such as satellite receivers, satellite based telephones, and/or satellite based Internet receivers, among other receiver types. In the case where the satellite receives a signal received from the satellite transmitter (via its satellite dish), amplifies it, and relays it, the satellite may be viewed as being a “transponder;” this is a multi-hop embodiment. In addition, other satellites may exist that perform both receiver and transmitter operations in cooperation with the satellite. In this case, each leg of an up-down transmission via the wireless communication channel would be considered separately.
In whichever embodiment, the satellite communicates with the satellite receiver. The satellite receiver may be viewed as being a mobile unit in certain embodiments (employing a local antenna); alternatively, the satellite receiver may be viewed as being a satellite earth station that may be communicatively coupled to a wired network in a similar manner in which the satellite transmitter may also be communicatively coupled to a wired network.
The satellite transmitter is operable to encode information (using an encoder) in a manner in accordance with the functionality and/or processing of at least some of the various aspects of the invention to assist in generating a signal that is to be launched into the communication channel coupling the satellite transmitter and the satellite receiver. The satellite receiver is operable to decode a signal (using a decoder) received from the communication channel in a manner in accordance with the functionality and/or processing of at least some of the various aspects of the invention. This diagram shows one embodiment where one or more of the various aspects of the invention may be found.
The HDTV STB receiver is also communicatively coupled to an HDTV display that is able to display the demodulated and decoded wireless transmitted signals received by the HDTV STB receiver and its local tower dish. The HDTV STB receiver may also be operable to process and output standard definition television signals as well. For example, when the HDTV display is also operable to display standard definition television signals, and when certain video/audio is only available in standard definition format, then the HDTV STB receiver is operable to process those standard definition television signals for use by the HDTV display.
The HDTV transmitter (via its tower) transmits a signal directly to the local tower dish via the wireless communication channel in this embodiment. In alternative embodiments, the HDTV transmitter may first receive a signal from a satellite, using a satellite earth station that is communicatively coupled to the HDTV transmitter, and then transmit this received signal to the local tower dish via the wireless communication channel. In this situation, the HDTV transmitter operates as a relaying element to transfer a signal originally provided by the satellite that is ultimately destined for the HDTV STB receiver. For example, another satellite earth station may first transmit a signal to the satellite from another location, and the satellite may relay this signal to the satellite earth station that is communicatively coupled to the HDTV transmitter. In such a case the HDTV transmitter include transceiver functionality such that it may first perform receiver functionality and then perform transmitter functionality to transmit this received signal to the local tower dish.
In even other embodiments, the HDTV transmitter employs its satellite earth station to communicate to the satellite via a wireless communication channel. The satellite is able to communicate with a local satellite dish; the local satellite dish communicatively couples to the HDTV STB receiver via a coaxial cable. This path of transmission shows yet another communication path where the HDTV STB receiver may communicate with the HDTV transmitter.
In whichever embodiment and by whichever signal path the HDTV transmitter employs to communicate with the HDTV STB receiver, the HDTV STB receiver is operable to receive communication transmissions from the HDTV transmitter and to demodulate and decode them appropriately.
The HDTV transmitter is operable to encode information (using an encoder) in a manner in accordance with the functionality and/or processing of at least some of the various aspects of the invention to assist in generating a signal that is to be launched into the communication channel coupling the HDTV transmitter and the HDTV STB receiver. The HDTV STB receiver is operable to decode a signal (using a decoder) received from the communication channel in a manner in accordance with the functionality and/or processing of at least some of the various aspects of the invention. This diagram shows yet another embodiment where one or more of the various aspects of the invention may be found.
As within other embodiments that employ a decoder, the decoder is operable to decode a signal received from a communication channel to which the advanced modulation satellite receiver is coupled in a manner in accordance with the functionality and/or processing of at least some of the various aspects of the invention. This diagram shows yet another embodiment where one or more of the various aspects of the invention may be found.
The advanced modulation satellite receiver may be implemented to communicatively couple to an HDTV MPEG-2 (Motion Picture Expert Group, level 2) transport de-mux, audio/video decoder and display engine. The advanced modulation satellite receiver and the HDTV MPEG-2 transport de-mux, audio/video decoder and display engine communicatively couple to a host CPU (Central Processing Unit). The HDTV MPEG-2 transport de-mux, audio/video decoder and display engine also communicatively couples to a memory module and a conditional access functional block. The HDTV MPEG-2 transport de-mux, audio/video decoder and display engine provides HD (High Definition) video and audio output that may be provided to an HDTV display.
The advanced modulation satellite receiver may be implemented as a single-chip digital satellite receiver supporting the decoder that operates in a manner in accordance with the functionality and/or processing of at least some of the various aspects of the invention. The advanced modulation satellite receiver is operable to receive communication provided to it from a transmitter device that includes an encoder as well.
The SG is operable to encode information (using an encoder) in a manner in accordance with the functionality and/or processing of at least some of the various aspects of the invention to assist in generating a signal that is to be launched into the communication channel coupling the satellite dish and the corresponding transceiver. The SM is operable to decode a signal (using a decoder) received from the communication channel in a manner in accordance with the functionality and/or processing of at least some of the various aspects of the invention. This diagram shows yet another embodiment where one or more of the various aspects of the invention may be found.
Generally speaking, the communication sent downstream from the SG to the SM is performed using a relatively higher order operational profile, and the communication sent upstream from the SG to the SM is performed using a relatively lower order operational profile. In some instances, the SM end is operable to asses various indicia corresponding to the operating conditions of the communication channel and to provide that information back to the SG. In response to this information provided to the SG end of the communication channel, the SG can adaptively modify the various parameters within its operational profile. For example, the SG can modify, in real time, any 1 or more of the various operational parameters within the downstream operational profile.
The higher order profile may be viewed as having a relatively higher code rate, a relatively higher modulator density, relatively weak FEC (Forward Error Correction), relatively higher operational speed, and other parameters as required or desired. The lower order profile may be viewed as having a relatively lower code rate, a relatively lower modulator density (when compared to the higher order modulator density of the higher order profile), relatively powerful FEC (when compared to the weaker FEC of the higher order profile), relatively lower operational speed, and other parameters as required or desired. Generally speaking, the parameters of the lower order operational profile are much more robust than the parameters of the higher order operational profile.
Generically speaking, a higher order modulation density may be used to service downstream communications, and a lower higher order modulation density may be used to service upstream communications.
These diagrams of
The downstream MPEG data stream that is output from the SG MAC processing block is provided to an AMFC (Adaptive Modulation and Formatter & Controller) stage that receives and processes the appropriately encapsulated traffic received from the SG MAC processing block. The modulation type and/or FEC parameters employed by the AMFC may be adaptively modified based on the operating conditions of the overall communication system. An interface could be a MPEG data stream compliant with the downstream transmission convergence sub-layer, or it could have an alternative format. The SG also includes a variable encoding & modulation stage, which is a modulator that is capable of having its modulation type and FEC encoding parameters dynamically controlled on a QB (Queue Block) by QB basis.
The appropriately encoded and modulated MPEG stream is then up converted and filtered, and then fed into a high PA (Power Amplifier) by the transceiver. This signal is transmitted continuously in a single frequency band, through a satellite and received by one or more subscriber SMs.
The SG also receives (e.g., via a satellite dish) the upstream signal transmitted by one or more subscriber SMs of the communication system. The signal is filtered and down converted back to baseband using appropriate demodulation and decoding parameters to recover the upstream data stream.
The host controller receives downstream signal quality information for each of the particular SMs over the upstream channel. The SM is an embodiment of a satellite modem that is operable to receive and decode downstream transmissions from the SG that have been adaptively modulated and encoded using the DS-AM functionality (i.e., method and apparatus) of the invention. The SM is discussed in more detail below.
The downstream signal quality for each SM can be based on, for example, the SNR (Signal to Noise Ratio), packet or code word error rate, or other parameters defining signal quality. The SM can be made to monitor that information continuously, so that any changes in the signal quality may be dynamically reflected at the SG and communicated thereto from the SM. Different sets of operational profiles (including values for code rate, modulation density and/or modulation type, FEC type, and/or FEC rate) are defined spanning the range of expected signal quality.
An example of a set of four profiles based on SNR as a signal quality measurement is shown below in Table 1. As Table 1 illustrates, the profiles trade-off higher throughput (shown as higher bandwidth efficiency in Table 1) for higher required signal quality. Clearly, Table 1 is only a hypothetical example. Other operational profiles with different performance characteristics and different transmission parameters could be specified while staying within the scope of the invention.
The host controller assigns each of the different profiles to one or more of the queues. Put another way, each packet queue is associated with a unique modulation order and/or FEC code rate that defines a throughput rate in the form of bandwidth efficiency (i.e., bits per second per 1 Hz of bandwidth). Traffic for a given SM is then assigned to a specific queue or set of the queues having an assigned operational profile that is appropriate for the downstream quality information provided by that SM. Sufficient information is associated with each packet to allow it to be assigned to the proper queue. For example, in the DOCSIS context, the packets can be assigned to the different queues by means of the DOCSIS DA (Destination Address), SID (Service ID), or any other unique identifier that is available with the DOCSIS protocol.
The AMFC receives the data stream from the SG MAC. In the DOCSIS context, DOCSIS packets destined for individual SMs are parsed and placed in their assigned packet queues. One possible format for the data interface between the SG MAC and the AMFC is an MPEG format.
The SMs use the MAC management messages to set up an upstream channel to the SG. SM uses this upstream channel to send downstream signal quality metrics to the host of the SG. This could be implemented as part of the ranging and registration process common to these systems or as separate MAC messages. Based on its signal quality, each SM identifies the maximum downstream throughput rate that it can handle with acceptable fidelity, and decodes data received from the packet queue assigned to handle that throughput rate as well as from any queue having a more robust profile. If any packet queue cannot be demodulated by the SM with appropriate fidelity, the SM fills output MPEG frames corresponding to that queue with null MPEG frames, or otherwise blanks the data sent to the SM DOCSIS MAC. The decoded stream is transmitted to the SM DOCSIS MAC over the appropriate output port.
The SG uses the PHY-MAP for flexible and optimized assignment of QBs to the downstream. As channel conditions or traffic loading changes, the PHY-MAP can be dynamically adjusted to optimize efficiency. Decoding all possible queues by the SM assures that all SMs will receive PHY-MAP messages and multi-cast traffic over the packet queue having the most robust modulation and encoding. It also permits the SG the flexibility to assign traffic destined for a given SM to the queue having the highest possible throughput, or to any of the more robust queues.
The BSs (Base Stations) or APs (Access Points) are operably coupled to the network hardware via the respective LAN (Local Area Network) connections. The network hardware, which may be a router, switch, bridge, modem, system controller, etc., provides a WAN (Wide Area Network) connection for the communication system. This WAN connection may couple to the Internet in some embodiments. Each of the BSs or APs has an associated antenna or antenna array to communicate with the wireless communication devices in its area. Typically, the wireless communication devices register with a particular BS or AP to receive services from the communication system. For direct connections (i.e., point-to-point communications), wireless communication devices communicate directly via an allocated channel.
Typically, BSs are used for cellular telephone systems and like-type systems, while APs are used for in-home or in-building wireless networks. Regardless of the particular type of communication system, each wireless communication device includes a built-in radio and/or is coupled to a radio. The radio includes a highly linear amplifier and/or programmable multi-stage amplifier to enhance performance, reduce costs, reduce size, and/or enhance broadband applications.
As illustrated, the host device includes a processing module, memory, radio interface, input interface and output interface. The processing module and memory execute the corresponding instructions that are typically done by the host device. For example, for a cellular telephone host device, the processing module performs the corresponding communication functions in accordance with a particular cellular telephone standard or protocol.
The radio interface allows data to be received from and sent to the radio. For data received from the radio (e.g., inbound data), the radio interface provides the data to the processing module for further processing and/or routing to the output interface. The output interface provides connectivity to an output display device such as a display, monitor, speakers, etc., such that the received data may be displayed or appropriately used. The radio interface also provides data from the processing module to the radio. The processing module may receive the outbound data from an input device such as a keyboard, keypad, microphone, etc., via the input interface or generate the data itself. For data received via the input interface, the processing module may perform a corresponding host function on the data and/or route it to the radio via the radio interface.
The radio includes a host interface, a digital receiver processing module, an ADC (Analog to Digital Converter), a filtering/gain module, an IF (Intermediate Frequency) mixing down conversion stage, a receiver filter, an LNA (Low Noise Amplifier), a transmitter/receiver switch, a local oscillation module, memory, a digital transmitter processing module, a DAC (Digital to Analog Converter), a filtering/gain module, an IF mixing up conversion stage, a PA (Power Amplifier), a transmitter filter module, and an antenna. The antenna may be a single antenna that is shared by the transmit and the receive paths as regulated by the Tx/Rx (Transmit/Receive) switch, or may include separate antennas for the transmit path and receive path. The antenna implementation will depend on the particular standard to which the wireless communication device is compliant.
The digital receiver processing module and the digital transmitter processing module, in combination with operational instructions stored in memory, execute digital receiver functions and digital transmitter functions, respectively. The digital receiver functions include, but are not limited to, digital IF (Intermediate Frequency) to baseband conversion, demodulation, constellation de-mapping, decoding, and/or descrambling. The digital transmitter functions include, but are not limited to, scrambling, encoding, constellation mapping, modulation, and/or digital baseband to IF conversion.
Similarly to other embodiments that employ an encoder and a decoder (or perform encoding and decoding), the encoding operations that may be performed by the digital transmitter processing module may be implemented in a manner in accordance with the functionality and/or processing of at least some of the various aspects of the invention to assist in generating a signal that is to be launched into the communication channel coupling to the wireless communication device. Analogously, the decoding operations of the operations that may be performed by the digital transmitter processing module may be implemented in a manner in accordance with the functionality and/or processing of at least some of the various aspects of the invention. For example, the encoding operations performed by the digital transmitter processing module may be performed using adaptive modulation and encoding functionality as described and presented herein, and the decoding operations that may be performed by the digital receiver processing module may be performed using the FEC with dynamic parameters as also described and presented herein.
The digital receiver and transmitter processing modules may be implemented using a shared processing device, individual processing devices, or a plurality of processing devices. Such a processing device may be a microprocessor, micro-controller, DSP (Digital Signal Processor), microcomputer, CPU (Central Processing Unit), FPGA (Field Programmable Gate Array), programmable logic device, state machine, logic circuitry, analog circuitry, digital circuitry, and/or any device that manipulates signals (analog and/or digital) based on operational instructions. The memory may be a single memory device or a plurality of memory devices. Such a memory device may be a ROM (Read Only Memory), RAM (Random Access Memory), volatile memory, non-volatile memory, static memory, dynamic memory, flash memory, and/or any device that stores digital information. It is noted that when either of the digital receiver processing module or the digital transmitter processing module implements one or more of its functions via a state machine, analog circuitry, digital circuitry, and/or logic circuitry, the memory storing the corresponding operational instructions is embedded with the circuitry comprising the state machine, analog circuitry, digital circuitry, and/or logic circuitry.
In operation, the radio receives outbound data from the host device via the host interface. The host interface routes the outbound data to the digital transmitter processing module, which processes the outbound data in accordance with a particular wireless communication standard (e.g., IEEE 802.11, Bluetooth®, etc.) to produce digital transmission formatted data. The digital transmission formatted data is a digital base-band signal or a digital low IF signal, where the low IF typically will be in the frequency range of one hundred kHz (kilo-Hertz) to a few MHz (Mega-Hertz).
The DAC converts the digital transmission formatted data from the digital domain to the analog domain. The filtering/gain module filters and/or adjusts the gain of the analog signal prior to providing it to the IF mixing stage. The IF mixing stage converts the analog baseband or low IF signal into an RF signal based on a transmitter local oscillation provided by local oscillation module. The PA amplifies the RF signal to produce outbound RF signal, which is filtered by the transmitter filter module. The antenna transmits the outbound RF signal to a targeted device such as a base station, an access point and/or another wireless communication device.
The radio also receives an inbound RF signal via the antenna, which was transmitted by a BS, an AP, or another wireless communication device. The antenna provides the inbound RF signal to the receiver filter module via the Tx/Rx switch, where the Rx filter bandpass filters the inbound RF signal. The Rx filter provides the filtered RF signal to the LNA, which amplifies the signal to produce an amplified inbound RF signal. The LNA provides the amplified inbound RF signal to the IF mixing module, which directly converts the amplified inbound RF signal into an inbound low IF signal or baseband signal based on a receiver local oscillation provided by local oscillation module. The down conversion module provides the inbound low IF signal or baseband signal to the filtering/gain module. The filtering/gain module filters and/or gains the inbound low IF signal or the inbound baseband signal to produce a filtered inbound signal.
The ADC converts the filtered inbound signal from the analog domain to the digital domain to produce digital reception formatted data. In other words, the ADC samples the incoming continuous time signal thereby generating a discrete time signal (e.g., the digital reception formatted data). The digital receiver processing module decodes, descrambles, demaps, and/or demodulates the digital reception formatted data to recapture inbound data in accordance with the particular wireless communication standard being implemented by radio. The host interface provides the recaptured inbound data to the host device via the radio interface.
As one of average skill in the art will appreciate, the wireless communication device of
A radio front end includes receiver functionality and transmitter functionality. The radio front end communicatively couples to an analog/digital conversion functional block. The radio front end communicatively couples to a modulator/demodulator, and the radio front end communicatively couples to a encoder/decoder.
Along the Receive Path:
The receiver functionality of the front end includes a LNA (Low Noise Amplifier)/filter. The filtering performed in this receiver functionality may be viewed as the filtering that is limiting to the performance of the device, as also described above. The receiver functionality of the front end performs any down-converting that may be requiring (which may alternatively include down-converting directly from the received signal frequency to a baseband signal frequency). The general operation of the front end may be viewed as receiving a continuous time signal, and performing appropriate filtering and any down conversion necessary to generate the baseband signal. Whichever manner of down conversion is employed, a baseband signal is output from the receiver functionality of the front end and provided to an ADC (Analog to Digital Converter) that samples the baseband signal (which is also a continuous time signal, though at the baseband frequency) and generates a discrete time signal baseband signal (e.g., a digital format of the baseband signal); the ADC also extracts and outputs the digital I, Q (In-phase, Quadrature) components of the discrete time signal baseband signal.
These I, Q components are provided to a demodulator portion of the modulator/demodulator where any modulation decoding/symbol mapping is performed where the I, Q components of the discrete time signal baseband signal. The appropriate I, Q components are then mapped to an appropriate modulation (that includes a constellation and corresponding mapping). Examples of such modulations may include BPSK (Binary Phase Shift Key), QPSK (Quadrature Phase Shift Key), 8 PSK (8 Phase Shift Key), 16 QAM (16 Quadrature Amplitude Modulation), and even higher order modulation types. These demodulated symbols are then provided to a decoder portion of the encoder/decoder where FEC decoding using dynamic parameters is performed in accordance with the scope and spirit of various aspects of the invention. Additional details are also provided below with respect to the FEC decoding functionality illustrated in this and other embodiments.
Along the Transmit Path:
Somewhat analogous and opposite processing is performed in the transmit path when compared to the receive path. Information bits that are to be transmitted are encoded using an encoder of the encoder/decoder. These encoded bits are provided to a modulator of the modulator/demodulator where modulation encoding/symbol mapping may be performed according to the modulation of interest. It is also noted that the encoder is operable to perform adaptive encoding, and the modulator is operable to perform adaptive modulation in accordance with the scope and spirit of various aspects of the invention.
These now I, Q components of the symbols are then passed to a DAC (Digital to Analog Converter) of the analog/digital conversion functional block to transform the I, Q components into a continuous time transmit signal (e.g., an analog signal). Then, the continuous time transmit signal is passed to a transmit driver that performs any necessary up-converting/modification to the continuous time transmit signal (e.g., amplification and/or filtering) to comport it to the appropriate form for the communication channel over which the signal is to be transmitted. Once this continuous time transmit signal has undergone all of this appropriate processing, it may then be transmitted to another communication device via the antenna.
As within other embodiments that employ an encoder and a decoder, the encoder of this wireless communication device may be implemented to encode information in a manner in accordance with the functionality and/or processing of at least some of the various aspects of the invention to assist in generating a signal that is to be launched into the communication channel coupling to the wireless communication device. The decoder of the wireless communication device may be implemented to decode a received signal in a manner in accordance with the functionality and/or processing of at least some of the various aspects of the invention. This diagram shows yet another embodiment where one or more of the various aspects of the invention may be found.
An input signal is provided to a demodulator; this input signal may be viewed as being a digital signal that is generated from a received continuous time signal that has been appropriately filtered, down-converted, digitally sampled, and so on. The demodulator generates a QB (Queue Block) stream that includes a plurality of TBs (Turbo Blocks). Each of the QBs includes a number of TBs. This number of TBs per QB may be selected by a designer of such a device. Various embodiments are also described below indicating some of the possible means by which the QB stream may be viewed in terms of the included TBs.
The QB stream output from the demodulator is passed to an FEC decoding chain functional block. This FEC decoding chain functional block may alternatively be represented as an FEC decoder without departing from the scope and spirit of the invention. The QB stream enters the FEC decoding chain functional block and is initially provided to a turbo decoder that performs iterative decoding processing in an effort to make best estimates of the information bits for each of the symbols (found within the various TBs of the corresponding QBs) included within the received signal on which a communication device including this FEC decoding chain functionality is implemented.
These turbo decoded TBs (of the corresponding QBs of the QB stream) are then passed to a de-interleaver (shown as π−1). The turbo decoded TBs are then de-interleaved and passed to an RS (Reed Solomon) decoder, which is sometimes referred to as an outer block decoder. After passing through the RS decoder, the signal is passed through a descrambler. The descrambler output is passed to an MPEG packetizer that arranges the signal into an MPEG stream. This MPEG stream may be implemented as an MPEG-2 transport stream in some embodiments. The MPEG stream may be viewed as a successive series of MPEG blocks. The manner by which FEC decoding is to be performed on subsequent MPEG blocks is governed by CP (Control Packet) information that is extracted from a particular type of MPEG block, namely, a CP MPEG block (that includes CP information).
Each of the various functional blocks within the FEC decoding chain functional block includes 1 or more operational parameters (which may be referred to as “FEC decoding parameters” or simply as “parameters” for brevity hereinafter). For example, the turbo decoder operates according to I or more turbo decoder parameters; the de-interleaver operates according to 1 or more turbo de-interleaver parameters; the RS decoder operates according to 1 or more RS decoder parameters; and the descrambler operates according to 1 or more descrambler parameters. Some examples of various types of parameters for each of these functional blocks within the FEC decoding chain functional block are described and presented with respect to the following diagram.
The MPEG stream that is generated by the FEC decoding chain functional block is passed to a MAC (Medium Access Controller) and/or other higher protocol layers within the communication device in which the FEC decoding chain functional block is implemented. In addition, this same MPEG stream is also passed to a CP (Control Packet) processor. The CP processor is operable to extract 1 or more parameters from a CP MPEG block (that is within the MPEG stream output from the FEC decoding chain functional block) and to provide those extracted parameters to the appropriate functional blocks within the FEC decoding chain functional block. For example, the extracted parameter may include any 1 or more parameters to adjust the manner by which 1 or more of the functional blocks within the FEC decoding chain functional block operate. This means of extracting the FEC parameters from an actual FEC block (i.e., a CP MPEG block in this particular embodiment) ensures that the FEC parameters that are provided to a receiver end communication device are protected by the FEC. In addition, the same decoding functionality that is operable to operate on the actual MPEG blocks received by such a communication device is also employed to process the CP MPEG blocks that include the FEC parameters. These extracted FEC parameters allow for the adjustment of 1 or more of the parameters that govern the operation of 1 or more of the functional blocks within the FEC decoding chain functional block. This allows for adaptive modulation of the FEC parameters of the FEC decoding chain functional block on the fly (i.e., in real time) in response to changes in the operating conditions of the communication device and/or the communication system in which the communication device is situated and operating.
Looking at the turbo decoder parameters, these parameters may include any number of various parameters by which the turbo code is employed. For example, this may include turbo code rate, the number (#) of TBs (Turbo Blocks) within each of the corresponding FEC blocks, the constellation scaling (i.e., in terms of the I, Q of constellation points within the 2 dimensional I, Q graph of the corresponding constellation shape and modulation type) that is employed, and any other turbo decoder parameter as well. Looking at the de-interleaver (π−1) parameters, these may include the interleaving depth (shown as π depth), interleaving block length (shown as π block length), and any other de-interleaver parameter as well. Looking at the RS (Reed Solomon) decoder parameters, these may include Tc (which is known in the RS decoding context as the number of errors that the RS code can accommodate without failing), the RS b block length, the number of RS blocks), and any other RS decoder parameter as well. Looking at the de-scrambler parameters, these may include the number of MPEG blocks that are to be operated on when performing any descrambling operation as well as any other descrambler parameter as well.
Generally speaking, CP MPEG block may include information corresponding to any 1 or more of these parameters depicted within this diagram so that the operation of the various functional blocks within the FEC decoding functional block may be adaptively modified in real time to accommodate any changes in the operating conditions of the communication device in which the FEC decoding functional block is implemented or the communication system in which such a communication device is implemented. Clearly, this list is non-exhaustive, and other user-defined parameters could also be added to (or taken from this list) without departing from the scope and spirit of the invention. Moreover, in particular embodiments whose individual functional blocks within a FEC decoding chain functional block differ from those functional blocks shown in the various embodiments herein, parameters corresponding to those different functional blocks could be added to such a list. Such newly added parameters could also be modified in real time in response to any changes of the operating conditions described above in accordance with the invention.
In the embodiment of this diagram, a single FEC block is shown as being between a CP and the FEC blocks whose FEC decoding parameters are specified in that CP. However, more than one FEC block may be interposed between the CP and these FEC blocks specified by that CP without departing from the scope and spirit of the invention as well. In fact, within a particular signal stream, the distance between CPs and the corresponding FEC blocks that are to be decoded using the parameters extracted from those CPs may be variable. For example, the number of FEC blocks between a first CP and those FEC blocks specified by that first CP may be only a singular FEC block. However, the number of FEC blocks between a second CP and those FEC blocks specified by that second CP may be only multiple CPs (e.g., 3 FEC blocks).
This QB stream (including a plurality of TBs) is provided as the input to the FEC decoding chain functional block where it undergoes processing within each of the various and subsequent functional blocks included therein. For example, the individual TBs of the various QBs of the QB stream may initially undergo turbo decoding, de-interleaving, RS decoding, and subsequently descrambling before being provided to an MPEG packetizer in some embodiments. The output of the FEC decoding chain functional block is a steam of MPEG blocks (i.e., an MPEG stream). This MPEG stream may be implemented as an MPEG-2 transport stream in some instances. It is noted that the alignment of the QBs that are provided to the FEC decoding chain functional block (where the QBs include TBs) is maintained with respect to the output from the FEC decoding chain functional block (where the QBs include MPEG blocks). That is to say, the alignment of the various QBs that are input to the FEC decoding chain functional block is maintained after the processing is completed.
It is also noted that the latency of the FEC decoding chain functional block causes the loss of the QBs of the overlap queue. The overlap queue in this embodiment is the QB1 that is immediately after the first CP. It is also noted that the latency of the FEC decoding chain functional block is not strictly a latency associated with the finite amount of time by which the FEC decoding chain functional block operates at a given processing rate (e.g., processing speed or clock rate). This latency that causes the loss of 1 or more QBs of the overlap queue is not fixed. Rather, it is a function of the FEC decoding parameters within the CP itself. For example, if the manner by which a first group of QBs (whose decoding is specified by a first CP) is to be decoded is of a much higher order than the manner by which a second group of QBs (whose decoding is specified by a second CP) is to be decoded, then the time required to decode the first group of QBs will most likely be longer. In that instance, more QBs could potentially be lost given the longer decoding time required.
For example, looking at one simple example, when decoding with respect to a lower order modulation density (e.g., QPSK), the processing requires only calculating a few metrics (e.g., 4 in the QPSK case). However, this is much fewer than when decoding with respect to a higher order modulation density (e.g., 64 QAM), where the processing requires calculating many more metrics (e.g., 64 in the 64 QAM case). Clearly, it may take a longer amount of time to calculate 64 metrics as compared to only 4.
Again, the CPs specify the FEC decoding parameters for the packets (e.g., FEC blocks) that are some number of blocks apart from them. Before the CP acquisition is performed by the parameter extraction functional block, the FEC decoding chain functional block is configured for the CP format (e.g., in some default format as specified by a user) and all packets are decoded as CP. When the FEC decoding functional block decodes the non-CP packets, the FEC decoding functional block generates errors because the parameters for the non-CP packets are different than those for the CPs.
Only when the FEC decoding functional block receives an actual CP does it generate no error. This is how the FEC decoding functional block can determine that it has in fact received a first CP within the input signal stream. After acquiring the first CP, the FEC decoding functional block has to skip the packets between the CP and the packets that actually specified in that CP. For this purpose, the information on the skipped packets must be also embedded in the CP. Once an incoming stream is acquired, the FEC parameters can then change on the fly (i.e., in real time) based on the parameter information extracted from subsequent CPs. The decoding of the input signal stream is then synchronized as the parameter extraction functional block always then operates to acquire the FEC decoding parameters from the CPs that pertain to the packets that are some number of blocks apart from those respective CPs.
Several of the following diagrams employ CPs that are shown as being CP MPEG blocks for illustration. However, it is also noted that any other type of CPs could be employed in alternative embodiments without departing from the scope and spirit of the invention.
The CP MPEG block includes 1 or more headers, and then the various QB descriptors are included. The first 1 or more QB descriptors are overlap QB descriptor(s) that include all of the parameters (e.g., the FEC decoding parameters) that govern the configuration of the individual functional blocks of an FEC decoding chain functional block. The 1 or more overlap QB descriptor(s) also includes information corresponding to the total number (#) of QBs that actually in the overlap queue. As mentioned above, the number of QBs in one overlap queue may differ from the number of QBs in another overlap queue. It is also noted that these 1 or more overlap QB descriptors are only used when detecting a first CP MPEG block within the MPEG stream. They are discarded from subsequent CP MPEG blocks once the system is in synchronization.
After the 1 or more overlap QB descriptor(s) are 1 or more QB descriptor(s). These 1 or more QB descriptor(s) are used to direct the decoding of those QBs that are some distance from the CP MPEG block. That is to say, these 1 or more QB descriptor(s) are used to govern the decoding of the plurality of QBs for which this particular CP MPEG block corresponds. Each of the QB descriptors corresponds to 1 or more QB(s) within the QB stream.
Several of the following diagrams provide possible alternative and embodiments of form that a QB descriptor may have. These QB descriptors may be implemented within either of the two possible embodiments of CP MPEG blocks described above.
The repeat field operates to specify the number of QBs to be repeated and decoded using the parameters extracted from this particular QB descriptor. Generally speaking, the repeat field can be employed to specify up to 2a QBs that are to be repeated. The overlap field specifies whether the QB descriptor is an overlap descriptor or a non-overlap descriptor. The opcode field operates to specify the QB descriptor type that is included within this particular QB descriptor. The Q index field includes the information that is translated using the Q parameter mapping table to determine the particular parameters so that an FEC decoding chain functional block may be appropriately configured to decode the QBs for which this QB descriptor corresponds. It is also noted that additional Q indices may also be employed in alternative embodiments (e.g., within a sequence repeat descriptor, one embodiment of which is described below).
The following 2 diagrams show more specific possible embodiments of how QB descriptors may be implemented in accordance with the invention.
A 3 bit opcode field specifies the QB descriptor type. In this embodiment, when the bit values of the opcode field are 001, then it indicates that only 1 Q index is included within this particular QB descriptor. In addition, a 4 bit Q index is used with a Q parameter mapping table for CP parameter extraction from this particular QB descriptor.
Again, a 3 bit opcode field specifies the QB descriptor type. However, in this embodiment, when the bit values of the opcode field are 010, then it indicates that multiple Q indices are included within this QB descriptor. This also indicates that an additional field is included within the QB descriptor that indicates how many times to repeat the sequence of Q indices to the QBs of the QB stream to which this particular QB descriptor applies. For example, a value of 0010 (binary)=2 in this field would indicate that the sequence of Q indices shown immediately below is to be repeated twice, and a value of 0100 (binary)=4 in this field would indicate that the sequence of Q indices shown immediately below is to be repeated four times. The actual sequence of Q indices is situated below the field indicating the number of times the sequence of Q indices is to be repeated.
Once the Q indices have been extracted, then the Q indices are provided into a Q index FIFO (First-In First-Out) buffer. Thereafter, each of the corresponding Q indices are processed through a Q parameter mapping table (e.g., a translation table) where the actual values for the corresponding parameters are determined for use in appropriate configuration of 1 or more of the functional blocks within an FEC decoding chain functional block. After processing a given Q index through the Q parameter mapping table, the now determined and extracted FEC parameters may be use to configure 1 or more of the functional blocks within an FEC decoding chain functional block.
The operation of the CP processor may be viewed as performing and supporting the functionality of parameter extraction from a CP MPEG block. The operation of the CP processor may also be initiated upon the detection of a CP MPEG block from among a plurality of MPEG blocks within an MPEG stream. That is to say, the CP processor need not be operating in an attempt to extract parameters from each and every MPEG block of an MPEG stream. Rather, the CP processor can be directed to operate to extract the parameters from the current MPEG block only when the current MPEG block has been determined to be a CP MPEG block.
The method involves decoding of MPEG blocks (i.e., of an MPEG stream) prior to performing CP (Control Packet) parameter acquisition from a first CP MPEG block within the MPEG stream. In doing this decoding approach, prior to performing CP parameter acquisition, the FEC decoding chain is configured for a predetermined CP format and all of the MPEG blocks to be decoded as CP MPEG blocks. Accordingly, the FEC decoding that is performed on non-CP MPEG blocks generates errors (which may be used to indicate a non-CP MPEG block), and the FEC decoding that is performed on CP MPEG blocks generates no error (which may be used to indicate a CP MPEG block).
Once an MPEG block undergoes FEC decoding using the FEC decoding chain functional block as having no error, the method involves detecting a CP MPEG block within the input signal stream (e.g., from among a plurality of MPEG blocks). Once this CP MPEG block has been appropriately identified, then the method involves performing CP parameter acquisition from the detected CP MPEG block.
It is also noted that the method involves FEC decoding of the MPEG blocks immediately after CP; the FEC decoding of the MPEG blocks in the overlap queue is performed using the CP queue type. Because of this, MPEG errors generated there from. The overlap descriptors and extracted parameters operate to provide for synchronization within the decoding processing. This provides information corresponding to how many turbo code blocks the CP queue has, and information corresponding to how many turbo blocks the whole overlap part has may be extracted. By having these two pieces of information, it may be determined where to begin decoding using the actual FEC parameters extracted from non-overlap descriptors. This determination of where to begin decoding using the actually extracted FEC parameters may be viewed as a “boot-strapping” situation that must only be dealt with once until the system is synchronized.
Once these FEC decoding parameters have been extracted from the CP packet, the method involves feeding back the acquired CP parameters to 1 or more of the functional blocks within the FEC decoding chain functional block to assist in decoding of the subsequent MPEG blocks thereby synchronizing the FEC decoding and the parameter acquisition of the MPEG stream. The method then continues by performing steady-state synchronized FEC decoding of subsequent MPEG blocks and by performing parameter acquisition of subsequent CP MPEG blocks of the input signal stream. In steady-state operation, although there is some degree of latency in the FEC decoding, none of the queues are wasted in steady-state operation because the FEC decoding parameters for the overlap queues are specified in the previous CP.
When processing the descriptors (i.e., the QB descriptors) from the CP MPEG block, the method involves extracting 1 or more Q indices from the QB descriptors. Once the 1 or more Q indices have been extracted, the method involves determining 1 or more parameters by processing the extracted 1 or more Q indices using a Q parameter mapping table. Afterwards, the method involves providing the determined 1 or more parameters to 1 or more functional blocks within an FEC decoding chain.
The method then involves providing the 1 or more indicia corresponding to the operating conditions upstream (for use in subsequent transmitting). The method then involves transmitting a second signal downstream according to a second frame structure and a second frame content. This second frame structure and a second frame content may be selected based on the 1 or more indicia corresponding to operating conditions of a communication system. This method provides a means by which adaptive modification of the frame structure and frame content employed within a communication system may be modified. The various approaches provided herein provide a means by which parameters that govern FEC decoding may be very effectively and efficiently modified in response to any changes in operating condition.
A very simplistic example is provided below by which this method may be performed. Three different possible queue types are considered in this very simplistic example.
Queue type A: ½ QPSK
Queue type B: ⅔ 8 PSK
Queue type C: 16 QAM
1 or more subscriber modem(s) can report indicia corresponding to the operating conditions (e.g., their SNR) to the headend using an upstream channel. When all of the subscriber modem(s) are in a poor operating condition (e.g., poor SNR condition), the headend sends downstream signal only using queue type A. When the operating condition (e.g., SNR) in some subscribers improves, it starts using queue type B. When the SNR condition improves more, it starts using queue type C. Also, it can change the number of QBs with each queue type adaptively. Generally speaking, the headend chooses the appropriate queue types from among a pre-determined set of queue types and then builds downstream frames based on the subscriber's operating condition (e.g., SNR).
It is also noted that the methods described within the preceding figures may also be performed within any of the appropriate system and/or apparatus designs (communication systems, communication transmitters, communication receivers, communication transceivers, and/or functionality described therein) that are described above without departing from the scope and spirit of the invention.
Moreover, it is noted that the receiver architecture, methods, and other functionality presented herein can operate at a much lower SNR, when compared to prior art approaches, thanks to the FEC correction capability for the CPs provided herein. The ability to protect the CPs using FEC allows for a much improved performance when compared to the prior art.
In view of the above detailed description of the invention and associated drawings, other modifications and variations will now become apparent. It should also be apparent that such other modifications and variations may be effected without departing from the spirit and scope of the invention.
The present U.S. Utility patent application claims priority pursuant to 35 U.S.C. § 119(e) to the following U.S. Provisional Patent Application which is hereby incorporated herein by reference in its entirety and made part of the present U.S. Utility patent application for all purposes: 1. U.S. Provisional Application Ser. No. 60/516,826, entitled “FEC (Forward Error Correction) decoder with dynamic parameters,” (Attorney Docket No. BP3366), filed Monday, Nov. 3, 2003 (Nov. 3, 2003 ), pending. The following U.S. Utility patent application is hereby incorporated herein by reference in its entirety and is made part of the present U.S. Utility patent application for all purposes: 1. U.S. Utility patent application Ser. No. 10/319,929, entitled “DOWNSTREAM TIME DOMAIN BASED ADAPTIVE MODULATION FOR DOCSIS BASED APPLICATIONS,” (Attorney Docket No. BP2097), filed Dec. 12, 2002, pending.
Number | Date | Country | |
---|---|---|---|
60516826 | Nov 2003 | US |