Pilot pattern for observation-scalar MIMO-OFDM
09596106 ยท 2017-03-14
Assignee
Inventors
Cpc classification
H04L5/0048
ELECTRICITY
International classification
H04K1/10
ELECTRICITY
Abstract
In an embodiment, a transmitter includes a transmission path configurable to generate first pilot clusters in response to a matrix, each first pilot cluster including a respective first pilot subsymbol in a first cluster position and a respective second pilot subsymbol in a second cluster position such that a vector formed by the first pilot subsymbols is orthogonal to a vector formed by the second pilot subsymbols, the matrix having a dimension related to a number of cluster positions in each of the first pilot clusters. For example, where such a transmitter transmits simultaneous orthogonal-frequency-division-multiplexed (OFDM) signals (e.g., MIMO-OFDM signals) over respective channels that may impart inter-carrier interference (ICI) to the signals due to Doppler spread, the pattern of the pilot symbols that compose the pilot clusters may allow a receiver of these signals to estimate the responses of these channels more accurately than conventional receivers.
Claims
1. An electronic device comprising: a plurality of transmit paths each comprising: a pilot generator configured to receive pilot information and generate pilot sub-symbols based upon the pilot information, the pilot sub-symbols being in a form of a pilot pattern matrix having a dual orthogonality such that each column of the pilot pattern matrix is orthogonal to each column of a pilot pattern matrix generated by pilot generators in each other transmit path, and each column of the pilot pattern matrix is orthogonal to each other column of the pilot pattern matrix in a given one of the plurality of transmit paths, each m.sup.th column of the pilot pattern matrix P.sub.pat.sup.(i) for the i.sup.th transmit path T.sub.i being constructed according to an equation:
f.sup.(S.sup.
2. The electronic device of claim 1, wherein each of said plurality of transmit paths further comprises an inverse Fourier transform (IFT) circuit coupled to said pilot-subcarrier-coefficient generator and said data-subcarrier-coefficient generator and configured to transform the pilot subcarrier coefficients and data subcarrier coefficients into a digital time-domain waveform.
3. The electronic device of claim 2, wherein each of said plurality of transmit paths further comprises a digital-to-analog converter (DAC) coupled to said (IFT) circuit and configured to convert the digital time-domain waveform into an analog time-domain waveform.
4. The electronic device of claim 3, wherein each of said plurality of transmit paths further comprises a modulator coupled to said DAC and configured to modulate a carrier signal with the analog time-domain waveform.
5. The electronic device of claim 4, wherein each of said plurality of transmit paths further comprises an antenna coupled to said modulator.
6. The electronic device of claim 1, wherein said plurality of transmit paths are for a given communication channel; and wherein said electronic device further comprises a further plurality of transmit paths corresponding to a further communications channel.
7. The electronic device of claim 6, wherein a number of said plurality of transmit paths for the given communications channel is equal to a number of said further plurality of transmit paths for the further communications channel.
8. A system comprising: a transmitter configured to transmit a modulated carrier signal; a plurality of transmit paths each comprising: a pilot generator configured to receive pilot information and generate pilot sub-symbols based upon the pilot information, the pilot sub-symbols being in a form of a pilot pattern matrix having a dual orthogonality such that each column of the pilot pattern matrix is orthogonal to each column of a pilot pattern matrix generated by pilot generators in each other transmit path, and each column of the pilot pattern matrix is orthogonal to each other column of the pilot pattern matrix in a given one of the plurality of transmit paths, each m.sup.th column of the pilot pattern matrix P.sub.pat.sup.(i) for the i.sup.th transmit path T.sub.i being constructed according to an equation:
f.sup.(S.sup.
9. The system of claim 8, wherein each of said plurality of transmit paths further comprises an inverse Fourier transform (IFT) circuit coupled to said pilot-subcarrier-coefficient generator and said data-subcarrier-coefficient generator and configured to transform the pilot subcarrier coefficients and data subcarrier coefficients into a digital time-domain waveform.
10. The system of claim 9, wherein each of said plurality of transmit paths further comprises a digital-to-analog converter (DAC) coupled to said IFT circuit and configured to convert the digital time-domain waveform into an analog time-domain waveform.
11. The system of claim 10, wherein each of said plurality of transmit paths further comprises a modulator coupled to said DAC and configured to modulate a carrier signal with the analog time-domain waveform.
12. The system of claim 11, wherein each of said plurality of transmit paths further comprises an antenna coupled to said modulator and configured to transmit the modulated carrier signal for reception by said receiver.
13. The system of claim 9, wherein said plurality of transmit paths are for a given communication channel; and wherein said system further comprises a further plurality of transmit paths corresponding to a further communications channel.
14. The system of claim 13, wherein a number of said plurality of transmit paths for the given communications channel is equal to a number of said further plurality of transmit paths for the further communications channel.
15. A method of communicating over a plurality of transmit paths, the method comprising for each of the plurality of transmit paths: using a pilot generator to receive pilot information and generate pilot sub-symbols based upon the pilot information, the pilot sub-symbols being in a form of a pilot pattern matrix having a dual orthogonality such that each column of the pilot pattern matrix is orthogonal to each column of a pilot pattern matrix generated by pilot generators in each other transmit path, and each column of the pilot pattern matrix is orthogonal to each other column of the pilot pattern matrix in a given one of the plurality of transmit paths, wherein each m.sup.th column of the pilot pattern matrix P.sub.pat.sup.(i) for the i.sup.th transmit path T.sub.i being constructed according to an equation:
f.sup.(S.sup.
16. A non-transitory computer readable medium for an electronic device comprising a plurality of transmit paths, the non-transitory computer readable medium comprising computer-executable instructions to cause the electronic device to perform operations comprising, for each of the plurality of transmit paths: generating pilot sub-symbols based upon received pilot information, the pilot sub-symbols being in a form of a pilot pattern matrix having a dual orthogonality such that each column of the pilot pattern matrix is orthogonal to each column of a pilot pattern matrix generated by pilot generators in each other transmit path, and each column of the pilot pattern matrix is orthogonal to each other column of the pilot pattern matrix in a given one of the plurality of transmit paths, each m.sup.th column of the pilot pattern matrix P.sub.pat.sup.(i) for the i.sup.th transmit path T.sub.i being constructed according to an equation:
f.sup.(S.sup.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
DETAILED DESCRIPTION
(18)
(19)
(20) Referring to
(21) The frequency spacing f.sub.s between adjacent ones of the N subcarriers is typically constant, and is conventionally selected to minimize inter-carrier interference (ICI), which is a phenomenon that occurs if energy from one subcarrier spills over to the frequency slot of another subcarrier at the receiver of the client 12. At the transmitter of the base 10, each of the active ones of the N subcarriers has a frequency f.sub.k (for k=0 to N1) represented by a respective one of the solid lines (only the frequencies f.sub.k for k=N-a to N-(a8) are shown in
(22) To allow the receiver of the client 12 to recover the data subsymbols in the presence of ICI and other interference or noise, the transmitter of the base 10 transmits an OFDM training symbola training symbol is the combination of all the training subsymbols transmitted during a training-symbol periodshortly before transmitting an OFDM data symbola data symbol is the combination of all of the data subsymbols transmitted during an OFDM data-symbol period. That is, the transmitter of the base 10 transmits the training symbol during a first OFDM symbol period, and transmits the data symbol during a second, subsequent OFDM symbol period. Because the receiver of the client 12 knows the identity of the transmitted training symbol ahead of time, the receiver characterizes the channel 14 by comparing the received training symbol with the known transmitted training symbol. For example, the receiver may characterize the channel 14 by generating an NN matrix of estimated complex frequency-domain coefficients that respectively represent the estimated frequency response (e.g., the imparted ICI, amplitude attenuation, and phase shift) of the channel at each of the subcarrier frequencies f.sub.kthe ^ indicates that is an estimate of the actual channel matrix H. As discussed in more detail below, the receiver may then use this channel-estimation matrix H to recover transmitted data symbols from respective received data symbols.
(23)
(24)
(25) At the base 10, the OFDM symbol may be similar to the OFDM symbol of
(26) But at the receiving client 12, the frequency f.sub.k of a subcarrier k may be shifted/spread by one or more times G as indicated by the frequency slot 26.sub.N-(a4) of the subcarrier k=N-(a4) (only this one frequency slot is shown in
(27) The frequency shifts/spreads of the received OFDM subcarriers of
(28) According to the Doppler Effect, the frequency of a signal at a receiver is different from the frequency of the signal at a transmitter if the receiver and transmitter are moving relative to one another at a non-zero velocity. If the receiver and transmitter are moving away from one another, then the frequency of the signal at the receiver is typically lower than the frequency of the signal at the transmitter; conversely, if the receiver and transmitter are moving toward one another, then the frequency of the signal at the receiver is typically higher than the frequency of the signal at the transmitter. For example, a person (receiver) who is listening to the whistle of an approaching train (transmitter) may experience this phenomenon. While the train is moving toward the person, the person perceives the whistle as having a pitch (frequency) that is higher than the pitch that one on the train would perceive the whistle as having. But after the train passes the person, and is thus moving away from him, the person perceives the whistle as having a pitch lower than the pitch that one on the train would perceive the whistle as having.
(29) Consequently, the subcarrier frequencies of the OFDM symbol 25 of
(30) A measure of the influence that the Doppler Effect has on a single transmitted tone (e.g., an unmodulated subcarrier signal with constant, non-zero amplitude) is the Doppler Spread, which is the bandwidth that the tone may occupy at the receiver due to the Doppler Effect. For example, suppose that the frequency of the tone is 1,000 Hz at the transmitter, but that at the receiver, due to the non-zero velocity of the receiver relative to the transmitter, the received tone may have a frequency anywhere from 980 Hz to 1,020 Hz depending on the instantaneous velocity. Therefore, in this example, the Doppler Spread=1020 Hz980 Hz=40 Hz. That is, the Doppler Spread is (40 Hz)/(1000 Hz)=4% of the frequency of the transmitted tonealthough expressed here in Hz and as a percentage of the transmitted frequency, the Doppler Spread may be expressed in other quantities as described below.
(31) For mobile OFDM devices, one may characterize the ICI caused by the Doppler Spread of a subcarrier in terms of the highest number of adjacent subcarriers with which the subcarrier may interfere. For example, the total Doppler induced ICI caused by the 50.sup.th (k=50) subcarrier is greater if energy from this subcarrier spills over to the 48.sup.th, 49.sup.th, 51.sup.st, and 52.sup.nd subcarriers, and is less if energy from this subcarrier spills over to only the 49.sup.th and 51.sup.st subcarriers. In actuality, because the Doppler Spread of a subcarrier may cause the subcarrier to spill over energy into many or all of the other N subcarrier slots to some degree, one may set a Doppler Spread interference threshold below which one subcarrier is deemed to be unaffected by the Doppler Spread of another subcarrier; such threshold may have units of, e.g., power or amplitude. Therefore, for a mobile OFDM device, the extent of Doppler induced ICI caused by a subcarrier k may be defined in terms of the number of adjacent subcarriers (above and below the subcarrier k in question) that may experience a level of ICI above the Doppler Spread interference threshold for the device. Furthermore, although in some applications one may assume that all of the subcarriers k experience the same Doppler Spread, in other applications, one may decide not to make this assumption.
(32) Consequently, referring to
(33) Still referring to
(34) Consequently, mobile OFDM devices, such as the base 10, may combine training subsymbols and data subsymbols into a single OFDM symbol such that a receiving device, such as the client 12, may characterize the channel 14 for the same time period during which the data subsymbols are transmitted.
(35)
(36) The OFDM symbol 28 includes one or more clusters L.sub.D of data subcarriers, and one or more clusters L.sub.P of training subcarriers, which are hereinafter called pilot subcarriers. The transmitter of the base 10 may modulate the pilot subcarriers with respective pilot subsymbols. In an embodiment, the data clusters L.sub.D and the pilot clusters L.sub.P are arranged in alternating fashion (i.e., one after the other) such that each data cluster L.sub.D is separated from adjacent data clusters by at least one pilot cluster L.sub.P, and such that each pilot cluster is separated from adjacent pilot clusters by at least one data cluster) within the OFDM symbol 28. As discussed below in conjunction with
(37) In an embodiment, each data cluster L.sub.D within the OFDM symbol 28 includes a same first number (e.g., sixteen) of data subcarriers, and each pilot cluster L.sub.P within the OFDM symbol includes a same second number (e.g., five or nine) of pilot subcarriers. For example, in the embodiment of
(38) A designer of an OFDM receiver, such as the receiver in the client 12 (
(39)
(40) In an embodiment, the pilot clusters L.sub.P are separated by a uniform separation value P.sub.sep, which is the distance, measured in the number of subcarriers k, between a pilot subcarrier in a pilot cluster and a corresponding pilot subcarrier in an adjacent pilot cluster. That is, a pilot subcarrier that occupies a relative position within a pilot cluster L.sub.P is P.sub.sep subcarriers away from a pilot subcarrier that occupies the same relative position within an adjacent pilot cluster. For example, as shown in
(41)
(42) Before substantive characteristics of the pilot cluster L.sub.PFDKD.sub._.sub.S are discussed, a convention for identifying a pilot cluster, such as the pilot cluster L.sub.PFDKD.sub._.sub.S, and its pilot subcarriers is discussed. In this convention, P.sub.b identifies the relative location of the center subcarrier within the pilot cluster, S identifies the relative location of the pilot cluster within an OFDM symbol, W.sub.p is the total number of pilot subcarriers to the left and to the right of the center pilot subcarrier, B.sub.p is the number of interior pilot subcarriers to the left and to the right of the center pilot subcarrier, and W.sub.pB.sub.p is the number of guard pilot subcarriers G.sub.p at each end of the pilot cluster. For example, if a pilot cluster L.sub.PFDKD.sub._.sub.S includes L.sub.PN=5 total pilot subcarriers and two guard pilot subcarriers, then W.sub.P=(51)/2=2, B.sub.p=W.sub.pG.sub.p=21=1, and the pilot cluster L.sub.PFDKD.sub._.sub.S includes pilot subcarriers at the following relative locations: P.sub.b2, P.sub.b1, P.sub.b, P.sub.b+1, and P.sub.b+2. And one may convert the relative-location identifiers into absolute-location identifiers by adding S.Math.P.sub.sep to each of the relative-location identifiers. So, continuing with the above example, the pilot cluster L.sub.PFDKD.sub._.sub.S includes pilot subcarriers at the following absolute locations: P.sub.b+S.Math.P.sub.sep2, P.sub.b+S.Math.P.sub.sep1, P.sub.b+S.Math.P.sub.sep, P.sub.b+S.Math.P.sub.sep+.sup.1, and P.sub.b+S.Math.P.sub.sep+2. And, therefore, again in this example, the pilot cluster L.sub.PFDKD.sub._.sub.S includes the following pilot subcarriers: k.sub.Pb+S.Math.Psep2, k.sub.Pb+S.Math.Psep1, k.sub.Pb+S.Math.Psep, k.sub.Pb+S.Math.Psep+1, and k.sub.Pb+S.Math.Psep+2. For example, if each pilot cluster L.sub.PFDKD.sub._.sub.S in an OFDM symbol includes L.sub.PN=5 pilot subcarriers, P.sub.sep=8, and the first pilot subcarrier of the zero.sup.th pilot cluster L.sub.PFDKD.sub._.sub.0 (S=0) is k.sub.0, then P.sub.b=2, W.sub.p=2, and the sixth pilot cluster L.sub.PFDKD.sub._.sub.6 (S=6 and counting in a direction from the lowest to the highest subcarrier frequency) includes the following pilot subcarriers: k.sub.48, k.sub.49, k.sub.50, k.sub.51, and k.sub.52.
(43) Still referring to
(44)
(45)
(46) The receiver 30 includes a receive antenna 32, a Fast Fourier Transform (FFT) unit 34, a channel estimator 36, a data-recovery unit 38, and a decoder 40. The FFT unit 34, channel estimator 36, data-recovery unit 38, and decoder 40 may each be implemented in software, hardware, or a combination of software and hardware. For example, one or more of the FFT unit 34, the channel estimator 36, the data-recovery unit 38, and the decoder 40 may be implemented on an integrated circuit (IC), and other components, such as a transmitter, may also be implemented on the same IC, either on a same or different IC die. And this IC may be combined with one or more other ICs (not shown in
(47) The receive antenna 32 may receive one or more OFDM symbols from a transmitter, such as the transmitter of the base 10 or client 12 of
(48) The FFT unit 34 conventionally converts a received OFDM symbol from a time-domain waveform into an N1 column vector y of complex frequency-domain coefficients (e.g., one complex coefficient for each subcarrier).
(49) The channel estimator 36 estimates the response of the communication channel (e.g., the channel 14 of
(50) The data-recovery unit 38 recovers the data carried by the OFDM symbol as transmitted by generating an N1 column vector {circumflex over (x)}, which is an estimation of the transmitted OFDM data symbol. That is, {circumflex over (x)} includes complex coefficients (one for at least each data subcarrier) that are estimates of the complex coefficients with which the transmitter modulated the transmitted data subcarriers. The unit 38 may generally recover {circumflex over (x)} according to the following equations:
y={circumflex over (x)}+n(1)
.sup.1(y)=.sup.1{circumflex over (x)}+.sup.1n={circumflex over (x)}+.sup.1n(2)
where n is an N1 column vector of Additive-White-Gaussian-Noise (AWGN) complex coefficients at each of the subcarrier frequencies. Because, as discussed above, some of the y coefficients are for pilot subcarriers that are used only for channel-estimation purposes, the elements of , {circumflex over (x)}, y, and n that correspond to the N.sub.pL.sub.PN pilot subcarriers (where N.sub.p is the number of pilot clusters L.sub.p in the OFDM symbol and L.sub.PN is the number of pilot subcarriers per pilot cluster L.sub.P) may be discarded prior to calculating .sup.1 and solving equation (2) so as to reduce the complexity, and increase the speed, of the calculation of {circumflex over (x)}. Examples of a data-recovery unit and data-recovery techniques that may be used as and by the data-recovery unit 38 are disclosed in U.S. patent application Ser. Nos. 12/579,935 and 12/579,969, which were filed on Oct. 15, 2009 and which are incorporated by reference. And conventional data-recovery units and techniques that may be respectively used as and by the data-recovery unit 38 also exist.
(51) The data decoder 40 effectively uses the {circumflex over (x)} coefficients that correspond to the data subcarriers of the OFDM symbol to demodulate the corresponding data subsymbols, and to thus recover the data represented by the subsymbols. For example, if the transmitter modulated a data subcarrier by mapping it to a respective QPSK constellation element, then the data decoder 40 QPSK demodulates the data subcarrier to recover the same constellation element, which represents the bits of data carried by the modulated data subcarrier.
(52) Still referring to
(53) And referring to
(54) Over a period of time that may be much longer than a single OFDM symbol period (e.g., approximately 100-300 OFDM symbol periods), the number Z of paths L may change. The change in the number of paths L may be due to changes in the channel conditions, such as changes in the number of OFDM-signal-reflecting objects within or near the channel 14.
(55) Furthermore, over the same period, the delays of the paths L, and the portions of the OFDM signal energy carried by the paths L, may also change. Each path L is defined by the delay it has relative to the zero.sup.th path L.sub.0 having zero delay. That is, the zero-delay path L.sub.0 is the path over which a version of an OFDM signal, having a respective portion of the energy of the transmitted OFDM signal, first reaches the receiver; other versions of the OFDM signal reach the receiver over the remaining paths L at the respective delay times (relative to the delay of the path L.sub.0) that define those paths, and with respective portions of the transmitted energy. The delay time of a path L may be defined in units of the OFDM-signal sampling time employed by the receiver. For example, when a version of an OFDM signal propagates over a path L.sub.l having a delay value of 1.0, this signal version first reaches the receiver one sample time, or one sample, after the version of the OFDM signal that is propagating over the path L.sub.0 first reaches the receiver. Likewise, when a version of an OFDM signal propagates over a path L.sub.l having a delay value of 3.5 samples, this signal version first reaches the receiver three-and-one-half samples after the version of the OFDM signal that is propagating over the path L.sub.0 first reaches the receiver. To account for these delayed one or more paths L, the transmitter (not shown in
(56) Unfortunately, a channel estimator that does not account for changes in at least one of the number, delays, and energies of the paths L may be unable to determine the channel-estimation matrix with an accuracy sufficient for some applications such as mobile OFDM.
(57)
(58) The estimator 36 includes a first stage 50 for determining path-independent quantities, b parallel second stages 52.sub.0-52.sub.b1 for respectively determining column vectors h.sub.l.sup.(s) that describe the time-domain response of the Z paths L of the channel 14 (
(59) The first stage 50 determines quantities that are independent of any particular channel path L, and that may be used by the second and third stages 52 and 56. Examples of, and techniques for determining, such quantities are discussed below.
(60) Each of the second stages 52 determines a respective time-domain path vector h.sub.l.sup.(s) for a respective one of the Z paths l=L.sub.0l=L.sub.z1. The number b of second stages 52 depends on the path delays that the channel 14 (
(61) Each second stage 52 includes a first substage 58, a second substage 60, a third substage 62, and an engage/disengage switch 64.
(62) Each first substage 58 is for determining quantities that are dependent on the particular channel path L associated with the second stage, and that may be used by the corresponding second substage 60. Examples of, and techniques for calculating, such quantities are discussed below.
(63) Each second substage 60 may include a respective recursive filter, such as a Vector State Scalar Observation (VSSO) Kalman filter, which may increase the accuracy of the respective determined vector h.sub.l.sup.(s) without increasing the complexity (or even reducing the complexity) of the channel estimator 36 as compared to prior channel estimators. The recursive-filter substage 60 may increase the accuracy of h.sub.l.sup.(s) by effectively using information from preceding symbol periods to determine h.sub.l.sup.(s) for a current symbol period s. For example, referring to
(64) Each third substage 62 determines the respective path vector h.sub.l.sup.(s) in response to the second substage 60 as described below.
(65) The communication-path monitor 54 tracks changes to the number, delays, and energies of the communication paths L, and periodically adjusts which of the second stages 52 are engaged and disengaged based on the delays and numbers of paths L that are currently present in the channel 14 (
(66) The third stage 56 generates the channel-estimation matrix in response to the path vectors h.sub.l.sup.(s) from the second stages 52 that the communication-path monitor 54 engages.
(67) An embodiment of the second recursive-filter substage 60.sub.0 of the second stage 52.sub.0 is now described where the substage 60.sub.0 includes a VSSO Kalman filter, it being understood that the second substages 60.sub.1-60.sub.b1 may be similar.
(68) The VSSO-Kalman-filter substage 60.sub.0 includes an observation scalar calculator 66.sub.0, a state-vector predictor 68.sub.0, a mean-square-error-matrix predictor 70.sub.0, a gain-vector calculator 72.sub.0, a state-vector estimator 74.sub.0, a mean-square-error-matrix updater 76.sub.0, and a scaling-vector calculator 78.sub.0; these components are described below.
(69) Before describing the operation of an embodiment of the channel estimator 36 of
h.sub.l.sup.(s)=[h.sub.l(s), . . . , h.sub.l(s+N1)].sup.T(3)
(70) where h.sub.l.sup.(s) is the column vector that represents the time-domain response of the path l=L during the s.sup.th OFDM symbol period, s is the first sample time after the cyclic prefix (if there is a cyclic prefix) in the s.sup.th OFDM symbol period, and N is the number of subcarriers k (both pilot and data subcarriers) in the transmitted OFDM signal. For example, if N=128, s=1 (2.sup.nd OFDM symbol), and the cyclic prefix has four samples, then the transmitted OFDM signal carrying the 2.sup.nd OFDM symbol has a total of 128+4=132 samples, s represents the 268th sample time (where the sample times are numbered continuously starting with the 1.sup.st OFDM symbol s=0), and h.sub.l.sup.(s) includes one hundred twenty eight complex elements corresponding to the samples 268-395.
(71) In at least some applications, the elements of h.sub.l.sup.(s) may be approximated as fitting a curve such as a straight line. Therefore, the elements of h.sub.l.sup.(s) may be represented in terms of a polynomial that describes the curve. For example, where the curve is a straight line, which one may represent with the equation y=mx+b where m is the slope of the line and b is the y-axis intercept, h.sub.l.sup.(s) may be similarly represented in terms of an offset and slope according to the following equation:
h.sub.l.sup.(s)=B
where B is a binomial expansion matrix having elements m, n arranged in Q columns such that B(m,n)=m.sup.n (m is the row number and n is the column number), and
(72)
and
(73) The state vector g.sub.l.sup.(s) for the engaged filter substage 60 corresponding to the l.sup.th path during the symbol period s is given by the following equation:
g.sub.l.sup.(s)=[
where M, an integer, is the filter prediction order that provides a filter substage 60 with its recursive feature. For example, to design a filter substage 60 for calculating the state vector g.sub.l.sup.(s) using information from the current symbol period and the previous three symbol periods, a designer would set M=4. Generally, the higher the prediction order M, the more accurate the filter substage 60 but the longer its latency; conversely, the lower the value of M, generally the less accurate the filter substage, but the shorter the latency.
(74) The state equation for the engaged filter substage 60 corresponding to the l.sup.th path relates the l.sup.th path during the current symbol period s to the same l.sup.th path during one or more prior symbol periods, and is as follows:
g.sub.l.sup.(S)=Ag.sub.l.sup.(s1)+e.sub.l.sup.(s)(6)
where A is an autoregressive matrix and e is the prediction-error vector. A is dependent on the Doppler Spread, and, therefore, the first stage 50 may determine values of A ahead of time in a conventional manner and store these values in a lookup table (e.g., part of the first stage 50 or external thereto), which the first stage may access based on the velocity of the receiver relative to the transmitter; for example, the receiver may determine this velocity using a GPS device. Alternatively, the channel estimator 36 may include a conventional linear-adaptive filter (not shown in
(75) The prediction-error-correlation matrix G.sub.l is given by the following equation:
G.sub.l=E{e.sub.l.sup.(s)e.sub.l.sup.(s)H}(7)
Although the vector e.sub.l.sup.(s) may be unknown, its expectation (the right side of equation (7)), which may be generally described as an average of the change in the variance of e.sub.l.sup.(s) from symbol period to symbol period, depends on the Doppler Spread, and, therefore, may be conventionally determined ahead of time through simulations or with a closed-form expression; because this expectation is the same from symbol period s to symbol period s, G.sub.l does not depend on s. Consequently, the first substage 58 may determine values for G.sub.l dynamically or ahead of time, and/or store these values of G.sub.l in a lookup table with respect to Doppler Spread, and may retrieve from the lookup table a value of G.sub.l for the current symbol period based on the velocity of the receiver relative to the transmitter during the current symbol period.
(76) A path-dependent 1(2w.sub.p+1) row vector u.sub.l, which the first substage 58 may calculate and/or store dynamically or ahead of time, is given by the following equation:
(77)
(78) A path-independent matrix W, which the first stage 50 may calculate and/or store dynamically or ahead of time, is given by the following equation:
(79)
where F is the known Fourier matrix, the operator indicates a modulo N operation, and : indicates all columns of the matrix F.sup.H in the indicated rows. Note that the number of rows in the W matrix is equal to the number of pilot subcarriers L.sub.PN in each transmitted/received pilot cluster L.sub.p.
(80) A path-dependent 1(MQ) row vector q.sub.l.sup.H, which the first substage 58 may calculate and/or store dynamically or ahead of time, is given by the following equation:
(81)
where P is the pilot symbol (which is mapped to all pilot subcarriers in an embodiment) in the frequency domain, and 0.sub.1(M1)Q is a row vector having (M1)Q columns/elements that are each equal to zero.
(82) A path-independent N.sub.PZ Fourier matrix F.sub.L, which the first stage 50 may calculate and/or store dynamically or ahead of time for the expected values of Z, is given by the following equation:
F.sub.L=F(p.sup.(0),0:Z1)(11)
where p.sup.(0) indicates that F.sub.L includes the N.sub.P rows of the Fourier matrix F corresponding to the positions of the center pilot subcarriers of the pilot clusters L.sub.p in the transmitted/received OFDM symbol, and 0:Z1 indicates that F.sub.L includes columns 0Z1 of F, where Z is the number of paths L present in the channel during the symbol period s.
(83) The observation scalar
where y.sup.(s) is the received-signal column vector in the frequency domain during the symbol period s, and p.sup.(0) indicates that y.sup.(s)(p.sup.(0)) includes only the elements of y.sup.(s) that correspond to the center pilot subcarriers of the transmitted/received pilot clusters L.sub.p. Although here only the center subcarrier of each pilot cluster is used to generate
(84) The measurement equation for the engaged filter substage 60 corresponding to the l.sup.th path is given by the following equation:
where
(85) Referring to equation (12) and as further discussed below, the measurement equation effectively relates the symbol recovered during the symbol period s to the channel response during s, and, referring to equation (13) and also as further discussed below, the state equation (6), via the state vector g.sub.l.sup.(s), effectively modifies the result
(86) Still referring to
(87) First, the path monitor 54 determines the number Z and corresponding delays of the paths L that compose the channel 14 (
(88) Next, the first stage 50 may determine and/or store quantities (at least some of which are described above) that the second stage 52.sub.0 may need for its calculations, to the extent that the first stage has not already determined and/or stored these quantities.
(89) Similarly, the first substage 58.sub.0 may determine and/or store quantities (at least some of which are described above) that the filter substage 60.sub.0 may need for its calculations, to the extent that the first substage has not already determined and/or stored these quantities.
(90) Next, the observation-scalar calculator 66.sub.0 determines the observation scalar
(91) Then, the state-vector predictor 68.sub.0 determines the predicted state vector {hacek over (g)}.sub.l.sup.(s) for l=0 according to the following equation:
{hacek over (g)}.sub.l.sup.(s)=A{hacek over (g)}.sub.l.sup.(s1)(14)
Where s=0 (the initial symbol period), the predictor 68.sub.0 also provides an initial value for .sub.l.sup.(1). This initial value may be zero, or it may be the expectation of .sub.l.sup.(1). If the initial value is the latter, the predictor 68.sub.0 may compute the expectation of .sub.l.sup.(1) dynamically or ahead of time and store the computed expectation. A technique for calculating the expectation of .sub.l.sup.(1) is described in S. M. Kay, Fundamentals of Statistical Signal Processing: Estimation Theory, Prentice Hall: New Jersey (1993), which is incorporated by reference. After the initial symbol period s=0, the state-vector estimator 74.sub.0 provides .sub.l.sup.(s), which becomes .sub.l.sup.(s1) for the next symbol period s as discussed below.
(92) Next, the mean-square-error-matrix predictor 70.sub.0 determines the predicted mean-square-error matrix {hacek over ()}.sub.l.sup.(s) for l=0 according to the following equation:
{hacek over ()}.sub.l.sup.(s)=A{circumflex over ()}.sub.l.sup.(s1)A.sup.H+G.sub.l(15)
Where s=0 (the initial symbol period), the predictor 70.sub.0 also provides an initial value for {circumflex over ()}.sub.l.sup.(1). This initial value may be zero, or it may be the expectation of the error variance in the state equation (6). If the initial value is the latter, then the predictor 70.sub.0 may compute the expectation of the error variance in the state equation dynamically or ahead of time store the computed expectation. A technique for calculating the expectation of the error variance in the state equation (6) is described in S. M. Kay, Fundamentals of Statistical Signal Processing: Estimation Theory, Prentice Hall: New Jersey (1993), which is incorporated by reference. After the initial symbol period s=0, the mean-square-error-matrix updater 76.sub.0 provides {circumflex over ()}.sub.l.sup.(s), which becomes {circumflex over ()}.sub.l.sup.(s1) for the next symbol period s as discussed below.
(93) Then, the gain-vector calculator 72.sub.0 determines a gain vector .sub.l.sup.(s) for l=0 according to the following equation:
(94)
(95) Next, the state-vector estimator 74.sub.0 generates the estimated state vector .sub.l.sup.(s) for l=0 according to the following equation:
.sub.l.sup.(s)={hacek over (g)}.sub.l.sup.(s)+.sub.l.sup.(s)[
As discussed above, .sub.l.sup.(s) is fed back to the state-vector predictor 68.sub.0 to be used in equation (14) as .sub.l.sup.(s1) for the next symbol period.
(96) Then, the mean-square-error-matrix updater 76.sub.0 generates an updated mean-square-error matrix {circumflex over ()}.sub.l.sup.(s) for l=0 according to the following equation:
{circumflex over ()}.sub.l.sup.(s)=[I.sub.MQ.sub.l.sup.(s)q.sub.l.sup.H]{hacek over ()}.sub.l.sup.(s)(18)
where I.sub.MQ is an identity matrix of dimensions M(row)Q(column). Furthermore, as discussed above, {circumflex over ()}.sub.l.sup.(s) is fed back to the mean-square-error-matrix predictor 70.sub.0 to be used in equation (15) as {circumflex over ()}.sub.l.sup.(s1) for the next symbol period.
(97) Next, the scaling-vector calculator 78.sub.0 determines the scaling vector
Equation (19) may be referred to as the normal Kalman filter (NKF) output, and equation (20) may be referred to as the Kalman fixed-lag smoother (KFLS) output, which is effectively a low-pass filtered output. Generally, the KFLS output is more accurate, but has a higher latency, than the NKF output.
(98) Then, the third stage path-vector calculator 62.sub.0 determines the path vector h.sub.l.sup.(s) for l=0 according to equation (4) using either
(99) As stated above, the other engaged second stages 52 may operate in a similar manner to generate
(100) Next, the third stage channel-matrix calculator 56 generates an intermediate channel-estimation matrix .sup.(s) from the path-response vectors h.sub.l.sup.(s) for all of the paths L.sub.0lL.sub.Z1 that compose the channel 14 (
{circumflex over (H)}.sup.(s)(m,n)=.sub.(m-n).sup.(s)(s+m), for 0mN1 and 0nN1(21)
(101) Then, the third stage channel-matrix calculator 56 generates the channel-estimation matrix .sup.(s) according to the following equation:
(102)
(103) Still referring to
(104) Referring to
(105) To increase the data-transmission rate relative to an OFDM system such as described above in conjunction with
(106)
(107) The base 92 includes T antennas 96.sub.0-96.sub.T1, and, in a transmitting configuration, transmits a respective OFDM signal carrying a respective OFDM symbol via each of these T antennas during a symbol period s, where, as discussed above, each OFDM signal includes the same N subcarriers. The combination of these simultaneous T OFDM signals may be referred to as a MIMO-OFDM signal. Furthermore, the base 92 may include a respective transmitter for each antenna 96, or may include fewer than T transmitters, at least some of which drive multiple ones of the antennas 96.
(108) Therefore, in the described configuration, the system 90 forms T multipath transmit channels 100.sub.0-100.sub.T1 between the respective transmit antennas 96.sub.0-96.sub.T1 and the receive antenna 98. That is, the system 90 forms a respective channel 100 between each transmit antenna 96.sub.0-96.sub.T1 and the single receive antenna 98. Furthermore, in an embodiment, the system 90 assumes that each channel 100 has the same number Z of paths L.
(109) Consequently, for a given symbol period s and number N of subcarriers, the MIMO-OFDM system 90 may transmit data at rate that is approximately T times the rate at which an OFDM system transmits data.
(110) Because the channels 100 each include different paths L, the channels may be said to be spatially different or diverse. As discussed above and as evident from the equations discussed below in conjunction with
(111)
(112) A difference between the MIMO-OFDM system 110 and the MIMO-OFDM system 90 of
(113) Although the multiple receive antennas R may not increase the data rate, they may increase the robustness of the system 110. For example, although each receive antenna 118 receives the same T OFDM signals from the transmit antennas 116, each receive antenna receives these T signals over channels that are spatially diverse relative the channels over which the other receive antennas receive these signals. Therefore, although the OFDM signals received by one receive antenna 118 may carry OFDM symbols that are redundant relative to the OFDM symbols carried by the OFDM signals received by the other receive antennas, the spatial diversity of the channels over which the receive antennas receive this redundant information may decrease the data error rate because the client 114 has more diverse channels and paths from which to recover the T OFDM symbols. Furthermore, if one or more of the channels 120 between the transmit antennas 116 and one of the receive antennas 118 experiences catastrophic fading or other interference at a frequency of one or more of the N subcarriers, then the client 114 may still be able to recover the T transmitted OFDM symbols via one or more of the other receive antennas that receive the T OFDM signals over uncorrupted channels.
(114)
(115) The receiver 130 includes R receive antennas 132.sub.0-132.sub.R1, R FFT units 134.sub.0-134.sub.R1, a received-signal combiner 136, a channel estimator 138, a data-recovery unit 140, and a decoder 142. The FFT units 134, combiner 136, channel estimator 138, data-recovery unit 140, and decoder 142 may each be implemented in software, hardware, or a combination of software and hardware. For example, one or more of these items may be implemented on an integrated circuit (IC), and other components, such as a transmitter, may also be implemented on the same IC, either on a same or different IC die. And this IC may be combined with one or more other ICs (not shown in
(116) Each of the receive antennas 132 may receive OFDM singles from multiple transmit antennas, such as the T transmit antennas 96 of
(117) Each of the FFT units 134.sub.0-134.sub.R1 conventionally converts a respective received MIMO-OFDM signal from a respective time-domain waveform into a respective N1 column vector y.sub.0.sup.(s)-y.sub.R1.sup.(s) of complex frequency-domain coefficients (e.g., one complex coefficient for each subcarrier).
(118) The combiner 136 combines the vectors y.sub.0.sup.(s)-y.sub.R1.sup.(s) into a single vector y.sup.(s). But if the device 130 has only R=1 receive antennas 132, then the combiner 136 may be omitted, and the output of the single FFT unit 134.sub.0 may be coupled to the y.sup.(s) input of the data-recovery unit 140. An embodiment of the combiner 136 is discussed below in conjunction with
(119) The channel estimator 138 estimates the responses of all of the communication channels (e.g., the channels 100.sub.0-100.sub.T1 of
(120) The data-recovery unit 140 recovers the data carried by the MIMO-OFDM symbol as transmitted by generating a TN1 column vector {circumflex over (x)}.sup.(s), which is an estimation of the transmitted MIMO-OFDM symbol, which is equivalent to T OFDM symbols. That is, {circumflex over (x)}.sup.(s) includes complex coefficients (one for at least each data subcarrier) that are estimates of the complex coefficients with which the transmitter(s) modulated the transmitted subcarriers. The unit 140 may generally recover {circumflex over (x)}.sup.(s) according to equations (1) and (2) above. Because, as discussed above in conjunction with
(121) The data decoder 142 effectively uses the {circumflex over (x)}.sup.(s) coefficients that correspond to the data subcarriers of the MIMO-OFDM symbol to demodulate the corresponding data subsymbols, and to thus recover the data represented by the subsymbols. For example, if a transmitter modulated a data subcarrier by mapping it to a respective QPSK constellation element, then the data decoder 142 QPSK demodulates the data subcarrier to recover the same constellation element, which represents the bits of data carried by the modulated data subcarrier.
(122) Still referring to
(123) And referring to
(124) Unfortunately, a channel estimator that does not account for changes in at least one of the number, delays, and energies of the paths L may be unable to determine the channel-estimation matrix .sup.(s) with an accuracy sufficient for some applications such as mobile MIMO-OFDM.
(125)
(126) The portion 148 of the channel estimator 138 determines the partial channel-estimation matrix .sub.r.sup.(i,s) for the communication channel between the i.sup.th transmit antenna (e.g., a transmit antenna 116 in
(127) The partial channel-estimator portion 148 includes a first stage 150 for determining path-independent quantities for the communication channel between the i.sup.th transmit antenna and r.sup.th receive antenna (hereinafter the (r,i) channel), b parallel second stages 152.sub.0-152.sub.b1 for respectively determining column vectors h.sub.r,l.sup.(i,s) that describe the time-domain responses of the Z paths L of the (r,i) channel during the symbol period s, a communication-path monitor 154 for monitoring the number and delays of the Z channel paths L, and a partial channel-matrix calculator 156 for determining the partial channel-estimation matrix .sub.r.sup.(i,s) for the (r,i) channel during the symbol period s.
(128) The first stage 150 determines quantities that are related to the (r,i) channel but that are independent of any particular channel path L, and that may be used by the second and third stages 152 and 156. Examples of, and techniques for determining, such quantities are discussed below. Furthermore, if such a quantity is also independent of either the receive antenna r or the transmit antenna i, then the first stage 150 may provide such quantity to one or more first stages of the other channel-estimator portions 148, or receive such quantity from a first stage of another channel-estimator portion, to reduce or eliminate redundant processing.
(129) Each of the second stages 152 determines a respective time-domain path vector h.sub.r,l.sup.(i,s) for a respective one of the Z paths L.sub.0lL.sub.z1. The number b of second stages 152 depends on the path delays that the (r,i) channel may possibly have for a particular application. For example, suppose that even though it is anticipated that the (r,i) channel will not have more than Z=4 simultaneous paths L during a symbol period s, the delays of these paths may range from 0 to 4 samples in increments of 0.25 samples, for a total of 41/(0.25)=16 possible path delays. Therefore, in such an example, the partial-channel-estimator portion 148 would include b=16 second stages 152.sub.0-152.sub.15, one stage for each of the anticipated sixteen path delays, respectively. As discussed below, the path monitor 154 engages the second stages 152 corresponding to the delays of the paths L present in the (r,i) channel.
(130) Each second stage 152 includes a first substage 158, a second substage 160, a third substage 162, and an engage/disengage switch 164.
(131) Each first substage 158 is for determining quantities that are dependent on the particular channel path L of the (r,i) channel associated with the second stage, and that may be used by the corresponding second substage 160. Examples of, and techniques for calculating, such quantities are discussed below. Furthermore, if such a path-dependent quantity is independent of the receive antenna r or transmit antenna i, then the first substage 158 may provide such quantity to one or more first substages of the other channel-estimator portions 148, or receive such quantity from a first substage of another channel-estimator portion, to reduce or eliminate redundant processing.
(132) Each second substage 160 may include a respective recursive filter, such as a Vector State Scalar Observation (VSSO) Kalman filter, which may increase the accuracy of the respective determined vector h.sub.r,l.sup.(i,s) without increasing the complexity (or even reducing the complexity) of the channel estimator 138 as compared to prior channel estimators. The recursive-filter substage 160 may increase the accuracy of h.sub.r,l.sup.(i,s) by effectively using information from preceding symbol periods to determine h.sub.r,l.sup.(i,s) for a current symbol period s. For example, referring to
(133) Each third substage 162 determines the respective path vector h.sub.r,l.sup.(i,s) in response to the second substage 160 as described below.
(134) The communication-path monitor 154 tracks changes to the number, delays, and energies of the communication paths L in the (r,i) channel, and periodically adjusts which of the second stages 152 are engaged and disengaged based on the delays and numbers of paths L that are currently present in the channel. For example, if the path monitor 154 determines that the (r,i) channel currently has Z=4 active paths L having relative delays of 0.0 (the zero-delay path typically is always present), 0.25, 1.25, and 2.0 respectively, then the path monitor engages the second stages 152 corresponding to these delays via the respective switches 164, and disengages the remaining second stages via respective switches 164. The path monitor 154 determines which paths are active (i.e., present for purposes of the receiver 130 of
(135) The third stage 156 generates the partial channel-estimation matrix .sub.r.sup.(i,s) in response to the path vectors h.sub.r,l.sup.(i,s) from the second stages 152 that the communication-path monitor 154 engages.
(136) An embodiment of the second recursive-filter substage 160.sub.0 of the second stage 152.sub.0 is now described where the substage 160.sub.0 includes a VSSO Kalman filter, it being understood that the second substages 160.sub.1-160.sub.b1 may be similar.
(137) The VSSO-Kalman-filter substage 160.sub.0 includes an observation scalar calculator 166.sub.0, a state-vector predictor 168.sub.0, a mean-square-error-matrix predictor 170.sub.0, a gain-vector calculator 172.sub.0, a state-vector estimator 174.sub.0, a mean-square-error-matrix updater 176.sub.0, and a scaling-vector calculator 178.sub.0; these components are described below.
(138) Before describing the operation of an embodiment of the partial channel-estimator portion 148 of
h.sub.r,l.sup.(i,s)=[h.sub.r,l.sup.(i,s)(s), . . . , h.sub.r,l.sup.(i,s)(s+N1)].sup.T(23)
(139) where h.sub.r,l.sup.(i,s) is the column vector that represents the time-domain response of the path l of the (r,i) channel during the S.sup.th MIMO-OFDM symbol period, s is the first sample time after the cyclic prefix in the s.sup.th OFDM symbol (if there is a cyclic prefix), and N is the number of subcarriers k (both pilot and data subcarriers) in the OFDM signal transmitted by the i.sup.th transmit antenna. For example, if N=128, s=1 (the symbol period after the 0.sup.th symbol period) and the cyclic prefix has four samples, then the OFDM signal transmitted by the i.sup.th transmit antenna has a total of 128+4=132 samples, s represents the 268 sample time, and h.sub.r,l.sup.(i,s) includes one hundred twenty eight complex elements corresponding to the samples 268-395.
(140) In at least some applications, the elements of h.sub.r,l.sup.(i,s) may be approximated as fitting a curve such as a straight line. Therefore, the elements of h.sub.r,l.sup.(i,s) may be represented in terms of a polynomial that describes the curve. For example, where the curve is a straight line, which one may represent with the equation y=mx+b where m is the slope of the line and b is the y-axis intercept, h.sub.r,l.sup.(i,s) may be similarly represented in terms of an offset and slope according to the following equation:
h.sub.r,l.sup.(i,s)=B
where B is a binomial expansion matrix having elements (m, n) arranged in Q columns such that B(m,n)=m.sup.n (m is the row number and n is the column number), and
(141)
and
(142) The state vector g.sub.r,l.sup.(i,s) for the engaged filter substage 160 corresponding to the l.sup.th path of the (r,i) channel during the symbol period s is given by the following equation:
g.sub.r,l.sup.(i,s)=[
M, an integer, is the filter prediction order that provides a filter substage 160 with its recursive feature. For example, to design a filter substage 160 for calculating the state vector g.sub.r,l.sup.(i,s) using information from the current symbol period and the previous three symbol periods, a designer would set M=4. Generally, the higher the prediction order M, the more accurate the filter substage 160 but the longer its latency, and the lower the value of M, the less accurate the filter substage but the shorter its latency.
(143) The state equation for the engaged filter substage 160 corresponding to the l.sup.th path of the (r,i) channel relates the l.sup.th path during the current symbol period s to the same l.sup.th path during one or more prior symbol periods, and is as follows:
g.sub.r,l.sup.(i,s)=Ag.sub.r,l.sup.(i,s1)+e.sub.r,l.sup.(i,s)(26)
where A is an autoregressive matrix and e is the prediction-error vector. A is dependent on the Doppler Spread, and, therefore, the first stage 150 may determine values of A ahead of time in a conventional manner and store these values in a lookup table, which the first stage may access based on the velocity of the receiver relative to the transmitter; for example, a receiver such as the receiver 130 (
(144) The prediction-error-correlation matrix G.sub.r,l.sup.(i,s) is given by the following equation:
G.sub.r,l.sup.(i,s)=E{e.sub.r,l.sup.(i,s)e.sub.r,l.sup.(i,s)H}(27)
Although the vector e.sub.r,l.sup.(i,s) may be unknown, its expectation (the right side of equation (27)), which may be generally described as an average of the change in the variance of e.sub.r,l.sup.(i,s) from symbol period to symbol period, depends on the Doppler Spread, and, therefore, may be conventionally determined ahead of time through simulations or with a closed-form expression. Furthermore, because this expectation is approximated to be the same from symbol period to symbol period, the left side of equation (27) is independent of the symbol period s. Consequently, the first substage 158 may determine values for G.sub.r,l.sup.(i) dynamically or ahead of time and/or store these values of G.sub.r,l.sup.(i) in a lookup table with respect to Doppler Spread, and may retrieve from the lookup table a value of G.sub.r,l.sup.(i) for the current symbol period based on the velocity of the receiver relative to the transmitter during the current symbol period.
(145) A channel-independent N.sub.p1 column vector P.sub.p.sup.a, which the first substage 158 may calculate and/or store dynamically or ahead of time, is given by the following equation:
P.sub.p.sup.a=[P.sub.b+a,P.sub.b+P.sub.sep+a, . . . ,P.sub.b+(N.sub.p1)P.sub.sep+a](28)
(146) where, as discussed above in conjunction with
(147) A transmit-antenna-dependent 1L.sub.p row vector P.sub.cluster.sup.(i,c), which the first substage 158 may store ahead of time, is defined as the c.sup.th pilot cluster L.sub.P transmitted by the i.sup.th transmit antenna. For example, where c=0, then the elements of P.sub.cluster.sup.(i,0) include the pilot symbols of the 0.sup.th pilot cluster L.sub.p transmitted by the i.sup.th transmit antenna. The first substage 158 may generate and/or store the vectors P.sub.cluster.sup.(i,c) because the receiver 130 (
(148) A transmit-antenna-dependent value P.sup.(i,k), which the first substage 158 may store ahead of time, is the pilot symbol (e.g., in the frequency domain) transmitted from the i.sup.th antenna on the k.sup.th subcarrier.
(149) A transmit-antenna-dependent pilot-pattern matrix P.sub.pat.sup.(i) of dimensions N.sub.pL.sub.PN, which the first substage 158 may determine and/or store ahead of time, is given by the following equation:
(150)
where, the first row of P.sub.pat.sup.(i) includes the pilot symbols that compose the 0.sup.th pilot cluster L.sub.p transmitted from the i.sup.th transmit antenna, the second row of P.sub.pat.sup.(i) includes the pilot symbols that compose the 1.sup.st pilot cluster L.sub.p transmitted from the i.sup.th transmit antenna, and the (N.sub.p1).sup.th row of P.sub.pat.sup.(i) includes the pilot symbols that compose the (Np1).sup.th pilot cluster L.sub.p transmitted from the i.sup.th transmit antenna. In an embodiment, the rows of P.sub.pat.sup.(i) may be shifted up or down as long as they remain in a sequence 0-N.sub.p1 and the same shift is applied to all of the matrices P.sub.pat.sup.(i) for 0iT1 (where T is the number of transmit antennas).
(151) A channel-independent matrix Q (not to be confused with the value Q described above) having the same dimensions N.sub.pL.sub.PN as P.sub.pat.sup.(i) and which may be stored by the first substage 158 ahead of time, is given by the following equation:
(152)
That is, the matrix Q includes the subcarrier indices k for the pilot symbols in P.sub.pat.sup.(i). For example, if a transmitted signal has N.sub.p=3 pilot clusters of L.sub.PN=5 pilot subcarriers each, P.sub.b=2, and P.sub.sep=8, then Q would equal
(153)
(154) A channel-independent (assuming all pilot clusters are in the same relative positions in all i transmitted OFDM signals) column vector P.sub.Q having dimensions N.sub.pL.sub.PN1 and which the first substage 158 may determine and/or store ahead of time, is given by the following equation:
P.sub.Q=[k.sub.P.sub.
That is, P.sub.Q includes the subcarrier indices k of all pilot subcarriers in an OFDM symbol; or, viewed another way, P.sub.Q includes the rows of the matrix Q transposed and stacked end to end.
(155) A transmit-antenna- and path-dependent 2N.sub.pL.sub.PN matrix .sub.l.sup.(i), which the first substage 158 may determine and/or store ahead of time, is given by the following equation:
(156)
where
(157)
and the operator indicates that each e term is formed using a respective element of the matrix Q, each formed e term is multiplied by a corresponding element of the matrix p.sub.pat.sup.(i), and this procedure is repeated for all N.sub.pL.sub.PN elements of Q and p.sub.pat.sup.(i), resulting in another N.sub.pL.sub.PN matrix. Then, this resulting matrix is effectively stacked on itself to obtain the 2N.sub.pL.sub.PN matrix .sub.l.sup.(i).
(158) N.sub.p transmit-antenna- and path-dependent N.sub.pL.sub.PN matrices R.sub.l.sup.(i,u), which the first substage 158 may determine and/or store ahead of time, are given by the following equation for 0uN.sub.p1:
R.sub.l.sup.(i,u)=.sub.l.sup.(i)(u.fwdarw.u+Np1,:)(33)
where u.fwdarw.u+Np1 are the rows of .sub.l.sup.(i) used to populate R.sub.l.sup.(i,u) and : indicates that all columns of these rows of .sub.l.sup.(i) are used to populate R.sub.l.sup.(i,u).
(159) A transmit-antenna- and path-dependent N.sub.pN.sub.pL.sub.PN matrix .sub.l.sup.(i) (note there is no underline beneath , this lack of an underline distinguishing this matrix from the matrix .sub.l.sup.(i) of equation (32)), which the first substage 158 may determine and/or store ahead of time, is given by the following equation:
.sub.l.sup.(i)=[R.sub.l.sup.(i,0) R.sub.l.sup.(i,1) . . . R.sub.l.sup.(i,N.sup.
(160) j channel-independent N.sub.pL.sub.PNN matrices W.sup.(j), which the first stage 150 may calculate and/or store dynamically or ahead of time, is given by the following equation for B.sub.pj+B.sub.p:
(161)
where F is the known Fourier matrix, the operator indicates a modulo N operation, P.sub.Q(n) is the n.sup.th element of the vector P.sub.Q (equation (31)), P.sub.b is the index of the relative center pilot subcarrier of each pilot cluster L.sub.p (and the center pilot subcarrier of the first pilot cluster), and : indicates all columns of the matrix F.sup.H in the indicated rows. Note that the number of rows in each W.sup.(j) matrix is equal to the number N.sub.pL.sub.PN of pilot subcarriers in each transmitted OFDM signal.
(162) A receive-antenna-dependent column vector
where y.sub.r.sup.(s) is the signal received by the r.sup.th receive antenna during the symbol period s, and (P.sub.p.sup.a) (equation (28)), which for B.sub.pa+B.sub.p equals [P.sub.p.sup.Bp . . . . P.sub.p.sup.Bp], indicates which elements of y.sub.r.sup.(s) form
(163) A transmit-antenna- and path-dependent (but symbol-period-s independent) N.sub.p(2B.sub.p+1) matrix q.sub.l.sup.(i)H, which the first substage 158 may calculate and/or store dynamically or ahead of time, is given by the following equation:
q.sub.l.sup.(i)H=[f.sup.(iL+l)H . . . f.sup.(iL+l)H](37)
That is, q.sub.l.sup.(i)H has 2B.sub.p+1 identical elements, and f.sup.(iL+l) is a N.sub.p1 row vector. Examples of f.sup.(iL) and f.sup.(iL+l) are described below in conjunction with
(164) A transmit-antenna- and path-dependent (but symbol-period-s independent) matrix .sub.l.sup.(i), which the first substage 158 may determine and/or store ahead of time, is given by the following equation:
(165)
(166) A transmit-antenna- and path-dependent (but symbol-period-s independent) row vector
where 0.sub.1(M1)Q is a row vector having (M1)Q columns/elements that are each equal to zero.
(167) The observation scalar
(168) The measurement equation for the engaged filter substage 160 corresponding to the l.sup.th path of the (r,i) channel is given by the following equation:
where
(169) Referring to equation (40) and as further discussed below, the measurement equation effectively relates the symbol recovered during the symbol period s to the response of the (r,i) channel during s, and, referring to equation (41) and also as further discussed below, the state equation (26), via the state vector g.sub.r,l.sup.(i,s), effectively modifies the result
(170) Furthermore, because
(171) Still referring to
(172) First, the path monitor 154 determines the number Z and corresponding delays of the paths L that compose the (r,i) channel, and engages, via the switches 164, the second stages 152 that correspond to these paths. As discussed above, for purposes of the following example, it is assumed that the path monitor 154 has engaged at least the second stage 152.sub.0.
(173) Next, the first stage 150 may determine and/or store quantities (at least some of which are described above) that the second stage 152.sub.0 may need for its calculations, to the extent that the first stage has not already determined and/or stored these quantities. Furthermore, if some of these quantities (e.g. W.sup.(j) are independent of the transmit and/or receive antenna, then the first stage 150 of this or another channel-estimator portion 148 may determine/store these quantities and provide them to the other first stages to reduce or eliminate redundant processing as discussed above.
(174) Similarly, the first substage 158.sub.0 may determine and/or store quantities (at least some of which are described above) that the filter substage 160.sub.0 may need for its calculations, to the extent that the first substage has not already determined and/or stored these quantities. Furthermore, if some of these quantities are independent of the transmit and/or receive antenna, then the first substage 158.sub.0 of this or another channel-estimation portion 148 may determine/store these quantities and provide them to the other first substages to reduce or eliminate redundant processing as discussed above.
(175) Next, the observation-scalar calculator 166.sub.0 determines the observation scalar
(176) Then, the state-vector predictor 168.sub.0 determines the predicted state vector {hacek over (g)}.sub.r,l.sup.(i,s) for l=0 of the (r,i) channel according to the following equation:
{hacek over (g)}.sub.r,l.sup.(i,s)=A.sub.r,l.sup.(i,s1)(42)
Where s=0 (the initial symbol period), the predictor 168.sub.0 also provides an initial value for .sub.r,l.sup.(i, 1). This initial value may be zero, or it may be the expectation of .sub.r,l.sup.(i, 1). If the initial value is the latter, then the predictor 168.sub.0 may compute the expectation of .sub.r,l.sup.(i, 1) dynamically or ahead of time and store the computed expectation. A technique for calculating the expectation of .sub.r,l.sup.(i, 1) is described in S. M. Kay, Fundamentals of Statistical Signal Processing: Estimation Theory, Prentice Hall: New Jersey (1993), which is incorporated by reference. After the initial symbol period s=0, the state-vector estimator 174.sub.0 provides .sub.r,l.sup.(i, s), which becomes .sub.r,l.sup.(i, s1) for the next symbol period s, as discussed below.
(177) Next, the mean-square-error-matrix predictor 170.sub.0 determines the predicted mean-square-error matrix {hacek over ()}.sub.r,l.sup.(i,s) for l=0 of the (r,i) path according to the following equation:
{hacek over ()}.sub.r,l.sup.(i,s)=A{circumflex over ()}.sub.r,l.sup.(i,s1)A.sup.H+G.sub.r,l.sup.(i)(43)
Where s=0 (the initial symbol period), the predictor 170.sub.0 also provides an initial value for {circumflex over ()}.sub.r,l.sup.(i, 1). This initial value may be zero, or it may be the expectation of the error variance in the state equation (26). If the initial value is the latter, then the predictor 170.sub.0 may compute the expectation of the error variance in the state equation dynamically or ahead of time and store the computed expectation. A technique for calculating the expectation of the error variance in the state equation (26) is described in S. M. Kay, Fundamentals of Statistical Signal Processing: Estimation Theory, Prentice Hall: New Jersey (1993), which is incorporated by reference. After the initial symbol period s=0, the mean-square-error-matrix updater 176.sub.0 provides {circumflex over ()}.sub.r,l.sup.(i, s), which becomes {circumflex over ()}.sub.r,l.sup.(i, s1) for the next symbol period s, as discussed below.
(178) Then, the gain-vector calculator 172.sub.0 determines a gain vector .sub.r,l.sup.(i,s) for l=0 of the (r,i) channel according to the following equation:
(179)
(180) Next, the state-vector estimator 174.sub.0 generates the estimated state vector .sub.r,l.sup.(i,s) for l=0 of the (r,i) channel according to the following equation:
.sub.r,l.sup.(i,s)={hacek over (g)}.sub.r,l.sup.(i,s)+.sub.r,l.sup.(i,s)[
As discussed above, .sub.r,l.sup.(i,s) is fed back to the state-vector predictor 168.sub.0 to be used in equation (42) as .sub.r,l.sup.(i, s1) for the next symbol period.
(181) Then, the mean-square-error-matrix updater 176.sub.0 generates an updated mean-square-error matrix {circumflex over ()}.sub.r,l.sup.(i,s) for l=0 of the (r,i) channel according to the following equation:
{circumflex over ()}.sub.r,l.sup.(i,s)=[I.sub.MQ.sub.r,l.sup.(i,s)
where I.sub.MQ is an identity matrix of dimensions M(row)Q(column) and is a minus sign. Furthermore, as discussed above, {circumflex over ()}.sub.r,l.sup.(i,s) is fed back to the mean-square-error-matrix predictor 170.sub.0 to be used in equation (43) as {circumflex over ()}.sub.r,l.sup.(i, s1) for the next symbol period.
(182) Next, the scaling-vector calculator 178.sub.0 determines the scaling vector
Equation (47) may be referred to as the normal Kalman filter (NKF) output, and equation (48) may be referred to as the Kalman fixed-lag smoother (KFLS) output, which is effectively a low-pass filtered output. Generally, the KFLS output is more accurate, but has a higher latency, than the NKF output.
(183) Then, the third stage path-vector calculator 162.sub.0 determines the path vector h.sub.r,l.sup.(i,s) for l=0 of the (r,i) channel according to equation (24) using either
(184) As stated above, the other engaged second stages 152 of the channel-estimator portion 148 may operate in a similar manner to generate
(185) Next, the third stage partial channel-matrix calculator 156 generates an intermediate partial-channel-estimation matrix H.sub.r.sup.(i,s) from the path-response vectors h.sub.r,l.sup.(i,s) for all of the paths 0lZ1 that compose the (r,i) channel according to the following equation:
{circumflex over (H)}.sub.r.sup.(i,s)(m,n)=.sub.r,(m-n).sup.(i,s)(s+m), for 0mN1 and 0nN1(49)
(186) Then, the third stage partial-channel-matrix calculator 156 generates the partial-channel-estimation matrix .sub.r.sup.(i,s) for the (r,i) channel according to the following equation:
(187)
(188) Still referring to
(189)
(190) The combiner 190 generates the RNTN channel-estimation matrix .sup.(s) from the RT NN partial channel-estimation matrices .sub.r.sup.(i,s) (for 0iT1 and 0rR1) according to the following equation:
.sup.(s)=[(.sub.r=0.sup.(i=0,s).sub.r=0.sup.(i=1,s) . . . . .sub.r=0.sup.(i=T1,s));(.sub.r=1.sup.(i=0,s).sub.r=1.sup.(i=1,s) . . . .sub.r=1.sup.(i=T1,s)); . . . ;(.sub.r=R1.sup.(i=0,s).sub.r=R1.sup.(i=1,s) . . . .sub.r=R1.sup.(i=T1,s))].sup.T(51)
such that one may think of .sup.(s) as a matrix that includes R TN matrices stacked atop one anothernote that the matrices within parenthesis (e.g., .sub.r=0.sup.(i=0,s) .sub.r=0.sup.(i=1,s) . . . .sub.r=0.sup.(i=T1,s) are not multiplied together, but are positioned next to one another.
(191)
y.sup.(s)=[y.sub.r=0.sup.(s)T y.sub.r=1.sup.(s)T . . . y.sub.r=R1.sup.(s)T].sup.T(52)
(192) such that one may think of y.sup.(s) as a vector that includes 1 column of R N1 vectors.
(193)
(194) The transmitter 200 includes T transmit paths 202.sub.0-202.sub.T1. For brevity, only the path 202.sub.0 is described in detail, it being understood that the remaining paths 202.sub.1-202.sub.T1 may be similar.
(195) The transmit path 202.sub.0 includes a pilot generator 204.sub.0, a data generator 206.sub.0, a pilot-subcarrier-coefficient generator 208.sub.0, a data-subcarrier-coefficient generator 210.sub.0, an Inverse Fourier Transform (IFFT) unit 212.sub.0, a digital-to-analog converter (DAC) 214.sub.0, a modulator 216.sub.0, and an antenna 218.sub.0.
(196) The pilot generator 204.sub.0 generates pilot subsymbols from pilot information that may include a pilot pattern in the form of a pilot-pattern matrix p.sub.pat.sup.(i), which is discussed further below.
(197) Similarly, the data generator 206.sub.0 generates data subsymbols from data information.
(198) The pilot-subcarrier-coefficient generator 208.sub.0 generates from each pilot subsymbol a respective complex frequency-domain coefficient for mapping to the respective pilot subcarrier.
(199) Similarly, the data-subcarrier-coefficient generator 210.sub.0 generates from each data subsymbol a respective complex frequency-domain coefficient for mapping to the respective data subcarrier.
(200) The IFFT unit 212.sub.0 transforms the pilot-subcarrier and data-subcarrier coefficients into a digital time-domain waveform.
(201) The DAC 214.sub.0 converts the digital time-domain waveform into an analog time-domain waveform.
(202) The modulator 216.sub.0 modulates a carrier signal (e.g., a 5.4 GHz carrier) with the analog waveform.
(203) And the antenna 218.sub.0 transmits the modulated carrier signal for reception by a receiver such as the receiver 130 of
(204) In an embodiment, the pilot generators 204 may each generate a respective pilot pattern according to a respective pilot-pattern matrix p.sub.pat.sup.(i) such that each column of p.sub.pat.sup.(i) generated by one of the pilot generators is orthogonal to every column of all the other pilot-pattern matrices p.sub.pat.sup.(i) generated by the other pilot generators. Such orthogonality is present when the following equation is true:
p.sub.pat.sup.(m)p.sub.pat.sup.(n)H=0 for 0mT1, 0nT1, and mn(53)
(205) An example of such orthogonal pilot-pattern matrices is given by the following equation:
p.sub.pat.sup.(i)=[f.sup.(iZ);f.sup.(iZ); . . . ;f.sup.(iZ)] for 0iT1(54)
where i is the transmit-antenna index, Z is the number of paths L in each channel (in an embodiment it is assumed that each channel always has the same number Z of paths L), and p.sub.pat.sup.(i) has N.sub.p rows (each row represents a pilot cluster) and L.sub.PN=2w.sub.p+1 identical columns (i.e. f.sup.(iZ)f.sup.(iZ)H=1).
(206) An example of the N.sub.p1 column vector f.sup.(iZ) is given by the following equation:
(207)
(208) It has been found that such orthogonal pilot-pattern matrices p.sub.pat.sup.(i) allow a MIMO-OFDM channel estimator, such as the channel estimator 138 of
(209) In another embodiment, the pilot generators 204 may each generate a respective pilot pattern according to a respective pilot-pattern matrix p.sub.pat.sup.(i) such that not only is each column of p.sub.pat.sup.(i) generated by one of the pilot generators orthogonal to every column of the pilot-pattern matrices p.sub.pat.sup.(i) generated by the other pilot generators, but each column of p.sub.pat.sup.(i) is also orthogonal to every other column of the same matrix p.sub.pat.sup.(i). Such dual orthogonality is present when the following equations are true:
p.sub.pat.sup.(m)p.sub.pat.sup.(n)H=0 for 0mT1, 0nT1, and mn(53)
f.sub.pat.sup.(d)f.sub.pat.sup.(v)H=0 for 0dL.sub.PN1, 0vL.sub.PN1, and dv(54)
(210) where f.sub.pat.sup.(i,u) are the L.sub.PN column vectors that compose p.sub.pat.sup.(i).
(211) An example of such pilot-pattern matrices with dual orthogonality is given by the following equation:
p.sub.pat.sup.(i)=[f.sup.(iL.sup.
where i is the transmit-antenna index, Z is the number of paths L in each channel (in an embodiment it is assumed that each channel always has the same number Z of paths L), and p.sub.pat.sup.(i) has N.sub.p rows (each row represents a pilot cluster) and L.sub.PN=2w.sub.p+1 orthogonal columns such that f.sup.(iL.sup.
(212) An example of the N.sub.p1 column vectors f.sup.(iL.sup.
(213)
(214) It has been found that such dual-orthogonal pilot-pattern matrices p.sub.pat.sup.(i), such as those generated per equation (55), may improve the performance of a MIMO-OFDM channel estimator that does not include recursive filters such as the VSSO Kalman filter substages 160 of
(215) A more general algorithm for designing dual-orthogonal pilot-pattern matrices p.sub.pat.sup.(i), such pilot-pattern matrices including, but not limited to, the pilot-pattern matrices p.sub.pat.sup.(i) of equation (55), is described according to an embodiment.
(216) Let S.sup.(i) denotes a set or vector corresponding to the i.sup.th transmit antenna T.sub.i, where N.sub.T is the total number of transmit antennas T in a MIMO-OFDM system and 0iN.sub.T1. The values of the elements of S.sup.(i) are integers between 0 and N.sub.P1 inclusive, and the difference between any two elements of S.sup.(i) is greater than or equal to L. Furthermore, the number of elements in S.sup.(i) is N.sup.(i), where 0<N(i)(N.sub.p/L)1. Note that the number N.sup.(i) need not be the same for each value of i; that is, the number of elements in S.sup.(i) may be different for different values of i, and, therefore, may be different for different transmit antennas Ti. Moreover, L is (or, at least for purposes of an embodiment of the described algorithm, is assumed to be) the same for each channel between each transmit antenna T.sub.i and each receive antenna R.sub.r, where r is the number of receive antennas in the MIMO-OFDM system minus one, and may equal, but need not equal, i, for example, ri1>0.
(217) Next, the N.sub.T sets S.sup.(0), . . . , S.sup.(N.sup.
(218) Then, let .sub.A.sup.(i) be an L.sub.pN.sup.(i) matrix associated with the i.sup.th transmit antenna T.sub.i.
(219) Next, assuming that the normalized average power of each pilot/data symbol to be transmitted, or being transmitted, by each transmit antenna T, is, or can be approximated as, unity, generate .sub.A.sup.(i) such that the following equation is true:
.sub.m=0.sup.L.sup.
where indicates the modulus or magnitude of the complex number .sub.A.sup.(i) (m, p), which is the value of the matrix element located in the m.sup.th row and p.sup.th column of the matrix .sub.A.sup.(i).
(220) Then, let .sub.B.sup.(i) be another L.sub.pN.sup.(i) matrix associated with the i.sup.th transmit antenna T.sub.i, where the respective value of each element of .sub.B.sup.(i) is an integer that is between 0 and N.sub.p1 inclusive; there are no other constraints placed on .sub.B.sup.(i) or on the values of its elements. For example, more than one element of .sub.B.sup.(i) may have the same value.
(221) Next, the m.sup.th column of the pilot-pattern matrix P.sub.pat.sup.(i) for the i.sup.th transmit antenna T.sub.i is given by the following equation:
P.sub.pat.sup.(i)(:,m)=.sub.p=0.sup.N.sup.
where S.sup.(i)(p) is the p.sup.th element of S.sup.(i), f.sup.(S.sup.
f.sup.(S.sup.
(this equation is modified appropriately if N.sub.p1 is less than two), and f.sup.(S.sup.
(222) Therefore, the entire pilot-pattern matrix P.sub.pat.sup.(i) can be generated by constructing each column m of the matrix according to equation (58). For example, each of the pilot generators 204 of
(223) Furthermore, the pilot-pattern matrices P.sub.pat.sup.(i) generated per equation (58) have dual orthoganality like the pilot-pattern matrices generated per equation (55); in fact, the pilot-pattern matrices that can be generated per equation (55) are a subset of the pilot-pattern matrices that can be generated per equation (58).
(224) It has been found that dual-orthogonal pilot-pattern matrices p.sub.pat.sup.(i) generated per equation (58) may improve the performance of a MIMO-OFDM channel estimator that does not include recursive filters such as the VSSO Kalman filter substages 160 of
(225) According to an embodiment, so that a channel estimator, such as the channel estimator 138 of
(226) A unit-norm column vector .sup.(i) is defined according to the following equation:
.sup.(i)=.sub.p=0.sup.N.sup.
where f.sup.(S.sup.
(227) The unit norm condition is .sup.(i).sup.2=1, which yields the following relation:
(228)
where the operator indicates the modulus, or magnitude, of the complex number a.sub.p. For example, one solution for a.sub.p that satisfies equation (61) is given by the following equation:
(229)
for all values of p.
(230) The matrix q.sub.l.sup.(i)H of equation (37) may be modified according to the following equation:
q.sub.l.sup.(i)H=[.sup.(i)H . . . .sup.(i)H](63)
where the column vector .sup.(i)H is repeated 2B.sub.p+1 times in the matrix q.sub.l.sup.(i)HB.sub.p has no particular relation to b.sub.p of equation (60), and, as described above, B.sub.p is the number of interior pilot subcarriers to the left and to the right of the center pilot subcarrier in a pilot cluster. Therefore, the matrix q.sub.l.sup.(i)H of equation (63) includes 2B.sub.p+1 identical columns, where each column is equal to the column vector .sub.(i)H. Furthermore, the matrices q.sub.l.sup.(i)H of equation (37) are a subset of the matrices q.sub.l.sup.(i)H of equation (63).
(231) Still referring to
(232) From the foregoing it will be appreciated that, although specific embodiments have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the disclosure. Furthermore, where an alternative is disclosed for a particular embodiment, this alternative may also apply to other embodiments even if not specifically stated. Moreover, the components described above may be disposed on a single or multiple IC dies to form one or more ICs, these one or more ICs may be coupled to one or more other ICs to form a device such as a transceiver, and one or more of such devices may be coupled or otherwise used together to form a system.