Feedback plays the central role in control theory, enabling systems to react to unpredictable control and disturbance signals. In contrast, many coding systems are designed to operate open-loop. In part this stems from Shannon's result that feedback does not increase the capacity of a stationary discrete memoryless channel. However, in modern communication systems, channels are not always stationary, and can have service demands that are much easier to satisfy when feedback is available. In this talk we describe how to use feedback to select our decoding time "opportunistically" to adapt to unpredictable or unfortunate channel behaviors.
We first discuss how feedback can be used to adapt the rate of communication to unpredictable time-varying channel conditions. Such channel variations might result from fading or from dynamic interference environments such as would occur in a cognitive radio network. Incremental redundancy or "fountain" codes find a natural application in this setting. We demonstrate how these codes can be considered as an instance of an adaptive coding strategy for a class of arbitrarily varying channels with feedback.
We then describe how feedback can be used to better meet tight application-layer service demands such as hard delay constraints that require short block lengths. Such constraints might arise in the context of streaming media or control-over-network applications. It is well known that, in comparison with feedback-free codes, with feedback we can achieve a target reliability (error probability) in a much reduced average transmission time. In this talk we examine how much feedback is required to realize such improvements. We propose a novel joint channel-code and hash-function design that allows us to tradeoff feedback rate and reliability; transitioning smoothly from the "Forney" reliability at zero-rate (but not zero) feedback to the best-possible "Burnashev" reliability at a higher rate.
We will also comment on how opportunistic decoding ideas find application in the context of distributed source coding.