Orthogonal frequency division multiplexing (OFDM) is a modulation technique used in wireless systems to simultaneously transmit substantially large amounts of digital data over a wireless channel and to reduce data interference induced by the channel. In OFDM systems, a data signal is partitioned into multiple, smaller sub-signals, each of which is transmitted from a transmitter to a receiver over a different frequency. As in other wireless systems, data signals are broadcast in all directions. The signals may reflect off of objects in the environment, such as buildings and automobiles, and reach the receiver via multiple propagation paths.
Wireless communication systems that use OFDM may be categorized into any of a variety of classifications. One such classification is the linear, time-invariant (LTI) system. In LTI systems, channel conditions (e.g., the strength of each propagation path) do not substantially vary with time, such as when a transmitter and receiver are fixed in place. Because channel conditions do not vary to a considerable degree, the receiver may use information pertaining to the channel conditions to easily extract desirable data from a received signal (i.e., data that was originally transmitted by the transmitter) and to discard extraneous, undesirable data and/or effects imposed upon the signal by the channel.
However, in linear, time-variant (LTV) systems, such as wireless communication systems with substantially high Doppler conditions (e.g., where the distance between transmitter and receiver varies at speeds around 200-300 km per hour), channel conditions, such as the strength of each propagation path, may vary considerably with time. For example, at time t=0 min., a transmitter and receiver in an LTV system may be spaced 0.5 km. apart. Just minutes later, at time t=3 min., the same transmitter and receiver may be spaced 4.5 km apart. Channel conditions that were present at time t=0 min. may not be the same as those present at time t=3 min., since channel conditions may have changed due to, for example, the presence of mountainous terrain or high-rise buildings. Furthermore, signals en route to the receiver are subject to rapid variations in signal energy. These variations generally are caused by multiple signal reflections that are not in phase with each other. Because these rapid variations often occur faster than the rate at which the receiver can properly receive data, the receiver may not be able to accurately keep track of these variations, resulting in interference between data on different frequency sub-carrier signals (intercarrier interference, or “ICI”).
Because of these undesirable effects, it is difficult for a receiver in such a system to accurately extract desirable data from a received signal and to discard extraneous effects (e.g., ICI) imposed upon the signal prior to reception.
The problems noted above are solved in large part by an intercarrier interference cancellation algorithm and an apparatus for performing the same. One illustrative embodiment may be a method comprising wirelessly transmitting and receiving a data signal in an orthogonal frequency division multiplexing (OFDM) system. The method further comprises, in the frequency domain, at least partially removing overlap between a first received subcarrier frequency data and a second received subcarrier frequency data.
Another illustrative embodiment may be an orthogonal frequency division multiplexing (OFDM) communication system comprising a receiver adapted to, in the frequency domain, determine an unbiased, linear, minimum-squared error estimate of a transmitted data signal.
Yet another illustrative embodiment may be a receiver comprising a first logic adapted to decode a received data signal. The receiver further comprises a second logic coupled to the first logic and adapted to at least partially remove the overlap between received data on neighboring subcarrier frequencies in the frequency domain, wherein the receiver is in an orthogonal frequency division multiplexing (OFDM) system.
Yet another illustrative embodiment may be a logic comprising a plurality of dot product modules adapted to determine the dot product of a received data vector, a channel condition vector and a noise variance vector. The logic further comprises a divider module adapted to use the dot product to determine, in the frequency domain, a minimum-squared error estimate of a transmitted data signal.
For a detailed description of exemplary embodiments of the invention, reference will now be made to the accompanying drawings in which:
a shows a communication constellation used to encode binary data prior to transmission;
b shows a series of binary numbers to be encoded;
c shows a table comparing data points in the constellation of
a shows a wireless OFDM communication system having multiple transmission paths in the wireless channel;
b shows a graph indicating an increase in the magnitude of b0(t);
c shows a graph indicating an increase in a signal pertaining to b0(t);
d shows a graph indicating an increase in the magnitude of b1(t);
e shows a graph indicating an increase in a signal pertaining to b1(t);
Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . .” Also, the term “couple” or “couples” is intended to mean either an indirect or direct electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.
The following discussion is directed to various embodiments of the invention. Although one or more of these embodiments may be preferred, the embodiments disclosed should not be interpreted, or otherwise used, as limiting the scope of the disclosure, including the claims. In addition, one skilled in the art will understand that the following description has broad application, and the discussion of any embodiment is meant only to be exemplary of that embodiment, and not intended to intimate that the scope of the disclosure, including the claims, is limited to that embodiment.
Described herein is an algorithm for reducing or eliminating the effects of intercarrier interference (ICI) on signals transmitted in an OFDM system. As shown in
As previously mentioned, OFDM involves dividing a data signal into multiple sub-signals and transmitting these sub-signals in parallel, each sub-signal carried on a different frequency. Prior to transmission, the transmitter 20 converts digital data (e.g., a series of binary numbers, such as from a video stream) into a series of complex numbers by mapping the binary numbers to a communication constellation (e.g., quadrature phaseshift key (QPSK), quadrature amplitude modulation (16-QAM)), described in further detail below. After the series of binary numbers is converted into a series of complex numbers using the communication constellation, the complex numbers are grouped into a parallel configuration (i.e., vectors) and are subsequently converted into voltage signals, as described below. The signals then are transmitted in parallel by transmitting the signals in vector format, one vector after another. A cyclic prefix may be prepended to at least some of the vector transmissions to separate the vectors from each other.
As mentioned above, binary numbers are mapped into complex numbers using communication constellations.
The binary numbers in each of the pairs 212a-d corresponds to a coordinate associated with one of the four data points 206a-d. In particular, because data point 206a and pair 212a are both associated with binary numbers 0 and 1, data point 206a and pair 212a are associated with each other. The same concept applies for data point 206b and pair 212b, data point 206c and pair 212c, and data point 206d and pair 212d. As shown in
As previously mentioned, after the binary numbers are mapped into complex numbers using any suitable communication constellation, the complex numbers are converted into time-domain voltage signals by the transmitter. Specifically, the complex numbers are converted into voltage signals by first performing an inverse discrete Fourier transform (IDFT) operation as follows:
z=FHZ (1)
where Z is the vector containing complex numbers to be transmitted, FH denotes a known IDFT matrix generally used for determining inverse discrete Fourier transforms, and z is the resulting vector of such an operation on vector Z. By performing an IDFT operation on vector Z using the IDFT matrix FH, the vector Z is converted from a time-domain sequence into a frequency-domain sequence. Each of the values of vector Z is mapped to a particular frequency in the time-domain sequence that is to be transmitted. The vector z is then processed by a pulse-shaping filter (e.g., a digital-to-analog converter), which converts the elements of z to voltage signals.
The transmitter 20 transmits the voltage signals serially (i.e., the data are grouped into a sequence of vectors, and each vector of the sequence is consecutively transmitted). As previously mentioned, each vector z is prepended with a cyclic prefix that separates that vector from a previous vector. Thus, for a vector z such as:
z=[z1, . . . Zn−k+1, . . . Zn] (2)
the last k values are replicated and prepended to the vector z as a cyclic prefix:
z=[zn−k+1, zn−k+2, . . . zn, z1, z2, . . . Zn] (3)
and then the vector z is transmitted to the receiver 40 over wireless channel 30 using multiple frequencies. In at least some embodiments, each value of the vector Z is assigned a frequency different from those of the other values of vector Z.
Once signal z(t) is transmitted (i.e., data of vector z is transmitted in time domain), the signal may follow any number of paths before reaching the receiver 40. For example, as shown in
Specifically, for path 302, the effect b0(t) of the channel 30 on the signal z(t) may be written as:
z(t−′I0)b0(t−′I0) (4)
where ′I0 represents time delay in a time-variant channel. Similarly, for path 304, the effect b1(t) of the channel 30 on the signal z(t) may be written as:
z(t−′I0)b0(t−′I0) (5)
As shown in the example of
The receiver 40 receives and combines (4) and (5) (i.e., combines signals passing through some or all transmission paths) to produce a signal y(t). The receiver 40, shown in
MZ+w (6)
where w is noise from the channel 30, Z is the data, and M is a matrix that represents the channel conditions and is described in further detail below. The matrix M may be represented as:
M=FBFH (7)
where F is any suitable, predetermined, discrete Fourier transform (DFT) matrix, FH is any suitable, predetermined, inverse DFT (IDFT) matrix, and B is a matrix indicative of the channel conditions of the various paths that signals may travel along in the wireless channel 30. Vector y[k] then may be transferred to the ICI cancellation logic 408 whereby the effect of ICI is substantially reduced, as described further below.
The matrix B, as shown in
Each value (i.e., entry) k of the vector y of (6) is computed as follows:
As shown in (8), each value of the vector y is computed using multiple values of the matrix M and multiple values of the vector Z. Thus, each value of the vector y contains information pertaining not only to the relevant subcarrier frequency upon which the data traveled, but information pertaining to neighboring frequencies as well. Such an incorporation of data path information from neighboring sub-carrier frequencies introduces intercarrier interference (ICI) into calculations of each value of the vector y, and as previously explained, ICI is undesirable because it distorts the quality of received data. A model for ICI is shown in
More specifically,
yk=(Mkk−1)Zk−1+(Mkk)Zk+(Mkk+1)Zk+1+Wk (9)
In (9), the terms yk and (Mkk)Zk are relevant to determining the value of Zk. The remaining terms may be undesirable because they are either ICI from neighboring frequencies (i.e., (Mkk−1)Zk−1, (Mkk+1)Zk+1) or noise (i.e., Wk). Eliminating the presence of these undesirable terms may substantially improve the accuracy of transmission data estimations.
The effects of ICI may be reduced or even eliminated by determining an unbiased, linear, minimum mean-squared error estimate of the transmitted data zk. In this way, the signal corruption introduced by neighboring data carriers zk−1 and zk+1 while calculating yk in (8) and (9), and the corruption introduced by the additive noise Wk, may be reduced or even eliminated. Although the scope of disclosure encompasses any technique that may be used to eliminate ICI, the ICI preferably is reduced or even eliminated by the ICI cancellation logic 408 which calculates the equalization equation:
where, in at least some embodiments, m1, m2, and m3 denote the first, second and third A columns of matrix M, respectively, {circumflex over (z)}k is an estimate of the kth term of the vector z (i.e., the data prior to ICI corruption), and y3 is given by:
The expression “τ” in (10) is given by the matrix Σ shown in
Ek=Yk−Rk (12)
and thus the squared error is:
E2k=(Yk−Rk)2 (13)
which is averaged to generate the entries for the matrix Σ. The value of Rk is an estimate of data received from the channel absent the effect of noise Wk. Rk is the product of an estimate of Zk and the channel estimate Mkk. The receiver estimates Zk using hard slicer division. The channel estimate Mkk may be produced by the same algorithm that is used to calculate the M matrix (e.g., (7)). The receiver multiplies these two estimates to determine Rk.
A receiver 40 may use any suitable circuit logic, executable code, or combination thereof to implement (10). In at least some embodiments, the receiver 40 may implement (10) using the ICI cancellation logic 408 such as that shown in
More specifically, the adjoint module 918 receives as input vectors m1, m2 and m3 as well as the diagonal values of the noise variance matrix Σ and outputs adjoint matrices msa1, msa2 and msa3 to the dot product module 902. The determinant module 920 receives as inputs the three values of the noise variance matrix and outputs two determinant signals to the addition modules 910, 912 and the multiplication modules 914, 916 as described further below.
The terms zk−1, zk and zk+1 that are output from the division module 908 are all calculated in a similar manner. For example, the value zk−1 may be defined as:
The term (m2(m2*)T+m3(m3*)T+Σ)−1 may be rewritten using the Matrix Inversion Lemma as:
The entire numerator of (14) can then be rewritten using (15) as:
Simplifying the first term (m1*)T(m3(m3*)T+Σ)−1y, the Matrix Inversion Lemma may be used to write equation (16) as:
Because
the denominator of (17) may be written as det(Σ)+m3HΣadjm3 after multiplying through by det(Σ). Thus, (17) may be written as:
Without division, (18) becomes:
(m1*)T(m3m3*)T+Σ)−1y(det(Σ)(m3*)TΣadjm3)det(Σ)=(det(Σ)+m3HΣadjm3)m1HΣadjy−(m1HΣadjm3)m3HΣadjy (19)
Defining the term Q1(m3) as the term and further defining the term R1(m3) as the term, the function Q employs Q1(m3)det(Σ) (det(Σ)+m3HΣadjm3) only addition and the function R employs only multiplication. Accordingly, (19) may be rewritten as:
Other F functions used to compute G(m1,m2,m3,y) may be defined as follows:
F(m1,m3,m2)=Q1(m3)(m1*)TΣadjm2−((m1*)TΣadjm3)((m3*)TΣadjm2) (21)
F(m2,m3,y)=Q1(m3)(m2*)TΣadjy−((m2*)TΣadjm3)((m3*)TΣadjy) (22)
F(m2,m3,m2)=Q1(m3)(m2*)TΣadjm2−((m2*)TΣadjm3)((m3*)TΣadjm2) (23)
The F functions (21)-(23) are 2×2 dot products determined by dot product module 904 whose input terms are the results of 3×3 dot products determined by dot product module 902. (21)-(23) may be used to determine outputs of the dot product module 906 (called “G functions”), as shown at the outputs of dot product module 906 in
The G function in (16) may now be written as:
which may be rewritten as:
G(m1,m2,m3,y)R2(m1)=F(m1,m3,y)[R1(m3)+F(m2,m3,m2)]−F(m1,m2,m2)F(m2,m3,y) (25)
where the scale factor R2(m1) may be defined as:
R2(m1)=Q2(m1)R1(m3)=Q2(m1)[Q1(m3) det(Σ)] (26)
By ignoring the scale factor for G, (25) may be rewritten as:
G(m1,m2,m3,y)=F(m1,m3,y)Q2(m1)−F(m1,m3,m2)F(m2,m3,y) (27)
where Q2(m1)=[R1(m3)+F(m2,m3,m2)]. The G function represents the outputs of dot product module 906, which are 2×2 dot products of the F functions output by the dot product module 904.
To determine the outputs of the division module 908, pairs of the G functions output by the dot product module 906 are divided using dividers 934-938. Scale factors may be determined using at least some of the G function outputs of the dot product module 906 as well as outputs of the determinant module 920 that have been mathematically manipulated by addition blocks 910, 912, 922, 926, 930 and multiplication blocks 914, 916, 924, 928, 932. These G function outputs and determinant module 920 outputs are divided using dividers 940, 942, 944 to determine the scale factors, as described below. Accordingly, the output of divider block 934 may be determined as:
Similarly, the outputs of divider blocks 936, 938 may be determined as:
and the scale factors output by the divider modules 940, 942, 944 may be determined as:
The above derivations are illustrative of some of the functions produced by the dot product modules 902, 904, 906 and the division module 908. In at least some embodiments, there may be twelve 3×3 dot products that are produced by the dot product module 902:
m1HΣadjm1 (34a)
m1HΣadjm2 (34b)
m1HΣadjm3 (34c)
m2HΣadjm1 (34d)
m2HΣadjm2 (34e)
m2HΣadjm3 (34f)
m3HΣadjm1 (34g)
m3HΣadjm2 (34h)
m3HΣadjm3 (34i)
m1HΣadjy (34j)
m2HΣadjy (34k)
m3HΣadjy (34l)
The dot product module 904 receives (34a)-(34l) as inputs and performs 2×2 dot product operations on (34a)-(34l) to output the ten 2×2 dot product F functions below:
F(m1,m2,y)=q2*m1HΣadjy−m1HΣadjm2*m2HΣadjy (35a)
F(m1,m2,m1)=q2*m1HΣadjm1−m1HΣadjm2*m2HΣadjm1 (35b)
F(m2,m1,y)=q1*m2HΣadjy−m2HΣadjm1*m1HΣadjy (35c)
F(m2,m1,m2)=q1*m2HΣadjm2−m2HΣadjm1*m1HΣadjm2 (35d)
F(m3,m1,m3)=q2*m3HΣadjm3−m3HΣadjm2*m2HΣadjm3 (35e)
F(m1,m2,m3)=q2*m1HΣadjm3−m1HΣadjm2*m2HΣadjm3 (35f)
F(m3,m2,y)=q2*m3HΣadjy−m3HΣadjm2*m2HΣadjy (35g)
F(m2,m1,m3)=q1*m2HΣadjm3−m2HΣadjm1*m1HΣadjm3 (35h)
F(m2,m1,y)=q1*m3HΣadjy−m3HΣadjm1*m1HΣadjy (35i)
F(m3,m1,m3)=q1*m3HΣadjm3−m3HΣadjm1*m1HΣadjm3 (35j)
Using the F functions (35a)-(35j) above, the dot product module 906 may produce six G functions as shown below:
G(m1,m2,m3,m1)=F(m1,m2,m1)[r2+F(m3,m2,m3)]−F(m1,m2,m3)*F(m3,m2,m1) (36a)
G(m2,m1,m2,y)=F(m2,m1,y)[r1+F(m3,m1,m3)]−F(m2,m1,m3)*F(m3,m1,y) (36b)
G(m2,m1,m3,m2)=F(m2,m1,m2)[r1+F(m3,m1,m3)]−F(m2,m1,m3)*F(m3,m1,m2) (36c)
G(m1,m2,m3,y)=F(m1,m3,y)[r2+F(m3,m2,m3)]−F(m1,m2,y)*F(m3,m2,y) (36d)
G(m3,m1,m2,y)=F(m3,m2,m3)[r2+F(m1,m2,m1)]−F(m3,m2,m1)*F(m1,m1,y) (36e)
G(m3,m1,m2,m3)=F(m3,m2,m3)[r2+F(m1,m2,m1)]−F(m3,m2,m1)*F(m1,m3,m3) (36j)
The division module 934 may determine an output {circumflex over (z)}k−1 by dividing (36a) by (36b). Similarly, the division module 936 may determine an output {circumflex over (z)}k by dividing (36c) by (36d), and the division module 938 may determine an output {circumflex over (z)}k+1 by dividing (34e) by (36f). The output {circumflex over (z)}k is the desired output as calculated in (10). Thus, the ICI cancellation logic 408 has at least partially cancelled ICI by determining an unbiased, linear, minimum-squared error estimate of the received data signal.
The above discussion is meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.
This application claims priority to U.S. Provisional Application No. 60/574,396, entitled, “ICI Cancellation Algorithm,” filed May 25, 2004, and hereby incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60574396 | May 2004 | US |