# Patent

## Title
Transmitter and receiver tracking techniques for user devices in a MIMO network

## Abstract

A technique includes (i) receiving a first pilot signal from a base station via a receiver of a client device, or (ii) transmitting a second pilot signal from the client device to the base station via a transmitter of the client device. First time differences and signal quality values for N samples of N respective packets in the first pilot signal are determined. Second time differences and signal quality values are received via the receiver. The second time differences and signal quality values are generated for M samples of M respective packets in the second pilot signal. An offset value is determined based on (i) the first time differences and signal quality values, or (ii) the second time differences and signal quality values. Activation or deactivation times of the receiver or the transmitter or transmission times of the transmitter are adjusted based on the offset value.

## Background
FIELD
The present disclosure relates to multiple input multiple output (MIMO) networks, and more particularly to transmission and reception of timing of signals in a MIMO network.
BACKGROUND
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
A wireless MIMO network may include one or more base stations and numerous client devices, such as cellular phones, computers, notepads, tablets, personal data assistants and other mobile devices. In a wireless MIMO network, time division multiple access (TDMA) based medium access control is used. TDMA allows multiple client devices to share the same frequency channel by allocating respective time slots to each of the client devices. A base station may control time slot allocation of the client devices. Each of the client devices exchanges data with the base station in the time slots allocated for that client device.
Since the client devices are mobile and thus move between locations, distances between the base station and the client devices changes, as well as characteristics of transmission mediums between the base station and the client devices. The characteristics of the transmission mediums may include, for example, signal attenuation and interference. As a result, signal quality (or signal strength) can be negatively affected due to propagation advances and/or delays of signals transmitted between the base station and the client devices.
SUMMARY
A computer-implemented technique of tuning at least one of a receiver and a transmitter of a client device is provided. The technique includes at least one of (i) receiving a first pilot signal from a base station via the receiver of the client device, and (ii) transmitting a second pilot signal from the client device to the base station via the transmitter of the client device. The technique may include determining, via one of a physical layer device (PHY) and a medium access controller (MAC) of the client device, first time differences and first signal quality values for N samples of N respective packets in the first pilot signal, where N is an integer greater than 1. The technique may include receiving second time differences and second signal quality values from the base station via the receiver of the client device. The second time differences and second signal quality values are generated for M samples of M respective packets in the second pilot signal at the base station, where M is an integer greater than 1.
The technique further includes comparing each of the first time differences or the second time differences to a preselected amount of time in one of the PHY and the MAC. For each of the first time differences or the second time differences that is less than or equal to the preselected amount of time, a complex number is generated based on (i) the corresponding first time difference or second time difference, and (ii) one of the first signal quality values and second signal quality values. The complex numbers are weighted with respective ones of the first signal quality values or second signal quality values. An offset value is determined based on the weighted complex numbers via one of the PHY and the MAC. The technique further includes adjusting, via the PHY and based on the offset value, at least one of (i) an activation time or a deactivation time of the receiver of the client device, and (ii) a transmission time, an activation time or a deactivation time of the transmitter of the client device.
In other features, a computer-implemented technique is provided for tuning at least one of a receiver and a transmitter of a client device. The technique includes at least one of (i) receiving a first pilot signal from a base station via the receiver of the client device, and (ii) transmitting a second pilot signal from the client device to the base station via the transmitter of the client device. The technique may include determining, via one of a PHY and a MAC of the client device, first time differences and first signal quality values for N samples of N respective packets in the first pilot signal, where N is an integer greater than 1.
The technique may further include receiving second time differences and second signal quality values from the base station via the receiver of the client device. The second time differences and second signal quality values are generated for M samples of M respective packets in the second pilot signal at the base station, where M is an integer greater than 1. An offset value is determined, via one of the PHY and the MAC, based on (i) the first time differences and the first signal quality values, or (ii) the second time differences and the second signal quality values. The technique further includes adjusting, via the PHY and based on the offset value, at least one of (i) an activation time or a deactivation time of the receiver of the client device, and (ii) a transmission time, an activation time or a deactivation time of the transmitter of the client device.
In other features, a computer-implemented technique of tuning at least one of a receiver and a transmitter of a client device is provided. The technique includes receiving a pilot signal from the client device via a receiver of a base station. The pilot signal is sampled to determine receive times for N samples of N respective packets in the pilot signal via the receiver of the base station, where N is an integer greater than 1. The technique further includes determining, via one of a physical layer device (PHY) and a medium access controller (MAC), parameters including (i) time differences between the receive times and respective predetermined allocation times for each of the N samples, and (ii) determining a signal quality value for each of the N samples using one of the PHY and the MAC. The signal quality values are determined signal strengths of the pilot signal. The parameters are transmitted to the client device to adjust at least one of (i) activation times or deactivation times of a receiver of the client device, and (ii) transmission times, activation times or deactivation times of the transmitter of the client device.
In other features, a computer-implemented method of tuning a receiver of a client device is provided. The method includes receiving a pilot signal from a base station via the receiver of the client device. Time differences and signal quality values are determined, via one of a physical layer device (PHY) and a medium access controller (MAC) of the client device, for N samples of N respective packets in the pilot signal, where N is an integer greater than 1. An offset value is determined, via one of the PHY and the MAC, based on the time differences and the signal quality values. The method further includes adjusting, via the PHY and based on the offset value, an activation time or a deactivation time of the receiver of the client device.
In other features, a computer-implemented method of tuning a transmitter of a client device is provided. The method includes transmitting a pilot signal from the client device to a base station via the transmitter of the client device. Time differences and signal quality values are received from the base station via the receiver of the client device. The time differences and signal quality values are generated for M samples of M respective packets in the pilot signal at the base station, where M is an integer greater than 1. An offset value is determined, via one of the PHY and the MAC, based on the time differences and the signal quality values. The method further includes adjusting, via the PHY and based on the offset value, at least one of a transmission time, an activation time or a deactivation time of the transmitter of the client device.
In other features, a computer-implemented method of tuning a receiver of a client device is provided. The method includes receiving a pilot signal from the client device via a receiver of a base station. The pilot signal is sampled to determine receive times for N samples of N respective packets in the pilot signal via the receiver of the base station, where N is an integer greater than 1. The method further includes determining, via one of a physical layer device (PHY) and a medium access controller (MAC), parameters including: (i) time differences between the receive times and respective predetermined allocation times for each of the N samples; and (ii) determining a signal quality value for each of the N samples using one of the PHY and the MAC. The signal quality values are determined signal strengths of the pilot signal. The parameters are transmitted to the client device to adjust activation times or deactivation times of the receiver of the client device.
In other features, a computer-implemented method of tuning a transmitter of a client device is provided. The method includes receiving a pilot signal from the client device via a receiver of a base station. The pilot signal is sampled to determine receive times for N samples of N respective packets in the pilot signal via the receiver of the base station, where N is an integer greater than 1. The method further includes determining, via one of a physical layer device (PHY) and a medium access controller (MAC), parameters including: (i) time differences between the receive times and respective predetermined allocation times for each of the N samples; and (ii) determining a signal quality value for each of the N samples using one of the PHY and the MAC. The signal quality values are determined signal strengths of the pilot signal. The parameters are transmitted to the client device to adjust transmission times, activation times or deactivation times of the transmitter of the client device.
Further areas of applicability of the present disclosure will become apparent from the detailed description, the claims and the drawings. The detailed description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the disclosure.



