Multi-transmitter channel estimation for a time varying channel

10771289 ยท 2020-09-08

Assignee

Inventors

Cpc classification

International classification

Abstract

Disclosed is a method, receiver, multi-receiver device, system and computer readable medium for configuring a receiver to perform multi-transmitter channel estimation for a time-varying channel. In one aspect, the method includes: wirelessly receiving at least two frames, each frame including a block of training symbols received at different points in time for a time-varying channel; estimating, for each block at a block location, a first channel coefficient of the time-varying channel, wherein the block location is the same for each block; and interpolating or extrapolating a plurality of second channel coefficients for the respective training symbols of each block based on the respective first channel coefficient.

Claims

1. A method of performing multi-transmitter channel estimation for a time-varying channel, wherein the method includes: (a) wirelessly receiving at least two frames, each frame including a block of training symbols received at different points in time for a time-varying channel; (b) estimating, for each block at a block location, a first channel coefficient of the time-varying channel, wherein the block location is the same for each block; (c) interpolating or extrapolating a plurality of second channel coefficients for the respective training symbols of each block based on the respective first channel coefficient; (d) re-estimating the first channel coefficient for each block based on the plurality of second channel coefficients for each block; and (e) re-estimating the plurality of second channel coefficients for each block by interpolation or extrapolation using the respective first channel coefficient.

2. The method according to claim 1, wherein the method further includes (f) iteratively performing steps (d) and (e) until the respective plurality of second channel coefficients for each block have converged, or until a specified number of iterations is reached.

3. The method according to claim 1, wherein a first channel coefficient for each block is estimated in step (b) as being constant throughout reception of the respective block.

4. The method according to claim 1, wherein the method is performed in a time domain.

5. The method according to claim 1, wherein the method is performed in a frequency domain.

6. The method according to claim 1, wherein the time-varying channel is a narrowband communication channel, wherein the narrowband communication channel has at least one of: a carrier frequency of more than 1 GHz; and a bandwidth of more than 25 KHz.

7. The method according to claim 1, wherein the time-varying channel is a wideband communication channel.

8. A receiver configured to perform multi-transmitter channel estimation for a time-varying channel, wherein the receiver is configured to: (a) wirelessly receive at least two frames, each frame including a block of training symbols at different points in time for a time-varying channel; (b) estimate, for each block at a block location, a first channel coefficient of the time-varying channel, wherein the block location is the same for each block; (c) interpolate or extrapolate a plurality of second channel coefficients for the respective training symbols of each block based on the respective first channel coefficient; (d) re-estimate the first channel coefficient for each block based on the plurality of second channel coefficients for each block; and (e) re-estimate the plurality of second channel coefficients for each block by interpolation or extrapolation using the respective first channel coefficient.

9. The receiver according to claim 8, wherein the receiver is configured to iteratively re-estimate the first and second channel coefficients for each block until convergence, or until a specified number of iterations is reached.

10. The receiver according to claim 8, wherein the receiver is configured to estimate, for each block, the first channel coefficient as being constant throughout reception of the respective block.

11. The receiver according to claim 8, wherein the receiver is configured to perform the multi-transmitter channel estimation in a time domain.

12. The receiver according to claim 8, wherein the receiver is configured to perform the multi-transmitter channel estimation in a frequency domain.

13. The receiver according to claim 8, wherein the time-varying channel is a narrowband communication channel, wherein the narrowband communication channel has at least one of: a carrier frequency of more than 1 GHz; and a bandwidth of more than 25 KHz.

14. The receiver according claim 8, wherein the time-varying channel is a wideband communication channel.

Description

BRIEF DESCRIPTION OF THE PREFERRED EMBODIMENTS

(1) Example embodiments should become apparent from the following description, which is given by way of example only, of at least one preferred but non-limiting embodiment, described in connection with the accompanying figures.

(2) FIG. 1a is a flowchart representing an example method of performing multi-transmitter channel estimation for a time-varying channel;

(3) FIG. 1b is a flowchart representing another example method of performing multi-transmitter channel estimation for a time-varying channel;

(4) FIG. 2 is a schematic illustrating a first channel estimation stage;

(5) FIG. 3 is a schematic illustrating a second channel estimation stage;

(6) FIG. 4 is an example of a schematic block diagram representation of a simulation performed using TDMA channel estimation, CDMA channel estimation, and the multi-transmitter channel estimation of the current invention;

