On Tue, 2007-11-27 at 16:35 +0100, Stefano Brivio wrote: > On Mon, 26 Nov 2007 22:30:05 +0100 > Mattias Nissler <mattias.nissler@xxxxxx> wrote: > > > This changes rc80211_simple failed frame percentage estimation to use an > > exponential moving average method. Failed frames percentage is sampled > > over time and a smoothed average is computed. This average is examined > > periodically and the rate adjusted eventually. > > This can be seen as a particular example of a PID controller [1]. It's > actually a PI controller, with no derivative terms in it. It could be > interesting to implement a regular PID controller. > > This is clearly a MIMO model, with the setpoints being a reasonable value > of TX failures and the highest achievable rate, the process input being the > bitrate and the process output being TX failures and successes; and > obviously, the big issue being the implementation without floating-point. > Thus, with some tuning, you could probably get a very good rate control > algorithm. Good point, I'm not too familiar with control theory, but I'll do some homework :-) However, maybe you can answer some questions: Is it sensible to preprocess (i.e. calculate a smoothed average) the input data for a PID controller? If so, should we compute a time average or just average over the last N frames? Note that the rates (or actually modulations) are not a continuous entity, but we only have a limited set of choices. Normally, the PID would output a value from some continuous range. What are good ways to map the PID controller output to a rate? Mattias - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html