Patent Publication Number: US-8120466-B2

Title: Decoding scheme for RFID reader

Description:
FIELD OF THE INVENTION 
     The present invention is generally directed to the detection and interpretation of signals, such as Radio Frequency signals received from a Radio Frequency Identification (RFID) device. 
     BACKGROUND 
     The detection and accurate decoding of signals in noisy or interference filled surroundings has always been a difficult task. At the reader the level of a received signal can be very low due to the low energy encoding scheme used to encode the signal. This further frustrates the detection and accurate decoding of signals. 
     Many receivers, such as Radio Frequency Identification (RFID) receivers, perform a symbol-by-symbol correlation on a received signal. The receiver then typically applies a maximum-likelihood sequence detector (MLSD) to the correlation outputs for the detection of information (e.g., ID number, account number, PIN, site code, and any other type of data that may be transmitted to a receiver) from the received signal. In literature, the symbol-error probability performance of encoding schemes used are often not provided, and even when it is provided it is not always correct. Examples of such decoding schemes or methods are given in U.S. Pat. No. 5,916,315, U.S. Pat. No. 6,233,289, US2005269408 or US2007188305 wherein it take also the name of Viterbi detectors. Such schemes are used for active RFID transponders because of the active transponder&#39;s ability to generate a relatively strong signal as compared to passive transponders. Active transponders have this increased ability because a local power source, such as a battery, assists in the generation of a signal whereas passive transponders rely completely upon resonance. Thus, reading distance is lost in passive transponders since there is no ability to compensate for decoding scheme sensitivities by amplifying the signal with an internal power source. 
     A more general and robust technique is described into US20070096873, wherein indeed a set of predetermined probabilities of symbol-error probability performance is provided. More exactly these probabilities are calculated and permanently adapted in function of variables as data pulse, timing and baud rates which are affecting the quality of the received signal. Even if extremely robust and exact, such decoding schemes have the drawback to consume tremendous computing resources and performances. 
     SUMMARY 
     It is, therefore, one aspect of the present invention to provide a more robust signal decoding scheme, outperforming the classical performance (reading distance) of classical symbol detector (Viterbi), without consuming as much resources as high-end detectors (see US20070096873). It is also an aspect of the present invention to provide a reader that is capable of executing the improved decoding scheme. More specifically, standard receivers generally perform symbol-by-symbol correlation followed by application of an MLSD algorithm. The present invention, on the other hand, is capable of applying a number of different decoding schemes. 
     In accordance with at least one embodiment of the present invention, a method of operating an RFID reader to decode an encoded data signal from at least one RFID tag, the encoded data signal being a first-order Markov process sequence of symbols, is provided that generally comprises: 
     receiving the encoded data signal from the at least one RFID tag; 
     determining a correlation value for each candidate symbol at each symbol interval in the data signal; 
     determining a modified correlation value for each candidate symbol at each symbol interval in the data signal, wherein the modified correlation value is based on a set of predetermined probabilities that a symbol occurs after another symbol, and wherein the set of predetermined probabilities are time independent and based on logic of the encoding scheme used to encode the data signal; 
     identifying, for each candidate symbol at each symbol interval, an unique possible candidate value in the previous symbol interval; and 
     assembling a decoded symbol sequence with the identified symbol for each symbol interval. 
     In accordance with at least some embodiments of the present invention, a data structure comprising a plurality of nodes called a trellis is used, wherein each node being associate with a candidate symbol at a given symbol interval and the transition between the nodes are defined by the set of predetermined probabilities. 
     In accordance with at least some embodiments of the present invention, a reader is provided that generally comprises an antenna operable to receive an encoded data signal and a digital signal processor. The digital signal processor may be operable to determine a correlation value for each candidate symbol at each symbol interval in the data signal, determine a modified correlation value for each candidate symbol at each symbol interval in the data signal, wherein the modified correlation value is based on a set of predetermined probabilities that a symbol occurs after another symbol, and wherein the set of predetermined probabilities are time independent and based on logic of the encoding scheme used to encode the data signal, to identify, for each candidate symbol at each symbol interval, an unique possible candidate value in the previous symbol interval, and to assemble a decoded symbol sequence with the identified symbol for each symbol interval. 
     These and other advantages will be apparent from the disclosure of the invention(s) contained herein. The above-described embodiments and configurations are neither complete nor exhaustive. As will be appreciated, other embodiments of the invention are possible using, alone or in combination, one or more of the features set forth above or described in detail below. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram depicting an RF transmitter-receiver system in accordance with at least some embodiments of the present invention; 
         FIG. 2  is an illustration of FM0 coded symbols in a timing-diagram in accordance with at least some embodiments of the present invention; 
         FIG. 3  is an illustration of a code state diagram in accordance with at least some embodiments of the present invention; 
         FIG. 4  is an exemplary trellis for FM0 codes created in accordance with at least some embodiments of the present invention; 
         FIG. 5  is an exemplary extended trellis for Ns FM0 symbols in accordance with at least some embodiments of the present invention; 
         FIG. 6  is an exemplary trellis with correlation values calculated in accordance with at least some embodiments of the present invention; 
         FIG. 7  depicts an exemplary process of assembling a received signal based on determining the maximum value for each interval of coded symbols in accordance with at least some embodiments of the present invention; 
         FIG. 8  is an illustration of eight FM0 coded symbols used for two symbol-by-symbol detection in accordance with at least some embodiments of the present invention; 
         FIG. 9  is an exemplary trellis for two symbol-by-symbol detection in accordance with at least some embodiments of the present invention; and 
         FIG. 10  is a flow chart depicting an exemplary decoding method in accordance with at least some embodiments of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     The present invention is generally directed toward a signal decoding method, device, and system. The invention advantageously addresses deficiencies of the prior art and may be utilized within the context of access control or security systems, as well as be equally efficiently utilized in a broad range of other applications where contact-less data acquisition techniques are used (e.g., monitoring moving objects, tracking inventory, verifying credit cards, and the like). 
     Referring initially to  FIG. 1 , an exemplary transmitter-receiver system  100  is depicted in accordance with at least some embodiments of the present invention. The transmitter-receiver system  100  may comprise a reader  104  and a transponder or tag  108 . The tag  108  may be a passive device which does not require power supplied from an internal power source. The electrical power required to operate a passive tag is supplied to the tag by electromagnetic energy transmitted from the reader  104 . The electromagnetic energy may be generated at an antenna  112  of the reader  104  and received at an antenna  116  of the tag  108 . Accordingly, a passive tag  108  is operational when it receives electromagnetic waves from the reader  104 , which are of a specific frequency and of a sufficient strength to power up the tag  108 . As can be appreciated, however, the tag  108  may alternatively be an active device which has some form of internal power supply (e.g., a battery or a similar energy storage device). 
     The tag  108  may comprise a number of functional elements including an integrated circuit (IC) that is connected to the tag&#39;s antenna  116 . The IC embodies the processing and memory capabilities of the tag  108 . The tag&#39;s antenna  116  is typically coupled to the IC and may be a conventional coil termed a “dual-function antenna coil” which is capable of performing both the receiving and transmitting functions of the tag  108 . Alternatively, two separate receiving and transmitting antenna coils can be substituted for the single “dual function antenna coil” in the tag  108 . The tag  108  may also optionally include an external transponder tuning capacitor coupled to the IC and to each antenna coil of the tag&#39;s antenna  116 . The term “external” is used above with respect to the tag  108  to designate electronic components which are not physically or functionally included within the IC. The tag&#39;s antenna  116 , in cooperation with the transponder tuning capacitor, if present, may be used to determine the carrier frequency of the tag  108 . 
     In accordance with at least some embodiments of the present invention, the tag  108  may be equipped to communicate at a number of different carrier frequencies including, without limitation, LF: 125 kHz, 134.2 kHz, HF: 13.56 MHz, UHF: 868 MHz, 915 MHz, and MW: 2.45 GHz. 
     In accordance with at least some embodiments of the present invention, the tag  108  may be equipped to encode the data signal using a FM0 encoding scheme that is already used in the standards ISO 11784/5, ISO 18000-4, ISO 18000-6, and EPCglobal Class1 Gen2. 
     The tag  108  shown and described herein is but one example of a type of transponder having utility in the RFID system  100 . It is understood that practice of the present invention is not limited to any one specific type of tag, but is generally applicable to most conventional types of tag having utility in RFID systems. Thus, for example, the tag can be selected from proximity cards, proximity tags, smart cards, or the like. It is further understood that practice of the present invention is not limited to RFID systems having only one tag and one reader as shown and described, but is generally applicable to RFID systems having any number of compatible tags/machine readable credentials and readers. 
     Furthermore, the tag  108  may be provided in a number of different form factors. For example, the tag  108  may be provided on or within a card as described above. Additionally, the tag  108  may be provided on or within a key fob, portable electronic device (e.g., laptop, Personal Digital Assistant (PDA), portable e-mail retrieval device, cellular phone, etc.), a computer, a phone, or any other generally portable device. 
     In most conventional RFID systems, the position of the reader  104  is stationary (i.e., constant) relative to the surrounding environment, while the position of the tag  108  is portable (i.e., variable) within the surrounding environment. In such cases, the user of the RFID system moves the portable tag  108  into relative proximity with the stationary reader  104  to enable simultaneous operation of the both the tag  108  and reader  104 . In some conventional RFID systems, however, the position of the reader  104  may be portable relative to the surrounding environment, while the position of the tag  108  is either portable or stationary. In the case of a portable reader  104  and a stationary tag  108 , the user moves the portable reader  104  into relative proximity with the stationary tag  108  to enable simultaneous operation of the both the tag  108  and reader  104 . In the case of a portable reader  104  and a portable tag  108 , the user may move both the portable reader  104  and the portable tag  108  into relative proximity with one another to enable simultaneous operation of the both the tag  108  and reader  104 . Embodiments of the present invention are not limited to any one of the above-recited RFID system configurations. 
     The reader  104  of the present invention may comprise a number of functional elements including an RF source  120 , a power splitter  124 , a modulator  128 , a power amplifier  132 , a circulator  136 , a low noise amplifier (LNA)  140 , a down converter  144 , a band pass filter  148 , an analog-to-digital (A/D) converter  152 , and a digital signal processor (DSP)  156 . The RF source  120 , power splitter  124 , modulator  128 , and power amplifier  132  generally correspond to excitation circuitry that functions to generate an excitation signal which the reader antenna  112  transmits in the form of electromagnetic waves into the open space of the external environment surrounding the reader  104 . The excitation signals are received by the tag antenna  116  to electrically power up the tag  108 . 
     In accordance with at least some embodiments of the present invention, the excitation signal may be a high voltage signal having a relatively high voltage, for example, within a range of about 75 to 125 Volts [V] zero to peak. 
     Although not shown, the reader  104  optionally includes a tuning capacitor coupled to the reader antenna  112 . A power source (not shown) may be utilized to provide electrical operating power to the reader components in a controlled manner. 
     In accordance with one embodiment, the power source is coupled to a finite electrical power source which is self-contained (i.e., internal) within the reader  104 , such as a relatively small portable battery consisting of one or more disposable dry cells or rechargeable cells. Alternatively, the power source is hard wired to an essentially infinite remote electrical power source, such as an electric utility or power grid. 
     When the tag  108  and/or the reader  104  is moved to a proximal position such that the distance D between the tag  108  and reader  104  is within the excitation signal reception range of the tag  108 , the tag  108  receives the excitation signal on its antenna  116 , which powers up the IC within the tag  108 . Upon activation, the IC generates a data signal, which contains readable information, i.e., tag data, copied or otherwise derived from the memory of the IC. The data signal is transmitted into the open space of the external environment surrounding the tag  108  via the tag antenna  116 . 
     In one embodiment, the data signal is a low voltage signal having a relatively low voltage, for example, within a range of about 1 to 100 milli-Volts [mV](at the reader antenna  112 ). 
     In accordance with at least some embodiments of the present invention, the signal transmitted by the tag  108  may be encoded with the tag data. Any number of different encoding schemes may be utilized to encode the tag data on the carrier signal. Exemplary encoding schemes that may be used in accordance with embodiments of the present invention include, but are not limited to, encoding schemes that use two distinct sets of tag symbols (e.g., bi-phase signals). One such encoding scheme is the FM0 encoding scheme where a binary ‘0’ has a transition in the middle of a symbol (i.e., in the half bit period), whereas a binary ‘1’ does not. The resulting signal transmitted by the tag antenna  116  in such a configuration is a differential bi-phase (DBP) signal or more particularly an FM0 signal. 
     Other types of encoding scheme that may be used in accordance with embodiments of the present invention include the Miller, Manchester, and FM1 encoding schemes. The Miller encoding scheme, for example, offers some advantages over FM0. In spectral terms, the energy in a Miller signal is concentrated away from the carrier (roughly by the link frequency), making it easier to detect in the presence of phase noise and possible interference from other readers. In the time domain, interpretation of an FM0 symbol depends on a single edge, whereas a Miller symbol provides a number of edges to locate, reducing the likelihood of a bit error. 
     In accordance with at least one embodiment of the present invention, the reader antenna  112  is a “dual-function antenna coil” which performs both the receiving and transmitting functions of the reader  104 . In particular, the reader antenna  112  may receive the transponder data signal from the external environment and transmit the excitation signal into the external environment. Alternatively, the reader  104  may encompass two separate receiving and transmitting antenna coils, respectively, which separately perform the receiving and transmitting functions of the reader  104 . 
     Regardless of the construction, the reader  104  receives the encoded signal at the antenna  112  and passes it through the LNA  140  via the circulator  136 . The signal is then passed through the down-converter  144  and band pass filter  148  to further condition the signal for processing. Consider, for example, FM0 codes, and suppose that the received signal after down-conversion is embedded in white Gaussian noise, i.e.:
 
 y ( t )= xBB ( t )+ω( t )= Ks ( t )+ω( t )
 