BRIEF DESCRIPTION OF DRAWINGS
The present disclosure will become more fully understood from the detailed description and the accompanying drawings, wherein:
FIG. 1 is a functional block diagram of a wireless MIMO network in accordance with the present disclosure;
FIG. 2 is a functional block diagram of a portion of the wireless MIMO network of FIG. 1;
FIG. 3 is a functional block diagram of a base station tracking module in accordance with the present disclosure; and
FIG. 4 is a functional block diagram of a client tracking module in accordance with the present disclosure;
FIG. 5 is a flow chart of a signal timing technique including client receiver tuning in accordance with the present disclosure; and
FIG. 6 is a flow chart of a signal timing technique including client receiver and transmitter tuning in accordance with the present disclosure.



DESCRIPTION
In FIG. 1, a functional block diagram of a wireless MIMO network 10 is shown. The wireless MIMO network 10 includes one or more base stations (one base station 12 is shown) and multiple client devices 14. The base station 12 and the client devices 14 operate to adjust activation and deactivation times of receivers and transmitters of the client devices 14. This includes adjusting reception and transmission timing of the client devices 14. Examples of receivers and transmitters of a client device are shown in FIG. 2.
The base station 12 and the client devices 14 operate to adjust activation and deactivation timing of the receivers of the client devices 14, transmission timing of the transmitters of the client devices 14, and activation and deactivation timing of the transmitters of the client devices 14. As an example, when a client device moves away from a base station, a propagation delay may be introduced and/or the transmission medium between the client device and the base station may change. To compensate for the propagation delay, transmission times and reception times of the client device may be adjusted. For example, the transmitter of the client device may transmit earlier to account for the introduced propagation delay such that the transmitted signal arrives at the base station at an appropriate time. Activation of the receiver of the client device may be delayed to account for the increased time for a signal to be transmitted from the base station to the client device. This prevents the receiver from being activated too early and conserves power by minimizing the amount of time the receiver is activated.
Transmitter and receiver timing of the client devices 14 are adjusted for compound signals transmitted from the client devices 14 to the base station 12 and transmitted from the base station 12 to the client devices 14. The compound signals may be time division multiple access (TDMA) signals. Each of the compound signals may include a data signal (e.g., user data signal) and a pilot (or reference) signal. The compound signals may also be transmitted between the base station 12 and the client devices 14 in television (TV) whitespace at, for example, 600-800 MHz or at other whitespace or signal transmission frequencies and/or frequency ranges. The other signal transmission frequency ranges may be suitable for transmission of TDMA signals in a MIMO network between a base station and client devices.
The base station 12 and each of the client devices 14 may be spread spectrum devices that transmit signals to each other using one or more antennas and receive via respective wideband receivers. The base station 12 may transmit using multiple antennas to communicate with one or more of the client devices 14 at the same time. Each of the client devices 14 may communicate using one or more antennas. Signals transmitted between the base station 12 and the client devices 14 may be transmitted over available TV whitespace frequencies (or available TDMA frequencies), which is referred to as a channel. The channel may include all available and/or selected TV whitespace frequencies unused by TV broadcast providers. The base station 12 and each of the client devices 14 may communicate with each other via the channel using all or a subset of the frequencies assigned to the channel. The same data (or content) may not be transmitted over each of the assigned frequencies, but rather may be spread across the assigned frequencies and transmitted from the base station 12 and received by each of the client devices 14. Each of the client devices 14 may transmit data over the assigned frequencies to the base station 12.
The base station (BS) 12 includes a BS tracking module 16 that divides transmission time allocated to the client devices 14 into frames. Each of the frames may have, for example, 32 slots. Each of the slots may have, for example, 64 symbols. Each of the symbols may have a symbol period of, for example, 17 microseconds. Half of the symbols (or 32 of the 64 symbols) are used for uplink signals transmitted from the client devices to the base station. The other half of the symbols (other 32 of the 64 symbols) are used for downlink signals transmitted from the BS 12 to the client devices 14.
To maintain each of the client devices in a “client active” state, two symbols (identified as static symbols) may be allocated for each of the client devices 14. The first static symbol is used for uplink transmissions. The second static symbol is used for downlink transmission. This allows each of the client devices 14 to access a channel shared by the client devices 14 at least once per frame.
The BS tracking module 16 tracks compound signals transmitted from each of the client devices 14 to the BS 12 to determine parameters associated with these compound signals. The BS tracking module 16 may also track parameters associated with compound signals transmitted from the BS 12 to the client devices 14. The parameters of the compound signals transmitted between the BS 12 and the client devices 14 may include, for example, arrival times, time differences, and signal quality values. The arrival times are times that compound signals are received and sampled at the BS 12 and/or at the client devices 14. The time differences are differences between the arrival times and respective allocated times of the client devices 14 and/or differences between the arrival times and one or more previous adjustment time(s). These and other parameters are tracked by the BS tracking module 16 and described in further detail below.
The BS tracking module 16 may perform client receiver and/or client transmitter tuning based on the parameters. This may include transmitting a pilot signal, a parameters signal, a control signal or other signal(s) to the client devices 14 and/or receiving a pilot signal and/or parameters from the client devices 14. The pilot signals may be transmitted at carrier frequencies and modulated with the respective data signals. The pilot signals may be used as reference signals by the BS 12 to determine any of the parameters disclosed herein.
The client devices 14 may be mobile devices or stationary devices. Each of the client devices 14 includes a client tracking module 18. Each of the client tracking modules 18 monitors compound signals transmitted from the BS 12 to a respective one of the client devices 14 to determine parameters associated with these compound signals. The parameters may include, for example, the arrival times, time differences, and signal quality values mentioned above and/or other parameters described below. Each of the client tracking modules 18 may perform client receiver tuning based on pilot signals, parameter signals, timing signals, and/or other signals received from the BS 12.
The networks disclosed herein may each be identified as a system. For example, the wireless MIMO network 10 may be identified respectively as a wireless MIMO system.
In FIG. 2, a portion 30 of the wireless MIMO network 10 is shown. The portion 30 includes the BS 12 and one of the client devices 14. The BS 12 includes a BS control module 32, a medium access controller (MAC) 34 and a physical layer device (PHY) 36. The BS control module 32 may generate packets in the form of data signals (e.g., user data signals) to be transmitted to the client device 14 and receive other data signals from the client device 14 via the BS MAC 34 and BS PHY 36. The BS MAC 34 may include the BS tracking module 16 and a BS packet handling module 38. The BS tracking module 16 may generate BS pilot signals to be combined with data signals and transmitted as compound signals to the client device 14. The BS tracking module 16 may also track parameters disclosed herein and perform client receiver and/or transmitter tuning as disclosed below.
The BS packet handling module 38 may perform signal conditioning, prepare packets for transmission on a medium or over a medium and/or network between the BS 12 and the client device 14, and/or prepare packets received from the client device 14 for the BS tracking module 16. The BS PHY 36 may include hardware, such as a BS transmitter 40 and a BS receiver 42.
The client device 14 includes a client control module 44, a client MAC 46 and a client PHY 48. The client control module 44 may generate packets in the form of data signals to be transmitted to the client device 14 and receive other data signals from the client device 14 via the client MAC 46 and client PHY 48. The client MAC 46 may include the client tracking module 18 and a client packet handling module 50. The client tracking module 18 may generate client pilot signals to be combined with data signals and transmitted as compound signals to the BS 12. The client tracking module 18 may also track parameters disclosed herein and perform client receiver and transmitter tuning as disclosed below.
The client packet handling module 50 may perform signal conditioning, prepare packets for transmission on the medium or over a network between the BS 12 and the client device 14, and/or prepare packets received from the base station for the client tracking module 18. The client PHY 48 may include hardware, such as a client transmitter 52 and a client receiver 54.
Although the BS tracking module 16 is shown in the BS MAC 34, the BS tracking module 16 and/or one or more module(s) of the BS tracking module 16 may alternatively be included in the BS PHY 36. Similarly, although the client tracking module 18 is shown in the client MAC 46, the client tracking module 18 and/or one or more module(s) of the client tracking module 18 may alternatively be included in the client PHY 48.
Referring now also to FIGS. 3-4, the BS tracking module 16 and the client tracking module 18 are shown. The BS tracking module 16 may include a BS pilot generating module 100, a BS sample timing module 102, and a BS memory 104. The client tracking module 18 may include a client sampling module 106, a client propagation module 108, a client difference module 110, a client signal quality module 112, a client weight module 114, a client complex number module 116, a client summation module 118, an client offset module 120, a client receiver timing module 122, a client time adjustment module 124, and a client memory 126.
Although the BS memory 104 is shown as being included in the BS tracking module 16, the BS memory 104 may be included in the BS control module 32, the BS MAC 34, and/or the BS PHY 36. The BS memory 104 may be separate from the BS 12, the BS tracking module 16, the BS control module 32, the BS MAC 34 and/or the BS PHY 36 and accessed accordingly. Also, although the client memory 126 is shown as being included in the client tracking module 18, the client memory 126 may be included in the client control module 44, the client MAC 46, and/or the client PHY 48. The client memory 126 may be separate from the client device 14, the client tracking module 18, the client control module 44, the client MAC 46 and/or the client PHY 48 and accessed accordingly.
The above-described wireless MIMO network 10 may be operated using numerous techniques, example techniques (or computer-implemented methods or algorithms) are provided in FIGS. 5 and 6. In FIG. 5, a signal timing technique including client receiver tuning is shown. Although the following tasks are primarily described with respect to the implementations of FIGS. 1-4, the tasks may be easily modified to apply to other implementations of the present disclosure. The tasks may be iteratively performed. Any of the values used and/or determined in the following tasks may be stored in the client memory 126 and/or accessed by any of the modules and devices of the client device 14. The technique may begin at 200.
At 202, the BS 12 may generate a compound signal COMPBS including a data signal and a pilot signal PilotBS with corresponding packets via the BS tracking module 16, the BS control module 32 and the BS pilot generating module 100. The BS tracking module 16 may combine the data signal and the pilot signal PilotBS to form the compound signal COMPBS. At 204, the compound signal COMPBS is transmitted from the BS 12 to the client device 14.
At 206, the client sampling module 106, the client MAC 46 and/or the client PHY 48 may receive and sample the compound signal COMPBS to generate a sample at each of times t1-tn (referred to as arrival or receive times t1-tn), where n is the total number of samples (i.e. signals or packets). The client sampling module 106, the client MAC 46 and/or the client PHY 48 may sample the compound signal COMPBS based on a preselected amount of time T. The preselected amount of time T may be equal to a period of a frame (e.g., 40 milliseconds (ms)). The preselected amount of time T may be set by, for example, the BS sample timing module 102 and transmitted to the client device 14. The preselected amount of time T may be included in the pilot signal PilotBS and/or stored in the client memory 126.
At 208, the client propagation module 108, the client MAC 46 and/or the client PHY 48 compares the sample times t1-tn to predetermined or allocated times tA1-tAn to generate time differences D1-Dn, where n is the number of arrival times or samples. The allocated times tA1-tAn are times allocated to the client device 14 by the BS 12 for uplink and downlink of signals between the client device 14 and the BS 12. The client propagation module 108 may store or have access to a reference pilot signal and compare the reference pilot signal to the pilot signal PilotBS to determine the time differences D1-Dn. The time differences D1-Dn may be equal to or based on differences (i) between the sample times t1-tn and a predetermined time PREDCD and/or (ii) between the sample times t1-tn and respective ones of allocated times tA1-tAn. The predetermined time PREDCD may be provided to compare each of the sample times t1-tn to the same predetermined or reference time. The allocated times tA1-tAn may be stored in the client memory 126 and/or received from the BS 12, for example, in the data signal or pilot signal PilotBS.
The time differences D1-Dn may alternatively be equal to or based on differences (i) between each of the sample times t1-tn and a previous adjustment time PACD or (ii) between each of the sample times t1-tn and a respective one of the last adjustment times t1-tX, where X is an integer that may be equal to the number of samples n. The previous adjustment time PACD identifies a time when an offset value OSCD was most recently determined by the client offset module 120 and/or a time when receiver activation or deactivation timing was adjusted based on the offset value OSCD. Each of the last adjustment times t1-tX may: be equal to the previous adjustment time PACD; identify a time when the offset value OSCD was most recently determined relative to a corresponding one of the sample times t1-tn; and/or identify a last time when receiver activation or deactivation timing was adjusted based on the offset value OS relative to one of the sample times t1-tn. Other example offset values are provided below on which the last adjustment times t1-tX may be determined.
At 210, the client difference module 110, the client MAC 46 and/or the client PHY 48 may determine which of the time differences D1-Dn for each of the samples satisfy a predetermined criterion. For example, the client difference module 110, the client MAC 46 and/or the client PHY 48 may determine which of the time differences D1-Dn are less than or equal to the preselected amount of time T, which is defined above. The client difference module 110, the client MAC 46 and/or the client PHY 48 may determine whether a current sample time t (one of the sample times t1-tn) satisfies one or more of equations 1-3.

