The invention will become more fully understood from the following detailed description, taken in conjunction with the accompanying drawings, wherein like reference numerals refer to like elements, in which:
In accordance with an exemplary embodiment, Open Loop filtering refers to the process of one node filtering/estimating link parameters directly from receptions from another node. Referring now to
Referring now to
Both the Open and Closed loops have advantages and disadvantages, but these are usually synergistic to each other. The advantage that the Open Loop has over the Closed Loop is the potential for more frequent filter updates and lower latency. The disadvantage of the Open Loop is that the channel is not always symmetrical for bi-directional transmission between the two nodes. Since Open Loop measurements are made in only the receiving direction, the assumption of symmetry has to be made when adjusting transmission parameters in the opposite direction. The propagation channel is often considered (Suzuki process) to have two basic components, a short-term fading component that is often represented well in urban environments by a Rayleigh distribution, and a long-term fading component due to shadowing that is represented by a lognormal process (Ricean/lognormal for extended Suzuki). The long-term fading is generally assumed to be symmetrical in either direction between two communicating nodes; however, the short-term fading phenomena can be significantly asymmetrical when the properties and placement of physical objects that scatter and absorb the RF energy are considered. In addition, the receiving hardware may differ between the two nodes which can also cause measurement asymmetry.
Although the Open Loop may fall short in estimating asymmetrical channel metrics, the potentially much greater observation rate as compared to the Closed Loop makes it the preferred estimation filter when the node or channel is very dynamic. This is because motion allows the filter to remove much of the potentially asymmetrical fast-fading effects and estimate the long-term, more symmetric effects such as free space loss and shadowing.
The Closed Loop on the other hand may be preferred when the node is less dynamic or static. Since the loop latency (interval between monitor packets) becomes less of a factor in this case, and since the Closed Loop does communicate asymmetrical effects back to the transmitting node, it may be favored when the node and/or channel dynamics are small.
The Hybrid function of the Link Adaption process manages and selects measurements from the two loops. Referring to the top graph of
The Closed Loop, however, should always be selected when it indicates that a more robust state is needed. This is because only the Closed Loop can indicate to the peer node that a jammer is nearby.
According to an exemplary embodiment, Tables may be used to define Link Adaption “States” and to define the behavior of the Link Adaption algorithms. This method has several advantages. The advantages include, but are not limited to:
Independence from Hardware
Configurable and loaded at initialization
State Transition Table can “drive” Link Adaption towards different goals. These goals may include:
Referring now to
The general format of the State Transition table is depicted in
State Number
Transmit Power
Diversity Level
Diversity Type (ex. Codeword or Repetition)
FEC Rate
Modulation Type
Frequency Spreading Rate (OFDM)
In addition according to an exemplary embodiment, each state may have 4 thresholds 610, 620, 630 and 640, as depicted in
In accordance with an exemplary implementation (see
In accordance with an exemplary embodiment, another function of the State Transition process is to compute the State Stability Indicator. This indicator may be a single number in the range 0-100 which serves as a figure-of-merit with 100 being the most stable (the furthest away from the next state change). The number may be a function of:
The distance between each metric and the nearest state transition “trip point”
The metric variance
The time in state
The Stability Indicator may change from stable to less stable when the link is about to change to a less efficient (more robust) state, indicating a degradation in the link. However, the Stability Indicator should continue to indicate stability when the pending state change is to a more efficient state (indicating an improving link).
According to an exemplary embodiment, the MDL Link Adaption process contains or interacts with five functional units as illustrated in
The Signal in Space (SiS) 810 models the receiving hardware. In an exemplary embodiment the communication channel is modeled as independent combinations of Rayleigh and Ricean fading.
In this exemplary embodiment, Symbol Error Rate (SER) and Signal-to-Noise Ratio (SNR) for the communications channel is output as a function of received signal strength using ideal SER vs. SNR curves but may be replaced with alternative data or models. The Receiving hardware model currently calculates a Signal-to-noise-plus-interference-ratio (SNIR) from the incoming channel using the received signal strength relative to a configurable noise bandwidth, noise figure, and front-end loss. The Received Signal Strength Indicator (RSSI) may optionally be used as a metric.
The purpose of the Normalization 820 function is to remove discontinuities in the SNRs and SERs received in the Receive Message caused by a transmitting node using different power levels and different modulations from one message to the next. It may be necessary to remove these power “steps” in the measurements these effects which would otherwise appear as discontinuities to the Open Loop smoothing filter and would overwhelm the metrics actually being estimated.
Since a transmitting node can be communicating on several links, it is anticipated that it can be transmitting at many different power levels and using different modulations (for example 4-DPSK and 16-DPSK). It may therefore be necessary to normalize or remove these effects which would otherwise appear as discontinuities to the Open Loop filter and would overwhelm the metrics actually being estimated.
The Normalization function may be configured to execute on every Receive Message (Open Loop event trigger).
RMsg: Receive Message from the Receiving hardware plus the Transmitted Power from the transmission header. This message may contain the following parameters according to an exemplary embodiment:
(1) Transmitted Power: Power the message was transmitted at in dbm.
(2) RSSI: Received Signal Strength Indicator. In one embodiment these powers will be presented as the number of 2 db steps below the maximum hardware transmit power level in dbm.
(3) SNR: Signal to Noise plus Interference Ratio In one embodiment this number will be in 1 db increments from −10 to 50 db.
(4) SER: Symbol Error Rate. In one embodiment this number will be in a scaled fixed point representation.
(5) Mod_Type: The modulation type that was used (for Orthogonal Frequency Division Multiplexing [OFDM] this may be 4-DPSK or 16-DPSK).
(6) Div_Lvl: The diversity level used (which may be different than the Receiving hardware maximum diversity or the session diversity). This range will be from 1-5.
(7) Div_Type: The type of diversity being used. Currently this will be Codeword, Repetition, or none.
SNR_Div_Cmb: The method to be used for combining the SNRs from the Receiving hardware physical channels (up to 5). 0=Min Pick, 1-Max Pick, 2=Average. This value is set by the State Transition function.
SER_Div_Cmb: The method to be used for combining the SERs from the Receiving hardware physical channels (up to 5). 0=Min Pick, 1-Max Pick, 2=Average. This value is set by the State Transition function.
NSNR: The Normalized Signal to Noise Ratio output to the Open Loop filter. This value should have any discontinuities removed that were introduced by the transmitting node using different power levels in the received messages.
NSER: The Normalized Symbol Error Rate output to the Open Loop filter. This value should have any discontinuities removed that were introduced by the transmitting node using different power levels and different modulation types in the received messages.
The Normalization function may execute on every Open Loop event.
The Normalization function requires that an SER/SNR conversion table be loaded which is specific to the receiving hardware being instantiated. This table contains an SER vs. SNR curve for each modulation type used by the hardware. This table may have less than 30 points per curve and the values may be in scaled fixed point format compatible with values received from the receiving hardware. In order to normalize the Max, Min, or Average SER value (see Algorithms below) the SER value is matched to the nearest entry in the table pertaining to the type of modulation used (4 or 16-dpsk for OFDM in the example above). A corresponding SNR is then read from the table. It is important to note that after the Transmitted Power is subtracted from this value it may still be referred to as NSER, which is different than NSNR that is calculated directly from SNR.
In an exemplary embodiment, the Normalization function performs the following (see
1. Computes a Max Pick, Min Pick, or Average calculation as indicated on the SNR values (up to 5) received in the Receive Message from the receiving hardware. Max Pick, Min Pick, or Average calculation is determined by the value of SNR_Div_Cmb as set by the State Transition Function (0=Max, 1=Min, Avg).
2. Subtracts the Transmitted Power, as indicated in the received Transmission Header, from the Min, Max, or Average SNR.
3. Computes a Max Pick, Min Pick, or Average calculation on the SER values (up to 5) received in the Receive Message from the receiving hardware. Max Pick, Min Pick, or Average calculation is determined by the value of SER_Div_Cmb as set by the State Transition Function (0=Max, 1=Min, 2=Avg).
4. Computes an SER-to-SNR conversion on the Max, Min, or Average SER value using the receiving hardware SER/SNR conversion table loaded at initialization time and the Modulation Type as specified in the Receive Message.
The following is a pseudo code representation of the computations listed above and has been provided as exemplary, but should not be deemed as limiting.
In accordance with an exemplary embodiment, the Open Loop filtering function smoothes and estimates the mean, mean deviation, and rate (future) of the normalized link metrics. Its outputs are fed directly to the Hybrid function on the host node and are sent as Closed Loop inputs to the Hybrid function of the Peer node(s).
The Open Loop filter may consist of a first-order smoothing filter, a mean deviation calculator, and a rate-of-change calculator for both the normalized SNR and SER inputs from the Normalization function.
An exemplary algorithmic form of the first-order smoothing filter is:
Yout=Yprev+Gain*(Xin−Yprev)
The gains may be chosen as shifts of two and the filter may be implemented in fixed-point arithmetic.
In addition to the smoothing filter, each Open Loop subcomponent may include a mean deviation calculation of the form:
MDout=MDprev+Gain*(|Xin−Yprev|−MDprev)
Since the normalized SNR (NSNR) and normalized SER (NSER), as well as normalized RSSS may have substantial biases (inaccuracies that remain relatively constant over a period of time) it may be desirable to use the Rate-of-Change (hereafter rate) for some estimates in the future since the rate of change removes the effects of constant Biases. For example, to detect the presence of jamming we may compare the rate of the SNR in one direction and the rate of the RSSI in the other direction. In addition, should state transition forward propagation and/or prediction become necessary, the rate calculation could also be used in first-order extrapolations of the underlying metrics.
Although rate is optionally used, its calculation is included here for reference.
Rout=(Yout−Yprev)/(Current_Time−Last_Event_Time)
Although the rate calculator may be optionally used it still may be necessary for the Open Loop function to maintain a Last_Time stamp which is included in the Closed Loop monitor packets and used by the Hybrid function to determine Closed Loop validity with respect to loop dynamics (see Hybrid Function).
Exemplary inputs to the open loop filtering component may be:
F_NSNR: Filtered (smoothed) Normalized Signal-to-Noise Ratio (NSNR)
The Open Loop Filter may be run on each Open Loop event (received message from the receiving hardware).
NSNR_Gain: The Gain for the NSNR smoothing filter and mean deviation calculation. Typically this is a shift of two values such as (0.5, 0.25, 0.125) and should be included in the configurable items. In an exemplary embodiment that the same gain can be used for both smoothing and mean deviation calculation but for future flexibility it may be desirable to break this out into two separate gains.
Exemplary algorithms for the open loop filtering component may include:
Yout=Yprev+Gain*(Xin−Yprev)
Mean Deviation
MDout=MDprev+Gain*(|Xin−Yprev|−MDprev)
Rate-of-Change (optional)
Rout=(Yout−Yprev)/(Current_Time−Last_Event_Time)
The pseudo code provided below is exemplary and is not intended to restrict the scope of the claims.
The Hybrid Loop Management 840 function takes inputs from the Open Loop 830 (direct feed from Open Loop filter) and from the Closed Loop (as fed back from the peer node). The Closed Loop feedback is actually the last Open Loop output of the peer node prior to the monitor packet being sent.
Since the Closed Loop can have relative long intervals in between updates which are detrimental in a highly dynamic environment and the Open Loop can not effectively remove asymmetrical channels conditions in a static environment, the Hybrid attempts to optimize the synergistic outputs of these two loops to best match the current channel conditions.
Referring now to
Exemplary inputs to the Hybrid Loop Management function may include:
F_NSNR: Normalized and filtered SNR
MD_NSNR: Mean Deviation of NSNR
R_NSNR: Rate of Change of NSNR
F_NSER: Normalized and filtered SER
MD_NSER: Mean Deviation of NSER
R_NSER: Rate-of-change of NSER
Last_Time: Time Stamp of when the last observations was made (there may have been a period before the monitor packet was constructed whereas the filter did not make a measurement/observation)
Open Loop Metrics:
F_NSNR: Normalized and filtered SNR
MD_NSNR: Mean Deviation of NSNR
R_NSNR: Rate of Change of NSNR
F_NSER: Normalized and filtered SER
MD_NSER: Mean Deviation of NSER
R_NSER: Rate-of-change of NSER
Exemplary outputs from the Hybrid Loop Management function may include:
The Hybrid function operates on either an Open Loop or Closed Loop (monitor packet) event. However, if the idle monitoring function is utilized, it should be executed periodically even if a loop event has not occurred.
Exemplary initialization parameters for the Hybrid Loop Management function includes:
if (Current_Time−CL_Last_Time)>(CL_Latency_Factor/Variance);CL_valid=0; end
Max Idle Period: The maximum period allowed between filter updates (either Open or Closed Loop). When this period is exceeded the node may choose to send an emergency monitor packet which provides information to the peer node and request that a Closed Loop packet be returned.
Closed Loop Latch: The Closed Loop is always selected when its link metrics are tending towards a more robust state (metrics are indicating a degrading link). When the Closed Loop Latch configuration bit is selected, the Open Loop cannot be selected if its metrics would tend towards a less robust setting than was indicated by the last Closed Loop Update. When this bit is not set, the Open Loop can “drive” towards a less robust state after the Minimum Number of Observations per State (hysterisis) has been observed.
The pseudo code provided below is exemplary and is not intended to restrict the scope of the claims.
The State Transition function 850 receives metric outputs (e.g., normalized SNR and SER, and RSSI) from the Hybrid function and uses these metrics as “trip points” within a pre-loaded State Transition Table. In one exemplary embodiment, the State Transition Table controls the sensitivity, throughput vs. efficiency goals, and overall process behavior of link adaption process
Exemplary inputs to the State Transition function may include:
Exemplary outputs from the State Transition function may include:
FEC rate: As per receiving hardware
NOTE: The parameters above imply a Rate at the receiving hardware level—the receiving hardware is already configured with the allocated bandwidth. These parameters can therefore be combined into a single “Index” that is sent to the receiving hardware. Tx Power must still be called out separately.
TX_Pwr: Tx Power (dbm)
The State Transition function operates on either an Open Loop or Closed Loop event.
Exemplary initialization parameters for the State Transition function may include:
Bandwidth: Allocated channel bandwidth. Since actual power levels and margin numbers are specified in the State Transition Table it is necessary to scale these by the actual hardware bandwidth. It is possible to load a unique table for a given channel bandwidth, but is probably preferred to have the table scaled at initialization time.
Num_Deviations: The number of deviations to be added to the mean. This is currently specified for each state but should be considered as a general configuration parameter.
Exemplary algorithms for the State Transition function may include the following:
Stability Indicator Calculation
In accordance with an exemplary embodiment, if a Node is only receiving without transmitting data of it's own, the State Transition function should still be run on the Open Loop measurements and contention slots utilized to send emergency information packets to the transmitting node when the link is considered to be in jeopardy as reported by the State Transition function.
While the detailed drawings, specific examples and particular formulations given describe preferred and exemplary embodiments, they serve the purpose of illustration only. The inventions disclosed are not limited to the specific forms shown. For example, the methods may be performed in any of a variety of sequence of steps. The hardware and software configurations shown and described may differ depending on the chosen performance characteristics and physical characteristics of the computing devices. For example, the type of computing device, communications bus, or processor used may differ. The systems and methods depicted and described are not limited to the precise details and conditions disclosed. Furthermore, other substitutions, modifications, changes, and omissions may be made in the design, operating conditions, and arrangement of the exemplary embodiments without departing from the scope of the invention as expressed in the appended claims.
This application is related to U.S. Application Ser. No. ______ (Atty Dkt. No. 03CR418/KE) entitled HYBRID OPEN/CLOSED LOOP FILTERING FOR LINK QUALITY ESTIMATION which is filed the same day herewith.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US04/04918 | 2/19/2004 | WO | 00 | 8/18/2006 |