This application relates generally to wireless communications, and more specifically to systems and methods of demodulated bits error detection for Bluetooth wireless communication.
Bluetooth is a type of wireless technology usually used for exchanging data between devices over short distances, for example, a personal area network (PAN). Although initially Bluetooth applications were used for communicating audio data (for example, a wireless headset) or pointing device movement/selection data (for example, a wireless mouse), currently Bluetooth is used for communicating files and other discrete data that requires error-free transmission to avoid data corruption.
To determine if data communicated using a Bluetooth protocol is error-free, a checksum or a cyclic redundancy check (CRC) can be used on a device receiving the data. However, the need of an improved physical layer (PHY) error detector becomes more important as the payload of packets communicated by Bluetooth increases because a 16-bit CRC that normally may be used to detect erroneous demodulated bits in Bluetooth is no longer sufficient resulting in passing erroneous demodulated bits (false positives).
Accordingly, new systems and methods are needed, for Bluetooth communications and for other communication schemes, to implement an improved PHY error detector to detect the occurrence of erroneous demodulated bits in the payload of communicated data.
A summary of sample aspects of the disclosure follows. For convenience, one or more aspects of the disclosure may be referred to herein simply as “some aspects.”
Methods and apparatuses or devices being disclosed herein each have several aspects, no single one of which is solely responsible for its desirable attributes. Without limiting the scope of this disclosure, for example, as expressed by the claims which follow, its more prominent features will now be discussed briefly. After considering this discussion, and particularly after reading the section entitled “Detailed Description” one will understand how the features being described provide advantages that include allowing for multicasting using Bluetooth wireless technologies.
One innovation of the disclosure provides an apparatus for detecting demodulation bit errors of a plurality of modulated bits. In some implementations, the apparatus includes a memory component (which may be referred to simply as “memory”) configured to store a first threshold and a second threshold, and a processor coupled to the memory, the processor configured to retrieve the first threshold and second threshold from the memory and to determine a demodulation metric value for each of the plurality of modulated bits, the processor further configured to count the number of demodulation metric values that cross the first threshold and compare the second threshold to the number of demodulation metric values that cross the first threshold. In some implementations, the processor is further configured to determine if an error exists in the demodulated bits based on the comparison of the second threshold to the number of demodulation metric values that cross the first threshold. In various implementations of an apparatus, processor, method or computer readable medium, the modulated bits are Gaussian Frequency-Shift Keying (GFSK) modulated bits, Differential Phase-Shift Keying (DPSK) modulated bits, Differential Quaternary Phase-Shift Keying (DQPSK) modulated bits, or Differential Encoded 8-Phase Shift Keying (D8PSK) modulated bits. In some implementations, the processor is further configured to weight the number of demodulation metric values that exceed the first threshold for bits in the plurality of modulated bits that form at least a portion of a header of communicated information represented by the plurality of modulated bits. In some implementations of an apparatus, processor, method, or computer readable medium, the plurality of modulated bits are modulated using Gaussian Frequency-Shift Keying (GFSK) modulation, and the processor may be further configured to use a demodulation metric Z(N) as illustrated in the following expression to determine if an error occurred:
0.4196 sin(0.57717πh)≦|Z(N)|≦0.4196 sin(πh).
In some implementations of an apparatus, processor, or method, the plurality of modulated bits are modulated using Differential Phase-Shift Keying (DPSK) modulation and the process is further configured to use a demodulation metric W(N) as illustrated in the following expression to determine if an error occurred:
W(N)=0.3597eja(N)(1−0.65N)≦0.3597eja(N).
Another innovation includes an apparatus for detecting demodulation bit errors in a plurality of modulated bits includes a memory configured to store a first threshold and a second threshold, and a processor coupled to the memory, the processor configured to retrieve the first threshold and second threshold from the memory and determine a demodulation metric value for each of the plurality of modulated bits, the processor further configured to, for demodulation metric values that cross the first threshold, calculate a measure representing how much each demodulation metric value exceeds the first threshold, sum the calculated measures, and compare the sum of the calculated measures to the second threshold.
Another innovation includes a method of detecting demodulation bit errors in a plurality of modulated bits the method including storing a first threshold and a second threshold in memory, retrieving the first threshold and the second threshold from the memory, determining a demodulation metric value for each of the plurality of modulated bits, counting the number of demodulation metric values that cross the first threshold, and comparing the second threshold to the number of demodulation metric values that cross the first threshold.
Another innovation includes a method for detecting demodulation bit errors of a plurality of modulated bits. In some implementations, the method includes storing a first threshold and a second threshold, and retrieving the first threshold and second threshold from the memory, determining a demodulation metric value for each of the plurality of modulated bits, for each of the demodulation metric values that cross the first threshold, calculating a measure representing how much each demodulation metric value exceeds the first threshold, summing the calculated measures of how much each demodulation metric value exceeds the first threshold, and comparing the sum of the calculated measures to the second threshold.
Another innovation includes a computer readable medium comprising instructions that, when executed, cause an apparatus to perform a method for detecting demodulation bit errors of a plurality of modulated bits. In some implementations the method for detecting demodulation errors includes storing a first threshold and a second threshold in memory, and retrieving the first threshold and the second threshold from the memory, determining a demodulation metric value for each of the plurality of modulated bits, counting the number of demodulation metric values that cross the first threshold, and comparing the second threshold to the number of demodulation metric values that cross the first threshold.
Another innovation includes computer readable medium comprising instructions that, when executed, cause an apparatus to perform a method for detecting demodulation bit errors of a plurality of modulated bits, the method including storing a first threshold and a second threshold, retrieving the first threshold and second threshold from the memory, determining a demodulation metric value for each of the plurality of modulated bits, for each of the demodulation metric values that cross the first threshold, calculating a measure representing how much each demodulation metric value exceeds the first threshold, summing the calculated measures of how much each demodulation metric value exceeds the first threshold; and comparing the sum of the calculated measures to the second threshold.
Another innovation includes an apparatus for detecting demodulation bit errors of a plurality of modulated bits, the apparatus including means for storing a first threshold and a second threshold, means for processing coupled to the storing means, the processing means configured to retrieve the first threshold and second threshold from the storing means and to determine a demodulation metric value for each of the plurality of modulated bits, the processing means further configured to count the number of demodulation metric values that cross the first threshold and compare the second threshold to the number of demodulation metric values that cross the first threshold.
Another innovation includes an apparatus for detecting demodulation bit errors of a plurality of modulated bits, the apparatus including a means for storing a first threshold and a second threshold, and a means for processing coupled to the storing means, the processing means configured to retrieve the first threshold and second threshold from the storing means and determine a demodulation metric value for each of the plurality of modulated bits, the storing means further configured to, for demodulation metric values that cross the first threshold, calculate a measure representing how much each demodulation metric value exceeds the first threshold, sum the calculated measures, and compare the sum of the calculated measures to the second threshold.
The following detailed description is directed to certain specific embodiments of the invention. However, the invention can be embodied in a multitude of different ways. The aspects herein may be embodied in a wide variety of forms and any specific structure, function, or both being disclosed herein is merely representative. An aspect disclosed herein may be implemented independently of any other aspects and that two or more of these aspects may be combined in various ways. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth herein. In addition, such an apparatus may be implemented or such a method may be practiced using other structure, functionality, or structure and functionality in addition to or other than one or more of the aspects set forth herein.
The systems and methods described herein are described with respect to Bluetooth wireless technologies. The systems and methods may be particularly relevant to portions of the Bluetooth V4.0 standard. However, the systems and methods may also be relevant to other similar wireless technologies including other versions of the Bluetooth standard. Certain details about the Bluetooth standard may be found in Bluetooth Specification Version 4.0, published Jun. 30, 2010.
Further, the systems and methods described herein may be implemented on a variety of different computing devices. These include general purpose or special purpose computing system environments or configurations. Examples of computing systems, environments, and/or configurations that may be suitable for use with the configurations described herein include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like. Further, the systems and methods may be implemented in mobile devices (e.g., phones, smartphones, Personal Digital Assistants (PDAs), Ultra-Mobile Personal Computers (UMPCs), Mobile Internet Devices (MIDs), etc.).
Disclosed are certain examples of physical layer (PHY) error detection methods and systems for a Bluetooth (BT) modem. Such methods and systems may also apply to other wireless communication systems. A physical layer error detector detects the occurrence of erroneous demodulated bits in the payload. The need of the physical layer error detector is based on that, when the payload of a communicated packet is heavily corrupted, there may be a lot of erroneous demodulated bits in the payload but a 16-bit CRC, currently used in Bluetooth communications, may falsely pass such data. That is, a Bluetooth receiver may falsely identify erroneous data as good data and accordingly it will not flag such data for re-transmission. This may occur when erroneous data is in a payload of such a large size that it exceeds the capability of a 16 bit CRC to identify errors in the payload. In some implementations, when the PHY error detector is enabled, it is assumed that it will be enabled when a demodulator is starting to demodulate the payload.
An erroneous payload header may cause more damage to the system than erroneous data in a payload. To more accurately determine if a payload header is erroneous in some implementations an error detector can place more weight on the payload header than on the payload itself when evaluating a packet for erroneous data. This is further described in reference to
The processor 210 can be a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any suitable combination thereof designed to perform the functions described herein. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The processor 210 can be coupled, via one or more buses, to read information from or write information to memory 220 (sometimes referred to as a “memory unit,” a “memory component” or simply “memory”). The processor may additionally, or in the alternative, contain memory (for example, processor registers). The memory 220 can include a processor cache, including a multi-level hierarchical cache in which different levels have different capacities and access speeds. The memory 220 can also include random access memory (RAM), other volatile storage devices, or non-volatile storage devices. The storage can include hard drives, optical discs, such as compact discs (CDs) or digital video discs (DVDs), flash memory, floppy discs, magnetic tape, and Zip drives. The memory can store information that is used for erroneous demodulated bit detection, including threshold values or information that is used in calculating demodulated bit values.
The processor 210 may also be coupled to an input device 230 and an output device 240 for, respectively, receiving input from and providing output to, a user of the wireless communication device 102. Suitable input devices include, but are not limited to, a keyboard, buttons, keys, switches, a pointing device, a mouse, a joystick, a remote control, an infrared detector, a video camera (possibly coupled with video processing software to, e.g., detect hand gestures or facial gestures), a motion detector, or a microphone (possibly coupled to audio processing software to, for example, detect voice commands). Suitable output devices include, but are not limited to, visual output devices, including displays and printers, audio output devices, including speakers, headphones, earphones, and alarms, and haptic output devices, including force-feedback game controllers and vibrating devices.
The processor 210 is further coupled to a modem 250 and a transceiver 260. The modem 250 and transceiver 260 prepare data generated by the processor 210 for wireless transmission via the antenna 270 according to one or more air interface standards (for example, Bluetooth). The modem 250 and transceiver 260 also demodulate data received via the antenna 270 according to one or more air interface standards. The transceiver can include a transmitter, receiver, or both. In other embodiments, the transmitter and receiver are two separate components. The modem 250 and transceiver 260, can be embodied as a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any suitable combination thereof designed to perform the functions described herein.
For the GFSK modulation, the matrix W(n) 331 is separated into an imaginary component and a real component by a complex-to-real converter 333a. The absolute value of the imaginary component is computed by the box 335a. Once the absolute value has been computed 335a, the imaginary component may then be compared with a GFSK error threshold gfsk_error_region_th 339 by a comparator 337a. If the imaginary component is less than or equal to the GFSK error threshold gfsk_error_region_th 339, the comparator 337a may output a 1 (digital high). If the imaginary component is greater than the GFSK error threshold gfsk_error_region_th 339, the comparator 337a may output a 0 (digital low). The output of the comparator 337a is then provided to a first input of a first multiplexer 346.
For the DQPSK modulation, both the real component and the imaginary component of the matrix W(n) 331 may be used. After the absolute value of the imaginary component has been computed by the box 335a, the imaginary component may be compared with the DQPSK error threshold dqpsk_error_region_th 341 by a comparator 337b. If the imaginary component is less than or equal to the DQPSK error threshold dqpsk_error_region_th 341, the comparator 337b may output a 1. If the imaginary component is greater than the DQPSK error threshold dqpsk_error_region_th 341, the comparator 337b may output a 0.
The absolute value of the real component may also be computed by the box 335b. After the absolute value of the real component has been computed by the box 335b, the real component may be compared with the DQPSK error threshold dqpsk_error_region_th 341 by a comparator 337c. If the real component is less than or equal to the DQPSK error threshold dqpsk_error_region_th 341, the comparator 337c may output a 1. If the real component is greater than the DQPSK error threshold dqpsk_error_region_th 341, the comparator 337c may output a 0. The output of the comparator 337b and the output of the comparator 337c may then each be input to an OR gate 345. The output of the OR gate may be provided to a second input of the first multiplexer 346.
For D8PSK modulation, the signal W(n) 331 may need to be rotated for error detection. The signal W(n) 331 may be rotated in a first rotation by
and in a second rotation by
After the first rotation, the signal W(n) 331 may be separated into a real component and an imaginary component (by the complex-to-real converter 333b). The absolute value of the imaginary component may be computed by the box 335c and then the imaginary component may be compared with the D8PSK error threshold d8psk_error_region_th 343 using the comparator 337d. If the imaginary component is less than or equal to the D8PSK error threshold d8psk_error_region_th 343, the comparator 337d may output a 1. If the imaginary component is greater than the D8PSK error threshold d8psk_error_region_th 343, the comparator 337d may output a 0. The output of the comparator 337d may be provided to an OR gate 347.
The absolute value of the real component may be computed by the box 335d and then the real component may be compared with the D8PSK error threshold d8psk_error_region_th 343 using the comparator 337e. If the real component is less than or equal to the D8PSK error threshold d8psk_error_region_th 343, the comparator 337e may output a 1. If the real component is greater than the D8PSK error threshold d8psk_error_region_th 343, the comparator 337e may output a 0. The output of the comparator 337e may be provided to the OR gate 347.
After the second rotation, the signal W(n) 331 may be separated into a real component and an imaginary component (by the complex-to-real converter 333c). The absolute value of the imaginary component may be computed by the box 335e and then the imaginary component may be compared 337f with the D8PSK error threshold d8psk_error_region_th 343 by a comparator 337f. If the imaginary component is less than or equal to the D8PSK error threshold d8psk_error_region_th 343, the comparator 337f may output a 1. If the imaginary component is greater than the D8PSK error threshold d8psk_error_region_th 343, the comparator 337f may output a 0. The output of the comparator 337f may be provided to the OR gate 347.
The absolute value of the real component may be computed by the box 335f and then the real component may be compared with the D8PSK error threshold d8psk_error_region_th 343 by a comparator 337g. If the real component is less than or equal to the D8PSK error threshold d8psk_error_region_th 343, the comparator 337g may output a 1. If the real component is greater than the D8PSK error threshold d8psk_error_region_th 343, the comparator 337g may output a 0. The output of the comparator 337g may be provided to the OR gate 347. The output of the OR gate 347 may be provided to a third input of the first multiplexer 346.
The second multiplexer 348 may receive a GFSK number of errors threshold gfsk_num_errors_th 353 in a first input, a DQPSK number of errors threshold DQPSK number of errors threshold dqpsk_num_errors_th 355 in a second input and a D8PSK number of errors threshold d8psk_num_errors_th 357 in a third input.
The first multiplexer 346 and the second multiplexer 348 may be controlled by a mod_type signal 359 that indicates the type of modulation being used. If the mod_type signal 359 indicates that GFSK modulation is used, the first multiplexer 346 and the second multiplexer 348 pass the first inputs (the 0 input). If the mod_type signal 359 indicates that DQPSK modulation is used, the first multiplexer 346 and the second multiplexer 348 pass the second inputs (the 1 input). If the mod_type signal 359 indicates that D8PSK modulation is used, the first multiplexer 346 and the second multiplexer 348 pass the third inputs (the 2 input).
Weighting may be used based on the payload header length payload_header_len 351. As described below, the header provides more important information than the payload and thus is weighted higher. The payload header length payload_header_len 351 may be compared with a counter. If the payload header length is greater than or equal to the counter, then a multiplexer passes a weight. If the payload header length is less than the counter, then a multiplexer passes a 1 (meaning no additional weighting is provided). The output of the multiplexer may be multiplied with the output of the first multiplexer. Using feedback, the output of the multiplier may be added to previous outputs to obtain a total error.
The total error may be compared with the total error threshold passed by the second multiplexer 348 (as indicated by the mod_type 359) using the comparator 360. Thus, for GFSK modulation, the total error may be compared with the GFSK number of errors threshold gfsk_num_errors_th 353. For DQPSK modulation, the total error may be compared with the DQPSK number of errors threshold dqpsk_num_errors_th 355. For D8PSK modulation, the total error may be compared with the D8PSK number of errors threshold d8psk_num_errors_th 357. If the total error is greater than the number of errors threshold, then the comparator 360 will output that an erroneous bit is detected in the erroneous_bit_detected 361 signal (i.e., a digital one). If the total error is less than or equal to the number of errors threshold, then the comparator 360 will output that no erroneous bit was detected in the erroneous_bit_detected 361 signal (i.e., a digital zero).
Table 1 (below) illustrates examples of programmable parameters for an implementation of a physical layer error detector for detecting the occurrence of erroneous demodulated bits in error detection systems, circuits or processors. For example, the programmable parameters may be used in the example implementation of an error detection circuit illustrated in
Certain details of processes for erroneous demodulated bit detection is described below, one illustrative example being for Gaussian Frequency-Shift Keying demodulation, and another illustrative example being for Differential Phase-Shift Keying demodulation. As a person of ordinary skill in the art will appreciate, these illustrative examples of certain innovations described herein are not meant to limit the innovation, rather they present certain technical details for enabling a person of ordinary skill in the art to practice the innovations.
The decision metric based on maximum likelihood (ML) criterion for Gaussian Frequency-Shift Keying decision feedback demodulation is
r(N)=s(N)+{tilde over (n)}(N) (3)
Expression (4) is based on the assumption, for an example implementation, that a transmitter uses a Gaussian filter with a length of three symbols. Special cases of s(N) in Expression (4) are shown in Expression (5).
The detection of Ii(N−2), namely d(N−2)=sign[Im{M*(N−1)r(N)}].
For certain practical implementations, to avoid the M(N) in Expression (2) from being incalculable or impractical to calculate, decision feedback modulation (DFD) may be implemented as follows:
M(N)=α×M(N−1)ejπhd(n-2)+r(N);d(N−2)=sign[Im{M*(N−1)r(N)}] (6)
where α is the forgetting factor and 0≦α<1.
Some implementations may have a digital variable gain amplifier (DVGA), and input to the decision feedback demodulation (DFD) is after the DVGA, thus r(N) becomes
In one example, based on a digital variable gain amplifier controlling, A=0.3548, which provides totally 9 dB headroom. In addition, the receiver may not know what the transmitted modulation index is, so the receiver uses its estimated modulation index for the decision feedback demodulation. Thus, metric M(N−1) in Expression (2) becomes
In some implementations, W(N)=M8(N)r(N+1). In the noiseless condition and if {hacek over (h)}=h and d(k)=I(k), W(N) can be shown as
where Δφ(n)=2πq(T)[I(n−1)−I(n−2)]. Now W(N) can be re-written as:
Given that q(T)=0.0528571 and q(2T)=0.4471429, and let Z(N) denote the final metric that is used to demodulate the Nth bit, i.e. Z(N)=Im{W(N)}. Z(N) is expressed as follows
Since 0.28≦h≦0.35 and α<1, applying the geometric series to Expression (12) it can be shown that
0.4196 sin(0.57712πh)≦|Z(N)|≦0.4196 sin(πh) (14)
Z(n) may be referred to as the demodulation metric. That is,
A process for detecting erroneous demodulated bits using a counting implementation is further described in reference to
In another implementation of detecting erroneous demodulated bits, demodulation metric values that exceed the first threshold are determined, and the distance by which each demodulation metric value exceeds the first threshold is measured (or determined). For example,
A process for detecting erroneous demodulated bits using a soft metric implementation is further described in reference to
Similar to Gaussian Frequency-Shift Keying, the decision metric based on maximum likelihood (ML) criterion for Differential Phase-Shift Keying decision feedback demodulation (DFD) may be represented by
Similar to Gaussian Frequency-Shift Keying, because of the DVGA and to avoid instances where Y(N) in Expression (16) blows up, forgetting factor α is introduced, and the decision feedback demodulation architecture for Differential Phase-Shift Keying can be expressed as
Since α<1, applying geometric series to Expression 20, it can be shown that
Here, arg(W(N))=a(N), and hence the detection of ai(N), namely C(N)=arg(W(N))|hard decision as shown in Expression (18). If α of 0.65 is used for Differential Phase-Shift Keying decision feedback demodulation, W(N) in Expression (21) becomes
W(N)=0.3597eja(N)(1−0.65N)≦0.3597eja(N) (22)
W(n) may be referred to as the demodulation metric for Differential Phase-Shift Keying (DPSK).
In another implementation of detecting erroneous demodulated bits (for example, D8PSK), a process may include (or a circuit may be configured for) rotating the demodulation metric values W(n) by π/8 and comparing the rotated demodulation values with a first threshold. Then, the process may include rotating the demodulation metric values W(n) by −π/8 and comparing the rotated demodulation metric values with the first threshold again. For each rotated demodulation metric value that exceeds the first threshold, a measure may be calculated representing by how much each rotated demodulation metric value exceeds the first threshold. The calculated measures of how much each rotated demodulation metric value exceeds the first threshold can be added together (summed) to a resulting summed value. The summed value may be compared to the second threshold, to determine if the demodulated bits include erroneous demodulated bits.
An algorithm to detect erroneous demodulated bits for Differential Phase-Shift Keying using counting implementation can be shown by the following pseudo code. A process for detecting erroneous demodulated bits using a counting implementation is further described in reference to
(j*pi/8);
(-j*pi/8);
The algorithm to detect erroneous demodulated bits for Differential Phase-Shift Keying using soft metric implementation can be shown by the following pseudo code. A process for detecting erroneous demodulated bits using a counting implementation is further described in reference to
(j*pi/8);
(−j*pi/8);
The example of an information packet schematically illustrated in
For example, a technique can be implemented similar to that as described in reference to
At block 1010, the first threshold value and the second threshold value are retrieved from the memory. In some implementations, a processor retrieves the first and second threshold values, for example, processor 210 that is illustrated in
At block 1020, the process 1000 counts the number of demodulation metric values that exceed (or cross) the first threshold value. In some implementations, this can be performed by a processor such as processor 210 illustrated in
It should be understood that any reference to an element herein using a designation such as “first,” “second,” and so forth does not generally limit the quantity or order of those elements. Rather, these designations may be used herein as a convenient method of distinguishing between two or more elements or instances of an element. Thus, a reference to first and second elements does not mean that only two elements may be employed there or that the first element must precede the second element in some manner. Also, unless stated otherwise a set of elements may comprise one or more elements. In addition, terminology of the form “at least one of: A, B, or C” used in the description or the claims means “A or B or C or any combination of these elements.”
As used herein, the term “determining” encompasses a wide variety of actions. For example, “determining” may include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database or another data structure), ascertaining and the like. Also, “determining” may include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and the like. Also, “determining” may include resolving, selecting, choosing, establishing and the like.
As used herein, a phrase referring to “at least one of” a list of items refers to any combination of those items, including single members. As an example, “at least one of: a, b, or c” is intended to cover: a, b, c, a-b, a-c, b-c, and a-b-c.
The various operations of methods described above may be performed by any suitable means capable of performing the operations, such as various hardware and/or software component(s), circuits, and/or module(s). Generally, any operations illustrated in the Figures may be performed by corresponding functional means capable of performing the operations.
The various illustrative logical blocks, modules and circuits described in connection with the present disclosure may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array signal (FPGA) or other programmable logic device (PLD), discrete gate or transistor logic, discrete hardware components or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any commercially available processor, controller, microcontroller or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
In one or more aspects, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Thus, in some aspects computer readable medium may comprise non-transitory computer readable medium (e.g., tangible media). In addition, in some aspects computer readable medium may comprise transitory computer readable medium (e.g., a signal). Combinations of the above should also be included within the scope of computer-readable media.
The methods disclosed herein comprise one or more steps or actions for achieving the described method. The method steps and/or actions may be interchanged with one another without departing from the scope of the claims. In other words, unless a specific order of steps or actions is specified, the order and/or use of specific steps and/or actions may be modified without departing from the scope of the claims.
The functions described may be implemented in hardware, software, firmware or any combination thereof. If implemented in software, the functions may be stored as one or more instructions on a computer-readable medium. A storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray® disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers.
Thus, certain aspects may comprise a computer program product for performing the operations presented herein. For example, such a computer program product may comprise a computer readable medium having instructions stored (and/or encoded) thereon, the instructions being executable by one or more processors to perform the operations described herein. For certain aspects, the computer program product may include packaging material.
Software or instructions may also be transmitted over a transmission medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of transmission medium.
Further, it should be appreciated that modules and/or other appropriate means for performing the methods and techniques described herein can be downloaded and/or otherwise obtained by a user terminal and/or base station as applicable. For example, such a device can be coupled to a server to facilitate the transfer of means for performing the methods described herein. Alternatively, various methods described herein can be provided via storage means (e.g., RAM, ROM, a physical storage medium such as a compact disc (CD) or floppy disk, etc.), such that a user terminal and/or base station can obtain the various methods upon coupling or providing the storage means to the device. Moreover, any other suitable technique for providing the methods and techniques described herein to a device can be utilized.
It is to be understood that the claims are not limited to the precise configuration and components illustrated above. Various modifications, changes and variations may be made in the arrangement, operation and details of the methods and apparatus described above without departing from the scope of the claims.
The present application for patent claims priority to Provisional Application No. 61/815,684 titled “METHODS AND SYSTEMS TO DETECT THE OCCURRENCE OF ERRONEOUS DEMODULATED BITS FOR DECISION FEEDBACK DEMODULATION,” filed Apr. 24, 2013, and assigned to the assignee hereof and hereby expressly incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
61815684 | Apr 2013 | US |