tX−t≦T  (1)

PACD−t≦T  (2)

PREDCD−t≦T  (3)

The time differences D1-Dn that satisfy equation 1 are represented as time differences DX1-DXn. The time differences DX1-DXn are a subset of the time differences D1-Dn.

At 212, the client complex number module 116, the client MAC 46 and/or the client PHY 48 determines complex numbers C1-Cn based on the time differences DX1-DXn. The complex numbers C1-Cn may be represented by equation 4, where i is equal to √{square root over (−1)}, and each one of the complex numbers C1-Cn has a real part (e.g., cos(DX1)) and an imaginary part (e.g., i·sin(DX1)).

C1, . . . ,Cn=cos(DX1)+i·sin(DX1), . . . ,cos(DXn)+i·sin(DXn)  (4)

At 214, the client signal quality module 112, the client MAC 46 and/or the client PHY 48 determines signal strengths (or quality) values S1-Sn (referred to as weights) based on the pilot signal PilotBS. The signal quality values S1-Sn may be magnitudes that are equal to, proportional to, or determined as a function of signal-to-noise ratios (SNRs) (or signal-to-interference ratios (SIRs)) and a reduced bit error rates (BERs), or other signal quality characteristics of the pilot signal PilotBS. The client signal quality module 112, the client MAC 46 and/or the client PHY 48 may determine the signal quality characteristics.
At 216, the client weight module 114, the client MAC 46 and/or the client PHY 48 determines weighted values W1-Wn based on the complex numbers C1-Cn and the signal quality values S1-Sn. The weighted values W1-Wn may be represented by equation 5 and/or 6.