(7) FIG. 5 is an example low pass filter used for interpolation in the second channel estimation stage for the simulation;

(8) FIG. 6 is a plot of simulation results of mean error vector magnitude versus receiver SNR for TDMA channel estimation, CDMA channel estimation, and the multi-transmitter channel estimation of the current invention for the simulation of FIG. 4;

(9) FIG. 7 is a plot of simulation results of bit error probability versus receiver SNR for TDMA channel estimation, CDMA channel estimation, and the multi-transmitter channel estimation of the current invention for the simulation of FIG. 4; and

(10) FIGS. 8a and 8b collectively form a schematic block diagram representation of a receiver; and

(11) FIG. 9 is a system diagram of a system including a multi-receiver device and a multi-transmitter device.

DETAILED DESCRIPTION

(12) The following modes, given by way of example only, are described in order to provide a more precise understanding of the subject matter of a preferred embodiment or embodiments. In the figures, incorporated to illustrate features of an example embodiment, like reference numerals are used to identify like parts throughout the figures.

(13) Referring to FIG. 1a there is shown a flowchart representing an example method 100 of performing multi-transmitter channel estimation for a time-varying channel.

(14) At step 110, the method 100 includes wirelessly receiving at least two frames, each frame including a block of training symbols received at different points in time for a time-varying channel.

(15) At step 120, the method 100 includes estimating, for each block at a block location, a first channel coefficient of the time-varying channel, wherein the block location is the same for each block.

(16) At step 130, the method 100 includes interpolating or extrapolating a plurality of second channel coefficients for the respective training symbols of each block based on the respective first channel coefficient.

(17) Referring to FIG. 1b there is shown another example method 150 of performing multi-transmitter channel estimation for a time-varying channel.

(18) In particular, at step 155 the method 150 includes wirelessly receiving at least two frames, each frame including a block of training symbols received at different points in time for a time-varying channel.

(19) At step 160, the method 150 includes estimating, for each block at a block location, a first channel coefficient of the time-varying channel, wherein the block location is the same for each block. Preferably, the first channel coefficient for each block is estimated during step 160 as being constant throughout the reception of the respective block.

(20) At step 165, the method 150 includes interpolating or extrapolating a plurality of second channel coefficients for the respective training symbols of each block based on the respective first channel coefficient.

(21) At step 170, the method includes re-estimating the first channel coefficient for each block based on the plurality of second channel coefficients for each block.

(22) At step 175, the method includes re-estimating the plurality of second channel coefficients for each block by interpolation or extrapolation using the respective first channel coefficient.

(23) At step 180, the method includes determining if the plurality of second channel coefficients for each block have converged or a specified number of iterations have been performed. In the event of a positive determination, channel estimation has been completed. In the event of a negative determination, the method proceeds back to step 170 to perform another iteration of steps 170, 175 and 180 until convergence is achieved, or until a specified number of iterations have been performed.

(24) As will be appreciated from methods 100 and 150, channel estimation for a time-varying channel comprises of at least two stages of channel estimation. The first stage is to estimate a constant component of the channel (i.e. the first channel coefficient) during the reception of at least two blocks of channel training symbols, wherein the at least two blocks are received at two different points in time. The second stage is to utilise the estimated constant component of the channel at the different points in time to estimate the channel coefficients (i.e. the second channel coefficients) for the channel training symbols of each block by interpolation and/or extrapolation. As shown in FIG. 1B, the two stages may be repeated iteratively such that previous calculated channel coefficients can be used for re-estimating the first and second channel coefficients. Utilising interpolation or extrapolation preferably reduces the error caused by inaccuracy in channel estimation by taking advantage of coherence of the channel in the time domain.

(25) Referring to FIG. 2, there is shown an example structure of a symbol sequence transmitted from the transmitter (Tx1). In this example, the transmitted symbol sequence includes two frames. Each frame includes a channel training symbol part P and a data part D.

(26) During the initial stage of channel estimation, the first channel coefficients at time F1 and F2, and possibly at other frame times, are initially estimated by assuming that the channel is constant during the reception of channel training symbols. For example, initially the channel is assumed to be constant during P11 and P12 for frame 1, and during P21 and P22 for frame 2. As can be seen in FIG. 2, the location within each block which each first channel coefficient is estimated is the same, wherein in this particular instance F1 and F2 are both location of the second training symbol for respective blocks.

