1. Field of the Invention
The present invention relates to wireless communication systems, such as but not limited to wireless local area networks (WLANs), and in particular, to an 802.11b Complementary Code Keying (CCK) receiver which mitigates inter-symbol and intra-symbol distortions due to multipath propagation.
2. Description of the Prior Art
U.S. Patent Application Publication No. 2001/0036223 to Webster et al.(“Webster”) discloses a RAKE receiver that is used for indoor multipath WLAN applications on direct spread spectrum signals having relatively short codeword lengths. FIGS. 6, 7, 8, and 10 of Webster illustrate a RAKE receiver which has an embedded chip-based decision feedback equalizer (DFE) structure provided in the signal processing path between the receiver's channel matched filter (CMF) and codeword correlator. The DFE serves to cancel Inter-Symbol Interference (ISI), which is also known as inter-codeword interference (i.e., bleed-over between CCK codewords), of the previous CCK codeword.
FIGS. 12–14 of Webster illustrate an Intra-Symbol Chip Interference (ICI) canceller which is designed to cancel the ICI generated from the post-cursors through the use of lengthy complex operations (multiplications and additions), and includes one DFE convolution block and one codeword correlation block for each and every codeword (up to 256 codewords in total) in a 802.11b CCK Decoder. Each of the 64 or 256 ICI outputs is calculated independently from a separate processing path.
In FIG. 12 of Webster, for each and every codeword (256 codewords in total), three basic building blocks are required: (i) one DFE convolution block 1220 which calculates chip-by-chip representation of the ICI before the codeword correlator 1230 using the complex convolution between each codeword (8 complex chips denoted as OW#k CHIP) and up to 8 complex DFE taps, (ii) one chip-by-chip subtractor 1210 which subtracts each of the 8 received complex chips (block 1203) from the outputs of block 1220, and (iii) one codeword correlator 1230 which calculates the correlation between each codeword (8 complex chips) and the results (8 complex chips) from the subtractor 1210. All these operations are complex and are required for each codeword. In short, 256 ICI bias outputs 1212 are calculated independently at blocks 1220, subtracted in parallel at blocks 1210, and then 256 correlations outputs are found from the codeword correlators 1230. Because the input 1223 to each codeword correlator 1230 is now different after the ICI bias correction, this architecture prevents the use of a fast Walsh transform implementation to jointly and effectively calculate the CCK correlations for all CCK codewords.
In another embodiment illustrated in FIG. 13 of Webster, for each and every codeword (64 codewords in total), two basic building blocks (which have the same functions described above) are required: (i) one DFE convolution block 1340 and (ii) one codeword correlator 1330. The number of DFE blocks and correlation blocks required is simplified from 256 to 64. The 64 ICI outputs of blocks 1330 are expanded into 256 ICI outputs from complex operations. Compared to FIG. 12, this architecture calculates the ICI bias for post-CCK codeword correlator correction 1360. Therefore, a codeword correlator to jointly and effectively compute CCK correlations can be effectively implemented using a 64 element fast Walsh transform 1320 and a 1 to 4 expansion 1350. However, each of the 64 post-correlation ICI bias is first calculated using complex convolution 1340 and complex correlation 1330. A 1-to-4 expansion 1330 is then used to generate all 256 post-correlation ICI bias These post-correlation ICI bias are then subtracted from the corresponding 256 correlator outputs of block 1350. To implement this receiver architecture, 64 complex convolution 1340 and complex codeword correlator 1330 need to be performed independently.
In yet another embodiment in FIG. 14 of Webster, for each and every codeword (256 codewords in total), two basic building blocks (which have the same functions described above) are also required: (i) one DFE convolution block 1440 and (ii) one complex codeword correlator 1430. Webster states the fact that the DFE taps can be pre-calculated and pre-stored. Again, the 256 ICI outputs are calculated independently at blocks 1440, and then 256 correlations are found at the outputs of block 1430.
In summary, Webster's architecture requires a chip-based DFE for cancellation of ISI from the previous symbol. To mitigate the ICI distortion due to the present CCK symbol, significant hardware complexity and the execution of large numbers of complex operations (complex multiplications and additions that are required for complex convolution and complex correlation) are needed. As a result, large power consumption, complex hardware, and long processing times will be required to implement the embodiments described in FIGS. 12–14 of Webster.
In U.S. application Ser. No. 10/289,749, filed Nov. 7, 2002 and entitled “Packet-based Multiplication-free CCK Demodulator with a Fast Multipath Interference Cipher”, the present inventors describe a receiver that is provided with an innovative Fast Multipath Interference Cipher (FMIC) to mitigate ICI. As shown in FIG. 2 of Ser. No. 10/289,749, the ICIs for all 256 CCK codewords can be jointly and effectively computed by an innovative FMIC block in a first operation mode (Mode 1). In a separate operation mode (Mode 2), the corresponding ICIs are subtracted from the CCK correlator outputs in the CCK decoder block. This FMIC block implements a Fast Multipath Transform (FMT) having a structure similar to a CCK correlator, which computes the CCK codeword correlations jointly and effectively using the Fast Walsh Transform (FWT). Although the receiver proposed in Ser. No. 10/289,749 can successfully mitigate ICI due to multipath propagations with essentially no additional hardware, it (and in particular, the FMIC) does not mitigate the ISI due to multipath propagation.
It is an object of the present invention to provide a CCK receiver which successfully mitigates both ISI and ICI.
It is another object of the present invention to provide a CCK receiver which mitigates both ISI and ICI while minimizing the number of complex operations.
It is yet another object of the present invention to provide a CCK receiver which mitigates both ISI and ICI while simplifying the hardware for a CCK receiver.
In order to accomplish the objects of the present invention, there is provided a method for mitigating the multipath interference experienced by a present CCK symbol. This method first obtains a set of initial candidates for the present CCK symbol and a set of initial candidates for the next CCK symbol based on the ICI-corrected correlation outputs for the present and next CCK symbols, respectively. The method then obtains, for each of the candidates for the present CCK symbol, first ISI-mitigated correlation outputs where both the ICI due to the present CCK symbol and the ISI due to the next CCK symbol have been corrected. Thereafter, for each of the candidates for the present CCK symbol, and based on the first ISI-mitigated correlation outputs, the method obtains second ISI-mitigated correlation outputs where the ISI due to the previous CCK symbol has also been corrected. The present CCK symbol is then decoded based on the second ISI-mitigated correlation outputs.
The present invention also provides a RAKE receiver employable in a multipath environment, the receiver receiving Complementary Code Keying (CCK) symbols that include a present CCK symbol, a previous CCK symbol, and a next CCK symbol. The receiver has a channel estimation block for determining a channel impulse response based on the present CCK symbol, and an FMIC bias computation block that receives feedback tap weights and feed-forward tap weights from the channel estimation block for calculating a plurality of multipath interference (MPI) biases which is a post-correlation representation of ICI for the present CCK symbol. The receiver also includes a channel matched filter (CMF) that receives the CMF tap weights from the channel estimation block, and a CCK correlator that receives the output of the channel matched filter and which generates correlation outputs. The receiver further includes a decoder which (i) receives the plurality of MPI biases from the FMIC bias computation block for mitigating the ICI from the present CCK symbol, (ii) receives the FF tap weights and FB tap weights from the channel estimation block that are used to compute the MPI biases due to the previous CCK symbol and the next CCK symbol, and (iii) receives the correlation outputs from the CCK correlator for mitigating the ICI from the present CCK symbol, and the ISI from the next CCK symbol and the previous CCK symbol.
The following detailed description is of the best presently contemplated modes of carrying out the invention. This description is not to be taken in a limiting sense, but is made merely for the purpose of illustrating general principles of embodiments of the invention. The scope of the invention is best defined by the appended claims. In certain instances, detailed descriptions of well-known devices, components, mechanisms and methods are omitted so as to not obscure the description of the present invention with unnecessary detail.
802.11b is a wireless local area network (WLAN) standard. A simplified 802.11b packet format is shown in
An 802.11b transmitter transmits a data packet at a time for the receiver 20 to process. When a CCK modulated packet is transmitted, each group of 8 data bits is CCK encoded to 8 complex chips (called one CCK symbol or one CCK codeword) that are transmitted sequentially on a chip-by-chip basis by the 802.11b transmitter. This signal travels through a wireless channel and arrives at an 802.11 receiver such as receiver 20. A typical wireless channel is characterized by multipath propagation which distorts the received signal. This multipath propagation and its problems will be described in connection with
The receiver 20 has a selector block 22, a CIR estimation block 24, an FMIC bias computation block 36a, a CMF (channel matching filter) block 28, a CCK correlator block 36b, and a joint symbol decoder block 25. The selector block 22 routes a received signal to one of two paths. The selector 22 connects the first path (Mode 1) during preamble processing and connects the second path (Mode 2) when decoding the received CCK symbols.
The CIR estimation block 24 has inputs coupled to the selector 22, and outputs coupled to the FMIC bias computation block 36a, the CMF block 28, and the joint symbol decoder block 25. During the Mode 1 operation, the CIR estimation block 24 uses Barker code correlation to determine an estimated “channel impulse response” (CIR, also known as “multipath intensity profile”). The CIR Estimation block 24 assumes that the channel impulse response remains unchanged during the period of a packet and works in Mode 1 during preamble processing for each packet. One set of outputs of the CIR estimation block 24 is the CMF tap weights. In Chapter 14 of Digital Communications, Fourth Edition, J. G. Proakis, McGraw Hill, N.Y., 1995 (hereinafter referred to as “Proakis”), it is shown that the optimum CMF tap weights can be easily derived from the estimated channel impulse response. To simplify hardware, one can also use a threshold criterion to eliminate paths with negligible energy. Another set of outputs of the CIR estimation block 24 are the Feedback (FB) tap weights (denoted as B1, B2, . . . , B7 hereinbelow) and Feed-forward (FF) tap weights (denoted as F1, F2, . . . , F7 hereinbelow) corresponding to the post-and pre-cursor parts, respectively, of the composite channel impulse response including the CMF. These tap weights are used by (i) the FMIC bias computation block 36a to compute the FMIC biases for the joint symbol decoder block 25, and (ii) the joint symbol decoder block 25 to evaluate the MultiPath Interferences (MPI) due to the past and the next CCK symbols.
In Mode 1, the FMIC bias computation block 36a performs the same function as the FMIC block 36a in Ser. No. 10/289,749. The FMIC bias computation block 36a of the present invention can also have the same structure as the various FMIC blocks illustrated in Ser. No. 10/289,749. During Mode 1, the FMIC bias computation block 36a of the present invention uses the FB and FF taps provided by the CIR Estimation 24 as inputs to jointly and effectively calculate 64 (or 32, or 16, or 8) Multipath Interferences (MPIs). These FMIC biases are used in Mode 2 by the joint symbol decoder block 25 to provide effective ICI cancellation, as described below. The MPIs provided by the FMIC Bias Computation 36a are a post-correlation representation of the ICI due to the currently received CCK symbol (8 chips long). The multipath profile is assumed to be unchanged during a packet period. Therefore, the MPIs are calculated only once for each packet in Mode 1. These MPIs, denoted as α·ICIm=α·CmH({circumflex over (B)}low+{circumflex over (F)}up)HCm(m=0, 1, 2, . . . , 255) hereinbelow, will be used later in Mode 2 when the Joint Symbol Decoder 25 cancels out the effect of the ICI by subtracting the corresponding MPI values from the outputs of the CCK correlator block 36b. As with the receiver in Ser. No. 10/289,749, the same hardware can be used to implement the FMIC Bias Computation 36a in Mode 1 and the CCK Correlator block 36b in Mode 2. In other words, the same hardware can be “shared”, or used to perform two different functions at two different times.
During Mode 2 operation, the CMF block 28 uses the CMF tap weights provided by the CIR estimation block 24 to coherently combine the energy of the received signal through a multipath channel. In
A CCK codeword contains 8 CCK chips, as specified by IEEE Standards 802.11b, 1999. In what follows, C={Cm, m=0, 1, . . . , 255} will be used to denote the CCK codebook, and Cm will be used to denote the m-th CCK codeword in the CCK codebook. Let Ck denote the k-th transmitted CCK codeword:
Ck=[Ck0,Ck1,Ck2,Ck3,Ck4,Ck5,Ck6,Ck7],
where each CCK chip cki(i=0, 1, . . . 7) is a QPSK modulated complex number from {1,ejπ/2,ejπ,ej3π/2} (or {ejπ/4,ej3π/4,ej5π/4,ej7π/4}), the first index k indicates the time sequence of transmission, and the second index i indicates the i-th CCK chip in one CCK codeword. Ck is one of the Cm's from the CCK codebook. When an 802.11b transmitter operates at 11 Mbps mode, eight data bits are grouped together to determine the transmitted CCK codeword. The binary representation of these eight bits is used to determine the index of the transmitted CCK codeword. For example, the eight data bits 10000001 (binary representation for 129) will be encoded to C129 for transmission. The objective of an 802.11b receiver is to decode the eight data bits correctly.
The CCK Correlator 36b applies the Fast Walsh Transform (FWT) to the received chips Rk(8 chips at a time) to calculate the correlations of the eight received chips and 64 of 256 CCK codewords. These 64 outputs can be easily extended to obtain all 256 CCK correlations, denoted as RkHCm(m=0, 1, . . . , 255) in Equation (2) below (also shown in
Finally, the joint symbol decoder block 25 takes RkHCm(m=0, 1, . . . , 255) and the pre-computed FMIC biases as inputs, and uses Algorithms 1 and 2 (described below) to decode the CCK symbols jointly. The decoded data is the output of the joint symbol decoder block 25 and represents the output of an 802.11b receiver.
Before a complete description of this joint symbol decoder block 25 is provided, a mathematical model characterizing the multipath propagation channel is first given below. It will be seen that a joint symbol decoder is the optimal decoder for such a propagation channel.
With signals reflected off walls, furniture, human beings, and a myriad of other objects, multipath propagation often exists between a pair of WLAN devices, such as a transmitter and a receiver. At an 802.11b receiver, a CCK signal that is transmitted through multipath propagation will result in the reception of multiple copies of the transmitted signal with various time delays and strengths. If not properly mitigated, these “echoes” will in turn cause degraded receiver performance and result in unacceptable quality and/or reduced transmission ranges.
To enhance the signal-to-noise ratio in a multipath propagation environment, a Channel Matched Filter (CMF) such as 28 is often used. It is also commonly known as a RAKE receiver. The CMF 28 is implemented with its optimal tap weights derived from the CIR estimation block 24. The estimated composite channel impulse response at the output of a CMF 28 is the convolution of the estimated channel impulse response from the CIR estimation block 24 and the tap weights of the CMF 28. At the output of a CMF 28, a multipath combining gain, hcmf, can be realized, according to Proakis. A typical WLAN multipath intensity profile can be found in
In
r8=F7c17+F6c16+F5c15+F4c14+F3c13+F2c12+F1c11+hcmfc10+B1c07+B2c06+B3c05+B4c04+B5c03+B6c02+B7c01
At the output of the CMF 28, if one looks at each received chip rk of the CCK symbol #1, there are one desired signal (see the line designated “Desired CCK Symbol” in
Assuming the additive noise is negligible, a matrix equation describing all the signal and multipath interference components shown in
R1=BupC0+HBhFC1+FlowC2
where the received symbol R1 and the three transmitted symbols (the previous symbol C0, the present symbol C1, and the next symbol C2) are given by
R1=[r8,r9,r10,r11,r12,r13,r14,r15]T
C0=[c00,c01,c02,c03,c04,c05,c06,c07]T
C1=[c10,c11,c12,c13,c14,c15,c16,c17]T
C2=[c20,c21,c22,c23,c24,c25,c26,c27]T
, respectively. The Multipath Interference (MPI) from the previous and the next symbols are characterized by Bup and Flow as follows:
In the meantime, the received signal also contains the ICI (i.e., multiple images of the present CCK symbol #1 due to multipath propagation). A matrix characterizing the overall multipath effects for CCK symbol #1 is given by
where the MPI from the post-cursors and pre-cursors of the present symbol are characterized by the Blow and Fup matrices as follows:
and the desired signal within R can be characterized as an 8-by-8 identity matrix with a real-valued CMF gain, hcmf.
In general, the received signal Rk used to decode the present symbol Ck can be characterized as
Rk=[r8k,r8k+1,r8k+2,r8k+3,r8k+4,r8k+5,r8k+6,r8k+7]=BupCk−1+HBhFCk+FlowCk+1=BupCk−1+BlowCk+hcmfCk+FupCk+FlowCk+1 Eq. (1)
In the actual receiver implementation, a Channel Impulse Response (CIR) estimation block 24 is used to provide an estimate for the multipath intensity profile characterized by (Bup, HBhF, Flow) or (Bup, Blow, hcmf, Fup, Flow). In what follows,
{circumflex over (B)}up, {circumflex over (B)}low, ĤBhF, ĥcmf, {circumflex over (F)}up, and {circumflex over (F)}low will be used to represent estimates for Bup, Blow, HBhF, hcmf, Fup, and Flow, respectively.
Referring to the columns designated by “Present Symbol” in
In summary, a complete mathematical model is presented above to characterize the multipath propagation channel encountered in a typical WLAN environment. Thus, one can observe that when decoding a CCK symbol, an optimal CCK symbol decoder needs to take into consideration all the multipath interferences (MPI) from two adjacent CCK symbols and the CCK symbol itself.
The present invention provides a low-complexity, near-optimum joint symbol decoder which uses data from consecutively-received symbols to jointly decode each CCK symbol. The receiver 20 in
RkHCm =(BupCk−1+BlowCk+hcmfCk+FupCk+FlowCk+1)HCm Eq. (2)
where {}H denotes the hermitian function (also known as the “complex transpose” function). The joint symbol decoder block 25 then takes the multipath-interference contaminated correlation outputs RkHCm(m=0, 1, 2, . . . 255), the FF and FB tap weights computed in the CIR estimation block 24, and the pre-calculated FMIC values from the FMIC Bias Computation block 36a (obtained during Mode 1) as inputs, and performs joint symbol MPI cancellations to obtain near-optimum decoding results.
To fully appreciate the present invention, it is necessary to first point out that the major challenge in implementing a joint symbol decoder resides in its complexity. While decoding the k-th transmitted CCK codeword Ck, the desired signal is represented by
(hcmfCk)HCm
in each of the 256 correlation outputs. The desired signal is a real number for the correct CCK codeword (when Ck=Cm). It is observed that Equation (2) is actually a complex number operation. When implementing a receiver, one can ignore all the imaginary parts and compute only the real parts for the desired signal and all the MPI terms in Equation (2) to save hardware. In what follows, it will not be specifically mentioned when one can compute only the “real part” of the desired signal or MPI terms to save hardware. One skilled in the art can easily tell when a simplified implementation is possible considering the “real part” operation only. At the output of this correlator block 36b, the multipath interference distortions are represented by:
For the multipath distortion due to the past CCK symbol in (a) above, one can use {circumflex over (B)}up and Ĉk−1 to estimate the multipath distortion due to the past CCK symbol for each potential present codeword Cm. If the {circumflex over (B)}up is close to Bup and the past symbol is correctly decoded (i.e., Ĉk−1=Ck−1), then one can effectively cancel this multipath distortion by subtracting ({circumflex over (B)}upĈk−1)HCm from the m-th CCK correlator output.
To represent the multipath distortion due to the present symbol (ICI) in (b) above, one can use the following estimated ICI biases:
ICIm=CmH({circumflex over (B)}low+{circumflex over (F)}up)HCm,
where m=0, 1, 2, . . . , 255, for each of the 256 candidate CCK codewords indexed by m. One observes that the ICI bias shown in (b) above is not the same as the estimated ICI biases above, while the ICI bias shown in (b) has a Ck and a Cm. The estimated ICI biases have two Cm's Note that Ck is yet to be decoded. The above estimated ICI biases are, therefore, an approximation because the present CCK symbol (Ck) can only be one of the 256 CCK codewords (Cm). Thus, the estimated ICI biases are only correct for the correct present CCK symbol. For any other of the 255 CCK symbols, the distortion can be increased when the estimated ICI bias is applied at the corresponding correlation output of the CCK correlator 36b. When one needs to keep a receiver simple, this kind of multipath distortion can, therefore, only be mitigated. To provide the best mitigation effect, one can apply the following soft bias:
α·ICIm=α·CmH({circumflex over (B)}low+{circumflex over (F)}up)HCm
where 0≦α≦1. The best value for α can be found using computer simulation.
For the same reason, the multipath distortion due to the next CCK symbol (Ck+1) in (c) above can also only be mitigated. One can apply the following soft bias to mitigate the multipath interference due to the next CCK symbol (Ck+1):
β·CmH{circumflex over (F)}lowHCm
where 0≦β≦1. The best value for β can also be found using computer simulation.
In summary, when decoding the k-th transmitted CCK codeword Ck:
In order to have the best system performance, one would ideally mitigate all three MPI distortions represented by the four triangles in
Since there are 256 CCK codeword candidates, one can imagine a joint symbol decoder which requires the evaluation of the likelihood of all 65536 (=2562 ) present and next codeword combinations before performing the final decoding of the present CCK codeword Ck. This huge number of combinations makes it impractical to implement such a joint decoder. It is, therefore, desirable to have a low-complexity joint decoder which can effectively mitigate all MPI distortions without having to evaluate all 65536 codeword combinations.
The near-optimum, low-complexity joint symbol decoder block 25 will now be described. The gist of this joint symbol decoder 25 resides in finding Mk(with Mk much smaller than 256) initial estimates for the present codeword Ck, and Mk+1(with Mk+1 much smaller than 256) initial estimates for the next codeword Ck+1, before applying the joint decoding. Hence, only MkMk+1 combinations need to be evaluated for the joint symbol decoder 25 to make a decision on codeword Ck. This reduced number of combinations allows for the receiver 20 to be easily implemented, and also provides superb performance as all MPI distortions (i.e., the four triangles) can be either removed or mitigated.
The joint symbol decoder block 25 consists of hardware to execute Algorithms #1 and #2 described below in sequence to jointly and effectively decode the transmitted CCK symbols in the presence of multipath interferences. One skilled in the art can easily implement the joint symbol decoder based on the descriptions on Algorithms #1 and #2 below. Algorithm #1 below describes means to obtain initial estimates for the present and next CCK codewords Ck and Ck+1,.
Algorithm #1: Obtaining Initial Estimates for the k-th and and k+1-th transmitted CCK codewords Ck and Ck+1:
Required Inputs:
Step1: Based on the correlator outputs RkHCm from the CCK Correlator Block 36b, use the pre-computed ICI biases from the FMIC bias computation block 36a to obtain ICI-corrected correlation outputs for the k-th transmitted (i.e., present) codeword (or symbol). In particular, for each of the 256 correlator outputs (indexed by m), subtract the corresponding MPI, α·ICIm from the CCK correlation output RkHCm to obtain the ICI-corrected correlation outputs for the k-th transmitted codeword. To implement this step, it is possible to use the symmetry properties of the CCK codewords and the MPI bias to reduce the number of bias subtractions from 256 to 32, or 16 as described in Ser. No. 10/289,749 and still achieve equivalent performance.
Step 2: Among the 256 ICI-corrected correlation outputs obtained in Step 1, select the Mk CCK codewords whose ICI-corrected correlation outputs are the Mk greatest. These Mk CCK codewords, denoted as Ĉk,i(i=1, 2, . . . , Mk), are the initial estimates for the present CCK codeword Ck. For the convenience of the descriptions below, let Pk,i represent the corresponding ICI-corrected correlation outputs for Ĉk,i(i=1, 2, . . . , Mk).
Step 3: After a delay, when the correlator outputs Rk+1HCm become available for the next (k+1-th) CCK codeword or symbol, repeat Step 1 above to obtain the ICI-corrected correlation outputs for the k+1-th transmitted symbol, and repeat Step 2 above to obtain the Mk+1 initial estimates for the next CCK codeword Ck+1, denoted as Ĉk+1,j(j=1, 2, . . . , Mk+1). For the convenience of the descriptions below, let Pk+1,j represent the corresponding ICI-corrected correlation outputs for Ĉk+1,j(j=1, 2, . . . , Mk+1).
End of Algorithm #1
Note that in Step 1 above, MPI distortions due to the CCK symbol itself (i.e., the ICI) have been mitigated from the correlation outputs. This is why one can effectively determine Mk or Mk+1 initial estimates in Step 2.
With the initial estimates obtained by Algorithm #1 for the present and next CCK symbols, one is ready to perform the joint symbol decoding using Algorithm #2. Let Ĉk−1 denote the decoded CCK codeword Ck−1. For each of the Mk initial estimates for the present CCK symbol, there are Mk+1 initial estimates for the next CCK symbol. One needs to evaluate these MkMk+1 candidates and determine the present CCK symbol.
Algorithm #2: Joint Symbol Decoding for the k-th Transmitted CCK Codeword Ck:
Required Inputs:
The joint symbol decoder 25 selects Ck,i
Let CL represent the decoded k-th CCK codeword (Ĉk=CL). The decoded data is the binary representation of L.
End of Algorithm #2
When implementing a joint decoder 25 as described in the above Algorithms #1 and #2, one skilled in the art does not necessarily have to follow the exact steps to achieve equivalent decoding results. For example, one can compute all Mk×Mk+1 MPI-corrected correlation outputs for all indices i (i=1, 2, . . . , Mk) and j (j=1, 2, . . . , Mk+1) before making a decoding decision in Step 3 of Algorithm #2.
The number of initial estimates for the k-th codeword Ck has been denoted as Mk. A joint decision rule to decode the k-th codeword Ck utilizes a decoded codeword of the previous codeword Ĉk−1, Mk candidates of the present codeword Ĉk,i(i=1, 2, . . . , Mk) and Mk+1 candidates of the next codeword Ĉk+1,j(j=1, 2, . . . , Mk+1). In other words, when decoding the k-th codeword Ck, one needs to evaluate:
If Mk and/or Mk+1 are large numbers, then this kind of joint symbol decoder becomes impractical for implementation. Thus, a cost-effective algorithm should have small Mk and Mk+1 values. Without loss of generality, one can assume that the number Mk is fixed (Mk=M, ∀k) in the following discussion for all codewords. Since there are only 256 CCK codewords specified in the 802.11b specification, one may choose M=256, but this can result in a huge number of combinations, rendering any such joint symbol decoder to be impractical.
The primary concern in implementing such a joint symbol decoder 25 is, therefore, to reduce the required number of temporary codewords, M, so as to achieve near-optimum decoding performance. The following observations are useful to note:
Although the above descriptions have focused on a joint symbol decoder 25 for the 802.11b CCK operating at 11 Mbps mode, which uses 256 CCK codewords for its codebook, those skilled in the art can easily use the same principles and receiver architecture to decode the 802.11b CCK operating at 5.5 Mbps mode, which actually uses a 16 CCK codeword subset of the codebook containing 256 codewords.
The following example is provided to illustrate Algorithms #1 and #2.
In
In
Ĉk−1H{circumflex over (B)}upHĈk,1=Ĉk−1H{circumflex over (B)}upHC1
Ĉk−1H{circumflex over (B)}upHĈk,2=Ĉk−1H{circumflex over (B)}upHC254
Ĉk−1H{circumflex over (B)}upHĈk,3=Ĉk−1H{circumflex over (B)}upHC3
In this example, their values are found to be 0.2, −1 and 0.6 respectively. The sixth column shows Steps (2b) and 3. In Step (2b), the MPI due to the previous CCK codeword is subtracted from Qk,i for each of the initial candidates for the k-th CCK codeword to obtain Wk,i. In this example, Wk,1=9, Wk,2=10.4, and Wk,3=7.3. Wk,i represents the correlation outputs with all MPI's corrected for each of the initial candidates for the k-th CCK codeword. In Step (3), the k-th codeword is decoded. In this example, it is determined that Wk,2 (circled in
Those skilled in the art will appreciate that the embodiments and alternatives described above are non-limiting examples only, and that certain modifications can be made without departing from the spirit and scope thereof. The accompanying claims are intended to cover such modifications as would fall within the true scope and spirit of the present invention.
This is a continuation-in-part of U.S. application Ser. No. 10/289,749, filed Nov. 7, 2002 and entitled “Packet-based Multiplication-free CCK Demodulator with a Fast Multipath Interference Cipher”, whose disclosure is incorporated by this reference as though set forth fully herein.
Number | Name | Date | Kind |
---|---|---|---|
6977974 | Geraniotis et al. | Dec 2005 | B1 |
20010036223 | Webster et al. | Nov 2001 | A1 |
20030123585 | Yen | Jul 2003 | A1 |
20030147478 | Chang et al. | Aug 2003 | A1 |
20040091023 | Chen et al. | May 2004 | A1 |
Number | Date | Country | |
---|---|---|---|
20040091019 A1 | May 2004 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10289749 | Nov 2002 | US |
Child | 10382756 | US |