W1, . . . ,Wn=S1C1, . . . ,SnCn  (5)

W1, . . . ,Wn=S1[cos(DX1)+i·sin(DX1)], . . . ,Sn[cos(DXn)+i·sin(DXn)]  (6)

Samples with a larger (or better) signal quality value may be weighted more (larger weight value) than samples with a smaller signal quality value.

At 218, the client summation module 118, the client MAC 46 and/or the client PHY 48 determines a sum CS based on the weighted values W1-Wn. The sum CS may be represented by equation 7 and/or 8.

CS=W1+W2+ . . . +Wn  (7)

CS=S1[cos(DX1)+i·sin(DX1)]+ . . . +Sn[cos(DXn)+i·sin(DXn)]  (8)

When using equations 7 and 8, the cosine terms of the complex numbers may be summed to provide a cosine sum and the sine terms of the complex numbers may be summed to provide a sine sum. The sum CS may be equal to a sum of the cosine sum and the sine sum.

At 220, the client offset module 120, the client MAC 46 and/or the client PHY 48 determines a propagation advance period or a propagation delay period, which may be equal to the offset value OSCD. The offset value OSCD may be determined using equation 9, where K is a constant, which may be a predetermined value and/or set by a control module of the client device 14.

OSCD=K·arg(CS)  (9)

When using equation 9, the client offset module 120, the client MAC 46 and/or the client PHY 48 sets the offset value OSCD equal to the constant K multiplied by an argument of the sum CS.