(27) FIG. 3 shows the second channel estimation stage. By using the estimated first channel coefficients at F1 and F2, the second channel coefficients at symbol times P11, P12, P21, and P22 are estimated by interpolating and/or extrapolating the channel coefficients estimated for F1 and F2. Due to the coherence of the channel in time, the interpolation/extrapolation step can take advantage of the availability of estimated channel coefficients at multiple points in time so that the accuracy of the estimation of the channel corresponding to each of the channel training symbols may be improved.

(28) The process can then be repeated. In particular, the estimated second channel coefficients at P11, P12, P21 and P22 can be utilised to re-estimate the first channel coefficients at time F1 and F2. Then, the second channel coefficients at P11, P12, P21 and P22 can be re-estimated taking into account the re-estimated first channel coefficients at F1 and F2, The process can be repeated iteratively to improve the accuracy of the channel estimation.

(29) The method can be performed utilising a matrix that can be invertible in the time domain and/or the frequency domain as will be explained mathematically below. In particular, the received symbols at a receiver is given as:

(30) y ( i z ) = .Math. i T = 1 N T h ( i T , i Z ) ( i T , i Z ) + n ( i Z )
where i.sub.Z=1, 2, . . . , N.sub.Z and y(i.sub.Z) is the received symbol at the i.sub.Zth symbol time, h(i.sub.T, i.sub.Z) is the single tap channel coefficient between the i.sub.Tth transmitter and the receiver at the i.sub.Zth symbol time, x(i.sub.T, i.sub.Z) is the channel training symbol for the i.sub.Tth transmitter at the i.sub.Zth symbol time, and n(i.sub.Z) is the noise at the receiver at the i.sub.Zth symbol time.

(31) The number of channel training symbols per a block is N.sub.Z.

(32) Separating each of the channel coefficients into a constant portion and a time varying portion provides:

(33) y ( i z ) = .Math. i T = 1 N T g ( i T ) f ( i T , i Z ) ( i T , i Z ) + n ( i Z ) ( 1 )
where
h(i.sub.T,i.sub.Z)=g(i.sub.T)f(i.sub.T,i.sub.Z)(2)
and g(i) is the constant term of the single tap channel coefficient between the i.sub.Tth transmitter and the receiver over the duration of a block of channel training symbols, and f(i.sub.T, i.sub.Z) is the time varying part of the single tap channel coefficient between the i.sub.Tth transmitter and the receiver at the i.sub.Zth symbol time.

(34) The channel estimation may be performed in time domain or in frequency domain.

(35) For time domain channel estimation, the above equation can be written in a matrix form as the following:

(36) [ y ( 1 ) .Math. y ( N Z ) ] = [ w ( 1 , 1 ) .Math. w ( N T , 1 ) .Math. .Math. y ( N Z ) .Math. w ( N T , N Z ) ] [ g ( 1 ) .Math. g ( N T ) ] + [ n ( 1 ) .Math. n ( N Z ) ] ( 3 )
where i.sub.Z=1, 2, . . . , N.sub.Z and w(i.sub.T, i.sub.Z)=f(i.sub.T, i.sub.Z)x(i.sub.T, i.sub.Z).

(37) As discussed above, the initial estimate of f(i.sub.T, i.sub.Z) (herein {tilde over (f)}(i.sub.T, i.sub.Z, 1)) is assumed to be constant and is equal to:
{tilde over (f)}(i.sub.T,i.sub.Z,1)=1(4)

(38) Then the initial estimate of w(i.sub.T, i.sub.Z) (herein {tilde over (w)}(i.sub.T, i.sub.Z, 1)) is defined as:
{tilde over (w)}(i.sub.T,i.sub.Z,1)={tilde over (f)}(i.sub.T,i.sub.Z,1)x(i.sub.T,i.sub.Z)=x(i.sub.T,i.sub.Z)(5)

(39) Then the initial estimate of g(i.sub.T) (herein {tilde over (g)}(i.sub.T, 1)) can be obtained by:

(40) [ g ~ ( 1 , 1 ) .Math. g ~ ( N T , 1 ) ] = [ w ~ ( 1 , 1 , 1 ) .Math. w ~ ( N T , 1 , 1 ) .Math. .Math. w ~ ( 1 , N Z , 1 ) .Math. w ~ ( N T , N Z , 1 ) ] - 1 [ y ( 1 ) .Math. y ( N Z ) ] = [ x ( 1 , 1 ) .Math. x ( N T , 1 ) .Math. .Math. x ( 1 , N Z ) .Math. x ( N T , N Z ) ] - 1 [ y ( 1 ) .Math. y ( N Z ) ] ( 6 )

