Wireless networks have become increasingly popular, as computers and other devices can be coupled for data communications without requiring wired connections between the network nodes. One standard for wireless networks is the IEEE 802.11b standard.
A typical node in a wireless network includes a receive chain and a transmit chain and each chain uses only one antenna at a time.
In one embodiment of a wireless node circuit, a receiver chain includes a plurality of antennas and circuitry to process the resulting plurality of signals, including decoding the plurality of signals. In some embodiments, vector Barker decoding is used, while in other embodiments, vector CCK (complimentary code keying) decoding is used and in yet other embodiments, both are used.
In a specific aspect of embodiments of the invention, parameter estimation for channel estimation and noise estimation is done antenna-by-antenna while frequency estimation and data detection for time-averaging are done over the plurality of antennas, thereby obtaining multiple-antenna performance for data detection while still using per-antenna estimates. One benefit of this aspect is that the receiver chain can operate at lower SNRs (even SNRs less than zero, for low data rates).
Even while providing many benefits over other techniques, the multiple receive chain Barker/CCK demodulator system is fully compatible with existing standards, such as the IEEE 802.11 standards. But a few of the advantages are improved range and improved robustness to fading relative to other Barker/CCK demodulation schemes.
An advantage of the combination of multiple channel-matched-filters (CMFs) and weighted combining of signals from a plurality of receive chains is that, with weights chosen as described herein, SINR (signal to interference plus noise ratio) combining is achieved. One approach to obtaining such advantages is to estimate certain parameters (e.g., channel impulse response, correlation peak timing, noise estimation) from the receive signals for use in the combining, but to be able to do so before such SINR combining is fully operational. This constraint is overcome in implementations of the present invention by use of a parameter estimation scheme that provides reliable estimates at low SINR without using the SINR combining scheme. Once the parameters have been estimated, they can then be used in SINR combining for data detection.
With the present invention, multiple signals can be used for parameter estimation as well as for decoding the data from multiple receive chains.
In a typical operation, a plurality of node devices are outfitted with circuitry and/or software that implements a node 12 functionality and one or more network access points are provided in wireless network 10 to provide access between such a node device and the network to which a wired network interface is coupled. In the terminology used here, a node coupled to a node device is referred to as a “station” and a node coupled to a wired network interface is referred to as an “access point”. Just one example of the uses of such a system is to connect computers within a building to a network without requiring network wires to be run to each computer. In that example, the building would be outfitted with stationary access points coupled to the network which are within wireless communication range of wireless network cards in each of the computers coupled to the network.
What follows is a detailed description of a receive section.
As shown, receive section 30 also includes FIR(s) 35, a packet detector 37, a resampler 36, a channel matched filter (CMF) block 38, a Barker decoder 40, a CCK decoder 42, a descrambler 44, an SFD detector, and a header processing block 46. Although three antennas/channels are shown with ellipses to indicate more channels, it should be understood that the number of channels, N, could be as low as two or more than three. It should be understood that many of these blocks and elements could be implemented as instructions to be executed by a digital signal processor.
The FIR(s) 35 each receive one or more baseband signals from RF section 34. As described herein, receive section includes a plurality of receive sections. In specific implementations, there is a one-to-one correspondence between physical antennas and receive sections, while in other implementations, there is not a one-to-one correspondence. For example, one receive section might receive signals from an antenna structure that is considered to be more than one antenna.
The signals pass from FIR(s) 35 to resampler 36 and packet detector 37. Packet detector 37 processes the input signals to determine the beginning of a packet and may provide a packet detector signal to other elements to indicate whether any further processing is needed at all. Where the receive section is implemented as instructions for a digital signal processor, the packet detector might be code that determines whether or not a packet is detected and then sets a flag that the processor uses to determine whether to execute the code for the other blocks shown.
Assuming the other blocks are to process data, resampler 36 corrects for sample timing differences between the transmitter D/A and receiver A/D. The resampled signals are then provided to CMF block 38. CMF block 38 provides N signals as its output to both Barker decoder 40 and CCK decoder 42.
Barker decoder 40 is a vector decoder in that it operates on more than one input. Barker decoder 40 receives the N signals from CMF block 38 and in turn outputs Barker bits to descrambler 44 and SFD detector 48. Barker decoder 40 passes CMF coefficients and an Initial Frequency Offset Estimate back to CMF block 38 as well as a phase error vector for frequency/phase tracking. Barker decoder 40 passes combining weights and DPSK demodulator phase to CCK decoder 42, for use in cases where a packet is detected, a Barker preamble is found, and the packet is determined to be CCK coded. Barker decoder 40 also passes a sample timing correction to resampler 36. Because the Barker decoder operates on more than channel, estimates and outputs are more reliable than single channel results.
For CCK coded packets, CCK decoder 42 outputs data bits to descrambler 44 and also provides phase/frequency correction signals to CMF block 38. Descrambler 44 in turn descrambles the bits provided to it and generates the data output stream. SFD detector 48 takes input bits prior to and after descrambler 44. SFD detector 48 detects the end of the packet preamble. Header processor 46 takes the output bits from descrambler 44 and process the packet header fields. Header processor 46 can begin its processing immediately after the SFD has been detected.
The output of summer 70 is provided to slicer/DPSK decoder 72. Slicer/DPSK decoder 72 generates the Barker decoded header and data bits. In addition, slicer/DPSK decoder 72 generates a phase error vector that is sent to CMF Phase Detector 54 in CMF block 38. Included in Barker decoder 40 is functionality to estimate the frequency offset between transmitter and receiver, the timing of the correlation peak, the channel impulse response for each receive chain, as well as the noise power on each receive chain. In addition, Barker decoder 40 can compute the sample timing offset from the frequency offset.
The CCK correlator 82 acts on one CCK symbol at a time. Symbol boundaries are obtained from Barker Decoder 40 symbol timing. The maximum selector generates output bits corresponding to CCK correlator 82 output with maximum absolute in-phase or quadrature component. In addition, maximum selector 84 generates a phase error vector that is passed to CMF phase detector 54 in CMF block 38. The output bits from maximum selector 84 are provided to a differential decode module 86 that differentially decodes the two most significant bits and in turn outputs the CCK bits to descrambler 44.
Packet Reception
The first step in packet reception is the detection of a packet. This is accomplished in the packet detector 37. Once a packet has been detected (according to processes described herein or other processes), the parameter estimation process begins. The preamble of an 802.11b packet comprises sync bits that do not contain data. This time is used to estimate signal and channel parameters.
The frequency offset estimation and Barker correlation peak timing are estimated jointly as described herein. The sample timing offset is computed from the frequency offset and sent to the resampler 36. The frequency offset is sent to the CMF block 38 to be loaded into the memory element in the pole 96 of the PLL loop filter. The correlation peak timing is used to adjust the timing of the samples into the peak buffer 62 so that the maximal channel energy lies in the center of the peak buffer 62.
The channel estimation procedure begins after the frequency/correlation peak estimation has completed and appropriate parameters have been loaded. Once the channel impulse responses have been estimated, CMF coefficients are computed and sent to the CMF block 38 to be loaded into the CMF elements 50. Once the CMF coefficients have been loaded, one symbol is allowed to propagate from the CMF 38 through the Barker Decoder 40 to allow the system to flush. The location of the Barker correlation peak will have changed. The new location corresponds to the first sample in the peak buffer 62 that is used for the channel estimation.
At this point, the Barker decoder 40 begins computing phase error vectors for the PLL. The PLL is allowed 10 μs to acquire. Once the PLL has acquired, the noise estimation procedure begins. The noise estimation takes 10 μs. After the noise estimation completes the combining weights are computed. These weights are used in channel combiner 68 in Barker decoder 40 and are sent to CCK decoder 42 to be used in channel combiner 78.
SFD detector 48 correlates the receive bits with the two SFDs. Once an SFD is detected, header processing 46 begins. The header processor 46 determines, among other things, what type of modulation is used in the packet body. Once the header is completed, the appropriate decoder is switched on/off and packet reception proceeds.
Peak Estimation
The Barker correlation peak is determined for other parameter estimation steps as well as data detection. One method of determination is to find the sample that provides the maximum magnitude value in peak buffer 62. The location of this sample in peak buffer 62 is an estimate the correlation peak location. The location can be more robustly determined by time-averaging the sum, across receive chains, of the magnitude of peak buffers 62. This is shown by:
where p(i)(k) refers to the k-th set of 22 samples from the i-th receive chain and pl(i)(k) refers to the l-th sample of that set. The location of the maximum value of dl is an estimate of the location of the Barker correlation peak. A reasonable value for L is 10, although other values can be used.
Frequency Estimation
Residual frequency offset should be corrected to increase data detection performance. An initial frequency offset is estimated and used to initialize phase-lock loop 54. One approach to estimation is to compute the cross-correlation between the correlation peak of a current symbol and the correlation peak from a previous symbol. That is, assume that l′ indexes the correlation peak from one of the peak estimation steps described above. The cross-correlation for one receive chain is:
{tilde over (r)}(i)=pl′(i)(k)(pl′(i)(k−1))*
The value {tilde over (r)}(i) is a vector in the complex plane. Mapping this value to the positive real half-plane can be done as follows:
The argument of the resulting vector represents the phase change between two consecutive symbols. For a symbol rate of 1 Msps, the argument of this value corresponds to a frequency offset of:
The values, r(i), can be averaged across the receive chains to provide a more robust estimate. That is:
The frequency estimate for a symbol rate of 1 Msps would then be:
This estimation procedure can be made more robust by time averaging the r values.
A reasonable value for L is 10, although other values can be used. The frequency offset estimate for a 1 Msps is:
The frequency offset for other symbol rates can be computed accordingly.
For IEEE 802.11b compliant devices, it is common to couple the transmitter sampling and frequency clocks. If that is done, an estimate of the sampling offset can be computed from the estimated frequency offset. Assume that the nominal carrier frequency is ƒc. The ratio of the frequency offset to nominal carrier frequency is
Since the sampling and frequency clocks are coupled, the sampling offset and nominal sampling rate will have the same ratio. That is, the sampling offset, ψ, is given by
ψ=ηψnominal
where ψnominal is the nominal sampling rate.
Channel Estimation
The channel estimate is conducted by time-averaging the contents of the peak buffers 62, or a subset thereof. For time averaging, symbol decisions are computed by slicing the inner product of a symbol and accumulator. For example, the estimates can be initialized to:
bl(i)(0)=pl(i)(0)/L
Those estimates are then updated, using the following inner product. The following inner product (over all receive chains and all 22 Barker samples of a Barker symbol) allows for the removal of the differential data from the contents of the peak buffer in order to do time-averaging. Although the peak buffer contents are accumulated on a per receive chain basis, the data detection is conducted across receive chains. This use of multiple receive chains for the data detection is more reliable than a single-chain estimate.
In the above equations, p(i) (k) refers to the k-th set of 22 samples from the i-th receive chain and pl(i) (k) refers to the l-th sample of that set. An alternative approach would be to perform the data detection on the inputs to the Barker correlator. This might implemented by an inner product similar to the double summation to x shown above, but conducted between the inputs to the Barker correlator and a buffer accumulating inputs to the Barker correlator. The updating step is repeated L times. A suitable value for L is L=10. Longer values might be better if more time for updating were available, but L=10 provides good results and balances the cost of taking more time with the benefits of improving estimation. After accumulating or averaging the impulse responses for L symbols, a subset of the 22 conjugated bl(i) values are used as CMF coefficients, as follows:
Note that the division by L in the above equations can be omitted, resulting in an accumulation instead of an averaging, without impacting the channel estimation, because L cancels out.
Noise Estimation
The noise estimation is conducted to estimate the SNR from the 11-bit Barker preamble on each receive chain and uses this estimate to generate combining weights for optimal combining. There are several ways to estimate the noise power. Two such procedures use either the quadrature component of the Barker correlation peak, or the output of a Costas phase-error detector. For these procedures, the estimate is initialized to:
m(i)(0)=0
and the error is computed as:
e(i) (k)={σ(x(i)(k))−x(i) (k)}
for slicer error and
e(i) (k)={σ(x(i)(k))Imx(i)(k)}
for Costas error (BPSK), where
and the estimate is updated:
m(i) (k)=m(i)(k−1)+|e(i) (k)|2
This is repeated to accomplish time accumulation over a number of symbols. Another procedure by which the noise power can be estimated is to take the difference between the average power of the Barker correlation peak and cross-correlation between subsequent correlation peaks. That is
The value m(i) (k) is accumulated as above. The reciprocals of the resulting values are scaled and used as combining weights, as follows:
where am(i) is an estimate of the signal power of the i-th receive chain. There are a number of ways to obtain estimates, am(i), of the signal power. They can be computed directly from the CMF weights:
They can also be estimated by time-averaging the magnitude-squared output of the Barker correlator:
in which l′ indexes the Barker correlation peak.
The weights w(i) are used for channel combining (via elements 68 in the Barker decoder and elements 78 in the CCK decoder). Since the matched filter essentially weights the input signal by the square root of the signal power, the estimated noise power is equal to the product of noise power and signal power. The weights w(i) are equal to the input power with the CMF in its initial state divided by the noise power after channel estimation, which is equivalent to the inverse of the input noise power. Hence, the overall weighting factor for each receive chain is proportional to the square root of the signal power divided the noise power, which is the optimum weighting factor in terms of maximizing output SNR.
Using the channel-matched filters (CMFs) as described herein, the CMFs can maximize the signal-to-noise ratio (SNR) on each individual receive chain. By employing multiple receiver chains and vector decoding with SNR based combination, the effects of spatially dependent multi-path fading can be mitigated.
Phase Lock Loop
Each decoder 40 and 42 generates a phase-error vector during data detection. This phase-error vector is passed to the phase-detector in the CMF Block 38. The phase-error vector is generated by taking the (combined) output of the correlator(s) in the CCK decoder 42 (Barker decoder 40) and mapping it the complex right half-plane according to the following rule.
phase error vector=y*σ(y)*
in which σ(y) is the sliced value of the correlator output y.
The memory element 96 in the pole of the loop filter is initialized with the frequency offset estimation from the Barker decoder 40.
The phase-lock loop is operational only after the CMF weights have been applied. The CMF coefficients will rotate the signals from the multiple receive chains to have common phase. This allows the use of one phase detector, one loop filter, one oscillator to track frequency/phase changes across multiple receive chains. Other implementations could use multiple phase detectors, loop filters, oscillators or combinations of various numbers of such circuitry. Using multiple phase detectors provides an alternative approach to estimate the per receive chain noise.
Slicer/DPSK Demodulation
This operation is performed in Slicer/Differential Decode 72 in Barker decoder 40 and is split between the max select 84 and differential decode 86 in CCK decoder 42. For BPSK, the process is as follows. First, the symbol is sliced:
then hard decisions are differentially decoded:
Δ(k)={circumflex over (x)}(k){circumflex over (x)}(k−1)*
and Δ is used to address a data look up table (LUT):
to determine which bit to output. For QPSK, the process is similar. First, the symbol is sliced:
then hard decisions are differentially decoded:
Δ(k)={circumflex over (x)}(k){circumflex over (x)}(k−1)*
and Δ is used to address a data look up table (LUT):
While the above two codings might be all that is needed to implement a receiver, such as in an 802.11 compliant or 802.11 variant receiver, other codings might be used and similar SFD detection might be performed in such cases.
SFD Detection
The Start Field Delimiter (SFD) is detected to determine the beginning of the Packet Header. There are two distinct 16-bit SFD patterns, one for the long header and one for the short header. There are several approaches to SFD detection. One approach is to compare the output of descrambler 44 versus the two SFD patterns. Another approach is to compare the output of descrambler 44 versus the SFD pattern for the long header and the input to descrambler 44 versus the scrambled SFD pattern for the short header. The scrambled SFD pattern for the short header is predictable since the packet preamble and scrambler initialization state are specified in the 802.11b standard. This approach may be beneficial, since it removes scrambler initialization latency from the time required to detect the SFD pattern for the short header. Previous approaches compared Barker decoder output bits versus the SFD bit patterns. For the SFD associated with the short header, SFD detection can be done on the output of the Barker Correlator. Essentially, the scrambled bit pattern for the SFD is modulated using DBPSK to act as a soft decision correlator. One such correlator can be used for the output of the channel combiner. Alternatively, one SFD correlator could be used for each receive chain. The outputs of the correlators are combined using the weights for channel combiner 68. This value is compared to a threshold to determine whether the SFD is present.
This application is a continuation of U.S. patent application Ser. No. 10/376,079, filed Feb. 26, 2003, entitled, MULTI-ANTENNA WIRELESS RECEIVER CHAINS WITH VECTOR DECODING which is a continuation of U.S. patent application Ser. No. 10/068,360, filed Feb. 5, 2002 entitled, MULTI-ANTENNA WIRELESS RECEIVER CHAINS WITH VECTOR DECODING which is hereby incorporated by reference, as if set forth in full in this document, for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
5553064 | Paff et al. | Sep 1996 | A |
6055231 | Mesecher et al. | Apr 2000 | A |
6118806 | Niida et al. | Sep 2000 | A |
6144711 | Raleigh et al. | Nov 2000 | A |
6260167 | Lo et al. | Jul 2001 | B1 |
6304750 | Rashid-Farrokhi et al. | Oct 2001 | B1 |
6661857 | Webster et al. | Dec 2003 | B1 |
6670310 | Wojtecki | Dec 2003 | B2 |
6678310 | Andren et al. | Jan 2004 | B1 |
6690715 | Webster et al. | Feb 2004 | B2 |
6934323 | Hara | Aug 2005 | B2 |
7006040 | Henderson et al. | Feb 2006 | B2 |
7106784 | Eltawil et al. | Sep 2006 | B2 |
7327717 | Borowski et al. | Feb 2008 | B2 |
20020080069 | Stilp et al. | Jun 2002 | A1 |
20020105375 | Sorokine | Aug 2002 | A1 |
20030095587 | Schilling | May 2003 | A1 |
Number | Date | Country | |
---|---|---|---|
20070248199 A1 | Oct 2007 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10376079 | Feb 2003 | US |
Child | 11565479 | US | |
Parent | 10068360 | Feb 2002 | US |
Child | 10376079 | US |