At 222, the client receiver timing module 122, the client MAC 46 and/or the client PHY 48 may generate a receiver signal REC to adjust activation times and/or deactivation times of the client receiver 54 based on the offset value OSCD and/or one of the other parameters used to determine the offset value OSCD. The receiver signal REC may indicate the activation and/or deactivation times as receiver timing values 223. The activation and/or deactivation times of the client receiver 54 may be delayed or advanced from current activation and/or deactivation times by an amount of the offset value OSCD. This delays or advances periods and/or changes durations of the periods when the client receiver 54 is receiving signals from the BS 12. The receiver signal REC may be received by the client receiver 54, the client PHY 48, and/or a control module controlling power to the client receiver 54. The control module may be, for example, the client control module 44, a control module in the client MAC 46, the client PHY 48, or client receiver 54, or another control module.
At 224, the client time adjustment module 124, the client MAC 46 and/or the client PHY 48 determines the previous adjustment time PA or one of the last adjustment times t1-tX. The client time adjustment module 124, the client MAC 46 and/or the client PHY 48 may determine the times PA, t1-tX based on the offset value OSCD, the receive signal REC, and/or times when the offset value OSCD and/or the receive signal REC were last updated. The times PA, t1-tX may be set equal to a time when the offset signal OSCD and/or the receive signal REC were last updated. Each of the last adjustment times t1-tX may be set equal to a time when the offset value OSCD or the receive signal REC was last updated relative to a corresponding sample time t1-tn. This provides updated last adjustment times which may be used when determining subsequent time differences.
As described, the activation and/or deactivation timing of the client receiver 54 is adjusted based on and/or as a function of various parameters, such as the time differences D1-Dn, the time differences DX1-DXn, the complex numbers C1-Cn, the signal quality values S1-Sn, the weighted values W1-Wn, the sum CS and the offset value OSCD. This activation and deactivation timing adjustment may be performed by the client receiver 54 and/or client PHY 48, for example, during each frame, periodically, randomly, and/or every predetermined number of frames. The activation and deactivation timing adjustment delays or advances periods when the client receiver is turned ON (active) and is receiving signals from the BS 12.
At 226, the client MAC 46 and/or the client PHY 48 may determine whether another signal (e.g., compound signal) is received from the BS 12. The method may end at 228 or return to task 206 when another signal is received, as shown.
Referring now to FIGS. 3, 4 and 6, another signal timing technique including client receiver and transmitter tuning is shown. The BS tracking module 16 may further include a BS sampling module 250, a BS propagation module 252, a BS difference module 254, a BS signal quality module 256, a BS weight module 258, a BS complex number module 260, a BS summation module 262, a BS offset module 264, and a BS time adjustment module 266. The client tracking module 18 may further include a client pilot generating module 270 and a client transmitter timing module 272.
Although the following tasks are primarily described with respect to the implementations of FIGS. 1-4, the tasks may be easily modified to apply to other implementations of the present disclosure. The tasks may be iteratively performed. Any of the values used and/or determined in the following tasks may be stored in the memories 104, 126 and/or accessed by any of the modules and devices of the BS 12 and/or client device 14. The technique may begin at 300.
At 302, the client device 14 may generate a compound signal COMPCD including a data signal and a pilot signal PilotCD with corresponding packets via the client tracking module 18, client control module 44 and the client pilot generating module 270. The client tracking module 18 may combine the data signal and the pilot signal PilotCD to form the compound signal COMPCD. At 304, the compound signal COMPCD is transmitted from the client device 14 to the BS 12.
At 306, the BS sampling module 250, the BS MAC 34 and/or the BS PHY 36 may receive and sample the compound signal COMPCD to generate a sample at each of times t1-tm (referred to as arrival or receive times t1-tm), where m is the total number of samples (i.e. signals or packets). The BS sampling module 250, the BS MAC 34 and/or the BS PHY 36 may sample the compound signal COMPCD based on the preselected amount of time T, which is defined above. The preselected amount of time T may be set by, for example, the BS sample timing module 102. The preselected amount of time T may be stored in the BS memory 104.
At 308, the BS propagation module 252, the BS MAC 34 and/or the BS PHY 36 compares the sample times t1-tm to predetermined or allocated times tA1-tAm to generate time differences D1-Dm, where m is the number of arrival times or samples. The client propagation module 108 may store or have access to a reference pilot signal and compare the reference pilot signal to the pilot signal PilotBS to determine the time differences D1-Dn. The time differences D1-Dm may be equal to or based on differences (i) between the sample times t1-tm and a predetermined time PREDBS and/or (ii) between the sample times t1-tm and respective ones of allocated times tA1-tAm. The predetermined time PREDBS may be provided to compare each of the sample times t1-tm to the same predetermined or reference time. The allocated times tA1-tAm may be stored in the BS memory 104. The allocated times tA1-tAm are times allocated to the client device 14 by the BS 12 for uplink and downlink of signals between the client device 14 and the BS 12.
The time differences D1-Dm may alternatively be equal to or based on differences (i) between each of the sample times t1-tm and a previous adjustment time PABS or (ii) between each of the sample times t1-tm and a respective one of last adjustment times t1-tY, where Y is an integer that may be equal to the number of samples m. The previous adjustment time PABS identifies a time when an offset value OSBS was most recently determined by the BS 12. Each of the last adjustment times t1-tY may: be equal to the previous adjustment time PABS; and/or identify a time when the offset value OSBS was most recently determined relative to a corresponding one of the sample times t1-tm.
At 310, the BS difference module 254, the BS MAC 34 and/or the BS PHY 36 may determine which of the time differences D1-Dm for each of the samples satisfy a predetermined criterion. For example, the BS difference module 254, the BS MAC 34 and/or the BS PHY 36 may determine which of the time differences D1-Dm are less than or equal to the preselected amount of time T, which is defined above. The BS difference module 254, the BS MAC 34 and/or the BS PHY 36 may determine whether a current sample time t (one of the sample times t1-tm) satisfies one or more of equations 10-12.

tY−t≦T  (10)

PABS−t≦T  (11)

PREDBS−t≦T  (12)

The time differences D1-Dm that satisfy equation 1 are represented as time differences DY1-DYm. The time differences DY1-DYm are a subset of the time differences D1-Dm.

At 312, the BS complex number module 260, the BS MAC 34 and/or the BS PHY 36 determines complex numbers C1-Cm based on the time differences DY1-DYm. The complex numbers C1-Cm may be represented by equation 13, where i is equal to √{square root over (−1)}, and each one of the complex numbers C1-Cm has a real part (e.g., cos(DY1)) and an imaginary part (e.g., i·sin(DY1)).

C1, . . . ,Cm=cos(DY1)+i·sin(DY1), . . . ,cos(DYm)+i·sin(DYm)  (13)

