Patent ID: 7292665

Claim:
A method for receiving data transmitted over a digital transmission link at a receiver unit, comprising: representing an encoded symbol stream by a plurality of sample streams, wherein each of the plurality of sample streams is generated by oversampling the encoded symbol stream by an integer factor of L according to a phase that is different for each of the plurality of sample streams such that each sample stream includes L samples to represent each associated symbol sampled from the encoded symbol stream; detecting a symbol from each of the sample streams separately and without using samples from the other sample streams by comparing samples among each of the associated sample streams in an observation window of sample length W to patterns in a table of detection patterns, wherein W is greater than or equal to L, and wherein the patterns in the table of detection patterns are at least as long as the observation window, such that a symbol is detected from each and every one of the sample streams to represent an associated symbol from the encoded symbol stream; assigning a detection metric to each symbol detected from each of the plurality of sample streams on a per symbol basis according to an estimated level of reliability of each detected symbol, wherein the assigning of a detection metric to each symbol detected proceeds according to the patterns in the table of detection patterns; delaying each of the detected symbols from the plurality of sample streams with a variable delay buffer; determining which one of the detected symbols detected from each of the plurality of sample streams is a most reliable symbol based at least in part on the associated detection metrics assigned to the symbols detected from the sample streams; selecting the most reliable symbol to represent an associated symbol from the encoded symbol stream; determining if the selected symbol crosses a symbol boundary of the associated symbol from the symbol stream based on a difference in phase between the selected symbol and a previous selected symbol, and if so, adjusting a delay length of the variable delay buffer to manage the boundary crossing, and if not, not adjusting the variable delay buffer; and receiving the selected symbol at the receiver unit.