(41) The initial estimate of h(i.sub.T, i.sub.Y) (herein {tilde over (h)}(i.sub.T, i.sub.Y, 1)), where i.sub.Y represents the representative time (e.g. in the middle of the block of the channel training symbols) for the corresponding channel training symbol period, is defined as:
{tilde over (h)}(i.sub.T,i.sub.Y,1)={tilde over (g)}(i.sub.T,1)(7)

(42) The initial estimation of {tilde over (h)}(i.sub.T, i.sub.Z, 1), is obtained by interpolating or extrapolating {tilde over (h)}(i.sub.T, i.sub.Y, 1) obtained at two or more frames.

(43) As the constant part of the channel is assumed to be equal to 1, the re-estimate of the time varying part of the single tap channel coefficients (i.e. {tilde over (f)}(i.sub.T, i.sub.Z, 2)) is:
{tilde over (f)}(i.sub.T,i.sub.Z,2)={tilde over (h)}(i.sub.T,i.sub.Z,1)(8)

(44) The updated second estimate of w(i.sub.T, i.sub.Z) (i.e. {tilde over (w)}(i.sub.T, i.sub.Z, 2)) is defined as:
{tilde over (w)}(i.sub.T,i.sub.Z,2)={tilde over (f)}(i.sub.T,i.sub.Z,2)x(i.sub.T,i.sub.Z)(9)

(45) The update of the estimation of g(i.sub.T) can be further performed by:

(46) [ g ~ ( 1 , 2 ) .Math. g ~ ( N T , 2 ) ] = [ w ~ ( 1 , 1 , 2 ) .Math. w ~ ( N T , 1 , 2 ) .Math. .Math. w ~ ( 1 , N Z , 2 ) .Math. w ~ ( N T , N Z , 2 ) ] - 1 [ y ( 1 ) .Math. y ( N Z ) ] ( 10 )

(47) The process can be performed iteratively until the results converge, or until a specified number of iteration is reached.

(48) The process can be also performed in frequency domain. In particular, the Fourier transform of the received symbols can be given by

(49) Y ( i F ) = .Math. i Z = 1 N Z y ( i Z ) e - j 2 ( i Z - 1 ) ( i F - 1 ) N Z = .Math. i T = 1 N T g ( i T ) W ( i T , i F ) + N ( i F ) ( 11 )
where i.sub.F=1, 2, . . . , N.sub.F and Y(i.sub.F) is the Fourier transform of y(i.sub.Z), W(i.sub.T, i.sub.F) is the Fourier transform off (i.sub.T, i.sub.Z)x(i.sub.T, i.sub.Z), and N(i.sub.F) is the Fourier transform of n(i.sub.Z).

(50) The above equation can be written in a matrix form as the following:

(51) [ Y ( 1 ) .Math. Y ( N F ) ] = [ W ( 1 , 1 ) .Math. W ( N T , 1 ) .Math. .Math. W ( 1 , N F ) .Math. W ( N T , N F ) ] [ g ( 1 ) .Math. g ( N T ) ] + [ N ( 1 ) .Math. N ( N F ) ] ( 12 )

(52) Again, the initial estimate of f(i.sub.T, i.sub.Z)(i.e. {tilde over (f)}(i.sub.T, i.sub.Z, 1)) is:
{tilde over (f)}(i.sub.T,i.sub.Z,1)=1(13)

(53) Then the initial estimate of W(i.sub.T, i.sub.F) (herein {tilde over (W)}(i.sub.T, i.sub.F, 1)) is given as the Fourier transform of:
{tilde over (w)}(i.sub.T,i.sub.Z,1)={tilde over (f)}(i.sub.T,i.sub.Z,1)x(i.sub.T,i.sub.Z)=x(i.sub.T,i.sub.Z)(14)

(54) Then the initial estimate of g(i.sub.T), {tilde over (g)}(i.sub.T, 1), can be obtained by:

