A method for detecting a data sequence from a sequence of symbols backscattered by an RFID tag, where the sequence of symbols includes unknown timing variations and unknown phase variations introduced by instability in the RFID backscatter process, and unknown data values, comprising: sampling multiple samples during each of the received symbols; estimating data values for short sequences of consecutive symbols that are most likely to have occurred based upon the samples, where for estimating the data values the duration of each symbol and the phase of each symbol are assumed fixed during each short sequence and are assumed varying between the short sequences due to the instability in the RFID backscatter process; determining a sequence of bits by combining the estimates of short sequences of data values for consecutive symbols; and outputting the sequence of bits as the detected data sequence; wherein estimating data values for short sequences of consecutive symbols is based upon samples selected based upon a chosen fixed number of samples per symbol; and characterized by determining the most likely estimate of the short sequence of consecutive symbols by varying the chosen fixed number of samples per symbol; wherein estimating the data values of the short sequence of consecutive symbols further comprises: applying matched filters with a length determined based upon the chosen fixed number of samples per symbol to the selected samples; and estimating the data values of the short sequence of consecutive symbols based upon the matched filter outputs by determining the following: d ^ k, d ^ k - 1,..., d ^ k - N = arg max d k, d k - 1,..., d k - N + 2 ⁢ r 2, k - N + 1 - r 1, k - N + 2 + ∑ i = k - N + 3 k + 1 r 2, i - 1 - r 1, i ∏ j = k - N + 2 i - 1 d j where N is the number of symbols in the short sequence of consecutive symbols, d k denotes the k th decoded bit and r 1,h, r 2,h are matched filter outputs for the first and second halves of the h th symbol. sampling multiple samples during each of the received symbols; estimating data values for short sequences of consecutive symbols that are most likely to have occurred based upon the samples, where for estimating the data values the duration of each symbol and the phase of each symbol are assumed fixed during each short sequence and are assumed varying between the short sequences due to the instability in the RFID backscatter process; determining a sequence of bits by combining the estimates of short sequences of data values for consecutive symbols; and outputting the sequence of bits as the detected data sequence; wherein estimating data values for short sequences of consecutive symbols is based upon samples selected based upon a chosen fixed number of samples per symbol; and characterized by determining the most likely estimate of the short sequence of consecutive symbols by varying the chosen fixed number of samples per symbol; wherein estimating the data values of the short sequence of consecutive symbols further comprises: applying matched filters with a length determined based upon the chosen fixed number of samples per symbol to the selected samples; and estimating the data values of the short sequence of consecutive symbols based upon the matched filter outputs by determining the following: d ^ k, d ^ k - 1,..., d ^ k - N = arg max d k, d k - 1,..., d k - N + 2 ⁢ r 2, k - N + 1 - r 1, k - N + 2 + ∑ i = k - N + 3 k + 1 r 2, i - 1 - r 1, i ∏ j = k - N + 2 i - 1 d j where N is the number of symbols in the short sequence of consecutive symbols, d k denotes the k th decoded bit and r 1,h, r 2,h are matched filter outputs for the first and second halves of the h th symbol. applying matched filters with a length determined based upon the chosen fixed number of samples per symbol to the selected samples; and estimating the data values of the short sequence of consecutive symbols based upon the matched filter outputs by determining the following: d ^ k, d ^ k - 1,..., d ^ k - N = arg max d k, d k - 1,..., d k - N + 2 ⁢ r 2, k - N + 1 - r 1, k - N + 2 + ∑ i = k - N + 3 k + 1 r 2, i - 1 - r 1, i ∏ j = k - N + 2 i - 1 d j where N is the number of symbols in the short sequence of consecutive symbols, d k denotes the k th decoded bit and r 1,h, r 2,h are matched filter outputs for the first and second halves of the h th symbol.