where the noise signal ω(t) is modeled as zero-mean additive white Gaussian noise with:
 
 E [ω( t +τ)ω( t )]=σ n   2 δ(τ)
 
and σ 2   n  is the noise power spectral density. Thereafter, the signal is passed through the A/D converter  152  where discrete samples of the analog signal are obtained and the signal is therefore converted into a digital signal (i.e., the signal is converted from y(t) to y(v)). More specifically, the output sequence includes samples described as:
 
 y ( v )= Ks ( v )+ω( v ),  v= 1, . . . , NN   s  
 
which is the received signal y(t) sampled at time instants t=vT s /N.
 
     The sampling process results in a digitized version of the conditioned amplifier output signal termed the digital output signal, which the DSP  156  processes to extract the readable tag data contained therein. In particular, the DSP  156  detects and decodes the digital output signal in accordance with a respective encoding type by executing specific firmware and/or software that will be further described below. The extracted tag data may be sent to an external device, such as a central host computer (not shown), via an I/O interface, where permission to access an asset (e.g., room, computer, data, bank account, building, etc.) protected by the reader  104  may be granted or denied depending upon the tag data and the permissions associated therewith. 
     The DSP  156  may be adapted to implement an improved ML scheme. The improved ML scheme can be used with any type of decoding scheme in accordance with at least some embodiments of the present invention. What is proposed is an optimum MLSD scheme that utilizes some specific feature of the received coded signal. The MLSD scheme may be employed in any type of scenario (i.e., perfect synchronization and imperfect synchronization) for improving the overall system performance (i.e., reducing bit error rate and/or improving gain). 
     In accordance with at least some embodiments of the present invention, the MLSD scheme may use the fact that an FM0 signal has a memory (i.e., the symbols transmitted in successive intervals are not independent) and the fact that only certain sequences of symbols are allowed to enhance the overall detection scheme. More particularly, the FM0 symbols can be seen as a first-order Markov process and it can be completely described by a code state diagram (see  FIG. 3 ) or by a probability matrix in which the elements are equal to conditional probabilities that a symbol occurs after another symbol. The MLSD is then computed in two steps. The first step comprises a trace forward step whereby the correlation values in each symbol interval for the waveform are calculated and stored in a data structure called a trellis. The transitions between symbols may be described by a probability matrix. The best preceding symbol (as determined by the conditional probabilities that are based on the encoding scheme used) is then determined and new correlation values are computed and stored in the trellis. The second step comprises a trace back step where the bit stream (i.e., the tag data) is assembled by iterating backward through the trellis (with new correlation values) starting from the end. More specifically, the starting point in the trellis is chosen based on the resulting highest correlation value. Therefore, the trellis created in the trace forward step is used for choosing the best predecessor. Additional details of the enhanced decoding schemes and MLSD scheme will now be described in further detail in accordance with at least some embodiments of the present invention. 
     Referring now to  FIG. 2 , FM0 symbols in a timing-diagram will be described in accordance with at least some embodiments of the present invention. In FM0 encoding, a logical ‘0’ is coded by a transition in the half-bit period and a logical ‘1’ is coded by the lack of a transition. Since after each symbol the level is inverted, for a symbol there are two possible ‘0’ waveforms: 
               0   -     =     {               -   1           0   ≤   t   ≤       T   S     /   2               1             T   S     /   2     ≤   t   ≤     T   S             ⁢           ⁢   or   ⁢           ⁢     0   +       =     -     0   -                 
and two possible ‘1’ waveforms:
 
1 − =−1 0≦ t≦T   s  or 1 + =−1 − 
 
     As can be seen in  FIG. 2 , the symbol 0 −  is defined as the logical ‘0’ obtained from a half-bit transition from a low voltage to a relatively higher voltage. The symbol 0 +  is defined as the logical ‘0’ obtained from a half-bit transition from a high voltage to a relatively lower voltage. As can be appreciated, both the 0 −  and 0 +  symbols have the same logical value (i.e., zero), but each symbol is determined differently, especially in an FM0 coded signal. Accordingly, the symbols are considered different symbols since each corresponds to a different state of the encoded signal. 
     The symbol 1 −  is defined as the logical ‘1’ obtained from the lack of a half-bit transition at a relatively low voltage. Conversely, the symbol 1 +  is defined as the logical ‘1’ obtained from the lack of a half-bit transition at a relatively high voltage. Similar to the zero symbols, the 1 −  and 1 +  symbols have the same logical value (i.e., one), but each symbol is determined differently, especially in an FM0 coded signal. As can be appreciated by one skilled in the art, the states defined above in connection with  FIG. 2  can vary and may be modified without departing from the spirit of the present invention. For example, the symbol 0 +  may alternatively be defined as the logical ‘0’ obtained from a rising half-bit transition and the symbol 0 −  may be defined as the logical ‘0’ obtained from a falling half-bit transition. The same reverse logic may be applied to define different 1 −  and 1 +  symbols. However, for sake of clarity, the symbols defined in  FIG. 2  will be used to describe embodiments of the present invention from here forward. 
       FIG. 3  depicts an exemplary code state diagram for the symbols defined in  FIG. 2 . The code state diagram shows the possible transitions between states and the corresponding logic values obtained via those transitions. From the code state diagram it can be seen that a coded symbol depends only on the previous coded symbol. The coded signal s(t) is a first-order Markov process and can be completely described by a probability matrix where P(j|i) is the conditional probability of the symbol j occurring after a given symbol i has occurred. 
     In accordance with at least one embodiment of the present invention, the probability matrix for FM0 codes is described as: 
     
       
         
           
             
               
                 
                   
                     P 
                     
                       F 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       M 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       0 
                     
                   
                   = 
                   
                     [ 
                     
                       
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   0 
                                   - 
                                 
                                 | 
                                 
                                   0 
                                   - 
                                 
                               
                               ) 
                             
                           
                         
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   0 
                                   - 
                                 
                                 | 
                                 
                                   0 
                                   + 
                                 
                               
                               ) 
                             
                           
                         
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   0 
                                   - 
                                 
                                 | 
                                 
                                   1 
                                   - 
                                 
                               
                               ) 
                             
                           
                         
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   0 
                                   - 
                                 
                                 | 
                                 
                                   1 
                                   + 
                                 
                               
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   0 
                                   + 
                                 
                                 | 
                                 
                                   0 
                                   - 
                                 
                               
                               ) 
                             
                           
                         
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   0 
                                   - 
                                 
                                 | 
                                 
                                   0 
                                   + 
                                 
                               
                               ) 
                             
                           
                         
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   0 
                                   + 
                                 
                                 | 
                                 
                                   1 
                                   - 
                                 
                               
                               ) 
                             
                           
                         
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   0 
                                   + 
                                 
                                 | 
                                 
                                   1 
                                   + 
                                 
                               
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   1 
                                   - 
                                 
                                 | 
                                 
                                   0 
                                   - 
                                 
                               
                               ) 
                             
                           
                         
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   1 
                                   - 
                                 
                                 | 
                                 
                                   0 
                                   + 
                                 
                               
                               ) 
                             
                           
                         
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   1 
                                   - 
                                 
                                 | 
                                 
                                   1 
                                   - 
                                 
                               
                               ) 
                             
                           
                         
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   1 
                                   - 
                                 
                                 | 
                                 
                                   1 
                                   + 
                                 
                               
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   1 
                                   + 
                                 
                                 | 
                                 
                                   0 
                                   - 
                                 
                               
                               ) 
                             
                           
                         
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   1 
                                   - 
                                 
                                 | 
                                 
                                   0 
                                   + 
                                 
                               
                               ) 
                             
                           
                         
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   1 
                                   + 
                                 
                                 | 
                                 
                                   1 
                                   - 
                                 
                               
                               ) 
                             
                           
                         
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   1 
                                   + 
                                 
                                 | 
                                 
                                   0 
                                   + 
                                 
                               
                               ) 
                             
                           
                         
                       
                     
                     ] 
                   
                 
               
             
             
               
                 
                   = 
                   
                     [ 
                     
                       
                         
                           0.5 
                         
                         
                           0 
                         
                         
                           0 
                         
                         
                           0.5 
                         
                       
                       
                         
                           0 
                         
                         
                           0.5 
                         
                         
                           0.5 
                         
                         
                           0 
                         
                       
                       
                         
                           0.5 
                         
                         
                           0 
                         
                         
                           0 
                         
                         
                           0.5 
                         
                       
                       
                         
                           0 
                         
                         
                           0.5 
                         
                         
                           0.5 
                         
                         
                           0 
                         
                       
                     
                     ] 
                   
                 
               
             
           
         
       
     
     As can be seen, many of the probabilities in the probability matrix for FM0 codes have a probability of zero. This is due to the fact that certain transitions do not occur in an FM0 code, such as from the state 1 to 0, for example. Utilizing this fact and generating the above probability matrix decreases the complexity of any correlation values calculated based on these probabilities. An MLSD decoding scheme for FM0 codes may take advantage of the probability matrix provided above to reduce processing requirements and increase the overall system robustness to symbol timing errors (since certain transitions are ignored). As noted above, the sequence of FM0 symbols can be seen as a first-order Markov process, and it can be completely described by a probability matrix in which the elements are equal to conditional probabilities that a symbol occurs after another symbol, as defined in the probability matrix provided above. 
     Following the calculation of the probability matrix, correlations and a trellis are computed for FM0 codes using P FM0 . An example of the basic trellis for the FM0 codes is depicted in  FIG. 4 . By letting S k  (where k=1, . . . , 4 for FM0 codes) be the vectors containing the N sampled values of the waveforms ‘0’ and ‘1’, and as a consequence of the properties of the additive white Gaussian noise, the correlation outputs for the FM0 codes can be calculated as the following:
 
 R   n   k   =     [y (1 +N ( n− 1)) . . . , y ( Nn )], S   k     , ∀k,n  
 
     The correlations for the FM0 codes represent a sufficient statistic for the estimation problem, where &lt;a,b&gt; denotes the inner product of two vectors a and b. In the example provided herein, n is assumed to be 1, . . . , Ns, where Ns is the number of coded symbols in a received signal (i.e., the number of bits in the tag data). 
     After the correlations values in each symbol interval for the waveform are calculated the trellis (where transitions between symbols are described by the transition matrix) is populated with the correlation values.  FIG. 5  depicts and exemplary trellis used in the MLSD of FM0 codes. The length of the trellis is equal to the number of symbols/bits in the received signal (i.e., Ns in this example). The height of the trellis is based on the number of possible coded symbols used in the decoding scheme and the number of bits in each of these symbols. 
     After the trellis has been populated with the initially calculated correlation values, the modified correlation values are calculated based on the determined best preceding symbol according to the following sets of equations describing a forward iterative process starting from the first symbol interval to the last symbol interval. 
     
       
         
           
             
               For 
               ⁢ 
               
                   
               
               ⁢ 
               n 
             
             = 
             
               1 
               ⁢ 
               
                 : 
               
               ⁢ 
               
                   
               
               ⁢ 
               
                 
                   
                     
                       
                         
                           R 
                           ~ 
                         
                         1 
                         1 
                       
                       = 
                       
                         R 
                         1 
                         1 
                       
                     
                   
                 
                 
                   
                     
                       
                         
                           R 
                           ~ 
                         
                         1 
                         2 
                       
                       = 
                       
                         R 
                         1 
                         2 
                       
                     
                   
                 
                 
                   
                     
                       
                         
                           R 
                           ~ 
                         
                         1 
                         3 
                       
                       = 
                       
                         R 
                         1 
                         3 
                       
                     
                   
                 
                 
                   
                     
                       
                         
                           R 
                           ~ 
                         
                         1 
                         4 
                       
                       = 
                       
                         R 
                         1 
                         4 
                       
                     
                   
                 
               
             
           
         
       
       
         
           
             
               For 
               ⁢ 
               
                   
               
               ⁢ 
               n 
             
             &gt; 
             
               1 
               ⁢ 
               
                 : 
               
               ⁢ 
               
                   
               
               ⁢ 
               
                 
                   
                     
                       
                         
                           R 
                           ~ 
                         
                         n 
                         1 
                       
                       = 
                       
                         
                           R 
                           n 
                           1 
                         
                         + 
                         
                           max 
                           ⁢ 
                           
                             { 
                             
                               
                                 
                                   R 
                                   ~ 
                                 
                                 
                                   n 
                                   - 
                                   1 
                                 
                                 1 
                               
                               , 
                               
                                 
                                   R 
                                   ~ 
                                 
                                 
                                   n 
                                   - 
                                   1 
                                 
                                 4 
                               
                             
                             } 
                           
                         
                       
                     
                   
                 
                 
                   
                     
                       
                         
                           R 
                           ~ 
                         
                         n 
                         2 
                       
                       = 
                       
                         
                           R 
                           n 
                           2 
                         
                         + 
                         
                           max 
                           ⁢ 
                           
                             { 
                             
                               
                                 
                                   R 
                                   ~ 
                                 
                                 
                                   n 
                                   - 
                                   1 
                                 
                                 2 
                               
                               , 
                               
                                 
                                   R 
                                   ~ 
                                 
                                 
                                   n 
                                   - 
                                   1 
                                 
                                 3 
                               
                             
                             } 
                           
                         
                       
                     
                   
                 
                 
                   
                     
                       
                         
                           R 
                           ~ 
                         
                         n 
                         3 
                       
                       = 
                       
                         
                           R 
                           n 
                           3 
                         
                         + 
                         
                           max 
                           ⁢ 
                           
                             { 
                             
                               
                                 
                                   R 
                                   ~ 
                                 
                                 
                                   n 
                                   - 
                                   1 
                                 
                                 1 
                               
                               , 
                               
                                 
                                   R 
                                   ~ 
                                 
                                 
                                   n 
                                   - 
                                   1 
                                 
                                 4 
                               
                             
                             } 
                           
                         
                       
                     
                   
                 
                 
                   
                     
                       
                         
                           R 
                           ~ 
                         
                         n 
                         4 
                       
                       = 
                       
                         
                           R 
                           n 
                           4 
                         
                         + 
                         
                           max 
                           ⁢ 
                           
                             { 
                             
                               
                                 
                                   R 
                                   ~ 
                                 
                                 
                                   n 
                                   - 
                                   1 
                                 
                                 2 
                               
                               , 
                               
                                 
                                   R 
                                   ~ 
                                 
                                 
                                   n 
                                   - 
                                   1 
                                 
                                 3 
                               
                             
                             } 
                           
                         
                       
                     
                   
                 
               
             
           
         
       
     
     As can be seen in the above equation, the modified correlation values are based on the previously calculated correlation values and the best preceding symbol. More specifically, a modified correlation value for a candidate symbol at a given time interval is calculated by adding the initially calculated correlation value for this candidate symbol at this given time interval and the maximum value of transition. The maximum value of transition for a selected symbol at a selected symbol interval is calculated on the result of the multiplication of the vector of probability provided in P FM0  for this selected symbol by the vector of the modified correlation values of all candidate symbols at the previous interval. It should be noted that multiplication of the probability vector is one example of a way to ponder a candidate symbol. One skilled in the art will appreciate that many other ways to ponder a candidate symbol may be employed without departing from the scope of the present invention. 
     It should also be noted that in the set of equations above, the factor 0.5, being the unique non zero value in P FM0  has been replaced by 1. This means for example that instead of calculating max{0.5·{tilde over (R)} n-1   1 ,0.5·{tilde over (R)} n-1   4 }, one set the maximum value of transition for the 1 st  symbol at the n th  time interval as being max{{tilde over (R)} n-1   1 ,{tilde over (R)} n-1   4 }. In other words, the decoding scheme of the invention is also working even if the probability matrix P FM0  has been un-normed (the norm value of each vector of probabilities being then different than 1). This factor increase on the value obtained for each modified correlation value (cumulative though the iterative process) is not influencing the decoding result itself. By setting all non-zero probabilities to 1, one decreases the computing resources needed. 
       FIG. 6  depicts an exemplary trellis comprising modified correlation values {tilde over (R)} in the trellis. The depicted trellis includes nodes, each of which (for n≧2) has two input arrows. Each node of the trellis also includes two output arrows corresponding to possible transitions to a subsequent symbol. All iterations of the trellis, such as the iteration depicted in  FIG. 6 , may be stored in memory such that the DSP  156  can access the trellis, update the trellis, and analyze the trellis. The location of the memory in which the trellis is stored may vary depending upon the capabilities of the reader  104 . For instance, the trellis may be stored in an internal memory of the DSP  156  (i.e., a cache memory or the like). Alternatively, the trellis may be stored in a memory location that is external to the DSP  156  but is accessible by the DSP  156 . Such an external memory may include a solid-state memory device such as a RAM, ROM, PROM, EEPROM, flash memory, or the like. Those skilled in the art will appreciate that there may be many other ways to store the trellis in the reader  104  during decoding operations. Those skilled in the art will also appreciate that the trellis may not necessarily be stored in the reader  104 , but may be situation in a location that is accessible by the reader  104  and DSP  156 . 
     Complementary to the calculation of the modified correlation value, a unique possible candidate symbol at the previous symbol interval for each corresponding candidate symbol at each symbol interval is identify. It is in fact the candidate symbol corresponding to the maximum value of transition for the corresponding candidate symbol. When the maximum value of transition is determined (as described above), the identity of the corresponding previous symbol is also determine and stored. Independently of the way this information is stored, it is equivalent to keep only one input arrow for the corresponding node of the trellis. At the end of the forward iterative process, all nodes have only one unique possible previous node. 
     After, the bit stream is assembled by iterating through the trellis starting from the last symbol interval of the sequence to the start. The candidate symbol having the highest modified correlation value at the last symbol interval is firstly identified as being the decoded symbol at the last symbol interval. Then each, previous decoded symbol interval for each symbol interval of the sequence is iteratively assembled, according the identified unique possible candidate symbol at the previous symbol interval for the corresponding decoded symbol. 
     Referring now to  FIG. 7 , assume that 5 symbols (i.e., Ns=5) were included in the received signal. By beginning at the last symbol interval (i.e., the fifth symbol interval) the highest modified correlation value is chosen among the candidate nodes at the last symbol interval. In the depicted example, the fourth node corresponding to the fourth symbol (i.e. 1 + ) has the highest modified correlation value of the four nodes in the last symbol interval. In the immediately previous symbol interval (i.e., the fourth symbol interval the modified correlation is “defined” after choosing the node in the last symbol interval. In the depicted example, the second node corresponding to the second symbol (i.e., 0+) is connected with the fourth node in the last symbol interval, and thus the second node in the fourth symbol interval is “selected”. This line represents the transition that most likely occurred between the fourth and fifth coded symbols. 
     This process of iterating back through the trellis continues at each symbol interval until the entire bit stream is assembled. Thus, the trellis created in the trace forward step is directly used for choosing the best predecessor in the track backward step, without any additional calculation. Each node selected during the track backward step corresponds to a symbol that was defined in  FIG. 2  and each of those symbols corresponds to a logical ‘0’ or ‘1’ value. The logical ‘0’ and ‘1’ values are then sequentially ordered to determine the tag data (e.g., the ID number transmitted from the tag  108  to the reader  104 ). 
     Referring now to  FIG. 8 , an alternative embodiment of the present invention will be described. More particularly, up to this point only examples depicting one symbol-by-symbol detection methods using a pattern of one FM0 encoded bit have been discussed. However, certain embodiments of the present invention can provide a symbol-by-symbol detection using a pattern of multiple encoded bits. For instance, 8 coded symbols may be defined for FM0 codes, where each of the 8 coded symbols correspond to the possible pairs of symbols in FM0 codes. A trellis, such as the one depicted in  FIG. 9 , may then be generated for the pairs of symbols. It should be noted that each node (other than the nodes in the first symbol interval) have two inputs from other nodes. This is similar to the trellis used for symbol-by-symbol detection using a pattern of one bit. After the trellis has been generated it is populated with correlation values at each node. In this case, the correlation may be computed with the “pattern” of two FM0 encoded bits. Moreover, the fact that only certain correlation patterns can overlap is used to further simplify the trellis. 
     After the trellis has been populated with correlation values, the modified correlation values are computed in a similar fashion to the symbol-by-symbol detection using a pattern of one bit. The modified correlation values are then stored in the modified trellis as also the identity of each unique possible candidate symbol at the previous symbol interval for each corresponding candidate symbol at each symbol interval. At this point, the trellis can be traversed backwards to assemble the bit stream. It should be appreciated that a higher level of symbol groupings may be used for symbol detection. The only consequence would be a more complex trellis, which may or may not be desirable depending upon the capabilities of the DSP  156 . 
     It can be shown that the proposed MLSD scheme for perfect and imperfect synchronization has a significantly higher tolerance for symbol timing errors compared to standard schemes. Moreover, the proposed MLSD scheme can be used in connection with either perfect or imperfect synchronization decoding schemes, and it is suited for improving the reading distance and signal detection. 
     With reference now to  FIG. 10 , an exemplary symbol decoding/detection method will be described in accordance with at least some embodiments of the present invention. The method is initiated when an encoded signal is received at the reader  104  (step  1004 ). The signal may be encoded with any known type of symbol-based encoding algorithm such as FM0, FM1, Miller, Manchester, etc. The DSP  156  continues by calculating a trellis specific to the encoding scheme (step  1012 ) based on computed correlation values for symbols in the signal (step  1008 ) as well as the predetermined symbol occurrence probabilities (step  1016 ). The predetermined probabilities provided in step  1016  may be based on the encoding scheme used by the tag  108 . For example, specific knowledge of the fact that certain symbol transitions do not occur in a given encoding scheme may be used to simplify the trellis since the corresponding probability ofthat transition can be set equal to zero. This helps eliminate possible transitions in the trellis. 
     Once the trellis has been populated with the initially calculated correlation values, the DSP  156  continues by placing the correlation values in the trellis (step  1020 ). The correlation value for each is placed in the trellis at a node corresponding to that particular symbol. In this step, and in accordance with at least some embodiments of the present invention, every node in the trellis is provided with some correlation value, even if the correlation value has been computed to be equal to zero. 
     After the trellis has been completely populated with the correlation values, the DSP  156  continues by iteratively calculating the modified correlation value for each symbol at each symbol interval in the trellis (step  1024 ). The DSP  156  firstly determines the maximum value of transition for a selected symbol at a selected symbol interval (i.e., a selected node) in the trellis (step  1028 ). The maximum value of transition for a selected symbol at a selected symbol interval is calculated on the result of the multiplication of the vector of probability provided for this selected symbol by the vector of the modified correlation values for all candidate symbols at the previous interval. 
     The modified correlation value is then simply calculated by adding the determined maximum value of transition (step  1032 ) to the correlation value which has been previously determined (in step  1008 ) for this selected candidate symbol at the selected symbol interval. 
     By determining the maximum value of transition for a selected symbol at a selected symbol interval (step  1028 ), the DSP is also able to identify in the same time the candidate symbol in the previous symbol interval which correspond to this maximum, and store it as the unique possible candidate symbol at the previous symbol interval for the selected symbol (step  1040 ). 
     After the node has been modified in the trellis with the modified correlation value, the DSP  156  determines if there are any additional symbols in the trellis that have not had a modified correlation value calculated in association therewith (step  1044 ). If there are any additional symbols in the trellis that do not have a modified correlation value, then the method returns to step  1028 . 
     Once every node in the trellis has been updated with a modified correlation value, the DSP  156  continues by locating the last symbol interval (i.e., last column) in the trellis. The DSP  156  analyzes each node in the last symbol interval to determine which node (i.e., symbol) has the highest determined probability of occurring at that symbol interval. This probability determination is based on selecting the node with the highest modified correlation value in this last interval (step  1048 ). This information is obtained from the maximum value that was determined in the forward iteration through the trellis. 
     Thereafter, the DSP  156  determines if there are any preceding symbol intervals in the received signal (step  1052 ). If there are previous symbol intervals, then the DSP  156  iterates to the previously preceding symbol interval (i.e., the previous symbol interval for the corresponding decoded but assembled symbol) (step  1056 ). In other words, the DSP  156  incrementally steps backwards through the trellis until the beginning of the trellis, where in each preceding symbol interval the node (or symbol) has been uniquely determined in step  1040 . At each step in the backward iteration, the DSP  156  will add the uniquely determined symbol from the symbol interval to the already assembled signal (step  1060 ). At the end, the method continues with the DSP  156  assembling the decoded signal sequence (step  1064 ). More particularly, the DSP  156  relates the symbols identified in step  1044  and  1052  to logical values, which correspond to tag data, for example. The decoded tag data may then be used for any number of purposes (e.g., determining permission rights for a holder of the tag  108 , identifying the tag  108  or an object associated therewith, and so on). 
     The present invention, in various embodiments, includes components, methods, processes, systems and/or apparatus substantially as depicted and described herein, including various embodiments, sub combinations, and subsets thereof. Those of skill in the art will understand how to make and use the present invention after understanding the present disclosure. The present invention, in various embodiments, includes providing devices and processes in the absence of items not depicted and/or described herein or in various embodiments hereof, including in the absence of such items as may have been used in previous devices or processes, e.g., for improving performance, achieving ease andor reducing cost of implementation. 
     In accordance with at least one embodiment of the present invention, a receiver may also be provided that is capable of outperforming standard decoding schemes if there is not perfect symbol synchronization. Standard decoding schemes are very sensitive to symbol timing errors. On the other hand, a reader employing a decoding scheme in accordance with at least some embodiments of the present invention may be more robust to these symbol timing errors and the synchronization part (if tag detection is desired) is minimized. A reader used during imperfect synchronization may slide the received signal and compute correlations at each sample shift. Afterwards, an ML detector or a MLSDis applied to the correlation outputs. Additionally, the nature of certain encoding schemes, such as FM0 codes, may allow the reader to use the known half-bit before and after each symbol to improve the performance of the correlation. Such a decoding scheme is more robust to symbol timing errors than standard schemes and may also enable the reader to accurately read tag from a greater distance. 
     The foregoing discussion of the invention has been presented for purposes of illustration and description. The foregoing is not intended to limit the invention to the form or forms disclosed herein. In the foregoing Detailed Description for example, various features of the invention are grouped together in one or more embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the following claims are hereby incorporated into this Detailed Description, with each claim standing on its own as a separate preferred embodiment of the invention. 
     Moreover though the description of the invention has included description of one or more embodiments and certain variations and modifications, other variations and modifications are within the scope of the invention, e.g., as may be within the skill and knowledge of those in the art, after understanding the present disclosure. It is intended to obtain rights which include alternative embodiments to the extent permitted, including alternate, interchangeable and/or equivalent structures, functions, ranges or steps to those claimed, whether or not such alternate, interchangeable and/or equivalent structures, functions, ranges or steps are disclosed herein, and without intending to publicly dedicate any patentable subject matter.