(55) [ g ~ ( 1 , 1 ) .Math. g ~ ( N T , 1 ) ] = [ W ~ ( 1 , 1 , 1 ) .Math. W ~ ( N T , 1 , 1 ) .Math. .Math. W ~ ( 1 , N F , 1 ) .Math. W ~ ( N T , N F , 1 ) ] - 1 [ Y ( 1 ) .Math. Y ( N F ) ] = [ X ( 1 , 1 ) .Math. X ( N T , 1 ) .Math. .Math. X ( 1 , N F ) .Math. X ( N T , N F ) ] - 1 [ Y ( 1 ) .Math. Y ( N F ) ] ( 15 )

(56) A similar process to that which occurred in the time domain follows to obtain the next updated estimate of g(i.sub.T), namely {tilde over (g)}(i.sub.T,2). The process can be performed iteratively until the results converge, or until a specified number of iterations have been performed.

(57) Simulation

(58) A set of computer simulations were performed to demonstrate the effectiveness of the channel estimation method for a multi-transmitter time varying channel.

(59) As an example, the simulation was configured to use four transmitters and eight receivers to perform a 48 MIMO wireless transmission in a single carrier. The simulation was performed on the baseband. Independent and identically distributed (i.i.d.) Rayleigh frequency flat time varying fading channel model with the maximum Doppler frequency of 200 Hz was used as an example.

(60) Three channel estimation methods were compared: LTE-Advanced like time division multi-transmitter method denoted as TDMT channel estimation. IEEE 802.11ac like code division multi-transmitter channel estimation method denoted as CDMT channel estimation. Channel estimation using the current invention, denoted as iterative multi-transmitter (IMT) channel estimation.

(61) The channel training symbols for the above three methods are as follows: TDMT: [1 0 0 0] for transmitter 1, [0 1 0 0] for transmitter 2, [0 0 1 0] for transmitter 3, and [0 0 0 1] for transmitter 4. CDMT: [1 1 1 1] for transmitter 1, [1 1 1 1] for transmitter 2, [1 1 1 1] for transmitter 3, and [1 1 1 1] for transmitter 4. IMT: as shown in Table 1.

(62) TABLE-US-00001 TABLE 1 Example IMT channel training symbols for four transmitters. Symbol 1 Symbol 2 Symbol 3 Symbol 4 Real Imag Real Imag Real Imag Real Imag Transmitter 1 0.2555 0.6382 0.1588 0.4206 1.4437 0.1427 1.0909 0.3107 Transmitter 2 0.1879 0.5890 0.2478 0.6372 0.9254 0.6894 1.2218 0.6259 Transmitter 3 0.8532 0.6171 1.5072 0.2400 0.0315 0.7085 0.2419 0.2573 Transmitter 4 1.4181 0.3022 0.7898 0.6657 0.3256 0.1435 0.3590 0.8007

(63) The simulation process 400 is depicted in the block diagram shown in FIG. 4. In particular, an information bit generator module 410 for each of the four transmitters, Tx1 to Tx4, generates random binary information bits. A set of eight consecutive information bits from the output of the information bit generator module 410 is converted into one of 256 quadrature amplitude modulation (QAM) data symbols by a 256QAM mapper module 420. A set of twelve consecutive 256QAM data symbols are pre-fixed with four channel training symbols, generated by a channel training symbol generator 440, by a frame assembler module 430. The output of the frame assembler module 430 is fed into the baseband channel simulator module 450.

(64) As an example, a symbol duration of 72 s was chosen, which is similar to LTE-Advanced symbol duration. With sixteen symbols per frame, the duration of a frame is 1152 s in this example. The ratio of the number of channel training symbols to the number of data symbols in each frame is determined so that the channel coefficients can be estimated frequently enough to capture the temporal variation of the radio propagation channel. As a rule of thumb, the maximum Doppler frequency of 200 Hz requires the estimation of the channel at the rate corresponding to 400 Hz, which corresponds to the frame size of 1/400=2.5 ms. The chosen frame duration of 1152 s is expected to capture the temporal variation of the channel well.

(65) As previously mentioned, the channel simulator is configured to simulate four transmittereight receiver MIMO i.i.d. Rayleigh frequency flat time varying channel with the maximum Doppler frequency of 200 Hz. This maximum Doppler frequency corresponds to a movement of the transmitters Tx1-Tx4 at approximately 108 km/h at a carrier frequency of 2 GHz.

(66) At each of the eight receivers, the received stream of symbols are de-assembled by a frame de-assembler module 460 to extract the received symbols corresponding to the channel training symbols and data symbols. The channel training symbol part of the received symbols are sent to the channel estimation module 470 to estimate the channel at every data symbol time.