At 314, the BS signal quality module 256, the BS MAC 34 and/or the BS PHY 36 determines signal strengths (or quality) values S1-Sn (referred to as weights) based on the pilot signal PilotCD. The signal quality values S1-Sn may be magnitudes that are equal to, proportional to, or determined as a function of SNRs, BERs, SIRs, or other signal quality characteristics of the pilot signal PilotCD. The BS signal quality module 256, the BS MAC 34 and/or the BS PHY 36 may determine the signal quality characteristics.
At 316, the BS weight module 258, the BS MAC 34 and/or the BS PHY 36 determines weighted values W1-Wm based on the complex numbers C1-Cm and the signal quality values S1-Sm. The weighted values W1-Wm may be represented by equation 14 and/or 15.

W1, . . . ,Wm=S1C1, . . . ,SmCm  (14)

W1, . . . ,Wm=S1[cos(DY1)+i·sin(DY1)], . . . ,Sm[cos(DYm)+i·sin(DYm)]  (15)

Samples with a larger (or better) signal quality value may be weighted more (have a larger weight value) than samples with a smaller signal quality value.

At 318, the BS summation module 262, the BS MAC 34 and/or the BS PHY 36 determines a sum CS based on the weighted values W1-Wm. The sum CS may be represented by equation 16 and/or 17.

CS=W1+W2+ . . . +Wm  (16)

CS=S1[cos(DY1)+i·sin(DY1)]+ . . . +Sm[cos(DYm)+i·sin(DYm)]  (17)

When using equations 16 and 17, the cosine terms of the complex numbers may be summed to provide a cosine sum and the sine terms of the complex numbers may be summed to provide a sine sum. The sum CS may be equal to a sum of the cosine sum and the sine sum.

At 320, the BS offset module 264, the BS MAC 34 and/or the BS PHY 36 determines a propagation advance period or a propagation delay period, which may be referred to as an offset value OSBS. The offset value OSBS may be determined using equation 18, where K is a constant, which may be a predetermined value and/or set by a control module of the BS 12.

OSBS=K·arg(CS)  (18)

When using equation 18, the BS offset module 264, the BS MAC 34 and/or the BS PHY 36 sets the offset value OSBS equal to the constant K multiplied by an argument of the sum CS.

