This application claims the priority of Chinese patent application number 201110264491.7, filed on Sep. 7, 2011, the entire contents of which are incorporated herein by reference.
The present invention relates to the field of signal processing, and more particular, to a signal demodulation method.
IEEE 802.11b protocol has adopted CCK (Complementary Code Keying) modulation for 11 Mbps data rates. CCK is defined by a set of 256 code words, and each of the code words consists of 8 complex chips. Such code word set is quasi-orthogonal. If common phases between code words are not taken into consideration, the set of 256 code words is actually a set of 64 code words referred to as basic CCK code word set.
In CCK modulation, an incoming bit stream is divided into groups of 8 bits, denoted by (d0, d1, d2, d3, d4, d5, d6, d7). In each group of the 8 incoming bits, the first two bits (d0, d1) are encoded using DQPSK modulation (as shown in Table 1) to obtain a phase φ0, and the rest six bits are pairwise encoded using QPSK modulation (as shown in Table 2), namely (d2, d3), (d4, d5) and (d6, d7) are encoded using QPSK modulation to obtain phases φ1, φ2 and φ3, respectively. Among these four phases, φ0 is a differential phase and the rest three are non-differential phases.
c0=+exp(j*(φ0+φ1+φ2+φ3))
c1=+exp(j*(φ0+φ2+φ3))
c2=+exp(j*(φ0+φ1+φ3))
c3=−exp(j*(φ0+φ3))
c4=+exp(j*(φ0+φ1+φ2))
c5=+exp(j*(φ0+φ2))
c6=−exp(j*(φ0+φ1))
c7=+exp(j*(φ0)) (1)
Finally, the outputted code word C=(c0, c1, c2, c3, c4, c5, c6, c7) is given by equation (1). Each chip of the code word C after CCK modulation is transmitted in sequence, and the received code word is denoted as R=(r0, r1, r2, r3, r4, r5, r6, r7).
A complete transmission frame (PPDU) structure for IEEE 802.11b is shown in
Correlation matching method is usually used by CCK transmission for signal demodulation. The correlation matching usually employs FWT (Fast Wavelet Transform) algorithm to reduce calculation amount, but still consumes great resource and processing time. In addition, it is also proposed in the prior art a principle of majority logic decoding, which is enable to directly demodulate the three non-differential phases by simple multiplication, addition and phase determination operations. The algorithms of majority logic decoding are expressed by equations (2) and (3):
In the above equations (2) and (3), {circumflex over (φ)}i (i=0,1,2,3) is the determination value of {tilde over (φ)}i (i=0,1,2,3), and has a value set of (0,π/2,π,3π/2), And the determination rule is to find a value from the set (0,π/2,π,3π/2) that is closest to the phase {tilde over (φ)}i (i=0,1,2,3).
Although the majority logic decoding method has advantages of simple algorithm, less resource requirement and high processing speed, CCK transmission employing this method has poor demodulation performance.
Thus, it is necessary to design a high performance demodulation method with simple algorithm and less resource requirement to overcome the shortcomings of the prior art.
An objective of the present invention is to provide a signal demodulation method that is capable of sufficiently reducing the effect of noise on signal and effectively improving the signal demodulation performance.
To achieve the above objective, the signal demodulation method provided by the present invention includes the following steps:
step 1: obtain a complete transmission code word;
step 2: calculate estimated values of three non-differential phases of the transmission code word based on the majority logic;
step 3: identify the most unreliable phase among the three non-differential phases and determine the other two reliable phases to obtain their determination values;
step 4: calculating determination values of the rest two phases based on the two phases determined in step 3;
step 5: look up in tables to obtain incoming bits based on the determination values of the four phases.
Further, the code word obtained in step 1 can be a CCK code word, a quasi-orthogonally modulated code word or a block code code word.
Preferably, the code word is a complete CCK code word with 8 code chips denoted by R=(r0, r1, r2, r3, r4,r5, r6, r7).
Further, in step 2, estimated values of the three non-differential phases are calculated using the formulae:
where, {tilde over (φ)}i (i=0, 1, 2, 3) is an actual received value.
Further, in step 3, the determination value of {tilde over (φ)}i (i=0, 1, 2, 3) is denoted as {circumflex over (φ)}i (i=1, 2, 3) has a value set (0, π/2, π, 3π/2); the value {circumflex over (φ)}i (i=1, 2, 3) is determined by finding a value from the set (0, π/2, π, 3π/2) that is closest to the phase {tilde over (φ)}i (i=0, 1, 2, 3).
Further, in step 3, an ideal transmission code word has a value set of (1, j, −1, −j); the most unreliable phase is the phase corresponding to the complex number having its real part closest to its imaginary part in absolute value among complex numbers exp(j*), exp(j*), exp(j*).
Preferably, in step 5, the incoming 8 bits are obtained by looking up in tables based on the determined phases.
By using the above technical solution, the present invention is capable of sufficiently reducing the effect of noise on signal and effectively improving the signal demodulation performance.
The present invention proposes a strategy of multi-stage demodulation, whose principle is as follows: 1) determine one or more new phases at each time and substitute all the determined phases into an original formula; combine repeatedly appearing parts of the received signal so as to sufficiently reduce the effect of noise; 2) determine the rest one or more phases; 3) continuously repeat the above two steps until all the phases are successfully demodulated. With this strategy, the demodulation performance can be greatly improved by: a) demodulate and determine the most reliable phases based on equation (2) first; b) substitute the determined phases into equation (1), so that the number of unknown variables in formula (1) are reduced; then combine repeatedly appearing parts of the received signal based on equation (1); c) demodulate and determine the most reliable phases among the rest phases; d) repeat steps a) to c) until all the phases are demodulated.
In particular, the present invention proposed a two-stage demodulation method for CCK signals, which includes: first, calculate actual received values of three non-differential phases by obtaining chip values of a transmitted code word; then identify a most unreliable phase among the three non-differential phases and determine the other two reliable phases; calculate determination values of the rest two phases based on the two determined phases; finally, look up in tables to obtain incoming bits based on the determination values of the four phases. By this way, the present invention is capable of sufficiently reducing the effect of noise on signal and effectively improving the signal demodulation performance. In order to make objectives, technical solutions and advantages of the present invention more apparent, the present invention will be further described and specified below in combination with accompanying drawings and embodiments.
step 1: obtain a complete transmission code word;
In particular, in this embodiment, step 1 is to obtain the values of 8 incoming chips of the current code word. The code word can be a CCK code word, a quasi-orthogonally modulated code word or a block code code word, but is not limited thereto. In CCK modulation, an incoming bit stream is divided into groups of 8 bits, denoted by (d0, d1, d2, d3, d4, d5, d6, d7). In each group of the 8 incoming bits, the first two bits (d0, d1) are encoded using DQPSK modulation (as shown in Table 1) to obtain a phase φ0, and the rest six bits are pairwise encoded using QPSK modulation (as shown in Table 2), namely (d2, d3), (d4, d5) and (d6, d7) are encoded using QPSK modulation to obtain phases φ1, φ2 and φ3, respectively. Finally, the code word outputted is denoted as C=(c0, c1, c2, c3, c4, c5, c6, c7) which is expressed by equation (1):
c0=+exp(j*(φ0+φ1+φ2+φ3))
c1=+exp(j*(φ0+φ2+φ3))
c2=+exp(j*(φ0+φ1+φ3))
c3=−exp(j*(φ0+φ3))(1)
c4=+exp(j*(φ0+φ1+φ2))
c5=+exp(j*(φ0+φ2))
c6=−exp(j*(φ0+φ1))
c7=+exp(j*(φ0)) (1)
Each chip of the code word C after CCK modulation is transmitted in sequence, and the received code word is denoted as R=(r0, r1, r2, r3, r4, r5, r6, r7).
Step 2: calculate estimated values of three non-differential phases of the transmission code word based on a majority logic;
In particular, in this embodiment, the majority logic is employed in CCK code word demodulation to calculate actual received values of three non-differential phases. The demodulation process is expressed by equation (2):
where, {tilde over (φ)}i (i=0, 1, 2, 3) indicates an actual received value.
Step 3: identify a most unreliable phase among the three non-differential phases and determine the other two reliable phases to obtain their determination values;
The determination value of is denoted as {tilde over (φ)}i (i=0, 1, 2, 3) is denoted as {circumflex over (φ)}i (i=1, 2, 3) and has a value set of (0, π/2, π, 3π/2). And the determination rule is to find a value from the set (0, π/2, π, 3π/2) that is closest to the phase {tilde over (φ)}i (i=0, 1, 2, 3).
In this embodiment, it is apparent how the most unreliable phase among the three phases {circumflex over (φ)}1, {circumflex over (φ)}2, {circumflex over (φ)}3 shall be identified. Since an ideal transmission code word has a value set of (1, j, −1, −j), the most unreliable phase, namely the one most likely to have error, shall be the phase corresponding to the complex number having its real part closest to its imaginary part in absolute value among complex numbers exp(j*), exp(j*), exp(j*). The real part and imaginary part of each complex number are defined as reali and imagi, respectively, where i=1,2,3, namely
exp(j*)=real1+j*imag1
exp(j*)=real2+j*imag2
exp(j*)=real3+j*imag3
On this basis, the greater one between absolute values |reali| and |imagi| can be defined as maxi and the smaller one can be defined as mini, i.e.,
maxi=max(|reali|, |imagi|)
mini=min(|reali|, |imagi|).
It can be easily found that the most unreliable phase has the smallest value of maxi/mini, and the smallest value can be determined by three times of comparisons between maxi/mini and maxj/minj, where i=1, 2, 3, j=1, 2, 3 and i≠j. In fact, the comparison between maxi/mini and maxj/minj can be otherwise carried out by comparing maxi*minj with maxj*mini.
Step 4: calculate determination values of the rest two phases based on the two phases determined in step 3;
In particular, in this embodiment, the transmission code word is denoted by C=(c0, c1, c2, c3, c4, c5, c6, c7) and its value set is (1, j, −1, −j). The received code word containing noise is denoted as R=(r0, r1, r2, r3, r4, r5, r6, r7).
There are three cases:
Case 1: if the most unreliable phase is φ1, then φ1 and φ0 can be determined by equation (4):
exp(j*)=r1*exp(−j*({circumflex over (φ)}2+{circumflex over (φ)}3))−r3*exp(−j*{circumflex over (φ)}3)+r5*exp(−j*{circumflex over (φ)}2)+r7
exp(j*)=r0*exp(−j*({circumflex over (φ)}2+{circumflex over (φ)}3))+r2*exp(−j*{circumflex over (φ)}3)+r4*exp(−j*{circumflex over (φ)}2)−r6
exp(j*)=exp(j*)*exp(−j*{circumflex over (φ)}0) (4)
Case 2: if the most unreliable phase is {circumflex over (φ)}2, then {circumflex over (φ)}2 and {circumflex over (φ)}0 can be determined by equation (5):
exp(j*)=r2*exp(−j*({circumflex over (φ)}1+{circumflex over (φ)}3))−r3*exp(−j*{circumflex over (φ)}3)+r6*exp(−j*{circumflex over (φ)}1)+r7
exp(j*)=r0*exp(−j*(φ1+φ3))+r1*exp(−j*φ3)+r4*exp(−j*φ1)−r5
exp(j*)=exp(j*)*exp(−j*φ0) (5)
Case 3: if the most unreliable phase is {circumflex over (φ)}3, then {circumflex over (φ)}3 and {circumflex over (φ)}0 can be determined by equation (6):
exp(j*)=r4*exp(−j*({circumflex over (φ)}1+{circumflex over (φ)}2))+r5*exp(−j*{circumflex over (φ)}2)−r6*exp(−j*{circumflex over (φ)}1)+r7
exp(j*)=r0*exp(−j*({circumflex over (φ)}1+{circumflex over (φ)}2))+r1*exp(−j*{circumflex over (φ)}2)+r2*exp(−j*{circumflex over (φ)}1)−r3
exp(j*)=exp(j*)*exp(−j*{circumflex over (φ)}0) (6)
Step 5: look up in tables (Table 1 and Table 2) to obtain incoming bits based on the determination values of the four phases.
In particular, in this embodiment, corresponding 8 bits can be obtained by looking up in Table 1 (DQPSK Coding) and Table 2 (QPSK Coding) based on the obtained determination values {circumflex over (φ)}i (i=0,1,2,3).
An example will be provided below to illustrate an application of the present invention. In fact, correctness of CCK demodulation results depends on whether the determination values of the four phases {circumflex over (φ)}0, {circumflex over (φ)}1, {circumflex over (φ)}2, {circumflex over (φ)}3 are correct. For convenience of description, the method of calculating {circumflex over (φ)}0, {circumflex over (φ)}1, {circumflex over (φ)}2, {circumflex over (φ)}3 will be directly illustrated herein. After {circumflex over (φ)}0, {circumflex over (φ)}1, {circumflex over (φ)}2, {circumflex over (φ)}3 are determined, the corresponding 8 bits can be obtained by looking up in DQPSK and QPSK tables in a reverse way.
Step 1: if four transmission phases are φ0=π/2, φ1=π/2, φ2=π/2, φ3=π/2, the transmission code word can be obtained as by using equation C=(−j, 1, j, 1, −1, −j, −1, j) by using equation (1).
Since the code word C is affected by additive white Gaussian noise during the transmission process, the actual received code word R=(r0, r1, r2, r3, r4, r5, r6, r7) will be:
r0=0.2991−0.6964j
r1=0.761−0.4412j
r2=−0.0148+1.0131j
r3=0.5396−0.1047j
r4=−1.2804−0.1357j
r5=−0.9670−0.5708j
r6=−0.7094−0.5962j
r7=0.0850+1.1435j.
Step 2: calculate complex numbers exp(j*), exp(j*), exp(j*), by using formula (2):
exp(j*)=2.7083−2.3075j
exp(j*)=−2.3942+1.5894j
exp(j*)=−0.1111+3.1502j.
Step 3: identify the most unreliable phase based on the following comparison results:
max1=2.7083, min12.3075 max1*min2=4.3046, min1*max2=6.6784
max2=2.8942, min21.5894 max1*min3=0.3009, min1*max3=7.2691
max3=3.1502, min30.1111, max2*min3=0.3215, min2*max3=5.0069.
The smallest value max1*min3 indicates that {circumflex over (φ)}1 is most greatly affected by noise during the transmission process, so that {circumflex over (φ)}1 is the most unreliable phase. Meanwhile, φ2 and φ3 are determined in this step to obtain {circumflex over (φ)}2, {circumflex over (φ)}3.
Step 4: determine {circumflex over (φ)}0 and {circumflex over (φ)}1 by using equation (4) to get
exp(j*)=1.5979+3.0210j
exp (j*)=3.6993+1.0458j
based on the obtained {circumflex over (φ)}2 and {circumflex over (φ)}3. Now, determination values of the four transmission phases {circumflex over (φ)}0, {circumflex over (φ)}1, {circumflex over (φ)}2, {circumflex over (φ)}3 are all correctly demodulated.
Step 5: look up in DQPSK and QPSK tables in a reverse way to obtain corresponding 8 transmission bits based on the determined {circumflex over (φ)}0, {circumflex over (φ)}1, {circumflex over (φ)}2, {circumflex over (φ)}3. It can be found from the above results that the embodiment of the present invention is capable of maximizing the recovery of original information from a received signal seriously affected by noise, and is applicable in demodulation for quasi-orthogonal modulation and block code or the like. With the above improvement, the present invention can significantly improve the demodulation threshold for CCK transmission, and the BER performance could have an increase of 1.8 dB compared with the prior art as shown in
Numerous embodiments with great variations can be made without departing from the spirit and scope of the invention. It will be understood that specific embodiments described in the specification shall not be intended to limit the scope of the invention which shall solely be limited by the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
2011 1 0264491 | Sep 2011 | CN | national |
Number | Name | Date | Kind |
---|---|---|---|
7298798 | Chao et al. | Nov 2007 | B1 |
8130814 | Sivaswamy et al. | Mar 2012 | B2 |
20030147478 | Chang et al. | Aug 2003 | A1 |
20040086062 | Eckhardt et al. | May 2004 | A1 |
20040091031 | Dodgson et al. | May 2004 | A1 |
Number | Date | Country | |
---|---|---|---|
20130058441 A1 | Mar 2013 | US |