(67) For each channel estimation method, the same low pass filter based interpolation was used to derive channel coefficients at each data symbol and in the case of IMT, the channel coefficients at the channel training symbols. The low pass filter was designed so that The variation of the channel will not be blocked; Noise or channel estimation error components may be blocked; and The low pass filter amplitude decreases smoothly to zero at the two edges.

(68) For this example, the low pass filter, p(n), was defined as follows:

(69) p ( n ) = sin ( a ) a B 209 where a = n 16 - 6.5625
and n=1, . . . , 209. B.sub.209 is a 209-point symmetric 4-term Blackman-Harris window. FIG. 5 shows a plot of the low pass filter coefficients.

(70) The output of the channel estimation module 470 and the received symbols corresponding to the data symbol time are sent to zero-forcing (ZF) equaliser 480 to perform MIMO zero-forcing to produce estimated transmitted data symbols. The output of the ZF equaliser 480 is fed into a 256QAM de-mapper module 490 to convert each of the estimated 256QAM data symbols to corresponding binary bits. The original transmitted information bits are compared with the estimated information bits to determine the bit error probability at an information bit sink module 495. The absolute difference of the transmitted 256QAM data symbols and estimated 256QAM data symbols is known as the error vector magnitude (EVM).

(71) FIGS. 6 and 7 show the simulation results in terms of mean EVM and bit error probability, respectively, as a function of receiver signal to noise ratio (SNR). When the effects of receiver noise are larger than the variation of the channel during the four channel training symbol time (say the receiver SNR range from 10 dB to 15 dB), both the CDMT and IMT outperforming the TDMT method. This is due to CDMT and IMT using four channel training symbols to reduce the effects of receiver noise (i.e. processing gain) compared to TDMT which uses only one channel training symbol per transmitter. While the performance of TDMT may be improved by allowing a higher power during the transmission of the channel training symbols, such method would incur extra constraints in such a component as a power amplifier and may not be practical.

(72) As the receiver SNR increases, the effects of channel time variation surpasses the effects of receiver noise and CDMT cannot take advantage of the higher receiver SNR and performance saturation is observed. The performance of both TDMT and IMT improves as the receiver SNR improves, with IMT outperforming TDMT by approximately 4 dB. Higher performance improvements are expected in relation to IMT when a larger number of transmitters are involved due to a larger number of channel training symbols per frame being required.

(73) The above-described method is applicable to a system with multiple transmitters co-located or distributed, or a set of transmitters with a single local oscillator or multiple local oscillators.

(74) Referring to FIG. 9 there is shown a system diagram of a system 900 utilising the multi-transmitter channel estimation method discussed above. In particular the system 900 includes a plurality of trasmitters (Tx1 . . . TxN, collectively referred to as 910) and a plurality of receivers (Rx1 . . . RxN, collectively referred to as 920). Each transmitter Tx transmits in the same frequency as the remaining transmitters. The system 900 can include a multi-transmitter device 905 including the plurality of transmitters 910 and a multi-receiver device 915 which includes the plurality of receivers 920. Each receiver Rx is configured to perform the method as described above. In particular, each receiver Rx can be configured to: (a) wirelessly receive at least two frames, each frame including a block of training symbols received at different points in time for a time-varying channel; (b) estimate, for each block at a block location, a first channel coefficient of the time-varying channel, wherein the block location is the same for each block; and (c) interpolate or extrapolate a plurality of second channel coefficients for the respective training symbols of each block based on the respective first channel coefficient.

(75) In one particular embodiment, each receiver Rx may be a USRP (Universal Software Radio Peripheral) device available from National Instruments.

(76) It will be appreciated that as the method may be implemented by a software defined radio device, computer executable instructions may be stored in memory of the software defined radio device. In particular, the software defined radio device can include a non-transitory computer readable medium including executable instructions which, when executed by a processor of the software defined radio device, configure the software defined radio device to: (a) wirelessly receive at least two frames, each frame including a block of training symbols received at different points in time for a time-varying channel; (b) estimate, for each block at a block location, a first channel coefficient of the time-varying channel, wherein the block location is the same for each block; and (c) interpolate or extrapolate a plurality of second channel coefficients for the respective training symbols of each block based on the respective first channel coefficient. In certain embodiments, the software defined radio device is further configured by execution of the executable instructions to: (d) re-estimate the first channel coefficient for each block based on the plurality of second channel coefficients for each block; and (e) re-estimate the plurality of second channel coefficients for each block by interpolation or extrapolation using the respective first channel coefficient. Furthermore, the software defined radio device is further configured by execution of the executable instructions to: (f) iteratively perform steps (d) and (e) until the respective plurality of second channel coefficients for each block have converged, or until a specified number of iterations are reached. In certain embodiments, a first channel coefficient for each block is estimated in step (b) as being constant throughout the reception of the respective block. In certain embodiments, the software defined radio device performs the method in a time domain or a frequency domain.