At 322, the BS time adjustment module 266, the BS MAC 34 and/or the BS PHY 36 determines the previous adjustment time PABS or one of the last adjustment times t1-tY. The BS time adjustment module 266, the BS MAC 34 and/or the BS PHY 36 may determine the times PABS, t1-tY based on the offset value OSBS and/or times when the offset value OSBS was last updated. The times PABS, t1-tY may be set equal to a time when the offset value OSBS was last updated. Each of the last adjustment times t1-tY may be set equal to a time when the offset value OSBS was last updated relative to a corresponding one of the sample times t1-tm.
At 324, the above determined parameters, such as the receive times t1-tm, the time differences D1-Dm, time differences DY1-DYm, the complex numbers C1-Cm, the signal quality values S1-Sm, the weighted values W1-Wm, the offset value OSBS, the previous adjustment time PABS, and/or the last adjustment times t1-tY may be indicated in a data field of the compound signal COMPBS, the data signal, and/or the pilot signal PilotBS and transmitted to the client device 14.
The BS 12 may also or alternatively send static symbols in each frame transmitted to the client device 14 to provide the client device with adjustment values(s) to adjust: the receiver activation and/or deactivation times of the client receiver 54; transmission times of the client transmitter 52; and/or transmitter activation and/or deactivation times of the client transmitter 52. In this manner, the BS 12 may instruct the client device 14 to perform receiver and/or transmitter tuning. The BS tracking module 16 may compute the adjustment value(s) when a static symbol to be transmitted to the client device 14 is generated. Upon receiving packets with the adjustment amount(s), the client device 14 tunes the client receiver 54 and/or client transmitter 52 accordingly, as described below.
At 326, the client sampling module 106, the client receiver 54, the client MAC 46 and/or the client PHY 48 may receive the compound signal COMPBS and/or the static symbols. At 327, the client MAC 46 and/or the client PHY 48 may perform the method of FIG. 5 and/or the following tasks based on the parameters provided in the compound signal COMPBS and/or based on the static symbols. This may include determining an offset value (e.g., the offset value OSCD or OSBS) based on the parameters provided at 326. The offset value may be determined as described above based on and/or as a function of: the parameters received from the BS 12 at the client device 14; times that packets of the compound signal COMPBS having the parameters and/or signal quality values arrive at the client device 14; a stored previous adjustment time PA (e.g., one of the previous adjustment times PACD, PABS); and/or the preselected amount of time T. The previous adjustment time PA may identify: a time when an offset value was most recently determined; a time when client receiver activation and/or deactivation times were last adjusted; a time when transmission timing and/or client transmitter activation and/or deactivation times were last adjusted. The previous adjustment time PA and the preselected amount of time T may be determined by the BS 12 and transmitted to the client device 14 or may be determined by and/or stored in the client device 14.
At 328, the client receiver timing module 122, the client MAC 46 and/or the client PHY 48 may generate the receiver signal REC to adjust receiver activation times and/or receiver deactivation times of the client receiver 54 based on one or more of the parameters provided in the compound signal COMPBS and/or based on the static symbols. The receiver signal REC may indicate the activation and/or deactivation times as the receiver timing values 223. The activation and/or deactivation times of the client receiver 54 may be delayed or advanced from current activation and/or deactivation times by an amount of the offset value determined at 327. This delays or advances periods and/or changes durations of the periods when the client receiver 54 is receiving signals from the BS 12. The receiver signal REC may be received by the client receiver 54, the client PHY 48, and/or a control module controlling power to the client receiver 54. The control module may be, for example, the client control module 44, a control module in the client MAC 46, the client PHY 48, or client receiver 54, or another control module.
At 330, the client transmitter timing module 272, the client MAC 46 and/or the client PHY 48 may generate a transmitter signal TRAN to adjust transmission times, an activation time and/or deactivation time of the client transmitter 52 based on one or more of the parameters provided in the compound signal COMPBS. The transmitter signal TRAN may indicate the transmission times, transmitter activation time and/or transmitter deactivation time as transmitter timing values 331. The transmission times, activation times and/or deactivation times of the client transmitter 52 may be delayed or advanced from current respective times by an amount of the offset value determined at 327. This delays or advances periods and/or changes durations of the periods when the client transmitter is transmitting signals to the BS 12.
The adjustment in transmission times, activation times and/or deactivation times may be performed by the client transmitter 52 and/or client PHY 48, for example, during each frame, periodically, randomly, and/or every predetermined number of frames. The transmitter signal TRAN may be received by the client transmitter 52, the PHY 48, and/or a control module controlling power to the client transmitter 52. The control module may be, for example, the client control module 44, a control module in the client MAC 46, the client PHY 48, or client transmitter 52, or another control module.
At 332, the client time adjustment module 124, the client MAC 46 and/or the client PHY 48 determines the previous adjustment time PACD) or one of the last adjustment times t1-tX. The client time adjustment module 124, the client MAC 46 and/or the client PHY 48 may determine the times PA, t1-tX based on the offset signal determined at 327, the receiver signal REC, the transmitter signal TRAN, and/or times when the offset value, the receiver signal REC and/or the transmitter signal TRAN were last updated. The times PA, t1-tX may be set equal to a time when the offset value, the receiver signal REC and/or the transmitter signal TRAN were last updated. Each of the last adjustment times t1-tX may be set equal to a time when the offset signal, the receive signal REC and/or the transmitter signal TRAN was last updated relative to a corresponding sample time t1-tn. This provides updated last adjustment times which may be used when determining subsequent time differences.
At 334, the BS MAC 34 and/or the BS PHY 36 may determine whether another signal is received from the client device 14. The method may end at 336 or return to task 306 when another signal is received, as shown.
The above-described tasks of FIGS. 5 and 6 are meant to be illustrative examples; the tasks may be performed sequentially, synchronously, simultaneously, continuously, during overlapping time periods or in a different order depending upon the application. Also, any of the tasks may not be performed or skipped depending on the implementation and/or sequence of events.
Further in the above described tasks of FIGS. 5 and 6, the client device 14 may request additional symbols (or time allocated for the client device 14 in each frame) and/or allocated time slots. The client device 14 may transmit the request to the BS 12 and receive a response signal from the BS 12 identifying the allocated symbols and/or time slots. The client device 14 may then, using the above techniques, determine the offset value OSCD based on parameters associated with samples of signals transmitted at times of the additional symbols and/or allocated time slots.
The techniques described herein account for propagation advances and/or delays to maximize signal strength. This may include providing an improved SNR, SIR, and/or BER. The techniques disclosed include tuning a client receiver and a client transmitter. Tuning the client receiver includes adjusting activation and deactivation timing of the receiver. Tuning the client transmitter includes adjusting transmission timing of the transmitter. This improves signal quality and reliability for signals transmitted between a client device and a BS.
Example embodiments are provided so that this disclosure will be thorough, and will fully convey the scope to those who are skilled in the art. Numerous specific details are set forth such as examples of specific components, devices, and methods, to provide a thorough understanding of embodiments of the present disclosure. It will be apparent to those skilled in the art that specific details need not be employed, that example embodiments may be embodied in many different forms and that neither should be construed to limit the scope of the disclosure. In some example embodiments, well-known procedures, well-known device structures, and well-known technologies are not described in detail.
The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular forms “a,” “an,” and “the” may be intended to include the plural forms as well, unless the context clearly indicates otherwise. The term “and/or” includes any and all combinations of one or more of the associated listed items. The terms “comprises,” “comprising,” “including,” and “having,” are inclusive and therefore specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. The method steps, processes, and operations described herein are not to be construed as necessarily requiring their performance in the particular order discussed or illustrated, unless specifically identified as an order of performance. It is also to be understood that additional or alternative steps may be employed.
Although the terms first, second, third, etc. may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not be limited by these terms. These terms may be only used to distinguish one element, component, region, layer or section from another region, layer or section. Terms such as “first,” “second,” and other numerical terms when used herein do not imply a sequence or order unless clearly indicated by the context. Thus, a first element, component, region, layer or section discussed below could be termed a second element, component, region, layer or section without departing from the teachings of the example embodiments.
As used herein, the term module may refer to, be part of, or include: an Application Specific Integrated Circuit (ASIC); an electronic circuit; a combinational logic circuit; a field programmable gate array (FPGA); a processor or a distributed network of processors (shared, dedicated, or grouped) and storage in networked clusters or datacenters that executes code or a process; other suitable components that provide the described functionality; or a combination of some or all of the above, such as in a system-on-chip. The term module may also include memory (shared, dedicated, or grouped) that stores code executed by the one or more processors.
The term code, as used above, may include software, firmware, byte-code and/or microcode, and may refer to programs, routines, functions, classes, and/or objects. The term shared, as used above, means that some or all code from multiple modules may be executed using a single (shared) processor. In addition, some or all code from multiple modules may be stored by a single (shared) memory. The term group, as used above, means that some or all code from a single module may be executed using a group of processors. In addition, some or all code from a single module may be stored using a group of memories.
The techniques described herein may be implemented by one or more computer programs executed by one or more processors. The computer programs include processor-executable instructions that are stored on a non-transitory tangible computer readable medium. The computer programs may also include stored data. Non-limiting examples of the non-transitory tangible computer readable medium are nonvolatile memory, magnetic storage, and optical storage.
Some portions of the above description present the techniques described herein in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. These operations, while described functionally or logically, are understood to be implemented by computer programs. Furthermore, it has also proven convenient at times to refer to these arrangements of operations as modules or by functional names, without loss of generality.
Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Certain aspects of the described techniques include process steps and instructions described herein in the form of an algorithm. It should be noted that the described process steps and instructions could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by real time network operating systems.
The present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored on a computer readable medium that can be accessed by the computer. Such a computer program may be stored in a tangible computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus. Furthermore, the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
The algorithms and operations presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may also be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatuses to perform the required method steps. The required structure for a variety of these systems will be apparent to those of skill in the art, along with equivalent variations. In addition, the present disclosure is not described with reference to any particular programming language. It is appreciated that a variety of programming languages may be used to implement the teachings of the present disclosure as described herein, and any references to specific languages are provided for disclosure of enablement and best mode of the present invention.
The present disclosure is well suited to a wide variety of computer network systems over numerous topologies. Within this field, the configuration and management of large networks comprise storage devices and computers that are communicatively coupled to dissimilar computers and storage devices over a network, such as the Internet.
The foregoing description of the embodiments has been provided for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure. Individual elements or features of a particular embodiment are generally not limited to that particular embodiment, but, where applicable, are interchangeable and can be used in a selected embodiment, even if not specifically shown or described. The same may also be varied in many ways. Such variations are not to be regarded as a departure from the disclosure, and all such modifications are intended to be included within the scope of the disclosure.

