This description relates to a system and method for decoding signals such as quadrature amplitude modulated signals to access embedded information.
While communication system development continues to progress for achieving higher and higher transmission rates, channel conditions continue to limit system performance. For example, channel noise and other types of conditions may impair data transmission through a communication channel. Consequentially, a series of reconstruction phases are used to process received channel signals to decode embedded data. By executing a variety of processes and operations to account for the channel conditions during the reconstruction phases, signals may be demodulated and data decoded for use with one or more applications.
In general, in one aspect, a method includes identifying a soft decision from a constellation point of a modulated signal. The identification is based upon a logical combination of data representing a first and second portion of the constellation point, data representing an arrangement of the first and second portions of the constellation point, and data representing a scrambling of the first and second portions of the constellation point.
Implementations may include one or more of the following features. The first portion of the constellation point may represent a coordinate pair of an outer constellation. The second portion of the constellation point may represent a coordinate pair of an inner constellation. The data representing the arrangement of the first and second portions of the constellation point may represent an arrangement of an inner constellation coordinate pair and an outer constellation coordinate pair. The data representing the scrambling of the first and second portions of the constellation point may include at least one bit of a scramble code. The first portion of the constellation point may represent an in-phase component or a quadrature component. The first portion of the constellation point may also represent a constellation gain. Various types of signal modulations may be implemented, for example, Quadrature Amplitude Modulation (QAM) signal may be implemented. The logical combination may include one or more logic gates or other types of circuitry.
In general, in one aspect, a system includes a communication receiver for receiving a modulated signal. The communication receiver includes a decoder for identifying a soft decision from a constellation point of a modulated signal. The identification is based upon a logical combination of data representing a first and second portion of the constellation point, data representing an arrangement of the first and second portions of the constellation point and data representing a scrambling of the first and second portions of the constellation point.
Implementations may include one or more of the following features. The first portion of the constellation point may represent a coordinate pair of an outer constellation. The second portion of the constellation point may represent a coordinate pair of an inner constellation. The data representing the arrangement of the first and second portions of the constellation point may represent an arrangement of an inner constellation coordinate pair and an outer constellation coordinate pair. The data representing the scrambling of the first and second portions of the constellation point may include at least one bit of a scramble code. The first portion of the constellation point may represent an in-phase component or a quadrature component. The first portion of the constellation point may also represent a constellation gain. Various types of signal modulations may be implemented, for example, Quadrature Amplitude Modulation (QAM) signal may be implemented. The logical combination may include one or more logic gates or other types of circuitry.
In general, in one aspect, a computer program product is tangibly embodied in an information carrier and comprising instructions. When the instructions are executed, a processor performs a method that includes identifying a soft decision from a constellation point of a modulated signal. The identification is based upon a logical combination of data representing a first and second portion of the constellation point, data representing an arrangement of the first and second portions of the constellation point and data representing a scrambling of the first and second portions of the constellation point.
Implementations may include one or more of the following features. The first portion of the constellation point may represent a coordinate pair of an outer constellation. The second portion of the constellation point may represent a coordinate pair of an inner constellation. The data representing the arrangement of the first and second portions of the constellation point may represent an arrangement of an inner constellation coordinate pair and an outer constellation coordinate pair. The data representing the scrambling of the first and second portions of the constellation point may include at least one bit of a scramble code. The first portion of the constellation point may represent an in-phase component or a quadrature component. The first portion of the constellation point may also represent a constellation gain. Various types of signal modulations may be implemented, for example, Quadrature Amplitude Modulation (QAM) signal may be implemented. The logical combination may include one or more logic gates or other types of circuitry.
In general, in one aspect, a system includes means for receiving a modulated signal. The receiving means includes means for identifying a soft decision from a constellation point of a modulated signal. The identification is based upon a logical combination of data representing a first and second portion of the constellation point, data representing an arrangement of the first and second portions of the constellation point and data representing a scrambling of the first and second portions of the constellation point.
Implementations may include one or more of the following features. The first portion of the constellation point may represent a coordinate pair of an outer constellation. The second portion of the constellation point may represent a coordinate pair of an inner constellation. The data representing the arrangement of the first and second portions of the constellation point may represent an arrangement of an inner constellation coordinate pair and an outer constellation coordinate pair. The data representing the scrambling of the first and second portions of the constellation point may include at least one bit of a scramble code.
These and other aspects and features and various combinations of them may be expressed as methods, apparatus, systems, means for performing functions, program products, and in other ways.
Other features and advantages will be apparent from the description in the claims.
Referring to
One or more protocols and communication schemes may be implemented by the cellular system 100 for complying with standards and for achieving particular data transfer rates. For example, the High-Speed Downlink Packet Access (HSDPA) communication scheme, which is a 3G (third generation) mobile telephony communications protocol, may be implemented to allow the cellular system 100 (or other types of communication systems and networks such as Universal Mobile Telecommunications Systems (UMTS)) to provide relatively high data transfer speeds (and capacity) and lower latency for end users. HSDPA is an integral feature of Release 5 of the 3 GPP specification and supports downlink speeds of approximately 14.4 Mbit/s and round trip delays of 70 ms. To support HSDPA, the High-Speed Downlink Shared Channel (HS-DSCH), which is the transport channel carrying user data with HSDPA operation, has been added to the UMTS specification.
HS-DSCH may lack two fundamental features of other WCDMA channels, namely, variable spreading factors and fast power control. Rather, HS-DSCH provides improvements in downlink performance through the utilization of adaptive modulation and coding (AMC), a fast packet scheduling algorithm for base stations, and fast retransmission from base stations, often referred to as hybrid automatic repeat-request (HARQ). HARQ uses incremental redundancy (IR) and chase combining, in which data may be transmitted multiple times using one or more coding techniques. For example, when a corrupt packet is received, the packet is combined with retransmitted packets to efficiently correct encountered errors. In some situations when the retransmissions are corrupted, appropriate decoding may still yield an error-free packet.
By using such standards and processing techniques, the illustrative communication system 100 may allow efficient information transmission without significant content loss. For example, data (e.g., an audio signal) from a cellular telephone 102 may be transmitted to a cellular network (e.g., represented by a cellular tower 104) and appropriately routed to a cellular terminal 106 for delivery to a telephone 108. Along with the cellular terminal 106, other equipment may also be used for collecting and processing the communication signals, for example, a computing device (e.g., a computer system, personal digital assistant (PDA), etc.) with appropriate equipment (e.g., modem, wireless connection device such as an air-card, etc.) may be used for connecting to the communication network (e.g., cellular system 100).
Referring to
The digital baseband stage 208 includes a receiver 210 (e.g., a joint detector receiver, a rake receiver, an equalizer, etc.) that detects channels present in the digital data (provided from the analog baseband stage 206). For example, the digital data received by the receiver 210 may represent a number of channels (e.g., up to sixteen channels) that include various content (e.g., control channels, voice channels, etc.). The receiver 210 may also detect the physical channel (or channels) present in the digital data. For example, the data received may represent a sum of physical channels, in which each channel includes a segment with an equivalent number of symbols (e.g., forty-four symbols). From the detected sum of physical channels, the receiver 210 may address a number of types of noise embedded in the digital signal. For example, noise may be introduced by multi-path signals received by the antenna 202, interference associated with the signal content (e.g., inter-code interference), etc. Various operations such as channel equalization along with other techniques and methodologies may be executed by the receiver 210 for addressing noise issues and signal correction.
The receiver 210 also extracts individual physical channels. Using the example from above, the input of the receiver 210 may include a sum the physical channels (e.g., one summed channel with forty-four symbols) and the output may include the extracted individual channels (e.g., sixteen channels, each channel being forty-four symbols in length).
A post receiver 212 also performs other operations in preparation of channel decoding such as preparing the physical channels for demodulation. For example, demodulating physical channels that implement QPSK and QAM (e.g., 16-QAM, 64-QAM, etc.) may be assisted by estimating parameters associated with the modulation schemes such as estimating constellation gain (p) and variance (σ2). From the estimations, other quantities may be determined such as signal-and-interference-to-noise-ratio (SINR), for example, to assist with channel demodulation and to provide feedback (e.g., to one or more networks) that represents channel quality. Other operations may also be executed by the post receiver 212 (or another portion of the receiver 200), for example, constellation rotation operations may be executed for rotating QPSK or QAM constellations, as needed. In one particular implementation, each constellation may be rotated 45° by the post receiver 212 to produce constellations with equivalent orientations that are associated with one or more communication standards (e.g., W-CDMA, TD-SCDMA). By adjusting constellation orientation, hardware, software and other portions of the communication receiver 200 may be used with wireless standards associated with one or more other constellation arrangements.
The post receiver 212 provides the extracted physical channels and other information (e.g., estimated parameters) to other portions of the communication receiver 200 (e.g., for processing channels). For example, the channels are provided to a channel decoder and demultiplexer 214 (also included in the digital baseband stage 208), e.g., a bit rate processor, by the post receiver 212. From the data provided, the channel decoder and demultiplexer 214 demodulates and decodes individual transport channels and may provide additional conditioning prior to passing decoded binary data to another portion of the receiver 200 (e.g., a software layer). In general, the channel decoder and demultiplexer 214 converts data received (from the post receiver 212) into a format corresponding to the points of the constellation (referred to as soft decisions) being used (e.g., QPSK, QAM, etc.). Complex values may be provided to the bit rate processor 214 that represent constellation points and formatted to comply with wireless standards such as W-CDMA (e.g., 12-bit floating point representation for use with Frequency Division Duplex (FDD), a 16-bit fixed point representation for use with Time Division Duplex (TDD), etc.). By processing such soft decisions as input, the channel decoder and demultiplexer 214 may represent the data in a reduced precision format (e.g., 4-bit fixed representation) to reduce storage needs while retaining or enhancing dynamic range.
The channel decoder and demultiplexer 214 includes a decoder 216 that executes operations associated with decoding the stream of soft decisions provided by the post receiver 212. For example, de-mapping, de-interleaving, constellation re-arrangement and de-scrambling operations are performed by the decoder 216. Performing such operations may call for the use of considerable resources (e.g., memory, processing time, etc.) for each of these three functions. For example, to execute each of the three functions individually, data may be stored at the completion of each function and retrieved in preparation to execute the next function. By combining the execution of the functions, computational resources (e.g., memory space, processing time, etc.) can be conserved and used for the execution of other operations and procedures.
Modulation schemes, protocols and other communication parameters may factor into combining the functions. For example, operations may be combined in one arrangement for one type of modulation (e.g., QPSK) and in a similar or different arrangement for another type of modulation (e.g., QAM). Along with the modulation type, one or more modulation parameters may be used to execute the combined functions. For example, the constellation gain (p) associated with the modulation scheme may be used along with other parameters. Typically constellation gain is determined by another portion of the communication receiver 200 (e.g., the post receiver 212), however, the channel decoder and demultiplexer 214 may be configured for such an operation. Information associated with the combined functions may also be provided from sources external to the communication receiver 200. For example, information included in received transmissions may also be used for by the decoder 216 to execute the combined functions.
Referring to
Various conventions may be implemented for representing the sixteen symbols included in the constellation diagram 300. For example, each symbol may be uniquely represented with data that represents the one quadrant within which the symbol is located and data that represents each one of the four symbols within that quadrant. To demonstrate, a two-bit number (i.e., 00) may be used to represent each quadrant (illustrated in bold font in the figure) and another two-bit number to represent each of the four symbols (represented in normal font in the figure) within the quadrant. As such, each of the sixteen symbols are uniquely represented by a four-bit number. For example, symbol 310 may be represented with the four-bit value 0011, in which “00” represents the quadrant and “11” represents the particular symbol (of the four) within that quadrant. Thereby, each symbol can be identified from two constellations, an outer constellation (represented with coordinate axes 312, which define the quadrants 302-308) and an inner constellation (represented with coordinate axes 314). Both the inner and outer constellations each provide two-bit representations that combine to produce a four-bit representation of one of the sixteen symbols. As such, the decoder 216 processes the soft decisions to produce a representation of the symbols.
From the data embedded in the soft decisions, the decoder 216 attempts to identify the particular four-bit symbol being represented. As such, in-phase (I) and quadrature (Q) components may be used to identify a quadrant (e.g., quadrant 302) of the outer constellation 312 associated with each received soft decision. For example, for positive values of I and Q, constellation quadrant 302 is identified, and for negative values of both I and Q, constellation quadrant 308 is identified. To identify the symbol within the inner constellation (e.g., inner constellation 314), one or more constellation parameters may be used with the I and Q data. For example, as illustrated in the figure, the constellation gain (p) provides a value that represents the center of each inner constellation. As such, the constellation gain can be used in conjunction with the I and Q data to uniquely identify each symbol within the inner constellation. For example, the quantities p−|I| and p−|Q| may be used for identifying the symbol within the inner constellation. As such, in this implementation, each soft decision may be uniquely de-mapped using the four quantities:
(I, Q, p−|I|, p−|Q|). (1)
While equation (1) provides one particular arrangement of the quantities for identifying each of the sixteen symbols, other soft decision arrangements may also be used. Further, while I and Q data along with constellation gain is used here for symbol identification, other transmission parameters (e.g., modulation parameters) may be used separately or in combination.
Along with de-mapping the soft decisions, the decoder 216 also performs other operations for symbol identification. For example, prior to transmission, the four terms of equation (1) may be arranged to reduce the probability of transmission loss. Various rearrangement schemes may be implemented, for example, terms may be rearranged for each four-term group transmitted, or rearranged for a predefined number of groups (e.g., terms rearranged for every four groups, etc.), or rearranged after a predefined amount of time (e.g., terms rearranged every second). Generally, the probability of error is less for more significant terms such as the first term (I) and the second term (Q) provided by equation 1. As such, interchanging the first pair of terms (I and Q) with the second pair of terms (p−|I|, p−|Q|) may reduce transmission error. Similarly, the four terms may be individually arranged for reducing error. Implementing one particular technique, different arrangements may be used for the term pair (I and Q) and the term pair (p−|I|, p−|Q|). For example, the terms may be arranged as:
(I, Q, p−|I|, p−|Q|),
(p−|I|, p−|Q|, I, Q). (2)
As such, a single bit may be used to identify which particular arrangement is being used. Along with arranging the terms, negation may be applied (e.g., a sign change) to the terms to further differentiate the transmitted terms and reduce the probability of error. Similar to identifying the arrangement, a single bit may be used to identify negation. Thus, two bits may represent parameters (referred to as b(1) and b(2)) for re-arrangement parameters that identify term pair arrangements and negation. In one scenario, these re-arrangement parameters are transmitted to the receiver 200 within a high-speed shared control channel (HS-SCCH), however, one or more transmission methodologies and techniques may be implemented.
In conjunction with incorporating particular arrangements, techniques may be implemented to scramble the soft decisions prior to transmission. As such, the decoder 216 also de-scrambles (along with de-mapping and re-arranging) the constellation points that represent the soft decisions. In one arrangement, the soft decisions are bit level scrambled with a predefined scramble code that is provided to the receiver 200. The decoder 216 can use the binary code to de-scramble the soft decisions, for example, by using a masking technique or other similar techniques.
One or more techniques and methodologies may be implemented by the decoder 216 to de-interleave, de-scramble, de-map and re-arrange the received soft decisions and thereby provide, e.g., bit representations (e.g., 4-bit representation) that corresponds to a constellation point. For example, the decoder 216 may execute each of these functions in a combined fashion to reduce memory and processing needs, and thereby conserve resources. In one arrangement, logical states representative of de-interleaving, de-scrambling, de-mapping and re-arrangement may be combined to define logical operations to perform the functions. The decoder 216 may use combinational logic and other types of circuitry to provide the logical operations. Processor based designs and other types of architectures may also be implemented to provide the combined logical operations for de-interleaving, de-scrambling, de-mapping and constellation re-arrangement. For example, one or more microprocessors may execute instructions to provide the logical operations.
Referring to
Referring to
Referring to
Along with the received soft decision stream, the constellation gain (p) is provided to the decoder 600, for example, from another portion of the receiver (e.g., a post receiver). Along with the received soft decisions, other transmitted information aids the decoder 600 to provide the combined functionality. For example, a sequence of bits used to scramble the soft decisions is provided to combination logic gates 602 for de-scrambling the received data. Two digital input signals, which respectively represent b(0) and b(1), are provided for assisting with the constellation rearrangement of the soft decision. Additionally, in this implementation, a digital signal (labeled “Channel Active”) is provided (e.g., from the receiver) that indicates if a channel has been received and is ready to be processed by the decoder 600.
Upon being received by the decoder 600, the soft decisions are provided to a sign identifier 604 that strips and passes the sign to the combinational logic 602. The input is also passed to a pair a parallel connected de-interleaver 606 and 608 that provide soft-decision pairs. In particular, one de-interleaver provides constellation points associated with an outer constellation and the second de-interleaver provides constellation points associated with an inner constellation. From the inner and outer constellation points, the de-interleavers 606, 608 also provide a logic signal (labeled col(1)) that represents if inner or outer constellation data is being provided by the de-interleavers 606, 608. Additionally, the de-interleavers 606, 608 may provide other functionality such as providing one or more addresses for retrieving soft decisions (e.g. from memory) that are associated with the de-interleaving pattern. From the logic signals provided to the combinational logic 602, a series of multiplexers 610, 612, 614, 616, a logical operator 618 (combination inverter and incrementer), an inverter 620 and a summer 624 (with two-complements functionality) provide the quad of soft decision outputs (e.g., represented as a 4-bit fixed representation). By using combinational logic to combine the three functions, less processing resources along with memory space (e.g., for storing data between execution of the functions) is needed. Further, while decoder 600 is represented with one particular architecture (e.g., using combination logic 602), other implementations may be used for combining the functions of de-scrambling, de-interleaving/de-mapping and constellation rearrangement.
Referring to
Operations of the decoder 216 include receiving 702 constellation points (of a modulation scheme) that represent soft decisions. For example, the points may be provided to the decoder 216 from the post receiver 212, via the channel decoder and demultiplexer 214. Operations also include receiving 704 data that represents parameters associated with the constellation such as constellation gain. Additionally, constellation parameters indicative of if the received constellation points are associated with an inner or outer portion of the constellation are received. Briefly referring to
Upon receiving the data representing the constellation points and the constellation parameters, operations of the decoder 216 include de-scrambling, de-interleaving/de-mapping and rearranging 710 the constellation points in a combined manner. For example, as shown in
As mentioned above, in some receiver designs may be processor based. As such, to perform the operations described in the flow chart 700, the decoder 216 and optionally with other portions of the channel decoder and demultiplexer 214, may perform any of the computer-implement methods described previously, according to one implementation. For example, the receiver 200 may include a computing device (e.g., a computer system) for executing instructions associated with the decoder 216. The computing device may include a processor, a memory, a storage device, and an input/output device. Each of the components may be interconnected using a system bus or other similar structure. The processor may be capable of processing instructions for execution within the computing device. In one implementation, the processor is a single-threaded processor. In another implementation, the processor is a multi-threaded processor. The processor is capable of processing instructions stored in the memory or on the storage device to display graphical information for a user interface on the input/output device.
The memory stores information within the computing device. In one implementation, the memory is a computer-readable medium. In one implementation, the memory is a volatile memory unit. In another implementation, the memory is a non-volatile memory unit.
The storage device is capable of providing mass storage for the computing device. In one implementation, the storage device is a computer-readable medium. In various different implementations, the storage device may be a floppy disk device, a hard disk device, an optical disk device, or a tape device.
The input/output device provides input/output operations for the computing device. In one implementation, the input/output device includes a keyboard and/or pointing device. In another implementation, the input/output device includes a display unit for displaying graphical user interfaces.
The features described (e.g., the decoder 216) can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The apparatus can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by a programmable processor; and method steps can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output. The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer will also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
The features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet.
The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a network, such as the described one. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
Other embodiments are within the scope of the following claims. The techniques described herein can be performed in a different order and still achieve desirable results
This application is related to U.S. Patent Application Ser. No. 61/008,966, filed on Dec. 21, 2007, and to U.S. Patent Application Ser. No. 61/091,180, filed on Aug. 22, 2008, the entire contents of which are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
61008966 | Dec 2007 | US | |
61091180 | Aug 2008 | US |