(77) FIGS. 8a and 8b collectively form a schematic block diagram of a general purpose electronic device 801 including embedded components, in which a channel estimation processing module may be implemented. The channel estimation processing module may alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions of the channel estimation processing module. Such dedicated hardware may include graphic processors, digital signal processors, or one or more microprocessors and associated memories.

(78) As seen in FIG. 8a, the electronic device 801 comprises an embedded controller 802. Accordingly, the electronic device 801 may be referred to as an embedded device. In the present example, the controller 802 has a processing unit (or processor) 805 which is bi-directionally coupled to an internal storage module 809. The storage module 809 may be formed from non-volatile semiconductor read only memory (ROM) 860 and semiconductor random access memory (RAM) 870, as seen in FIG. 8b. The RAM 870 may be volatile, non-volatile or a combination of volatile and non-volatile memory.

(79) As seen in FIG. 8a, the electronic device 801 also comprises a portable memory interface 806, which is coupled to the processor 805 via a connection 819. The portable memory interface 806 allows a complementary portable memory device 825 to be coupled to the electronic device 801 to act as a source or destination of data or to supplement the internal storage module 809. Examples of such interfaces permit coupling with portable memory devices such as Universal Serial Bus (USB) memory devices, Secure Digital (SD) cards, Personal Computer Memory Card International Association (PCMIA) cards, optical disks and magnetic disks.

(80) The electronic device 801 also has a communications interface 808 to permit coupling of the electronic device 801 to a computer or communications network 820 via a connection 821. The connection 821 may be wired or wireless. For example, the connection 821 may be radio frequency or optical. An example of a wired connection includes Ethernet. Further, an example of wireless connection includes Bluetooth type local interconnection, Wi-Fi (including protocols based on the standards of the IEEE 802.11 family), Infrared Data Association (IrDa) and the like.

(81) The method of FIGS. 1A and 1B may be implemented as one or more software application programs 833 executable within the embedded controller 802. In particular, with reference to FIG. 8b, the steps of the described method are effected by instructions in the software 833 that are carried out within the embedded controller 802. The software instructions may be formed as one or more code modules, each for performing one or more particular tasks.

(82) The software 833 of the embedded controller 802 is typically stored in the non-volatile ROM 860 of the internal storage module 809. The software 833 stored in the ROM 860 can be updated when required from a computer readable medium. The software 833 can be loaded into and executed by the processor 805. In some instances, the processor 805 may execute software instructions that are located in RAM 870. Software instructions may be loaded into the RAM 870 by the processor 805 initiating a copy of one or more code modules from ROM 860 into RAM 870. Alternatively, the software instructions of one or more code modules may be pre-installed in a non-volatile region of RAM 870 by a manufacturer. After one or more code modules have been located in RAM 870, the processor 805 may execute software instructions of the one or more code modules.

(83) The application program 833 is typically pre-installed and stored in the ROM 860 by a manufacturer, prior to distribution of the electronic device 801. However, in some instances, the application programs 833 may be supplied to the user encoded on one or more computer readable storage media 825 and read via the portable memory interface 806 of FIG. 8a prior to storage in the internal storage module 809. In another alternative, the software application program 833 may be read by the processor 805 from the network 820. Computer readable storage media refers to any non-transitory, tangible storage medium that participates in providing instructions and/or data to the embedded controller 802 for execution and/or processing. Examples of such storage media include floppy disks, magnetic tape, CD-ROM, a hard disk drive, a ROM or integrated circuit, USB memory, a magneto-optical disk, flash memory, or a computer readable card such as a PCMCIA card and the like, whether or not such devices are internal or external of the electronic device 801. Examples of computer readable transmission media that may also participate in the provision of software, application programs, instructions and/or data to the electronic device 801 include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like. A computer readable medium having such software or computer program recorded on it is a computer program product.