## Claims

1. A computer-implemented method of tuning at least one of a receiver and a transmitter of a client device, the method comprising:
at least one of (i) receiving a first pilot signal from a base station via the receiver of the client device, and (ii) transmitting a second pilot signal from the client device to the base station via the transmitter of the client device;
at least one of:
(i) determining, via one of a physical layer device (PHY) and a medium access controller (MAC) of the client device, first time differences and first signal quality values for N samples of N respective packets in the first pilot signal, where N is an integer greater than 1; and
(ii) receiving second time differences and second signal quality values from the base station via the receiver of the client device, wherein the second time differences and second signal quality values are generated for M samples of M respective packets in the second pilot signal at the base station, where M is an integer greater than 1;

comparing each of the first time differences or the second time differences to a preselected amount of time in one of the PHY and the MAC;
for each of the first time differences or the second time differences that is less than or equal to the preselected amount of time, generating a complex number based on (i) the corresponding first time difference or second time difference, and (ii) one of the first signal quality values and second signal quality values;
weighting the complex numbers with respective ones of the first signal quality values or second signal quality values;
determining, via one of the PHY and the MAC, an offset value based on the weighted complex numbers; and
adjusting, via the PHY and based on the offset value, at least one of:
(i) an activation time or a deactivation time of the receiver of the client device; and
(ii) a transmission time, an activation time, or a deactivation time of the transmitter of the client device.

2. A computer-implemented method of tuning a receiver of a client device, the method comprising:
receiving a pilot signal from a base station via the receiver of the client device;
sampling the pilot signal to determine receive times for N samples via the receiver of N respective packets in the pilot signal, where N is an integer greater than 1;
determining, via one of a PHY and a MAC of the client device, time differences between the receive times and respective predetermined times of the client device for each of the N samples;
comparing each of the time differences to a preselected amount of time in one of the PHY and the MAC;
determining signal quality values for each of the N samples using one of the PHY and the MAC based on the comparisons of the time differences, wherein the signal quality values are determined signal strengths of the pilot signal;
for each of the N samples, when the one of the time differences is less than or equal to a preselected amount of time, generating a complex number based on (i) one of the time differences, and (ii) one of the signal quality values;
weighting the complex numbers with respective ones of the signal quality values;
summing the complex numbers to generate a sum;
determining an offset value based on an argument of the sum; and
adjusting, via the PHY and based on the offset value, an activation time or a deactivation time of the receiver of the client device.

3. The computer-implemented method of claim 2, further comprising:
receiving a static symbol from the base station; and determining the offset value based on the static symbol.

4. The computer-implemented method of claim 2, further comprising receiving a compound signal from the base station, wherein:
the compound signal includes a data signal and the pilot signal, wherein the data signal includes user data, and wherein the pilot signal is transmitted at a carrier frequency and modulated with respect to the data signal; and the compound signal is transmitted in television whitespace and is a time division multiplexed signal.

5. The computer-implemented method of claim 4, further comprising determining the offset value based on parameters, wherein:
the parameters are determined by the base station; and the compound signal includes fields identifying the parameters.

6. The computer-implemented method of claim 2, further comprising:
transmitting a request for additional symbols or allocated time slots from the client device to the base station; and determining the offset value based on parameters associated with samples of signals transmitted at times of the additional symbols or allocated time slots.

7. A computer-implemented method of tuning a transmitter of a client device, the method comprising: transmitting a pilot signal from the client device to a base station via the transmitter of the client device;
generating time differences for M samples of M respective packets in the pilot signal where M is an integer greater than 1, based on arrival times of the M packets in the pilot signal at the base station and corresponding predetermined allocation times of the client device;
comparing each of the time differences to a preselected amount of time in one of a PHY and a MAC of a client device;
determining signal quality values based on the comparisons of the time differences, wherein the signal quality values are determined signal strengths of the pilot signal;
for each of the M samples, when the one of the time differences is less than or equal to a preselected amount of time, generating a complex number based on (i) one of the time differences, and (ii) one of the signal quality values;
weighting the complex numbers with respective ones of the signal quality values;
summing the complex numbers to generate a sum;
determining an offset value based on an argument of the sum; and
adjusting, via the PHY and based on the offset value, at least one of a transmission time, an activation time, or a deactivation time of the transmitter of the client device.

8. The computer-implemented method of claim 7, further comprising: receiving a static symbol from the base station; and determining the offset value based on the static symbol.

9. The computer-implemented method of claim 7, further comprising
receiving a compound signal from the base station, wherein: the compound signal includes a data signal and the pilot signal, wherein the data signal includes user data, and wherein the pilot signal is transmitted at a carrier frequency and modulated with respect to the data signal; and the compound signal is transmitted in television whitespace and is a time division multiplexed signal.

10. The computer-implemented method of claim 9, further comprising determining the offset value based on parameters, wherein: the parameters are determined by the base station; and the compound signal includes fields identifying the parameters.

11. The computer-implemented method of claim 7, further comprising: transmitting a request for additional symbols or allocated time slots from the client device to the base station; and determining the offset value based on parameters associated with samples of signals transmitted at times of the additional symbols or allocated time slots.