Aspects of the invention relate generally to orthogonal frequency division multiplexing (OFDM) communication systems, and more particularly, to energy detection, frame synchronization, and carrier frequency offset estimation in OFDM communications systems.
An OFDM signal is generated as the sum of subcarriers that are modulated by the complex information symbols to be transmitted. The data is transmitted in parallel on orthogonal subcarriers, which are made orthogonal to each other by separating them in frequency by a multiple of the symbol frequency 1/T. The OFDM signal is then given by equation (1) below, as follows:
where dk are the complex information symbols to be transmitted and T is the OFDM symbol period. The complex baseband OFDM signal is the inverse discrete Fourier transform (DFT) of N input data symbols, which is implemented efficiently using the inverse fast Fourier transform (FFT).
An essential part of the receiver is frame synchronization, and frequency offset estimation and correction. Frame synchronization refers to packet detection, which is estimating the start of the preamble of the incoming data packet, and symbol timing, which is finding the precise boundaries of individual OFDM symbols (i.e., start and end of each OFDM symbol). Packet detection and symbol timing algorithms rely on the short and long preambles, which are known sequences at the receiver.
A standard radix-23 single-path delay feedback (SDF) architecture for 128-point data path is shown in
According to an example embodiment of the invention, there may be an apparatus for Detection and Estimation with Fast Fourier Transform (FFT) in Orthogonal Frequency Division Multiplexing (OFDM) Communication Systems. The apparatus may include a plurality of butterfly operators that are operative with respective delay blocks in calculating a Fourier transform of a signal input, at least one complex multiplier, and a plurality of multiplexers. The plurality of multiplexers may be configured to selectively operate the at least one complex multiplier to (i) calculate the Fourier transform of the signal input using the plurality of butterfly operators, or (ii) calculate one or both of an energy signal based upon the signal input, or at least one autocorrelation signal based upon the signal input and at least one delayed input from at least one delay block.
According to another example embodiment of the invention, there may be a method for Detection and Estimation with Fast Fourier Transform (FFT) in Orthogonal Frequency Division Multiplexing (OFDM) Communication Systems. The method may include providing a plurality of butterfly operators that are operative with respective delay blocks in calculating a Fourier transform of a signal input, providing at least one complex multiplier, and configuring a plurality of multiplexers to selectively operate the at least one complex multiplier to (i) calculate the Fourier transform of the signal input using the plurality of butterfly operators, or (ii) calculate one or both of an energy signal based upon the signal input, or at least one autocorrelation signal based upon the signal input and at least one delayed input from at least one delay block.
Reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Embodiments of the present invention now will be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, these inventions may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like numbers refer to like elements throughout.
Embodiments of the invention may be directed towards a fast Fourier transform (FFT)/inverse FFT architecture that not only allows for efficient computation of N-point FFT/IFFT transform (N=2n), but also allows for efficient reuse of the multipliers and delay blocks (e.g., tap delay lines) for efficient implementation of signal energy detection and autocorrelation of length or period 2p, where pε{0, 1, . . . , log2(N)−1}. The signal energy detection and autocorrelation may be used for the implementation of frame synchronization and carrier frequency offset estimation. Frame synchronization may include one or both of packet detection (“coarse timing”) or symbol detection (“fine timing”). It should be appreciated that example embodiments of the FFT/IFFT architecture can be implemented for a general 2m radix and for general delay architectures that include, but are not limited to, the single-path delay feedback (SDF), single-path delay commutator (SDC) and multi-path delay commutator (MDC) architectures.
A first aspect of the invention may be directed towards a flexible architecture for computing N-point FFT/IFFT, where flexibility may be defined in terms of supporting different power-of-two FFT/IFFT lengths, using different power-of-two radix values, and using different delay architectures, according to an example embodiment of the invention. A second aspect of the invention may be directed towards an efficient and flexible architecture for computing the energy of a complex baseband OFDM signal. Efficiency may be defined in terms of reusing the complex multipliers and delay blocks (e.g., tap delay lines) of the FFT/IFFT architecture for the computation of the OFDM signal's energy. Flexibility may be defined in terms of supporting different window lengths for computing the energy such that the window length is 2p, where pε{0, 1, . . . , log2(N)−1}.
A third aspect of the invention may be directed towards an efficient and flexible architecture for computing the autocorrelation of a complex OFDM signal. Efficiency may be defined in terms of reusing the complex multipliers and delay blocks (e.g., tap delay lines) of the FFT/IFFT architecture. Similarly, flexibility may be defined in terms of supporting different period lengths for computing the autocorrelation such that the period length is 2p, where pε{0, 1, . . . , log2(N)−1}. A fourth aspect of the invention may be directed towards an architecture for computing the received signal strength indicator (RSSI). A fifth aspect of the invention may be directed towards an architecture for packet detection, which may also be referred to as coarse timing. A sixth aspect of the invention may be directed towards an architecture for coarse estimation of the carrier frequency offset. A seventh aspect of the invention may be directed towards an architecture for symbol timing, which is also referred to as fine timing. An eighth object of the invention may be directed towards an architecture for fine estimation of the carrier frequency offset. These and other aspects of embodiments of the invention will be appreciated by those of ordinary skill in the art.
Turning now to
Each of the butterfly operators 602a-602g may operate with a respective delay block 603a-603g, which may also be referred to as tap delay lines according to an example embodiment of the invention. The delay blocks 603a-603g may be implemented using respective flip-flops, resistors, or other memory elements, according to an example embodiment of the invention. As shown in the
In
As shown by
A. 128-Point FFT/IFFT Operation
Referring to
B. 64-Point FFT/IFFT Operation
According to an example embodiment of the invention, the architecture of FIG. may likewise be utilized for 64-point FFT/IFFT operation. For 64-point FFT/IFFT operation, the control signals 706a-h for the multiplexers 605a-h (e.g., MUXs A through H) may be given by the control vector {x, x, x, 1, 0, 0, 1, x}. In accordance with the control vector, the positions of multiplexers 605a, 605b, and 605c do not matter, and thus, may be set in any position; multiplexer 605d may be set in the “1” position; multiplexers 605e, 605f may be set in the “0” position; multiplexer 605g may be set in the “1” position; and multiplexer 605h may be set in any position. The 64-point FFT and inverse FFT may be computed in 2N−1+L cycles, where N=64, and where L is additional latency due to pipelining in the data path. The control signals 604a-g for the different butterfly operators 602a-g for 64-point FFT may be a subset of the control signals for 128-point FFT/IFFT and can be determined by one of ordinary skill in the art, for example, from He and M. Torkelson, “Designing pipeline FFT processors for OFDM (de)modulation,” Proc. of URSI Int. Symp. on Signals, Systems, and Electronics (ISSSE 98), 1998, pp. 257-262. Similar to the 128-point transform, only the basic architecture may be utilized during the computation of 64-point FFT or inverse FFT.
C. Packet Detection (Coarse Timing)
According to an example embodiment of the invention, the extended architecture of
For packet detection, the control signals 706a-h for the multiplexers 605a-h are given by the control vector {1, x, 0, x, 1, 1, 0, 0}. The control signals 604a-g for butterfly operators 602a-g are given by an all-zero control vector {{0}, {0}, {0, 0}, {0, 0, 0}, {0}, {0, 0}, {0, 0, 0}}. In general, an all-zero control vector results in the butterfly operators 602a-g passing their respective inputs to the outputs without applying any arithmetic operation involved in transformation of the input. As a result of this configuration, an energy signal v1[n] 610 and an autocorrelation signal v3[n] 614 may be provided, as illustrated by equations (2) and (3) below:
v
1
[n]=r[n]*conj(r[n])=|r[n]|2 (2),
v
3
[n]=r[n]*conj(r[n−16]) (3).
The energy signal v1[n] 610 may be the output by complex multiplier 606a, which multiplies the input r[n] 601 from multiplexer 605a with the conjugate(r[n]) 611 from multiplexer 605c. The autocorrelation signal v3[n] 614 may be the output of complex multiplier 606b, which multiplies the input r[n] 601 from multiplexer 605f by the delayed conjugate (r[n−16]) input 608 from multiplexer 605g.
The energy signal v1 [n] 610 and the autocorrelation signal v3[n] 614 may be provided as inputs to accumulators 802 and 806, respectively. The 32-sample and 16-sample accumulator outputs acc1[n] and acc3[n] of accumulators 802, 806 may given by equations (4) and (5) below:
The 32-sample accumulator output acc1[n] may be multiplied by a threshold 806 using multiplier 812 to generate a first intermediate signal. The magnitude of the 16-sample accumulator output acc3[n] may be determined by the magnitude or absolute value block 814, thereby providing a second intermediate signal. The first and second intermediate signals may then be added by an adder 816 to generate a decision signal “U” for use in determining receipt of a valid packet. The decision signal “U” may be provided as follows:
U=|acc3[n]|−Threshold*acc1[n] (6).
If comparator 818 determines that the value of “U” is greater than zero, then a valid packet is detected, and a packet detect signal 708 is generated. It will be appreciated by one of ordinary skill in the art that the above-identified algorithm is only one example embodiment of a packet detection algorithm. By way of example, the comparator 818 may determine whether the second intermediate signal is greater than the first intermediate signal. Likewise, other variations of packet detection algorithms that use different lengths for the autocorrelation period or signal energy are possible. Furthermore, multiple autocorrelations can be implemented to improve the robustness of the algorithm and reduce the probability of a false detection.
D. Received Energy Measurement
According to an example embodiment of the invention, an illustrative received energy measurement algorithm may run in parallel to the packet detection algorithm, or perhaps prior to packet detection algorithm, in the scenario where the received energy measurement is used for automatic gain control. The energy measured at the receiver is usually reported as a quantity termed the received signal strength indicator (RSSI). For received energy measurement, the control signals 706a-h for the multiplexers 605a-h may be given by the control vector {1, x, 0, x, x, x, x, x}. The control signals 604a-g for butterfly operators 602a-g are given by the all-zero control vector {{0}, {0}, {0, 0}, {0, 0, 0}, {0}, {0, 0}, {0, 0, 0}}
As a result of this configuration, an energy signal v1[n] 610 may be provided, as similarly discussed above. The energy signal v1[n] 610 may be the output by complex multiplier 606a, which multiplies the input r[n] 601 received from multiplexer 605a with the conjugate(r[n]) input 611 received from multiplexer 605c. In an alternative embodiment of the invention, the energy signal may be determined by applying a magnitude or absolute value block to the squared product of the input r[n] 601. The energy signal v1[n] 610 may be provided as an input to accumulator 802, which in turn generates a 32-sample accumulator output acc1[n], according to an example embodiment of the invention. The received signal strength indicator (RSSI) 712 may be the accumulator output acc1 [n], or otherwise derived from the accumulator output acc1[n], according to an example embodiment of the invention. It will be appreciated that variations of the above-described configuration are possible.
E. Coarse Carrier Frequency Offset Estimation
According to an example embodiment of the invention, an illustrative coarse frequency offset estimate algorithm may run in parallel to the packet detection algorithm, and accordingly, the control signals 706a-h for the multiplexers 605a-h may be the same as for packet detection, and are given by the control vector {1, x, 0, x, 1, 1, 0, 0}. The control signals 604a-g for butterfly operators 602a-g may be given by the all-zero control vector {{0}, {0}, {0, 0}, {0, 0, 0}, {0}, {0, 0}, {0, 0, 0}. Once a packet is successfully detected, the accumulator 806 output acc3[n] may be used to estimate the carrier frequency offset. In the absence of noise, the accumulator signal acc3 [n] may be given by equation (7) below:
where fΔ may be the carrier frequency offset, T may be the sampling period, s[n] may be the transmitted signal, and D1=16 may be the delay between identical samples of the two repeated sections of a short preamble. The coarse frequency offset estimate may then be given by:
{circumflex over (f)}
Δ=−1/(2πDT)∠acc3[n] (8),
where ∠x may the operator that takes the angle of the argument x, which may be performed by the phase estimation block 810 (e.g., CORDIC). Once the phase estimation block 810 calculates the phase of the input signal acc3 [n], a valid control vector 703 may be generated by the controller 702 to indicate that the computation has been performed and that the frequency error estimate 714a produced by the phase estimation block 810 may be used for correction.
F. Symbol Timing (Fine Timing)
According to an example embodiment of the invention, an illustrative symbol timing algorithm may be based on delay and correlate algorithm. In general, during symbol timing, the autocorrelation of the input signal r[n] may be compared against the signal's energy and the fall in the autocorrelation below a threshold may be used to indicate a transition from the short preamble to the long preamble in a packet such as a 802.11a/g/n packet.
For symbol timing, the control signals 706a-h for the multiplexers 605a-h may be the same as for the packet detection and coarse frequency offset estimation, and may be given by {1, x, 0, x, 1, 1, 0, 0}. The control signals 604a-g for butterfly operators 602a-g may be given by the all-zero control vector {{0}, {0}, {0, 0}, {0, 0, 0}, {0}, {0, 0}, {0, 0, 0}}. The symbol timing algorithm may be substantially the same as the packet detection algorithm described herein, except that symbol timing is indicated by a fall in the autocorrelation function, as indicated by a value of the decision signal “U” that is less than zero. Accordingly, as shown by comparator 820, if the decision signal “U” is less than zero and a packet detect signal 708 has previously been generated, then a symbol timing signal 710 may be generated.
It will be appreciated that many variations of the symbol timing algorithm may be possible. For example, other variations of packet detection algorithms that use different lengths for the autocorrelation period are possible.
G. Fine Carrier Frequency Offset Estimation
In accordance with an example embodiment of the invention, an illustrative fine carrier frequency offset estimation algorithm may be enabled once symbol timing is established. For fine frequency offset estimation, the control signals 706a-h for the multiplexers 605a-h may be given by the control vector {1, 0, 1, x, x, x, x, 1}. The control signals 604a-g for butterfly operators 602a-g may be given by the all-zero control vector {{0}, {0}, {0, 0}, {0, 0, 0}, {0}, {0, 0}, {0, 0, 0}}.
In this configuration, the autocorrelation signal v2[n] 612 may be the output of complex multiplier 606a, which multiplies the input r[n] 601 from multiplexer 605a by the delayed conjugate(r[n−64]) input 607 from multiplexers 605b and 605c. The autocorrelation signal v2[n] 612 may provide as an input to accumulator 804. The accumulator output acc2 [n] may be used to estimate the carrier frequency offset. In the absence of noise, the accumulator signal acc2 [n] may be given by:
The fine frequency offset estimate may then be given by:
{circumflex over (ƒ)}Δ=−1/(2πD2T)∠acc2[n] (10),
where D2=64 is delay between identical samples of T1 and T2, and ∠x may the operator that takes the angle of the argument x, which is performed by the phase estimation block 810 (e.g., CORDIC). Once the phase estimation block 810 calculates the phase of the input signal acc2[n], the valid control vector 703 is generated by the controller 702 to indicate that the computation has been performed and that the frequency error estimate 714b produced by the phase estimation block 810 can be used for correction.
Many modifications and other embodiments of the invention will come to mind to one skilled in the art to which this invention pertains having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the invention is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.