(84) FIG. 8b illustrates in detail the embedded controller 802 having the processor 805 for executing the application programs 833 and the internal storage 809. The internal storage 809 comprises read only memory (ROM) 860 and random access memory (RAM) 870. The processor 805 is able to execute the application programs 833 stored in one or both of the connected memories 860 and 870. When the electronic device 801 is initially powered up, a system program resident in the ROM 860 is executed. The application program 833 permanently stored in the ROM 860 is sometimes referred to as firmware. Execution of the firmware by the processor 805 may fulfil various functions, including processor management, memory management, device management, storage management and user interface.

(85) The processor 805 typically includes a number of functional modules including a control unit (CU) 851, an arithmetic logic unit (ALU) 852 and a local or internal memory comprising a set of registers 854 which typically contain atomic data elements 856, 857, along with internal buffer or cache memory 855. One or more internal buses 859 interconnect these functional modules. The processor 805 typically also has one or more interfaces 858 for communicating with external devices via system bus 881, using a connection 861.

(86) The application program 833 includes a sequence of instructions 862 though 863 that may include conditional branch and loop instructions. The program 833 may also include data, which is used in execution of the program 833. This data may be stored as part of the instruction or in a separate location 864 within the ROM 860 or RAM 870.

(87) In general, the processor 805 is given a set of instructions, which are executed therein. This set of instructions may be organised into blocks, which perform specific tasks or handle specific events that occur in the electronic device 801. Typically, the application program 833 waits for events and subsequently executes the block of code associated with that event. Events may be triggered in response to input from a user, via the user input devices 813 of FIG. 8a, as detected by the processor 805. Events may also be triggered in response to other sensors and interfaces in the electronic device 801.

(88) The execution of a set of the instructions may require numeric variables to be read and modified. Such numeric variables are stored in the RAM 870. The disclosed method uses input variables 871 that are stored in known locations 872, 873 in the memory 870. The input variables 871 are processed to produce output variables 877 that are stored in known locations 878, 879 in the memory 870. Intermediate variables 874 may be stored in additional memory locations in locations 875, 876 of the memory 870. Alternatively, some intermediate variables may only exist in the registers 854 of the processor 805.

(89) The execution of a sequence of instructions is achieved in the processor 805 by repeated application of a fetch-execute cycle. The control unit 851 of the processor 805 maintains a register called the program counter, which contains the address in ROM 860 or RAM 870 of the next instruction to be executed. At the start of the fetch execute cycle, the contents of the memory address indexed by the program counter is loaded into the control unit 851. The instruction thus loaded controls the subsequent operation of the processor 805, causing for example, data to be loaded from ROM memory 860 into processor registers 854, the contents of a register to be arithmetically combined with the contents of another register the contents of a register to be written to the location stored in another register and so on. At the end of the fetch execute cycle the program counter is updated to point to the next instruction in the system program code. Depending on the instruction just executed this may involve incrementing the address contained in the program counter or loading the program counter with a new address in order to achieve a branch operation.

(90) Each step or sub-process in the method of FIGS. 1a and 1b is associated with one or more segments of the application program 833, and is performed by repeated execution of a fetch-execute cycle in the processor 805 or similar programmatic operation of other independent processor blocks in the electronic device 801.

(91) The arrangements described are applicable to the wireless communication industries.

(92) In one form, the time-varying channel can be a narrowband communication channel of a mobile environment. For example, the narrowband communication channel can have a carrier frequency of 1 GHz or less. In another form, the narrowband communication channel can have a bandwidth of 25 KHz or less. In another example, the narrowband communication channel can have a carrier frequency of 1 GHz or less and a bandwidth of 25 KHz or less.

(93) Alternatively, the time-varying channel can be a narrowband communication channel of a mobile environment with other characteristics. For example, the time-varying channel can be a narrowband communication channel of a mobile environment having a carrier frequency greater than 1 GHz. In another form, the time-varying channel can be a narrowband communication channel of a mobile environment having a bandwidth of more than 25 KHz. In another form, the time-varying channel can be a narrowband communication channel of a mobile environment having a carrier frequency greater than 1 GHz and a bandwidth of more than 25 KHz.

(94) In a further alternative, the time-varying channel can be a wideband communication channel of a mobile environment.

(95) Many modifications will be apparent to those skilled in the art without departing from the scope of the present invention.