U.S. patent application number 10/664792 was filed with the patent office on 2005-03-17 for spur mitigation techniques.
This patent application is currently assigned to Atheros Communications, Inc.. Invention is credited to Choi, Won-Joon, Gilbert, Jeffrey M., Wang, Yi-Hsiu, Zhang, Xiaoru.
Application Number | 20050059366 10/664792 |
Document ID | / |
Family ID | 34274636 |
Filed Date | 2005-03-17 |
United States Patent
Application |
20050059366 |
Kind Code |
A1 |
Choi, Won-Joon ; et
al. |
March 17, 2005 |
Spur mitigation techniques
Abstract
Spurs cause significant problems with signal detecting,
amplifier gain adjustment, and signal decoding. Various techniques
can be used to mitigate the effects of spurs on a received signal.
Generally, these techniques work by either canceling or ignoring
the spurs. For example, a pilot mask can be used to ignore pilot
information in one or more sub-channels. A Viterbi mask can
determine the weighting given to bits in a sub-channel based on
spur and data rate information. Channel interpolation can compute a
pseudo channel estimate for a sub-channel known to have a spur
location can be computed by interpolating the channel estimates of
adjacent good sub-channels. Filtering of the received signal using
a low-pass filter, a growing box filter, or a low-pass filter with
self-correlation can be used to cancel a spur.
Inventors: |
Choi, Won-Joon; (San Jose,
CA) ; Gilbert, Jeffrey M.; (Sunnyvale, CA) ;
Wang, Yi-Hsiu; (Palo Alto, CA) ; Zhang, Xiaoru;
(Sunnyvale, CA) |
Correspondence
Address: |
BEVER HOFFMAN & HARMS, LLP
TRI-VALLEY OFFICE
1432 CONCANNON BLVD., BLDG. G
LIVERMORE
CA
94550
US
|
Assignee: |
Atheros Communications,
Inc.
|
Family ID: |
34274636 |
Appl. No.: |
10/664792 |
Filed: |
September 16, 2003 |
Current U.S.
Class: |
455/130 |
Current CPC
Class: |
H04L 1/0045 20130101;
H04L 25/0232 20130101; H04L 27/2647 20130101 |
Class at
Publication: |
455/130 |
International
Class: |
H04B 001/00 |
Claims
1. A method of improving receiver performance by avoiding bad
pilots, the method comprising: using a pilot mask in the receiver,
wherein the pilot mask includes a set of flags, the set of flags
associated with certain sub-channels, wherein each flag in the set
of flags determines whether its associated sub-channel is usable
for pilot tracking.
2. The method of claim 1, wherein if a spur will coincide with a
sub-channel, then the pilot mask will not allow that sub-channel to
be used for pilot tracking.
3. The method of claim 1, wherein if a spur affects a sub-channel,
then the pilot mask will not allow that sub-channel to be used for
pilot tracking.
4. The method of claim 1, wherein the set of flags includes 52
flags associated with 52 sub-channels.
5. The method of claim 1, wherein the pilot mask is usable for any
data rate.
6. A pilot mask for improving receiver performance by avoiding bad
pilots, the pilot mask comprising: a set of flags, the set of flags
associated with certain sub-channels, wherein each flag in the set
of flags determines whether its associated sub-channel is usable
for pilot tracking.
7. A method of providing an accurate channel estimate to a decoder,
the method comprising: determining whether each sub-channel is one
of a good sub-channel and a bad sub-channel; converting any good
sub-channel including a spur to a bad sub-channel; and providing
information regarding good and bad sub-channels, including
converted sub-channels, to the decoder.
8. A method of improving signal decoding in a receiver, the method
comprising: determining whether each sub-channel is one of a good
sub-channel and a bad sub-channel; converting any good sub-channel
including a spur to a bad sub-channel; weighting bits of a signal
in a good channel more than bits a bad sub-channel; and providing
the weighted information to a decoder.
9. The method of claim 8, wherein a Viterbi mask implements the
weighting and the decoder is a Viterbi decoder.
10. The method of claim 8, wherein weighting includes adjusting
based on data rate.
11. The method of claim 10, wherein bits affected by a spur at a
higher data rate have a different weighting than bits affected by a
spur at a lower data rate.
12. A decoding circuit in a receiver, the decoding circuit
comprising: a Viterbi decoder; and a Viterbi mask in operative
relation to the Viterbi decoder, the Viterbi mask providing a
weighted channel estimate for each sub-channel based on spur
information.
13. The decoding circuit of claim 12, wherein the Viterbi mask
provides the weighted channel estimate further based on at data
rate information.
14. A filter system for canceling a spur from a signal, the filter
system comprising: a first mixer coupled to receive the signal; a
low-pass filter coupled to an output of the first mixer; a second
mixer coupled to an output of the low-pass filter; and an adder
coupled to receive the signal and subtract an output of the second
mixer.
15. The filter system of claim 14, wherein first mixer performs a
rotation of the signal that generates a spur estimate at DC,
thereby allowing the low-pass filter to estimate a phase and an
amplitude of the spur.
16. The filter system of claim 14, wherein the low-pass filter is a
growing box filter.
17. The filter system of claim 16, wherein the growing box filter
includes: a first accumulator for providing a cumulative sum of a
sample; and a second accumulator for providing a total sum of all
samples to a current symbol.
18. A method for canceling a spur from a signal, the method
comprising: rotating the signal to generate a first rotated signal;
performing a filtering computation based on the first rotated
signal to generate a filtered signal; rotating the filtered signal
to generate a second rotated signal; and subtracting the second
rotated signal from the signal.
19. The method of claim 18, wherein performing the filtering
computation includes: setting a sample set size; computing a
cumulative sum for the sample set over time; when the sample set
size is reached, then adding the cumulative sum to a total sum and
resetting the cumulative size to zero; computing an estimated spur
value by dividing the total sum by a total number of samples,
wherein the estimated spur value is provided as the filtered
signal; and periodically increasing the sample set size over
time.
20. The method of claim 19, wherein if the cumulative sum is
denoted by cs [n] and the total sum is denoted by ts [n], then
adding the cumulative sum to the total sum and resetting the
cumulative size to zero occurs when n is a power of 2.
21. A method of improving a sub-channel estimate for a received
signal, the method comprising: determining sub-channel estimates
for a plurality of sub-channels of the received signal; and if a
first sub-channel includes a spur, then ignoring the determined
sub-channel estimate of the first sub-channel, computing an
interpolated sub-channel estimate based on sub-channels adjacent
the first sub-channel, and providing the interpolated sub-channel
estimate as the sub-channel estimate for the first sub-channel.
22. A method for canceling a spur from a signal, the method
comprising: rotating the signal to generate a first rotated signal;
performing a filtering computation based on the first rotated
signal to generate a filtered signal; rotating the filtered signal
to generate a second rotated signal; subtracting the second rotated
signal from the signal to generate a modified signal; and after
subtracting, computing self-correlation of the modified signal.
23. A method for canceling a spur from self-correlation of a
signal, the method comprising: rotating the signal to generate a
first rotated signal; performing a filtering computation based on
the first rotated signal to generate a filtered signal; rotating
the filtered signal to generate a second rotated signal, which
represents a spur effect; computing self-correlation of the signal
to generate a modified signal; and subtracting the spur effect from
the modified signal.
24. A filter system for canceling a spur from a signal, the filter
system comprising: a first mixer coupled to receive the signal; a
low-pass filter coupled to an output of the first mixer; a
self-correlation block coupled to receive the signal; a second
mixer coupled to an output of the low-pass filter; and spur removal
means coupled to receive the signal, an output of the second mixer,
and an output of the self-correlation block.
Description
BACKGROUND OF THE INVENTION
[0001] 1. Field of the Invention
[0002] The present invention relates to wireless local area
networks (WLANs) and in particular to various techniques that
ignore or cancel spurs, thereby improving receiver performance.
[0003] 2. Discussion of the Related Art
[0004] Wireless local area networks (WLANs) are becoming
increasingly popular as communication networks. The IEEE 802.11
standards provide guidelines for the operation of devices operating
in WLANs. To address multipath and other conditions, a wireless
system can employ various techniques. One such technique is
Orthogonal Frequency Division Multiplexing (OFDM).
[0005] In an OFDM system, a signal can be split into multiple
narrowband channels (called sub-channels) at different frequencies.
For example, current 802.11a and 802.11g OFDM systems include 52
sub-channels. Thus, a transmitted signal could be represented by
X.sub.-26. . . x.sub.-1. . . x.sub.26, wherein both negative and
positive side frequencies are included. In this configuration, each
sub-channel carries a portion of the signal. Each sub-channel is
"orthogonal" (i.e. independent) from every other sub-channel.
Multipath conditions and noise can result in deterioration of this
orthogonality.
[0006] In an attempt to restore orthogonality, the 1999 IEEE
802.11a standard provides that a transmitted data packet includes a
preamble, which precedes the actual data. Note that all references
to the 802.11a standard, which operates in the 5 GHz band, equally
apply to the newer 802.11g standard, which operates in the 2.4 GHz
band. FIG. 1 illustrates a portion of a data packet 100 including a
preamble 105. As defined in the 802.11a standard, preamble 105
includes 10 "short" identical known symbols 101A-101J of 0.8
.mu.sec (hereinafter shorts 101) concatenated to 2 "long" identical
known symbols 102A-102B of 3.2 .mu.sec (hereinafter longs 102).
Note that a symbol refers to any waveform at discrete moments in
time (e.g. represented as voltage versus time).
[0007] Longs 102 can be used to provide channel estimation.
Specifically, because longs 102 are known, the receiver can use
these symbols to provide channel estimations for a subsequent data
symbol 103 in the data packet. In this manner, longs 102 can
thereby increase the likelihood that the received data symbols can
be correctly interpreted. Longs 102 are also called "training"
symbols because they can "train" an equalizer, e.g. a frequency
domain equalizer, to learn about channel conditions.
[0008] The 802.11a standard also provides that guard intervals
(GIs) should be placed before longs and data. Specifically, a
double guard interval (GI2) is placed before long symbols
102A-102B, thereby forming part of longs 102. In contrast, a
regular guard interval (GI) is placed before data 103A, thereby
forming part of data symbol 103. The double guard interval, as the
name implies, is twice as long as the regular guard interval.
[0009] Shorts 101 can be used to determine a frequency offset
between the oscillators in the receiver and transmitter.
Additionally, shorts 101 can be used to provide initial system time
synchronization. System time synchronization can also be
continuously tuned using the data symbols.
[0010] A difference between the frequency of the transmitter and
receiver oscillators can adversely and significantly impact system
performance. For example, if the receiver's clock is not aligned
with the incoming data, then sampling of the received signal could
be sub-optimal. Additionally, phase noise in the radio-frequency
synthesizers in the transmitter or receiver can degrade
performance. For this reason, "pilots", also known signals (e.g. -1
and 1 in a pre-determined pattern) defined by the 802.11a standard,
are provided on 4 of the 52 orthogonal sub-channels to track and
correct the difference between clocks.
[0011] For example, FIG. 2 illustrates a data symbol 200 including
a GI 201 and data 202. If the receiver's clock samples earlier in
time than the incoming data, then instead of detecting the values
indicated by 1.sup.st sampling 203, the values indicated by
2.sup.nd sampling 204 could be detected. This de-synchronization
can result in a phase ramp 300 in the frequency domain, as shown in
FIG. 3. Note that phase ramp 300 is negative when the receiver's
clock samples earlier in time than the incoming data and positive
when the receiver's clock samples later in time than the incoming
data. Because of the continual "slide" in sampling (see FIG. 2),
the slope of the phase can continue to rotate symbol by symbol.
[0012] Moreover, when a signal is transmitted, the signal is
modulated by the channel frequency, thereby improving its
propagation properties in the channel. The modulation is based on
the clock at the transmitter. Thus, at the receiver, the signal
must be demodulated. This demodulation can result in some residual
phase error, which can be represented by an offset 301. The 4
pilots provided by the 802.11 standard are used to track the phase
slope and phase offset, thereby allowing the system to compensate
for such slope and offset when necessary.
[0013] Unfortunately, using only four sub-channels can be
insufficient to compensate for phase slope and offset. For example,
certain narrow tones, called "spurs" can corrupt the pilots
provided on these four sub-channels, thereby distorting the phase
slope and phase offset information derived from such pilots. The
spurs can be generated by an oscillator and/or synthesizer provided
in the receiver, as now described in reference to FIG. 4A.
[0014] WLAN Receiver: Overview
[0015] FIG. 4A illustrates a simplified receiver 400 for receiving
signals in a WLAN environment. In receiver 400, a bandpass (BP)
filter 402 receives the incoming signals from an antenna 401 and
outputs a predetermined band of frequencies (while excluding those
frequencies higher and lower than the predetermined band). A
variable gain RF amplifier 403 can provide an initial amplification
to that predetermined band of frequencies. A mixer 404 converts
those amplified signals into intermediate frequency (IF) signals,
which are then amplified by an IF amplifier 405.
[0016] At this point, mixers 406 and low pass filters 407
(including both I and Q branches) can generate signals in the
desired channel (called the baseband signals). Amplifiers 408 then
amplify these baseband signals. Analog to digital converters (ADCs)
410 (provided for both the I and Q branches of low pass filters
407) transform the amplified baseband signals into digital signals
that can be analyzed by a processing block 411. Processing block
411 determines the modulation type of the detected signal and
provides this determination to an appropriate decoder in a decoder
block 412 for system optimization, thereby allowing the originally
transmitted signal to be recovered.
[0017] Of importance, a reference oscillator 420 in receiver 400
provides its clock to synthesizers 423 and 424 as well as to other
components in receiver 400. Synthesizers 423 and 424 generate local
oscillations 421 and 422, respectively, using the frequency of
reference oscillator 420. For example, synthesizer 423 could
generate a 2.4 GHz frequency for local oscillation 421 from a 32
MHz frequency provided by reference oscillator 420. Note that in
some embodiments, synthesizers 423 and 424 can be combined into a
single synthesizer capable of generating multiple frequencies.
[0018] Unfortunately, the frequency of reference oscillator 420 (a
square wave signal) creates harmonics (both odd and even) of the
reference frequency (e.g. 32 MHz.times.n). These harmonics can
include spurs, i.e. known frequency spectra unrelated to a received
signal, which can adversely affect the front end of receiver 400,
particularly RF amplifier 403. Spurs can be present at harmonics
near the desired received signal.
[0019] For example, if the radio is to tune to 2.4 GHz, then
synthesizer 423 could be set to 1.92 GHz and synthesizer could be
set to 0.48 GHz (because 1.92 GHz=0/48 GH=2.4 GHz). If the
synthesizers generate these frequencies from a 32 MHz reference
oscillator, then spurs can be generated at 2.4 GHz (32
MHz.times.75), 2.432 GHz (32 MHz.times.76), and 2.464 GHz (32
MHz.times.77). FIG. 4B illustrates an exemplary spur 430 generated
at 2.432 GHz. Of importance, spur 430 coincides with a pilot 431
(one of four pilots indicated by a cross-sectional pattern)
provided within the 52 sub-channels of this 17 MHz wide band. Note
that although spur 430 is a narrow band frequency, the strength of
spur 430 can affect other sub-channels adjacent to the sub-channel
including spur 430 as indicated by curves 432 (also known as
skirts). Other spurs, not shown, could coincide with and/or affect
other pilots, data, and the shorts/longs in the preamble.
[0020] Of importance, a spur is mixed with a signal received by
antenna 401. Therefore, spurs cause significant problems with
signal detecting, amplifier gain adjustment, and signal decoding.
Thus, a need arises for a technique of mitigating the effects of
such spurs, thereby improving the performance of the receiver.
SUMMARY OF THE INVENTION
[0021] In accordance with the present invention, various techniques
can be used to mitigate the effects of spurs on a received signal.
In general, these techniques work by either canceling or ignoring
the spurs. These techniques can include, but are not limited to,
filtering, interpolating, and masking. Exemplary techniques are now
further described.
[0022] A method of improving receiver performance by avoiding bad
pilots is provided. To avoid bad pilots, a pilot mask can be used
in the receiver. The pilot mask includes a set of flags, wherein
the set of flags is associated with certain sub-channels.
Advantageously, each flag in the set determines whether its
associated sub-channel is usable for pilot tracking. Thus, if a
spur coincides with or otherwise affects a sub-channel, then the
pilot mask will not allow that sub-channel to be used for pilot
tracking. In one embodiment, the set of flags includes 52 flags
associated with 52 sub-channels. The pilot mask is usable for any
data rate.
[0023] A method of improving signal decoding in a receiver is also
provided. In this method, each sub-channel can be designated either
a good sub-channel or a bad sub-channel. Any otherwise good
sub-channel including a spur can be converted to a bad sub-channel.
The bits of a signal in a good channel can be weighted more than
bits in a bad sub-channel. This weighting can also consider data
rate information. The weighted information can be provided to a
decoder. In one embodiment, a Viterbi mask implements the weighting
and the decoder is a Viterbi decoder.
[0024] A decoding circuit in a receiver is also provided. The
decoding circuit can include a Viterbi decoder and a Viterbi mask
in operative relation to the Viterbi decoder. Of importance, the
Viterbi mask provides a weighted channel estimate for each
sub-channel based on spur information. In one embodiment, the
Viterbi mask provides the weighted channel estimate based on data
rate information.
[0025] A filter system for canceling a spur from a signal is also
provided. This filter system can include first and second mixers, a
low-pass filter, and an adder. The first mixer can be used to
rotate the signal such that the spur frequency is at 0 frequency
(i.e. DC). The low-pass filter performs its computation on that
rotated signal to filter out everything but the spur. Note that the
rotation by the first mixer generates a signal with 0 frequency
offset, thereby allowing the low-pass filter to advantageously
remove the non-spur components of the signal. The second mixer can
be used for rotating the resulting filtered spur signal back to its
original frequency. The adder can subtract the re-rotated signal
from the original signal.
[0026] In one embodiment, the low-pass filter can be implemented
using a growing box filter. This growing box filter can include two
accumulators. A first accumulator can provide a cumulative sum of
samples. A second accumulator can provide a total sum of all
samples to a current symbol.
[0027] A method for canceling a spur from a signal is also
provided. In this method, the signal can be rotated to generate a
first rotated signal in which the spur frequency is at 0 frequency.
A computation based on the first rotated signal can be performed to
generate a filtered spur signal in which only the rotated spur
signal remains. The filtered spur signal can be rotated back to its
original frequency to generate a second rotated signal. At this
point, the second rotated signal can be subtracted from the
original signal.
[0028] In one embodiment, performing the filtering computation can
include setting a sample set size. A cumulative sum can be computed
for the sample set over time. When the sample set size is reached,
then the cumulative sum can be added to a total sum and the
cumulative size can be reset to zero. An estimated spur value can
be computed by dividing the total sum by a total number of samples.
This estimated spur value can be provided as the filtered signal.
Periodically, the sample set size can be increased over time. In
one embodiment, if the cumulative sum is denoted by cs[n] and the
total sum is denoted by ts[n], then adding the cumulative sum to
the total sum and resetting the cumulative size to zero occurs when
n is a power of 2.
[0029] A method of improving a channel estimate for a received
signal is also provided. In this method, a channel estimate for a
plurality of sub-channels of the received signal can be determined.
If a sub-channel includes a spur, then that sub-channel estimate is
ignored. An average sub-channel estimate can be computed, wherein
the average channel estimate is based on sub-channels adjacent the
sub-channel with the spur. This average sub-channel estimate can be
used as the sub-channel estimate for that sub-channel.
[0030] A method for canceling a spur from a signal is also
provided. In this method, the signal can be rotated to generate a
first rotated signal in which the spur frequency is at 0 frequency.
A computation can be performed based on the first rotated signal to
generate a filtered spur signal in which only the rotated spur
signal remains. The resulting filtered spur signal can be rotated
back to its original frequency to generate a second rotated
signal.
[0031] In one embodiment, the self-correlation of the original
signal can be computed to generate a modified signal. At this
point, the second rotated signal can be subtracted from the
modified signal. In another embodiment, the second rotated signal
can be subtracted from the original signal to generate a modified
signal. After subtracting, self-correlation of the modified signal
can be computed.
[0032] A filter system for canceling a spur from a signal is also
provided. The filter system includes a first mixer, a low-pass
filter, a self-correlation block, a second mixer, and a spur
removal means. The low-pass filter receives an output of the first
mixer which has rotated the original signal such that the spur
frequency is at 0 frequency. The low-pass filter performs its
computation to generate a filtered spur signal in which only the
spur signal remains. The second mixer receives an output of the
low-pass filter and rotates the filtered spur signal back to its
original frequency. In one embodiment, the spur removal means
receives the original signal and an output of the second mixer,
whereas the self-correlation block receives the output of the spur
removal means. In another embodiment, the self-correlation block
performs its computation on the original signal and the spur
removal means receives outputs of the self-correlation block, the
first mixer, and the second mixer.
BRIEF DESCRIPTION OF THE DRAWINGS
[0033] FIG. 1 illustrates a portion of an exemplary OFDM data
packet.
[0034] FIG. 2 illustrates the effect of non-synchronized clocks for
a transmitter and a receiver on the sampling of an exemplary data
symbol.
[0035] FIG. 3 illustrates a phase ramp and phase offset in the
frequency domain caused by the de-synchronization shown in FIG.
2.
[0036] FIG. 4A illustrates a simplified receiver for receiving
signals in a WLAN environment.
[0037] FIG. 4B illustrates an exemplary spur in a specific
band.
[0038] FIG. 5 illustrates an exemplary set of hard masks that could
be used to determine which of the 52 sub-channels can be used for
pilot tracking.
[0039] FIG. 6 illustrates a technique wherein a Viterbi decoder
receives a signal and outputs a decoded signal. The Viterbi decoder
ignores certain sub-channels based on a Viterbi mask.
[0040] FIG. 7 illustrates a simplified filter system that includes
a low-pass filter used to cancel spurs.
[0041] FIG. 8A illustrates a filter system that includes a growing
box filter used to cancel spurs.
[0042] FIG. 8B illustrates the operation of an exemplary growing
box filter.
[0043] FIGS. 9A and 9B illustrate techniques for determining an
average sub-channel estimate for one or more sub-channels including
or affected by a spur based on interpolating sub-channel estimates
for adjacent sub-channels.
[0044] FIGS. 10A and 10B illustrate exemplary filter systems that
can cancel the spur effect from self-correlation of the
signals.
DETAILED DESCRIPTION OF THE DRAWINGS
[0045] Spurs can cause receiver performance degradation in various
ways. For example, spurs can corrupt information in the received
signal used for data decoding, signal detection, timing, and
frequency offset. Multiple techniques, described below, can be used
to mitigate the effects of spurs. These techniques can ignore
and/or cancel the spurs.
[0046] Pilot Mask
[0047] One known pilot-tracking algorithm is discussed in U.S.
patent application Ser. No. 10/263,415, entitled "Decision Feedback
Channel Estimation and Pilot Tracking For OFDM Systems", filed on
Oct. 1, 2002, and incorporated by reference herein. In one
embodiment, this pilot-tracking algorithm can use the four pilots
on the pilot sub-channels as well as information from certain data
sub-channels to compute frequency offset. For example, the 48 data
sub-channels could be partitioned into 4 groups, wherein each group
includes 12 sub-channels. The receiver could then select the
sub-channel in each group having the maximum channel power.
[0048] In this embodiment, the four pilots and the four
pseudo-pilots (information from the selected data sub-channels) can
be weighed by their channel estimates for calculating frequency
offset. Unfortunately, pseudo-pilot sub-channels with spurs could
be chosen based on their power and given a disproportionate weight
due to such power. Therefore, spurs can severely degrade the
performance of this pilot-tracking algorithm.
[0049] In accordance with one embodiment of the invention, a pilot
mask can be used to avoid bad pilots (including actual pilots and
pseudo-pilots). For simplicity, a set of 52 flags can be provided
for the 52 sub-channels. In this case, each flag will determine
whether to use a particular sub-channel for pilot tracking. For
example, if a spur (which has a known frequency) will coincide with
a sub-channel, then the pilot mask will not allow that sub-channel
to be used for pilot tracking (hence the pilot mask is considered a
"hard" mask). Advantageously, because the performance of the
pilot-tracking algorithm is relatively insensitive to how many
sub-channels are masked, one pilot mask can generally be provided
for all the data rates. FIG. 5 illustrates an exemplary pilot mask
500 including a plurality of flags, wherein flags (with fill
pattern) 501 indicate sub-channels that cannot be used for pilot
tracking and flags (without fill pattern) 502 indicate sub-channels
that can be used for pilot tracking.
[0050] Puncturing Using A Viterbi Mask
[0051] As described in reference to FIG. 1, longs can be used to
provide channel estimation. Specifically, a transmitter includes
known information on each sub-channel to allow the receiver to
accurately estimate the sub-channel. The receiver includes a
Viterbi decoder to decode the received signal based on the
sub-channel estimates.
[0052] To reflect sub-channel conditions in the Viterbi decoder,
thereby improving signal decoding, the bits being transmitted in a
"good" sub-channel can be weighted more than bits transmitted in a
"bad" sub-channel. In accordance with one embodiment of the
invention, a Viterbi mask can take into account spurs that occur
within or affect predetermined sub-channels. In other words, even
if sub-channel SB1 is a "good" channel and therefore would normally
have a weight greater than a "bad" channel, the presence of a spur
within sub-channel SB1 should significantly reduce its weight to
accurately reflect the condition of that sub-channel.
[0053] Including the effect of a spur in a sub-channel is called
"puncturing". A Viterbi mask indicates the amount of puncturing by
providing a weighted value for each sub-channel. Because the
Viterbi mask provides a weighting for each sub-channel it is
considered a "soft" mask (in contrast to the "hard" pilot mask). In
one embodiment, the weighting value can be set between 0 and 1
(e.g. 0.ltoreq.weighting value .ltoreq.1). The higher the weighting
value, the less the spur affects that sub-channel. Thus, a
weighting value of 1 indicates that the spur has effectively no
effect on that sub-channel.
[0054] In one embodiment, because puncturing has different impacts
on different data rates, multiple sets of Viterbi masks can be
provided. For example, puncturing logically affects a received
signal having one bit per channel (a typical low data rate) less
than a received signal having six bits per channel (a typical high
data rate). However, the spurs tend to distort more sub-channels
for low data rate signals than for high data rate signals. The soft
Viterbi mask can effectively compute an appropriate weighting to be
used for each sub-channel. For example, for bits of low data rate
signals, the weightings provided in a Viterbi mask (for 7
sub-channels having a spur at the 4.sup.th sub-channel) could be
[1, 1/2, 1/2, 1/4, 1/2, 1/2, 1]. In contrast, for bits of high data
rate signals, the weightings provided in a Viterbi mask (also for 7
sub-channels having a spur at the 4.sup.th sub-channel) could be
[1, 1, 1/4, 1/6, 1/4, 1, 1].
[0055] FIG. 6 illustrates a technique wherein a Viterbi decoder 600
receives a signal 601 as well as channel estimation information 604
and outputs a decoded signal 602. In this technique, a Viterbi mask
603 can advantageously receive spur information 605 and data rate
information 606. The resulting sub-channel weights computed for
Viterbi mask 603 can be multiplied by the associated sub-channel
estimates in Viterbi decoder 600 to accurately decode received
signal 601.
[0056] Providing weighting in a Viterbi decoder based on only
channel estimation information is described in U.S. Patent
application Ser. No. 09/816,810, entitled "Decoding System and
Method for Digital Communications", which was filed on Mar. 24,
2000 by Atheros Communications, Inc., and is incorporated by
reference herein.
[0057] Spur Filtering For Data
[0058] In accordance with one embodiment of the invention, the
receiver can estimate the spur and cancel it out. This technique
can be particularly useful with high data rates, wherein spurs can
undesirably distort significant numbers of encoded bits in the
received signal.
[0059] FIG. 7 illustrates a simplified filter system 700 that
operates collectively as a narrowband notch filter to cancel spurs.
As noted previously, the frequency of the spur is known. A low-pass
filter 701 can use this frequency to accurately estimate the
spur.
[0060] To illustrate how low-pass filter 701 works, consider a
simple model without noise and a spur as expressed by the following
two equations, respectively.
y[n]=x[n]+s[n]
s[n]=A e.sup.j2.pi..function..sup..sub.s.sup.nT
[0061] where y[n] is the simple model without noise, x[n] is the
time-domain signal of the received signal (e.g. a data signal),
s[n] is the spur signal, A is a complex value including the phase
and amplitude, f.sub.s. is the spur frequency, n is the index of
particular sample, and T is the sampling period.
[0062] At this point, the received signal can be rotated such that
the spur frequency is at 0 frequency (i.e. at DC). This rotation,
which can be performed by mixer 702, can be expressed by the
following equation.
z[n]=y[n]-e.sup.j2.pi..function..sup..sub.s.sup.nT
[0063] Low-pass filter 701 can then easily estimate the spur (i.e.
filter out everything but the spur signal) using the following
equation, wherein h[k] is the filter coefficient. 1 A ^ = k = 0 l -
1 h [ k ] z [ n - k ]
[0064] wherein l is the filter length.
[0065] This filtered signal is then rotated in the opposite
direction by mixer 703, thereby returning the spur signal to its
original frequency. Using adder 704 (which can perform both adding
and subtracting operations), the spur effect can be cancelled from
the received signal on line 705 in accordance with the following
equation.
w[n]=y[n]-e.sup.j2.pi..function..sup..sub.s.sup.nT
[0066] Of importance, low-pass filter 701 needs to be applied fast
enough so that there are still significant data remaining. However,
to minimize distortion of the received signal, low-pass filter 701
needs to be very narrow, which corresponds to having a long filter
in the time domain. A long filter implies an intense computation, a
large memory to provide this computation, and an undesirably long
delay in generating this computation.
[0067] Therefore, in accordance with one embodiment of the
invention, a growing box filter, which is a form of a low-pass
filter, can be used. FIG. 8A illustrates a system 800 including a
growing box filter 801 that can estimate the spur using the
following equation. 2 A ^ [ k ] = 1 n k = 0 n - 1 z [ k ]
[0068] Note that mixers 802/803, adder 804, and line 805 perform
functions similar to mixers 702/703, adder 704, and line 705 (all
of FIG. 7), and therefore are not explained in detail herein.
[0069] Growing box filter 801 can advantageously function as an
expandable low-pass filter. Thus, growing box filter 801 can
initially be sized relatively small, thereby minimizing delay in
providing spur estimation. Additionally, growing box filter 801 can
use all the data up to the current symbol, thereby increasing the
accuracy of its spur estimation over time.
[0070] FIG. 8B illustrates the operation of an exemplary growing
box filter. Signal 810 indicates the number of samples taken each
sample period whereas spur estimate 820 indicates the value of (see
equation above), which is refined based on those samples. The size
of the growing box filter for processing each set of samples
effectively balances the desire to minimize latency while
increasing the accuracy of spur estimate 820. Specifically, in one
embodiment, the sample size during each sampling period can be
increased to provide a doubling of total sample size. Thus, for
example, a first sample set 811 (sampling period between t0 and t1)
can be sized to have only 128 samples, a relatively small number of
samples. To provide a doubling of the total sample size (i.e.
provide a total sample size of 256 samples), the next sample set
812 (sampling period between t1 and t2) can have 128 samples. At
this point, to provide a doubling of the total sample size (i.e.
provide a total sample size of 512 samples), the next sample set
813 (sampling period between t2 and t3) can be increased to have
256 samples. After two subsequent sample sets (not shown, but used
during sampling periods between t3 and t5), another sample set 816
(sampling period between t5 and t6) can be increased to have 2048
samples (thereby providing a total sample size of 4096
samples).
[0071] As appreciated from the above-described embodiment, because
latency and accuracy generally have an inverse relationship (i.e.
the shorter the latency, the less accurate the result), the growing
box filter can initially be sized small and then quickly increased
in size to improve accuracy. In one embodiment, a maximum growing
box filter length can be set to limit the latency of the filtering
operation. In another embodiment, the filter length can be
increased until spur estimate 820 exhibits a substantially similar
value over a predetermined number of sampling periods (described
below in further detail).
[0072] In accordance with one feature of the invention and
referring to FIGS. 8A and 8B, growing box filter 801 can be
efficiently implemented by including two accumulators for
processing the samples of signal 810, i.e. a first accumulator 806
for generating a cumulative sum cs [n] and a second accumulator 807
for generating a total sum ts [n]. In accordance with the
embodiment shown in FIG. 8B, when n is a power of 2, the total sum
can be updated by adding the cumulative sum to the current total
sum, and the cumulative sum can be reset.
[0073] Define
.iota..function.(n).ident.2.sup.log.sup..sub.2.sup.(n).right
brkt-bot., where x.right brkt-bot. is the largest integer that is
smaller than or equal to x.
[0074] Suppose m.sub.o is the size of the first filter (128 in the
example). Then cs[n] and ts[n] are given in the following equations
3 If n < m 0 , cs [ n ] = k = 1 n z [ k ] ; ts [ n ] = 0 If n m
0 , cs [ n ] = k = lf ( n ) + 1 n z [ k ] ; ts [ n ] = k = 1 lf ( n
) z [ k ]
[0075] Thus, for example, at time t1, first accumulator 806, which
has generated the cumulative sum from time t0 to t1, adds that
cumulative sum to the total sum that is generated by second
accumulator 807 and then resets itself to zero. Note that if time
t1 is the first sample time, then the total sum immediately
preceding time t1 is zero and the total sum at time 1 is equal to
the cumulative sum. At time t2, first accumulator 806 adds its new
cumulative sum (i.e. from time t1 to time t2) to the total sum (at
this point including only the first cumulative sum from time t0 to
time t1) that is generated by second accumulator 807 and then once
again resets itself to zero.
[0076] In one embodiment, spur estimate 820 can be computed by
taking an average of the total sum, i.e. the total sum divided by
the total number of samples to the current symbol. As shown in FIG.
8B, spur estimate 820 can change its value based on the average
total sum computed at each sampling time. Of importance, with each
sampling time, the value of spur estimate 820 is refined. Thus, at
some point in time, the value of spur estimate converges to its
actual value. For example, in FIG. 8B, the value of spur estimate
820 is substantially similar at times t3 and t4. In one embodiment,
if spur estimate 820 exhibits little change within a given time
interval (e.g. if the absolute difference is less than a
predetermined threshold or if the relative error is within +/-10%),
then that value can be used as the actual spur value (e.g.
indicated by line 820).
[0077] Channel Interpolation
[0078] Channel estimates at spur locations are generally distorted.
Therefore, in accordance with one embodiment of the invention, a
pseudo channel estimate for a sub-channel known to coincide with a
spur location can be computed by interpolating the channel
estimates of adjacent good sub-channels. For example, in one
embodiment shown in FIG. 9A, an average sub-channel estimate for
901 (which includes a spur) could be computed in an interpolator
904 using the sub-channel estimates for adjacent sub-channels 902
and 903 (i.e. sub-channels left and right of the sub-channel
including the spur). In another embodiment shown in FIG. 9B, an
average sub-channel estimate for sub-channel 905 (which includes a
spur) as well as sub-channel 906 (which is adversely affected by
the spur in sub-channel 905) could be computed in interpolator 904
using the sub-channel estimates for adjacent sub-channels 907 and
908 (i.e. sub-channels left and right of the bad sub-channels).
Note that this channel interpolation can be performed before using
a channel smoothing filter, thereby preventing sub-channel
estimation errors from propagating to neighboring sub-channels.
[0079] Note that the number of adjacent sub-channels used to
provide the interpolated sub-channel estimate can be varied based
on multipath conditions. Specifically, using only two adjacent
sub-channels for interpolation wherein at least one of the two
sub-channels is affected by multipath can distort sub-channel
estimation. However, too much interpolation, e.g. using multiple
adjacent sub-channels all affected by multipath, can also distort
the interpolated sub-channel estimate. Therefore, in one
embodiment, the amount of interpolation (i.e. the number of
adjacent sub-channels used for the interpolated sub-channel
estimate) can be determined based on multipath effects on specific
sub-channels.
[0080] Self-Correlation
[0081] Of importance, spurs can adversely affect many types of
symbols. For example, in addition to affecting data symbols as
explained above, spurs can also adversely affect the shorts of an
OFDM signal. In general, these shorts have known periodicity.
Specifically, in the 802.11a/802.11g OFDM shorts, twelve tones
(complex sinusoids) are spaced (peak to peak) at 1.2 MHz with a
period of 0.8 .mu.s. Therefore, looking for periodicity of 0.8 Is
(hence the term self-correlation) is very effective in detecting a
packet, determining timing (i.e. symbol boundary between shorts and
longs), and estimating frequency offset between the transmitter and
the receiver.
[0082] Unfortunately, because the spur can have a substantially
similar periodicity, the spur can corrupt self-correlation output
more than white noise. For example, channel 6 in 802.11g has a
center frequency of 2.437 GHz and a spur of 2.432 GHz. Therefore,
in baseband, the spur would be at -5 MHz (i.e. 2.432-2.437 GHz),
which would appear periodic with 0.2 .mu.sec and thus also with 0.8
.mu.sec (the period of the shorts).
[0083] In accordance with one feature of the invention, a low-pass
filter can be used in combination with self-correlation to
effectively cancel the spur effect. FIG. 10A illustrates an
exemplary filter system 1000 that can advantageously include a
self-correlation block 1006 to facilitate canceling the spur
effect. Note that the filtering described in reference to FIG. 7
can be equally applied in this system. Specifically, mixers
1002/1003, low-pass filter 1001, and line 1005 perform
substantially the same functions as mixers 702/703, low-pass filter
701, and line 705, as described above in reference to FIG. 7.
[0084] Note that low-pass filter 1001 does not have to be very
narrow because shorts do not occupy every frequency sub-channel.
Specifically, shorts have data every fourth sub-channel. Thus,
losing one sub-channel of the shorts does not give much loss in
performance because the receiver is not trying to decode shorts,
but instead utilizing their periodicity.
[0085] In one embodiment, spur removal block 1004 can directly
cancel the spur from the received signal. In this technique, spur
removal block 1004 can compute w [n] (see equations in reference to
FIG. 7), wherein x [n] is the time-domain signal of the shorts.
Thus, in this embodiment, spur removal block 1004 can perform
substantially the same function as adder 704 (FIG. 7). After spur
cancellation, self-correlation block 1006 can then compute
self-correlation of spur-removed signals based on the following
equation. 4 sc [ n ] = k = n n + 31 w [ k ] * w [ k + 32 ]
[0086] In another embodiment shown in FIG.10B, the spur effect can
be canceled from self-correlation. Specifically, during signal
arrival on line 1005, the spur can be estimated using low-pass
filter 1001 at the same time self-correlation is being performed by
self-correlation block 1006. In this technique, the spur effect can
be canceled for each sample, thereby eliminating a possible latency
due to spur estimation.
[0087] This self-correlation technique determines what the spur
would have done to the self-correlation performed by
self-correlation block 1006 on the received signal on line 1005.
Note that this technique includes storing the information regarding
the 32 samples to accurately perform the self-correlation.
[0088] This "spur-less" self-correlation sc [n] can be appreciated
by transforming the equation immediately above (rewritten in
expanded form in the first below equation) into an intermediate
equation (second below equation), and finally into the third below
equation. 5 sc [ n ] = k = n n + 31 ( y [ k ] - A ^ j2 f s kT ) * (
y [ k + 32 ] - A ^ j 2 f s ( k + 32 ) T ) = k = n n + 31 y * [ k ]
y [ k + 32 ] + k = n n + 31 A ^ 2 j2 f s 32 T - k = n n + 31 y * [
k ] A ^ j2 ( k + 32 ) T - k = n n + 31 A ^ * - j2 f s kT y [ k + 32
] = k = n n + 31 y * [ k ] y [ k + 32 ] + 32 A ^ 2 j2 f s 32 T - A
^ j2 f s 32 T k = n n + 31 z * [ k ] - A ^ * j2 f s 32 T k = n n +
31 z [ k + 32 ]
[0089] Thus, self-correlation of the received signal can be
computed using the following equation. 6 sc_y [ n ] = k = n n + 31
y * [ k ] y [ k + 32 ]
[0090] It logically follows that the effect of a spur from
self-correlation can then be canceled using the following equation.
7 sc_ [ n ] = sc_y [ n ] + 32 A ^ 2 j2 f s 32 T - A ^ * j2 f s 32 T
k = n n + 31 z * [ k ] - A ^ * j2 f s 32 T k = n n + 31 z [ k + 32
]
[0091] In one embodiment, to normalize the self-correlation output,
the power can also be adjusted using the following equations,
wherein the first below equation can be applied to FIG.10A and the
second below equation can be applied to FIG.10B. 8 pw [ n ] = k = n
n + 31 y [ k ] - A ^ j2 f s kT 2 + y [ k + 32 ] - A ^ j2 ( k + 32 )
T 2 = k = n n + 31 y [ k ] 2 + y [ k + 32 ] 2 + 64 A ^ 2 - 2 k = n
n + 31 Re { A ^ ( z k * + z k + 32 * ) }
[0092] In other words, power adjustment can be done either by
canceling the spur directly from the received signal or by removing
the spur contribution from the power computed directly with the
received signal.
[0093] In accordance with one aspect of the invention, it is
recognized that the type and extent of performance degradation can
depend on the data rate of the signal being received. For example,
in general, a spur occurring with a high data rate signal will
primarily affect data decoding, whereas a spur with occurring with
a low data rate signal will primarily affect signal detection,
timing, and frequency offset estimation. Moreover, irrespective of
data rate, spurs close to any pilots or data used for tracking will
affect pilot tracking.
[0094] Thus, as explained in detail above, the techniques used to
mitigate the effects of spurs can be tailored to match the data
rate of the received signal. For example, the techniques that
ignore the spurs (i.e. pilot masks, Viterbi masks, and channel
interpolation) can provide particularly effective solutions for
received signals having a high data rate. The spur filtering
technique can also provide an effective solution for received
signals having a high data rate. In contrast, the self-correlation
technique can provide a particularly effective solution for
received signals having a low data rate.
[0095] Other Embodiments
[0096] Although illustrative embodiments have been described in
detail herein with reference to the accompanying figures, it is to
be understood that the invention is not limited to those precise
embodiments. They are not intended to be exhaustive or to limit the
invention to the precise forms disclosed. As such, many
modifications and variations will be apparent to practitioners
skilled in this art.
[0097] For example, the techniques described herein are equally
applicable to zero IF (i.e. a direct conversion) architecture.
Thus, referring to FIG. 4A, in a zero IF architecture, IF amplifier
405, mixers 406, and synthesizer 424 could be removed. In this
case, the techniques for ignoring or canceling spurs can still be
applied to any spurs in the harmonics generated by synthesizer
423.
[0098] In accordance with another aspect of the present invention,
the spur mitigation techniques can be applied to spurs generated by
a transmitter. Note that the frequency offset between the
transmitter and the receiver oscillators should be determined and
corrected before application of a spur mitigation technique,
thereby ensuring accurate transmitter spur mitigation at the
receiver.
[0099] In accordance with another aspect of the present invention,
even if the exact frequency of the spur is not known (i.e.
non-synchronous spurs), a smaller in time, wider in frequency box
filter can be used to isolate the spur. Then, a frequency estimator
can be used to determine the exact spur frequency. Once this
preliminary frequency estimation is performed, then any of the
above-described techniques can be used to provide spur
mitigation.
[0100] Accordingly, it is intended that the scope of the invention
be defined by the following Claims and their equivalents.
* * * * *