Radiofrequency identification systems and methods for use in high tag density environments

The method employs multiple transceivers to recover collided RFID tag data by precoding acknowledgement signals, addressing tag collision issues in high-density environments and enhancing read rates in RFID systems.

GB2634554APending Publication Date: 2025-04-16CAMBRIDGE ENTERPRISE LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
GB2023015673
Authority / Receiving Office
GB · GB
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-10-12
Publication Date
2025-04-16

AI Technical Summary

Technical Problem

Current RFID systems face limitations in read rate due to tag collisions in high tag density scenarios, particularly with Class 1 Gen 2 (C1G2) RFID systems using Framed Slotted Aloha (FSA) scheduling, leading to reduced throughput and missed tags.

Method used

A method and system utilizing multiple transceivers to recover collided tag data by identifying tag collisions, extracting data from each tag, and precoding acknowledgement signals using estimated one-way channel transmission parameters, allowing simultaneous communication with multiple tags without modifying legacy tags.

Benefits of technology

Enhances read rate by enabling simultaneous recovery of collided tag data, improving throughput beyond conventional limits, specifically achieving over 0.37 tags per slot in dense-tag environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method of collision recovery in a radio frequency identification (RFID) communication system. The method begins by identifying a tag collision in which data from each of L tags is received at each o
Need to check novelty before this filing date? Find Prior Art

Description

The invention relates to improved Radio Frequency Identification (RFID) communications systems and in particular to systems and methods for performing RFID communications in environments with high tag density by mitigating tag collisions. RFID is often used in high tag density scenarios where tag read rate becomes a limiting factor. Current Class 1 Gen 2 (C1G2) RFID systems are limited in read rate by the Framed Slotted Aloha (FSA) scheduling algorithm and physical layer modulation parameters. RFID has become increasingly popular in a variety of applications, including inventory management, supply chain logistics, and asset tracking [1 ]. A single read operation for a single tag is well-understood and is set out in various RFID standards. The procedure comprises a first phase in which a reader broadcasts a query request, followed by a continuous wave (CW) signal. If the tag is within range, it receives this request and activates. There is a short CW signal prior to the query signal, and the tag uses this to power up. Once the tag is active, the second phase includes the tag responding to the query by issuing a randomly generated 16 digit (binary) number known as an RN16. As an example, in passive UHF (Ultra High Frequency) RFID, the tag operates by modulating (backscattering) the CW signal sent by the reader. The reader’s transceiver receives this RN16 in a third phase and acknowledges receipt by replying with the same RN16 in an acknowledgement (ACK) signal. In a fourth phase, the tag receives the acknowledgement and notes that it matches the RN16 recently issued by the tag. This completes the handshake protocol between the tag and the reader and trusted communication can now occur between them. Typically this involves the tag sending a specific (non-random, unchanging) string to the reader, for example to identify the type of product to which the tag is affixed. This is a robust procedure for communicating between one reader and one tag. Indeed the RFID protocols also allow single reader to multiple tag communication. The protocols extend to multi-tag communication by assigning a number of time slots so that the tags are instructed to transmit their data only during their designated time slots. Here, the reader includes an indication of the parameters for tags to respond and typically includes the number of reply slots available and the duration of each time slot. Each tag which receives the query then randomly selects a time slot and responds in that time slot in the manner set out above. Clearly where there are far more time slots than there are tags to respond, the likelihood of each tag randomly selecting a different slot is high. However, as the number of tags grows the likelihood of two tags responding in the same slot (known as a tag collision) increases, becoming inevitable where there are more tags within range of the reader than the number of time slots provided by the reader. Often in these applications tag throughput is an important reader specification as the sheer number of tags passing the reader in a given time period may result in some missed tags. The Framed Slotted Aloha (FSA) technique is used in the EPC Class 1 Gen 2 protocol to schedule RFID tags within read range, allowing only one tag to reply within each slot while discarding slots with tag collisions (i.e. multiple tags reply in the same slot). Combined with the physical link parameters, the FSA protocol places an upper limit on the number of tags which can be read per second. In scenarios with high tag density, the probability of collided RFID tag signals increases, resulting in reduced throughput. Known systems allow the simultaneous recovery of tag RN16s by utilizing the received data at a single antenna. After the tag data has been recovered, the reader must transmit ACKs to each tag containing their RN16. Therefore, recovery of collided RN16s in this way only provides a marginal improvement in tag throughput as one of the two tags can be addressed with the correct RN16, while the other is ignored. This is a minor improvement over simply terminating the slot and aborting communication with both tags, but does not really solve the problem. The present invention aims to address some or all of the drawbacks highlighted above. As used herein the following terms will be used with the associated meanings: Terms and definitions Reader means multi-port RFID reader, which includes at least one transceiver or at least one receiver and one transmitter. The reader will also include any digital signal processing functionality. Transceiver means a transmitter / receiver sharing a single antenna of a multi-port RFID reader where multiple transceivers can simultaneously transmit or receive signals. Tag bit period means a period corresponding to a reflective (1) or non-reflective (0) state transmitted by a tag (a tag bit). Usually part of a FMO or Miller encoded symbol. Symbol period means the time duration at a receiver to receive overlapping tag bits from each tag. Slot means the duration in an inventory round within which a tag may respond. Received Symbol means the signal received as the superposition of multiple tag bits modulated simultaneously by more than one tag at a single reader. Fundamental vector is a vector that links two clusters with only a single difference in symbol combinations. Each cluster has L (# of tags) fundamental vectors. If the cluster contains only 0 (i.e. no collision), (0,0) (two tag collision), and (0,0,0) (3 tag collision), then its fundamental vectors (i.e. 1; (0,1) and (1,0); (0,0,1), (0,1,0) and (1,0,0)) represent channels between the transceiver to each tag; For 3 tag collision, if the cluster contains all 1s, then its fundamental vectors are pointing towards clusters that contains two 1s and one 0, i.e. (1,1,0), (1,0,1) and (0,1,1). Then the remaining clusters contains (0,0,0) and clusters with single 1 and two 0s which can be used to extract channel information. Symbols, acronyms, and notation Symbols AWGN - Additive gaussian white noise BLF - Backscatter link frequency G - Tag-to-reader channel matrix Hest- Estimated one-way channel matrix hij - One-way channel between transceiver i and tag j R- Received two-way channel matrix - Two-way channel between transceiver i and tag j Tt - Time duration from reader transmission to tag response Acronyms ACK - Acknowledgement CW - Continuous wave C1G2 - Class 1 Generation 2 EPC - Electronic product code FSA - Framed slotted aloha IO - Input output IQ - In-phase and quadrature MIMO - Multiple-input multiple-output MMSE - Minimum mean square error MU - Multi-user RF - Radio frequency RFID - Radio frequency identification RN16 - 16-bit random number SIR- signal-to-interference ratio SISO - Single-input single-output SNR - Signal-to-noise ratio Notations - Transpose of matrix A AH - Hermitian transpose of a matrix A A-1 - Inverse of a matrix A A o B - Hadamard product of matrices A and B Disclosed herein is a method of collision recovery in a radio frequency identification, RFID, communication system, the method comprising: identifying a tag collision, the tag collision comprising data from each of L tags being received at each of L or more RFID receivers, wherein L is greater than or equal to 2; using the data received to extract the data from each tag; identifying one-way channel transmission parameters to at least L receivers from each tag from the data received at each receiver from each tag; using the one-way channel parameters to each receiver from each tag to each receiver to estimate one-way channel transmission parameters from each transmitter to each tag; using the estimated one-way channel transmission parameters from each transmitter to each tag to precode an acknowledgement signal for responding to each tag; and sending each precoded acknowledgement signal to each corresponding tag. Because the method involves extracting information from the collision at the receivers, the process is backward compatible with existing tags. That is to say, there is no need to replace or update legacy tags. Here, the data received from each tag may be the RN16 for example, and the ACK may contain the same RN16 sent back to the tag which issued it. The procedure is therefore compatible with the RFID protocols such as those discussed at a high level above. In particular, the system is compatible with C1G2 which is capable of communicating with more than one tag simultaneously allowing greater read rates to form a multi-user multipleinput and multiple-output (MU-MIMO) RFID protocol in which multiple transceivers are exploited to recover collided tag data and perform channel estimation. There are at least as many as the number of tags to be communicated with in a given time slot, or presenting this in a more practical format, where a given number of transceivers are present, collisions between up to that same number of tags can be compensated for by the method. Where more collisions occur than there are receiver / transmitter pairs, at most acknowledgement signals may be sent to a number of tags equal to the number of receiver / transmitter pairs. The channel transmission parameters are used to precode the reader ACK signals from multiple transmission antennas into spatial channels so that the tags will receive sufficiently separated acknowledgements. In this way the problem of reduced-throughput in dense-tag scenarios, is addressed by providing multiple transceivers (e.g. via full-duplex monostatic antennas, in which the receiver also acts as a transmitter) operating simultaneously. The present approach leverages the tag collisions themselves to simultaneously recover collided tag data and perform channel estimation (i.e. extraction of the channel transmission parameters). This channel estimation in particular relates to the reader to tag transmission path, which allows the reader ACKs to be sent by the transmit antennas using a precoding scheme based on the estimated channel matrix providing a separate spatial channel to each tag. Consequently, the tags can recover their respective RN16s from the ACK command and backscatter their own bespoke data, for example electronic product codes (EPCs), at the same time. The method is fully compatible with current C1G2 RFID tags without any modifications. Optionally, L is equal to 2, and wherein there are at least two receivers. This is a simple example of the procedure, which covers a common collision type (two tags) in many densely populated tag scenarios. Optionally, extracting data from each tag includes, at least in part: receiving a series of individual data symbols in successive tag bit periods; and identifying each symbol received in the l-Q plane and identifying clusters of received symbols. By arranging the received symbols in this way, a variety of known algorithms can be used to identify the most appropriate cluster into which to sort them. This in turn allows different combinations of received symbols from each tag to be identified as distinct. In a perfect system, each distinct combination of received symbols would be received in exactly the same location in the l-Q plane. Deviations from this perfect clustering in the l-Q plane is driven primarily by leakage and noise in the RF link between the tag and the reader. The greater the effect of these aspects, the wider the spread of the received points representing the same transmitted combination from each tag around the “ideal” location in the l-Q plane. As long as the signal-to-noise ratio (SNR) is large enough, in practice, the symbol combinations received at each receiver will generally be distinguishable. Usually, each receiver receives symbols which form 2L clusters in the l-Q plane, each cluster representing a different combination of 0 and 1 received as a symbol from each of the L tags in a given symbol period. Optionally clusters representing at least one 0 and at least one 1 from different tags received at a receiver in the same time slot are assessed to identify which tag(s) transmitted a 0 and which tag(s) transmitted a 1 by: assigning to each cluster in the l-Q plane a distinct combination of Os and 1s received from each tag.. This provides a neat and logical way to extract the received symbol (which e.g. represents the RN16 from each tag). Note that in some cases a rotation and / or stretch matrix may be used to match the clusters at each receiver identically. The receiver used to extract the data may be selected in any appropriate way (as well as the order in which subsequent readers). Here the data received by each receiver from each tag is received substantially simultaneously. This is because each tag responds passively to queries sent from the reader. A response from a tag has a set format and therefore takes the same amount of time to issue, irrespective of the specific content of the response. Consequently the responses from each tag arrive at the receivers substantially simultaneously, aside from time of flight differences due to the relative physical locations of the tags and the readers (an effect assumed to be smaller than other sources of noise or inaccuracy). This in turn allows for the received signals to be correlated in the time domain across multiple receivers. Optionally, clusters representing every tag transmitting a 0 or every tag transmitting a 1 are mapped to the all-0 or all-1 received symbol by correlating a known preamble sent by each tag prior to each tag sending its own data. Since each tag sends the same, known, preamble, the all-0 and all-1 (i.e. every tag transmitting a 0 or each tag transmitting a 1, respectively) received symbols can be easily identified by associating a given time slot with whichever symbol (0 or 1) is expected at a given portion of the time slot based on the known form of the preamble. Since the all-0 and all-1 received symbols can be identified unambiguously, only mixed received symbols (i.e. those including at least one 1 and at least one 0) need careful assignment. For example, in the two-tag scenario, these received symbols are (0,1) and (1,0) (for convenience (x,y) may be thought of as symbol x received from tag 1, and symbol y received from tag 2). These can be assigned in any way so long as they are consistently assigned between the different receivers. That is to say, that a mixed received symbol received at receiver 1 can be assigned either (0,1) or (1,0) for the analysis to work, as long as the same assignment is made for that symbol at receiver 2. This means that the symbol received at symbol period i can be interpreted as either: (a) tag 1 sending 0, and tag 2 sending 1; or (b) tag 1 sending 1, and tag 2 sending 0. As long as the symbol received by receiver 2 is assigned the same assignment for the symbol received in this symbol period, then the analysis below will work. In order to have a definite procedure for assigning tag symbols to IQ plane regions, any method which is consistent between (all) receivers is appropriate. For example, the assignment may be that tag bit periods having mixed received symbols in them may be assigned to mixed received symbol bit combinations randomly (but with the same combination corresponding to each tag bit period). Alternatively, a procedure may be used to predictably assign the mixed received symbol data at each tag bit period to bit combinations. For example, the received clusters in the IQ plane of a given reader (as above, a random receiver, the receiver with the highest SNR, etc.) may be ordered according to the magnitude of the l-component, the magnitude of the Q-component, the magnitude of the vector from the origin to each cluster, or any other metric. Whichever ordering is selected for the IQ plane points, they may then be assigned consistently by working through the mixed received symbol bit combinations (e.g. starting by assigning (0,0,...,0,1) to the first ordered IQ cluster and working through the remining clusters and bit combinations in increasing order). Optionally when the tag symbols have been identified, decoding can be applied to determine the transmitted tag data. FM0 coding is described in this patent, but any coding scheme may be used (for example Miller). Optionally the method further comprises identifying L fundamental vectors in the l-Q plane for the received data, the fundamental vectors being vectors which correspond to an l-Q plane translation: from the all-0 cluster to each of the L clusters corresponding to receiving a 1 from exactly one tag and all symbols received from other tags being 0; or from the all-1 cluster to each of the L clusters corresponding to receiving a 0 from exactly one tag and all symbols received from other tags being 1. A fundamental vector is one which corresponds to a "single-1" or "single-0" received symbol, i.e. a bit flip of a single tag from the all-1 or all-0 received symbol respectively at a given receiver, with the other tags symbols remaining the same. The all-0 cluster is usually preferred as a starting point it is a simpler cluster to identify, is not prone to non-linear or interference effects and so forth. Nevertheless, the principles discussed herein can be seen to work starting from the all-1 cluster. Optionally the fundamental vectors are extracted from a set of candidate vectors, being vectors mapping between: the all-0 cluster and the closest clusters, being the set of clusters closest to the all-0 cluster; or the all-1 cluster and the closest clusters, being the set of clusters closest to the all-1 cluster. There are several ways in which the candidate closest vectors may be identified. For example (for starting from the all-0 cluster - equivalent steps are possible from the all-1 cluster), as discussed in detail elsewhere, the fundamental vectors for an L tag example may not be the vectors from the all-0 cluster to the L clusters located closest to the all-0 cluster. In general, then, it may be necessary to select the L+1 or L+2 clusters closest to the all-0 cluster and then filter out non-fundamental vectors from there. Alternatively the L+1 or L+2 clusters furthest from the all-1 cluster may be identified as the set of candidate clusters. Another method involves considering the received clusters at more than one receiver. Since the clusters at each receiver can be correlated with one another by considering the time of receipt of each cluster, it is possible to see which cluster on one receiver corresponds to which cluster in another receiver. Since each fundamental vector corresponds to a unique single-1 cluster, these should in general be close to the all-0 cluster. Therefore is for example, at one receiver, the closest four clusters are 1,2,3,4 (arbitrarily labelled but consistently so between receivers) while at another receiver the closest four clusters are 1,3,4,5, then it is very likely that 1, 3 and 4 are the true fundamental vectors. Optionally the fundamental vectors are extracted from the set of candidate vectors by identifying and excluding one or more candidate vectors which are expressible as a sum of two or more other candidate vectors. Optionally the method further comprises consistently assigning clusters associated with each fundamental vector as corresponding to a different one of the tags transmitting a different symbol to the other tags. The clusters reached by a fundamental vector from the all-0 cluster are the symbol combinations having a single tag transmitting a 1 with all other tags transmitting Os, (or vice-versa, starting from the all-1 cluster). This allows a consistent association of all clusters by mapping the vector combination of a cluster with the corresponding combination of Os and 1s implied by that vector. In other words, all clusters can be expressed as a sum of fundamental vectors, and thereby to a given cluster can be consistently associated with a specific combination of symbols received from each tag at a given receiver by associating each fundamental vector with a specific tag transmitting a 1 (or 0) and associating the sum of fundamental vectors from the all-0 (or all-1) cluster to a given cluster with the corresponding tags simultaneously transmitting 1s (or Os) while the others transmit Os (or 1s). For example, in a3-tag, 3-receiver example, starting from the all-0 state (000), if a given cluster is reached by a sum of two fundamental vectors which map the transition from the 000 state to the 001 state and the 010 state, then the cluster so reached should be associated with the 011 state. Conversely, starting from the all-1 state (111), if a given cluster is reached by a sum of two fundamental vectors which map the transition from the 111 state to the 110 state and the 101 state, then the cluster so reached should be associated with the 100 state. This can be performed at any one, several or even all of the receivers, provided that the same received symbol is associated at each receiver in a given symbol period. Assignment of a cluster with a bit combination at this stage can be arbitrary because a channel estimation is performed and these estimates are inherently paired to the information corresponding to each tag. Hence, if consistent with labelling, the precoding matrix will naturally match the transmitted signals with the appropriate tags. The labelling of tags at this stage is arbitrary, provided for understanding of the process. Where there are multiple receivers, and especially in cases where there are more receivers than colliding tags, a method of selecting which receiver data to use and in which order may include starting with the receiver which has received signals with the highest overall signal-to-noise ratio (SNR) and working through the remaining receivers in order of decreasing SNR of received signal until enough received data has been considered to allow the process to operate. This provides a clear and consistent procedure for selecting the order in which signals are processed and correlated between the different receivers. The method may further comprise reconstructing the data transmitted from each tag by concatenating the binary digits associated with each tag in successive symbol periods and decoding to determine the data bits (e.g. FM0 or Miller coding). Optionally, a known preamble is omitted from the initial portion of the data. An estimate of the samples per coded symbol period may be extracted using a preamble matched filter. Optionally, false edge recovery is used to remove errors from the extracted data for each tag. This is a helpful way of mitigating the effects of noise and leakage to provide a correction to misidentified symbols. RFID often uses the FM0 encoding scheme whenever a high system throughput is needed, in which a square wave forms the basis of the data. Each transition of the square wave (from high to low or low to high) indicates a new tag bit period. 0 and 1 FM0 symbols are encoded into each period by introducing a further transition in the period (0 FM0 symbol) or introducing no additional transition (1 FMO symbol). The transition when encoding the 0 FMO symbol is intended to occur as near to the centre of the FMO symbol period as possible. As a result, tags with a frequency variation from each other can cause difficulty interpreting the symbol period. A correction may be applied to counter this, for example ignoring two very quick transitions (forming a narrow square wave) or assuming that a long time without a transition is erroneous and inserting a transition where it would make sense can all be used to correct false edges. Optionally, identifying one-way channel transmission includes: identifying, at each of at least L receivers, a set of 2L clusters in the l-Q plane, each cluster representing a different combination of 0 and 1 received as a symbol from each of the L tags in a given symbol period; assigning to each cluster received at a first receiver a distinct combination of Os and 1s received from each tag; correlating the assignment of clusters and symbol correlations at the first receiver with symbols received at a different receiver forming a set of 2L clusters in the I-Q plane by matching symbol periods between the receivers; and repeating the correlating step with a further receiver until signals received at each of the L receivers have been considered. In cases where there are more receivers than tags simultaneously transmitting, the at least L receivers may be selected in any appropriate manner, for example by selecting the L receivers having the highest SNR. Optionally, identifying the one way channel transmission parameters for each tag includes, at least in part: receiving a series of individual data bits in successive tag bit periods; identifying each symbol received with a portion of the l-Q plane and identifying clusters of received symbols; and based on the portion of the l-Q plane in which each symbol is located, extracting an estimated transmission coefficient between each of the tags and each of the receivers. The location of the l-Q plane in which a given set of symbols (i.e. the collective Os and 1s received from all tags in a given time slot) allows an identification of the channel transmission properties between the reader and the tag. Optionally, the estimated transmission coefficients between each tag and each receiver are formed into an estimated channel transmission matrix, Hest- Each cluster in the l-Q plane represents phase and / or amplitude changes to the carrier wave due to a superposition of received signals from each tag. Because each tag shifts the received signal differently depending both on whether it is transmitting a 0 or a 1 and on the transmission characteristics (noise, leakage, direction, distance, etc.) of the communication pathway, any given combination of symbols received from the tags results in a superposition of these shifts. Usually this shifts the received signal into a separate region of the l-Q plane, allowing for clustering and distinction of the various combinations of received symbols, and hence to the extraction (by comparison with signals received at other receivers) of the RN16 issued by each individual tag as set out above. In addition to this, the transmission properties of the communication link between each tag and each receiver may be extracted as discussed in more detail below. Optionally, estimating the one-way channel transmission parameters from each transmitter to each tag includes inverting the channel transmission matrix to provide a precoded signal, Sprecode for sending acknowledgement signals to each corresponding tag. The inversion of the channel matrix may be performed according to one of: Sprecode = (Mest) S or Sprecode = (HTest)HS wherein S is a matrix representing the time-domain transmit signal representing the data sent by each tag, AT represents the transpose of a matrix, A, AH represents the Hermitian transpose of a matrix, 4, and A1 represents the inverse of a matrix, 4. By inverting the estimated channel matrix in this way, a precoded ACK signal can be sent to each tag, thereby improving throughput. The first inversion listed above is the direct matrix inverse. This is used if det(HgSt) ^0, but the second version uses the pseudo-inverse of the matrix, known as the 'Moore-Penrose inverse'. This is a best fit (least squares) and is a more generalized setup. In practice, this second option is always available and may be preferred for simplicity. Furthermore, other methods may be used to generate an appropriate inverse e.g. Minimum Mean Square Error (MMSE), which is a more balanced equalizer that balances interference and noise together (whereas the zero-forcing approaches above aims to minimise interference but can end up enhancing noise). Optionally, sending each precoded acknowledgement signal to each corresponding tag includes sending each acknowledgement to each tag simultaneously. Optionally, simultaneous transmission includes forming a superposition of each acknowledgement with a phase and / or amplitude shift (i.e. as provided by the precoding procedures set out above) to beamform each individual acknowledgement to its corresponding tag. The individual ACKs are sent to each tag using the precoding matrix, so that ACK signals for each tag are beamformed to be directed to the physical location of the corresponding tag. Optionally, Hest is provided by: where i = j . , where i + j r.. estj.j J 11 1 in which refers to the location in the l-Q plane of the data received by the ith receiver from the cluster in which the jth tag is transmitting a 1 and all other tags are transmitting a 0. For example, considering a two-tag, two-reader example, and writing the transmission channel between tag j and receiver i as r^j, the receiving matrix has the form: ri,i ri,2 .r2,l ^2,2 The l-Q plane coordinates of clusters (i.e. complex numbers) assigned in the first receiver to the (1,0) and (0,1) symbols can be assigned as A and B respectively. This means that A corresponds to the first receiver receiving a 1 from tag 1 and 0 from tag 2, i.e. the coefficient r14, and B corresponds to the first receiver receiving a 1 from tag 2 and 0 from tag 1, i.e. the coefficient?! 2. Similarly, the l-Q plane coordinates ofclusters (i.e. complex numbers) assigned in the second receiver to the (1,0) and (0,1) symbols can be assigned as C and D respectively. This means that C corresponds to the second reader receiving a 1 from tag 1 and 0 from tag 2, i.e. the coefficient r2>1 and D corresponds to the second receiver receiving a 1 from tag 2 and 0 from tag 1, i.e. the coefficient r22. Having done this, the estimated matrix can be constructed by noting that the received signal at the receiver, R is given by: T h2i)RN16i + ^12(^12 T ^22)^^1^2 ^21(^11 T h2i)RN16^ + ^22(^12 T ^22)^^1^2 This can be solved to identify the estimated channel matrix for sending a reply to the tags by noting the (complex number) values of A, B C and D, and solving: This assumes that the reply channel has the same (or close enough) transmission properties as the received channel. Also disclosed herein is a radio frequency identification reader, comprising: at least L transmitters, wherein L is greater than or equal to 2; at least L receivers; and a processor configured to: identify a tag collision, the tag collision comprising data from each of L tags being received at each of the receivers; use the data received at each receiver to extract the data from each tag; identify one-way channel transmission parameters to at least L receivers from each tag from the data received at each reader from each tag; use the one way channel transmission parameters from each transmitter to each tag to estimate one-way channel transmission parameters from each transmitter to each tag; use the estimates one-way channel transmission parameters from each transmitter to each tag to precode acknowledgement signals for responding to each tag; and send each precoded acknowledgement signal to each corresponding tag. The reader or method set out above may be used in a warehouse, factory or shop and is used for the purpose of: inventory management; supply chain logistics; asset tracking; and / or theft prevention. The reader or methods set our above may provide (via the collision recovery procedure) an average throughput of more than 0.37 tags per slot. Also disclosed herein is a computer program or computer program product comprising instructions which, when run on a processor, cause the processor to enact any of the methods set out above. The invention will now be described with reference to the accompanying Figures, by example only, in which: Figure 1 illustrates a dense MU-MIMO RFID system with N transmitters, Ltags, and M receivers; Figure 2 illustrates an example of using tag collisions to perform the RFID handshake protocol; Figure 3 is a flow chart illustrating steps in an example method; Figure 4 illustrates an l-Q plane plot of symbols received from two tags at two receivers; Figure 5 is a block diagram of a two transmitter, two tag, two receiver conducted MU-MIMO system; Figure 6 shows experimental data where two RN16 signals collide, with 6A showing the l-Q plane plots; 6B showing the l-Q waveforms; and 6C showing the received waveform amplitude; Figures 7Aand 7B illustrate the RN16s recovered from the plots in Figure 6; Figures 8A and 8B show the ACK signals transmitted from the receivers as received at each tag, where 8A shows the received signal without precoding, 8B shows the receipt of ACK. at tag 1 with precoding, and 8C shows the receipt o^ACK2 at tag 2 with precoding; Figure 9 shows a flow chart of an example method, with subsequent figures indicating examples of sub-steps in the method, specifically: Figures 10A and 10B show examples of FMO encoded data transmitted by two and three tags respectively; Figures 11A and 11B show l-Q plane plots of the data sent by the tags in Figures 10A and 10B received by two receivers respectively after transmission across a transmission channel; Figure 11C illustrates the extraction of the received data from each of the two tags in Figure 10Afrom the information received by a single receiver; Figures 11D to 11J illustrate the extraction of the received data from each of the three tags in Figure 10B from the information received by a single receiver including the identification of fundamental vectors; Figure 12A shows false edge detection criteria and the extraction of the received data using a false edge recovery process for three tags; Figure 12B shows the operation of a preamble matched filter to identify the samples per FMO symbol for the received data; Figure 12C shows differential decoding of the received data excluding tag preamble; Figure 13A shows a process of channel estimation for precoding a response signal for a two tag example; Figure 13B shows a process of channel estimation for precoding a response signal for a three tag example. In Figure 1, the general problem addressed herein is illustrated. This MU-MIMO system has N transmit antennas, L passive RFID tags within read range, and M receive antennas. In many cases the transmitters are also the receivers (i.e. M = N), with the same antenna being used to both receive and transmit information and the combination of transmitter and receiver is referred to generally as a transceiver, communicating with tags. This is not essential, however, and the most general form the system is that of Figure 1. In any case, it is clear that each tag receives multiple queries, responds by broadcasting its own RN16, and each receiver therefore receives L RN16s superimposed upon one another. The present invention provides a way to extract each RN16 and send an ACK signal to each individual tag, so long as there are at least as many transmitter / receiver pairs as the number of tags which collide. For the general M*L*N case, the M^Treceived signal at the reader is denoted by R e CMxT, where T is the length of the signal in the time-domain. R = G(HtS °C) + L + N (1) Here S, C, L, and N represent N * T complex matrices representing the time-domain transmit signal, tag RN16 coding, leakage, and noise terms respectively. Operator o denotes the Hadamard product of two matrices. We assume the leakage term remains constant during a single transmission between reader and tag, and can be significantly suppressed. For simplicity, noise is modelled as additive Gaussian white noise (AWGN) at the receiver. Hr and G are the downlink channels between reader’s transmitters and tag(s), and uplink channels between reader’s receiver and tag(s), respectively. A concrete example of a 2 x 2 RFID MIMO reader with monostatic antennas and 2 passive RFID tags which respond simultaneously resulting in a 2 x 2 x 2 system will now be illustrated as this is the most basic case encountered, to elucidate the details of the method. It will be apparent, of course, that larger numbers of tags colliding can be recovered by appropriate extensions of the method. A 2 x 2 MIMO allows the generation of 2 spatial channels, potentially doubling the throughput compared to single input single output (SISO) communication. However, the conventional MIMO technique requires knowledge of the channel which typically relies on modification of the protocol with special features for channel estimation. We show that 2x2x2 MU-MIMO RFID is possible under the existing RFID standards by using channel estimation. Indeed, further examples later in this document illustrate how to extend the 2 x 2 x 2 system to cover three or more tags. The proposed solution is illustrated in Figure 2, which utilizes the collided RN16s from the tags for both channel estimation and data recovery. The channel estimates are then used to precode the reader acknowledgements such that they are received distinctly by their respective tag. Previous work suggests that a signal-to-interference ratio (SIR) of 10 dB will be required at each tag to allow successful reader to tag communication. The SIR achieved in the present example depends on both the channels and the quality of the channel estimate. The solution begins with the readers (although shown as a single element, it is assumed that at least two transmitters and at least two receivers are present) transmitting a CW signal to provide power to the tags. In fact, the CW signal may be transmitted at all times when data is not being exchanged. Next a query is issued and is received by each tag (tag 1 and tag 2 in this example). Each tag responds by issuing an individual RN16 (RNI61 and RNI62) which are each received as a collision by each receiver. The individual RN16s may then be extracted by any or each receiver and the channel communication parameters identified between each tag from the collision at each receiver. This information is used to precode the ACK signals so that each tag receives an ACK along a bespoke spatial channel for that tag. Once this handshake is completed, the tags can send tag-specific information, such as an electronic product code (EPC1 and EPC2). The reader can then use the same method as was used to separate RNI61 and RN162 to separate the EPCs, or use the known channel coefficients. In Figure 3, a flowchart for a collision recovery method is shown. At step 1, four constellation points (clusters of received signals) are determined for each receiver, which correspond to the combinations of the two tags absorbing or reflecting states (i.e. a 0 or a 1 from each tag, forming 00, 01, 10 and 11 - four different symbol combinations). Since the receiver antennas receive the same collided data, the constellation points at two receivers can be jointly analysed, and the IQ data with greater SNR is clustered using any suitable local density-based clustering algorithm. In step 2, each tag’s RN16 is recovered using the data received at each receiver by using binary decision. Where false edges (typically due to misclustered transition samples) have occurred, these are optionally recovered in step 3, for example, using the algorithm described later with respect to Figure 13B. A further optional step is presented in step 4, where the sample rate is estimated using a preamble matched filter. This process is described in more detail below with respect to Figure 13A. Finally, the RN16s are recovered using a matched filter with coefficient equal to half of an FMO symbol. As this point, the RN16s can be transmitted back to each tag as an ACK signal to complete the handshake protocol, and allow transmission of the tag-specific data. Because the method involves extracting information from the collision at the receivers, the process is backward compatible with existing tags. That is to say, there is no need to replace or update legacy tags. In this way the problem of reduced-throughput in dense-tag scenarios, is addressed by providing multiple transceivers operating simultaneously. For the 2x2x2 monostatic case, Eq. 1 can be explicitly written as below, using the assumption of channel reciprocity G = (ht) = H, which is satisfied for monostatic antennas (transceivers) or for receiver and transmitter antennas which are placed sufficiently close to one another that the assumption of reciprocity holds despite their physical separation. R = H(HtS 0 C) + N (2) / in ^12 .^21 ^22. (3) For conciseness, the time-domain coding matrix C is defined as a 2x1 matrix rather than 2*T, where T is the total RN16 packet length. O162. (4) hidh^ + / 1^)0^ + / i12( / i12 + h22)RN162 . / 121( / ^11 T h21)RN161 + / 122(^12 T h22)RN162_ + IV (5) Hence four constellation points in the l-Q plane are obtained at each receiver (see Figure 4), with the complex coefficients from Eq. 5. The received data clusters can be used to estimate the values A, B, C, and D. This system of equations can be solved as below: Hest 'hest uest “11 “12 + -hf / —\A+C D Lest .21 hest “22 . c hest Ia^1 D2 D+B. (6) The pairs of clusters A&C and B&D can be matched by considering that the data at both receivers corresponds to the RNI61 and RNI62 respectively. When there are three receivers and two tags, we find three parallelograms in the l-Q plane. The form of the Hest matrix will then be more complex (a 3 x 2 matrix) and will include six parameters. In such a case there a variety of methods to find the transpose or pseudo inverse depending on how the additional degree of freedom is used (e.g. null steering). Of course, the data received from any pair of the receivers in the manner set out in Eq. 6 and other pairs used to check the result or to provide a result with a better SNR. In general, the Hest matrix will have size NxL, for an Ltag case, received by N receivers. In general, for the L tag, N receiver system in Figure 1, each transceiver receives a different polyhedron with 2- vertices, whose position in the parameters. The channel matrix is as below: IQ plane are based on the channel / in hi j h-iL h-Ki hKj h-KL -^JVl h-Nj h-NL- Assuming N >L, it is possible to pick the L 'best' received data sets from the N antennas. These are used to construct the arbitrary matrix (noting there is still the requirement to match the data at the receivers to that of the tags) which can be used to calculate the estimated channel matrix. This channel estimation in particular relates to the tag to receiver transmission path. Where the transmitter to tag channel can be found from this the reader ACKs to be sent by the transmit antennas using a precoding scheme based on the estimated channel matrix providing a separate spatial channel to each tag. In the case of monostatic transceivers, finding the transmitter to tag channel from the tag to receiver channel is trivial. In this way, the locations of the received collided data signals in the l-Q plane allows the extraction of data from each tag. The data received in successive tag bit periods are overlaid on the same l-Q plot and a parallelogram is revealed for each receiver. Each cluster of points is associated with a combination of Os and 1s received simultaneously from each tag. In general, where L tags respond, each receiver receives symbols which form 2L clusters in the l-Q plane, each cluster representing a different combination of 0 and 1 received as a symbol from each of the L tags in a given symbol period. The symbol period at which a given combination is received at a first receiver is used to correlate that same combination being received at each other receiver. This provides a neat and logical way to extract the received symbol (which e.g. represents the RN16 from each tag), and reliably abandon inconsistent assignments. In the two-tag example, the pairs of phase ambiguity introduced in Eq. 6, result in the Hest matrix in the form shown in Eq. 7 with addition error term E to account for errors in clustering. Passive tags have only a simple envelope detector, hence only the magnitude of the received acknowledgements at the tag are important and the phase can be ignored. „ _ pin ^121, F_„ri oi, „ Hest — r u t tt — n _ + £ LA21 ^22 J L0 1J (7) Hest ^11 .^21 Hest = ^11 .^21 ^12 ~h72 + £ = / / [ 1 For the tags to receive their respective ACKs simultaneously and uncollided, the transmit signal S at the reader can be precoded using Eq.8 ^precede = (flest) 1 $ (®) Or alternatively, using the zero-forcing method, where superscript H denotes the Hermitian transpose. Spreeode = S (9) By inverting the estimated channel matrix in this way, a precoded ACK signal can be sent to each tag, thereby improving throughput. In some cases, the ACK is sent to each tag simultaneously. Simultaneous transmission in this case includes forming a superposition of each acknowledgement with a phase and / or amplitude shift to beamform each individual acknowledgement to its corresponding tag. The individual ACKs are sent to each tag using the precoding matrix, so that ACK signals for each tag are beamformed to be directed to the physical location of the corresponding tag. As a specific example of an experimental setup, see Figure 5 which shows the block diagram of the 2 x 2 * 2 MU-MIMO RFID system. The reader commands are generated by an Analog Devices FMCOMMS5 SDR. Due to the limited isolation of the RF circulator, the leakage between each transmitter / receiver pair is usually much stronger than the tag backscattered signal. As a result, a leakage cancellation circuit may be provided to improve the receiver sensitivity and ensure that the receivers are not saturated. For commercial EPC C1G2 RFID tags each RN16 is randomly generated during each query slot and it is therefore only possible to verify if the collided RN16s are recovered correctly if an ACK is provided within the correct time frame and results in an EPC transmission. Here we use a setup to allow verification of the RN16 recovery independently by emulating the backscatter modulators of two tags. Two MOSFET transistors (BF1105R_215) are used to emulate two backscatter modulators. Each transistor is mounted on an SMA connector, and the gate voltage is controlled by a digital IO pin (3.3V) on an Analog Devices ADALM2000 operating as an Arbitrary Waveform Generator. The voltage waveforms applied to the gates are generated according to two predefined RN16s. Owing to the high sampling rate of the ADALM2000 (up to 100 MSPS), the response delay and the tag bit frequency variation (up to ±22%) between the two RN16s can be varied in small steps. To detect the reader commands at each tag, a proportion of the downlink signals are coupled to two power detectors (Mini-circuits ZX47-40-S) and the output waveforms are measured by the analogue inputs on the ADALM2000 (emulating the tag envelope detector). To demonstrate the proof of concept of the MU-MIMO RFID system and allow repeatable measurements, the channels between the reader’s transceivers and tags is emulated using coaxial cables. The setup allows independent control of the attenuation and phase of each element in the 2x2 channel matrix which is common to both the uplink and downlink. Combined with the backscatter modulators this forms the complete 2x2x2 MU-MIMO channel. Table 1 summarises the key parameters used in the experiments. FMO is used for tag data encoding and the nominal uplink frequency is set to 400 kHz. The sample rate of the reader is set to 30 MSPS to ensure there is an adequate number of samples per FMO symbol (~75 samples / FMO symbol). Furthermore, this guarantees that the states and transitions due to the frequency offset (10%) between two RN16s can be captured. Figures 6A, 6B and 6C show different representations of the collided RN16s at each receiver. Four combinations of modulation states and hence four clusters are presented at each receiver. These clusters form a parallelogram and the ratio between adjacent sides is a result of the signal strength difference between the two tags. From Figure 6A it is clear that one of the tag’s received signal strength is much poorer than the other at this antenna. For commercial readers it is sometimes possible to read the tag with greater strength due to the capture effect, but the weaker tag (tag 1 in this case) cannot be read. The present MU-MIMO RFID system exploits spatial diversity and the constellation diagrams at two receivers can have different shapes. The clusters at the two receivers can be jointly analysed to improve recovery accuracy since they contain the same tag information. Parameter Description Value Fs_SDR Sample rate of FMCOMMS5 30 MSPS Tx / Rx LO Reader operating frequency 867 MHz Fs_A2000 Sample rate of Adalm2000 50 MSPS BLF Nominal tag uplink frequency 400 kHz M_type Tag encoding FMO RNI61 RN16 backscattered by FET1 (tag1) 0x38FB in Hex RN162 RN16 backscattered by FET2 (tag2) 0x894B in Hex Offset Symbol frequency offset between the two RN16s 10% As discussed above, the four clusters at each receiver contain states when both tags are transmitting 0s (1 cluster), one is transmitting 0s and the other is transmitting 1s (2 clusters), and both are transmitting 1s (1 cluster). Where 0s represent the absorptive state and 1s represent the reflective state. The clusters for the first and the last clusters can be estimated from T1 and the tag preamble, as the tags simultaneously (neglecting clock offset) transmit the same preamble during this period. For the remaining two clusters, a random selection is made for one of the clusters and assume that if one of the tags is transmitting 1s, then for the samples in the remaining cluster the same tag must be transmitting Os. Similar analysis applies to the other tag, but in the opposite manner. By assigning binary states to each tag at each sample time, the tag RN16s can be constructed. The recovered RN16s at each receiver are shown in Figures 7A and 7B. Here a local densitybased algorithm is used for the sample clustering. This approach is based on the idea that cluster centres are characterized by a higher density than their neighbours and by a relatively large distance from points with higher densities. This idea forms the basis of a clustering procedure in which the number of clusters arises intuitively, outliers are automatically spotted and excluded from the analysis, and clusters are recognized regardless of their shape and of the dimensionality of the space in which they are embedded. At receiver 1, tag 1 has multiple assignment errors due to its relatively poor signal strength - resulting in misclustered samples. If the tag symbol clock is accurately known, (for commercial tags it may vary due to frequency drift) we could locate most of the symbol transitions and correct the false transitions by passing the signal through the false-edge recovery block shown in Figure 3. However, the signal strength of tag 1 at receiver 2 is comparable to tag 2, and the clusters are more spread, so Tag 1 could be more easily decoded using the signal from receiver 2 (RX2). The cluster indices from RX2 can then be applied to receiver 1 (RXi) to accurately construct the tag signals and later for channel estimation. FMO is used for the tag data encoding. According to EPC C1G2 protocol a long high state (or a long low state) represents a FMO symbol 1, and a short low state followed by a short high state (or a short high state followed by a short low state) represents a FMO symbol 0. As can be seen, tag 1’s RN16 can be decoded as 0011 1000 1111 1011 (or 0x38FB in hex) and tag 2’s RN16 can be decoded as 1000 1001 0100 1011 (or 0x894B in hex), both are in accordance with the predefined RN16s shown in Table I. Once the tags’ RN16s are successfully recovered the full link channel coefficients between the reader and tags can be estimated from the cluster centres (i.e., complex vectors pointing from the cluster centre when both tags are transmitting 0s to the cluster centre when one tag is transmitting 1s but the other is transmitting 0s). For instance, as shown in Figure 6A the dashed vectors represent the channel coefficients between transmitter / receiver pair 1 and tag 1 (top), and transmitter / receiver pair 2 and tag 1 (bottom). We can then calculate values for A, B, C, and D as: u nrx ■A B C D —0.012i 0.134+ 0.025i -0.025 + 0.0361 0.169 — 0.004i h'^ and can be first calculated using Eq. 6 and their values are later used to calculate and Since the channels are complex, we get two solutions for each channel coefficient and hence multiple combinations of downlink and precoding matrices. Table II summarizes different combinations of these matrices for a particular channel. Best ^precode . 0.058 + 0.0241 0.293 + 0.0351- —0.129 - -0.440 + 0.5511, 0.122 - 0.0891J —0.058 - 0.0241 0.293 + 0.0351 0.129 + 0.1961 0.169 - 0.0041 ,-0.206 + 0.3481 0.440 - 0.5511 1 0.562 - 0.0141 0.122 - 0.0891 , 0.058 + 0.0241 —0.293 — 0.0351, —0.129 - 0.1961 -0.169 + 0.004iJ —0.058 - 0.0241 -0.293 - 0.0351 0.129 + 0.1961 -0.169 + 0.0041 [ 0.206 - 0.3481 ^562 + 0.0141 [-0.206 + 0.3481 —0.562 + 0.0141 —0.440 + 0.5511, -0.122 + 0.0891 0.440 - 0.5511 , -0.122 + 0.0891 The transmit channels are then precoded: ACK 1 (contains RN16J ACK 2 (contains RNI62) with these matrices and the received envelopes of the ACK commands (using pulse interval encoding (PI E)) at each tag are shown in Figures. 8A and 8B. It is clear that without precoding, the received ACKs at each tag are collided and cannot be decoded by commercial tags which use simple diode-based envelope detectors. By comparison, if the transmit channels are precoded with the estimated channel matrix (i e., Hprecode) the collided ACKs at each tag are well separated, with tag 1 receives ACK that contains RNI61 and tag 2 receives ACK that contains RN162. Although the received ACK at each tag also contains some interference from the other ACK (and hence a different RN16), the proportion is small and the SIR (here we consider the ACK which contains the wrong RN16 as interference) is high. In addition, as shown in the lower two subplots, different combinations of the precoding matrices result in similar received envelopes at each tag. As mentioned above, some combinations of the precoding matrices will result in a 180° phase shift of the waveform received at the tag. However, these changes cannot be detected by a simple envelope detector and thus will not affect the tag decoder circuit. Using the above methods, it is apparent that a 2*2*2 MU-MIMO RFID system has been provided that is capable of recovering two-tag collisions, extracting channel coefficients from the collided RN16s, and more importantly precoding the transmitters to direct ACK commands to specific tags simultaneously. The method is compatible with current C1G2 EPC protocols without any modification of the tags. An emulated experiment has shown that in the uplink, tag data can be decoded and channel estimation carried out from the RN16, to allow precoding of the downlink signals to the tags with sufficient SIR at the tags to allow downlink communication. Therefore, with real-time implementation, simultaneous reading of 2 C1G2 RFID tags is possible. The same results apply to larger numbers of tags involved in a collision, by simply extending the methods to correlate data from a larger number of readers and extracting the RN16s and the channel coefficients in a directly analogous manner. In addition, the concepts could be extended to more than two reader antennas to allow a greater number of spatial channels to further improve throughput by addressing more tags simultaneously, or provide greater tolerance to poor channel conditions where fewer tags than reader antennas are addressed simultaneously. To explain these ideas in a little more detail, and illustrate the generalisation to more than two tags, consider Figures 9 to 15B, in which Figure 9 shows a flow chart illustrating the general method and Figures 10A to 15B show examples of specific ways to implement the steps set out in Figure 9. Note that the steps in Figure 9 are labelled 9xx where xx is the Figure number (or numbers) in which that step is show in more detail. In step 910 of Figure 9, a tag collision is identified, the tag collision comprising data from each of L tags being received at each of L or more RFID receivers (L >2). In a little more detail, receiver 1 receives data for all tags, as does receiver 2. This happens substantially simultaneously, as set out above. The data from each tag is clustered in the l-Q plane, forming 2L clusters for L tags at each receiver. For two tag collisions, for example there are 4 clusters at each receiver representing 4 state combinations: tag 1 is transmitting a 0 while tag 2 is transmitting a 1; tag 1 is transmitting a 1 while tag 2 is transmitting a 0; both tags are transmitting Os; and both tags are transmitting 1s. Cluster centres for the last two combinations can be estimated from reader leakage and tag preamble, so it is known when both tags are transmitting Os and 1s. For the remaining two clusters, we can randomly pick one cluster and assume, for instance, tag 1 is transmitting Os , then tag 2 must be transmitting 1s; then for the final cluster tag 1 must be transmitting 1s and tag 2 must be transmitting Os. Then we can reconstruct each tag data as discussed in more detail below. Since the two receivers receive the same collision signal substantially simultaneously, although the clusters at two receivers might form different shape they are correlated by the time of receipt. Assume that at receiver 1 cluster 1 contains samples when tag 1 is transmitting Os while tag 2 is transmitting 1s; then for the same sample indices at receiver 2, tag 1 is also transmitting 1s while tag 2 is transmitting Os. Since the data at two receivers might have different SNR, during clustering there might be inconsistency in state assignments, but usually these inconsistencies take a small portion of the whole data. When there are L tags in collisions, each cluster represents a combination of L states, so the analyses will be more complicated if L>2, although a three-tag example is used below to illustrate the general extension to more than two tags. Whereas if there are more transceivers than the number of tags, the extra copy (copies) of the collision is redundant but the channel information can be used for e.g. beamforming to increase signal powers at tags, performing checking or verification, etc. Figures 10A and 10B illustrate sample data generated by two and three tags respectively, along with the decimal representation of the RN16 encoded in the binary signal. For demonstration purposes these may be generated randomly to test the system, or they may represent actual data emitted from a tag. In line with RFID encoding systems, these may have a ±22% frequency variation although the preambles of each tag are synchronized. These signals are then transmitted to the receivers, over a communications channel characterized by a channel matrix. In the two tag case the transmission channel has the form: H = lhu ^121 = F—0.8644 + 0.0900 / 0.1465 - 0.2922 / 1 U2i h22\ 0.0157 — 0.5535 / -1.0621 + 0.1348 / J For the three tag case (Figure 10B), the transmission channel has the form: ^21 -^31 ^12 ^22 ^32 ^13’ ^23 ^33- —0.8343 — 0.9373 / 0.7179 - 0.6848 / 0.7897 + 0.7120 / 0.7415 - 0.3982 / 0.8341 - 0.6458 / 0.7415 + 0.2158 / 0.8691 + 0.1926 / 0.9052 + 0.9269 / 0.8130- 0.9180 / . These transmission channel matrices control the transmission of the signal to the receiverand ultimately result in specific tag symbol combinations being identified with specific regions in the l-Q plane at each receiver. Once more the transmission matrices may be simulated by randomly generating, or they may directly relate to the transmission characteristics between a real tag and a real receiver. In step 911 of Figure 9, the data sent from each tag are extracted using the data received at a receiver. Having received the data, a plot of the data received at each receiver forms (up to) 2L clusters in the l-Q plane, representing the 2L distinct combinations of Os and 1s transmitted by each tag, assuming each combination exists in the data which may not be true in any given case, and becomes less likely as L increases for a fixed length transmission string from each tag. Optionally, extracting data from each tag includes, at least in part: receiving a series of individual data symbols in successive tag bit periods; and identifying each symbol received in the l-Q plane and identifying clusters of received symbols. By arranging the received symbols in this way, a variety of known algorithms can be used to identify the most appropriate cluster into which to sort them. This in turn allows different combinations of received symbols from each tag to be identified as distinct. In a perfect system, each distinct combination of received symbols would be received in exactly the same location in the l-Q plane. Deviations from this perfect clustering in the l-Q plane is driven primarily by leakage and noise in the RF transmission link between the tag and the reader. The greater the effect of these aspects, the wider the spread of the received points representing the same transmitted combination from each tag around the “ideal” location in the l-Q plane. As long as the signal-to-noise ratio (SNR) is large enough, in practice, the symbol combinations received at each receiver will generally be distinguishable. Because each tag transmits an identical preamble, the all-0 and all-1 received symbols (symbol periods in which every tag is transmitting a 0 or a 1 respectively) can easily be identified based on the known form of the preamble. Figures 11A and 11B shows the received data at two receivers from two tags and three receivers from three tags respectively, in terms of both amplitude against time and as l-Q plane plots. In the l-Q plane the two-tag case appears as four points forming a parallelogram (different at each receiver) in the l-Q plane and the three-tag case appears as eight points forming a projection of a parallelepiped onto a 2D plane (also having a different shape at each receiver). In general L tags will present as a projection of a polyhedron with 2L vertices onto a 2D plane. Since the all-0 and all-1 received symbols can be identified unambiguously in all cases from the preamble, only mixed received symbols (i.e. those including at least one 1 and at least one 0) need careful assignment. For example, in the two-tag scenario of Figure 11 A, these received symbols are (0,1) and (1,0) (for convenience (x,y) may be thought of as symbol x received from tag 1, and symbol y received from tag 2). These can be assigned in any way so long as they are consistently assigned between the different receivers, which is achieved by using the symbol period to align the data. That is to say, that a mixed received symbol received at receiver 1 can be assigned either (0,1) or (1,0) for the analysis to work, as long as the same assignment is made for that symbol at receiver 2. This means that the symbol received at tag 5 bit period i can be interpreted as either: (a) tag 1 sending 0, and tag 2 sending 1; or (b) tag 1 sending 1, and tag 2 sending 0. As long as the cluster received by receiver 2 is assigned the same assignment for the symbol combination received in this tag bit period, then the analysis below will work. In order to have 10 a definite procedure for assigning tag symbols to IQ plane regions, any method which is consistent between (all) receivers is appropriate. For example, the assignment may be that tag bit periods having mixed received symbols in them may be assigned to mixed received symbol bit combinations randomly (but with the same combination corresponding to each tag bit period). 15 In order to reconstruct the data from each collided tag, we simply select a receiver (e.g. the receiver l-Q data with highest signal to noise ratio, SNR). The symbols received are assigned to all samples belonging to the below clusters to the following binary values: 20 Tag 1 25 Tag 2 (0,0) = 0 (0,0) = 0 (0,1) = 0 (0,1) = 1 (1,0) = 1 (1,0) = 0 (1,1) = 1 (1,1) = 1 30 This is shown generally in Figure 13A. In some cases, a rotation / stretch matrix may be applied to match the clusters at both receivers identically and then apply averaging. A similar process may be followed in order to extract the individual tag data from two or more tags by consistently assigning received symbol combinations to clusters in the l-Q plane at each receiver. 35 The full set of received data for each tag can then be reconstructed by concatenating the binary digits associated with each tag in successive symbol periods. The known preamble may further be omitted from the initial portion of the data in order to complete the reconstruction of the received data. 40 To explain this in a little more detail, consider Figure 11C, where the (1,1) cluster and the (1,0) cluster are assigned to be the 1 and 0 states respectively of the second tag, and the (1,1) cluster and (0,1) cluster are assigned to be the 1 and 0 states respectively of the first tag. This allows an extraction of the data as shown on the right of the Figure. A comparison with Figure 10A shows that in this example, the tag numbering has switched, but this does not matter because the channel estimation in subsequent steps (see below) ensures that the correct response signal is precoded for sending to the correct tag. The three tag situation is a little more complex, and is set out in Figures 11D to 11 J, involving the identification of fundamental vectors. Figure 11D shows a 2D projection of a parallelepiped in the l-Q plane, which generally represents the received data at a single receiver from 3 tags. In order to extract just the data from each tag, only a single receiver needs to be used, but in general, the process of finding the fundamental vectors will be used in channel estimation, meaning that at least as many receivers need be processed in this way as there are collided tags (i.e. three in this three tag example) for the later stages in the process. As before, the all-0 and all-1 clusters are identified from the preamble. This leaves six-mixed symbol combinations to be assigned to the remaining clusters. Although, as with the two-tag case, it does not matter which way around the single-1 symbols (in this example the (1,0,0), (0,1,0) and (1,0,0) symbols) are mapped, it will be important not to confuse a single-1 symbol with a single-0 symbol (i.e. any of the (0,1,1), (1,0,1) or (1,1,0) symbols). For this reason, the first step in processing a collision of three or more tags will be to identify the fundamental vectors for the l-Q plane, these can be thought of as vectors which represent a bit flip of a single tag, and therefore are vectors which map from the all-1 cluster to the single-0 cluster or from the all-0 cluster to the single-1 cluster. For the rest of this example the all-0 cluster will be used as the basis, with fundamental vectors being derived as being those vectors from that state to the three single-1 states, but it should be appreciated that the fundamental vectors from the all-1 state to the three single-0 states could equally be used. Similarly the process for finding the three fundamental vectors for a three tag system extends naturally to situations with more tags. Although these vectors are (correctly) labelled in Figure 11D (as can be seen because the tag 1 vector moves from the (0,0,0) cluster to the (1,0,0) cluster, indicating that the first tag has changed from a 0 to a 1 while the other tags remain transmitting 0s), this is not information which is directly derivable from the received data. Consider now Figure 11E, in which four candidate fundamental vectors have been identified, the “correct” set linking the (0,0,0) cluster to each of the single-1 cluster, along with the (1,0,1) cluster, which is approximately as close to theall-0 cluster as the “correct” three clusters are. In fact, it is easy to see in this Figure that a small rotation of the notional 3D parallelepiped would result in a 2D projection in which the (1,0,1) cluster is actually closer to the all-0 cluster than the (0,1,0) cluster is. For this reason it is not possible to simply take the closest L points in a given data set to identify the fundamental vectors for received data from L tags. Instead, it is necessary to identify at least L vectors, and also consider other candidate clusters which could also be represented by fundamental vectors due to their proximity to the all-0 (or all-1) cluster. In order to ensure that all fundamental vectors are captured as candidates, In this context, it can be seen that the two-tag case is a special case because every unknown mixed received symbol (both of them, the (0,1) and (1,0) symbols) is represented by a fundamental vector from the all-0 (or all-1) cluster, so there is no need to identify the closest points to limit the set to the fundamental vectors. Situations in which more than three tags collide is addressed in a natural extension of this process, since first identifying the fundamental vectors in this manner, and subsequently identifying the bit combinations corresponding to each cluster as being formed from a linear sum of the fundamental vectors is applicable to higher numbers of mixed received symbols due to data from more than three tags being received at the same time. These four candidate vectors are labelled ui, u2, u3, and u4, and correspond respectively to the clusters representing the (1,0,0), (0,1,0), (1,0,1) and (1,0,0) symbols. By considering the possible sums of two or more of these candidates, it can be identified that u3 = ui + u4. This means that u3 can be identified as not being a fundamental vector and is excluded from the set, leaving fundamental vectors vi = in; v2 = u2; v3 = u4. These are associated with specific tags (and will be consistently associated with those same tags when correlating data across receivers) so that Vj refers to the ith tag changing from 0 to 1. The next step is shown in Figures 11Fto11H. In Figure 11F, the data received from tag 1 is reconstructed by noting that the shaded parallelogram represents tag 1 transmitting a 1, irrespective of what the other tags are transmitting. Similarly the parallel parallelogram formed by the remaining four points represents tag 1 transmitting a 0. By following the order in which each cluster is formed, the data received from tag 1 can be extracted. Figures 11G and 11H illustrate the corresponding parallelograms used in identifying and extracting the data from the second and third tags respectively. To be explicit, this leads to the following correlation between clusters / vectors and tags: Tag 1 v =(1,0,0) = 1 v +v = (1,1,0) = 1 v +v = (1,0,1) = 1 +v +v = (1,1,1) = = 0 elsewhere Tag 2 v2= (0,1,0) = 1 v +v = (1,1,0) = 1 v2+v3= (0,1,1) = 1 v +v +v = (1 1 1) = 1 1 2 3 ' ’ ’ ’ = 0 elsewhere Tag 3 v3 = (0,0,1) = 1 v +v = (1,0,1) = 1 v +v = (0,1,1) = 1 v+v+v = (1,1,1) = 1 = 0 elsewhere The result of performing this process on data received in Figure 11B at the third receiver (the highest SNR data) is shown in Figure 111. With this completed, the data can be reconstructed for each tag as shown in Figure 11 J. Due to a larger number of samples being misclustered relative to the two tag space (due to the effect of noise and the greater number of clusters in a similarly sized region of the l-Q plane), there are more false edges present in this reconstruction relative to the two tag example. A process of false edge recovery will now be described with reference to Figure 12A. From the EPC C1G2 protocol, tags can have up to a ±22% frequency variation and false edge recovery seeks to identify and correct received data samples which do not conform to the FM0 encoding standard, even when the allowed ±22% variation in frequency is accounted for. The false edge recovery block operates by recording all edge positions in the time-domain of the extracted data from each tag. The width of each edge is then calculated and compared to the edge width found for the corresponding preamble. Each such edge is considered and where the level width (i.e. high / low duration) of a given edge is not within a certain range then a correction is applied to that edge. The range is determined by taking into account the frequency variation. In Figure 12A, along the bottom left of the Figure, are the possible false edges which can occur in the FM0 encoding. Since the FM0 encoding requires that each FM0 symbol starts with a high-to-low or low-to-high transition (depending on how the previous FM0 symbol ended), a zero is encoded as an additional transition at (or within 22% of) the centre of a FM0 symbol period while a 1 is encoded as no such transition, there are six possible failures. The first is that a transition occurs at an unexpected point in a FM0 symbol period, that is, with reference to the lower portion of Figure 12A, if both Ta and Tb are within the range t / 2.44 (i.e. t / (1+22%+1+22%)) to t / 1.56 (i.e. t / (1-22%+1-22%), where t is the total FM0 symbol period, then the FM0 symbol is interpreted as having a transition close enough to the position expected for a 0, and is decoded accordingly. Otherwise, this is interpreted as a 1 (the transition is ignored as erroneous). The next case concerns how long of a period of consistent high or low should be interpreted as a 1 rather than a 0 which has taken a very long time to trigger its transition. Here, if the duration of the consistent high / low state (Tc or Td respectively) is between t / 1.22 and t / 0.78, the FMO symbol is interpreted as a 1, and as 0 otherwise. The final case concerns either transitions to a different state for a very short amount of time (Te), or very long periods (7 / ) with no transitions at all. Here the received data is interpreted as a false edge which needs correcting (by ignoring a transition, or by inserting one) if either: t t T‘ -=¾ °r In this way, any ambiguity can be resolved and errors in the data (e.g. due to misclustering) can be corrected. The upper portion of Figure 12A shows this procedure applied to the extracted data from the three tags (as received at the third receiver). In Figure 12B, the use of a preamble matched filter to extract the received data is shown. This convolves the received signal with a matched filter with coefficient equal to a data 1 FMO symbol. When the received signal is convolved with time-reversed signal the output is a triangular waveform. In the FMO encoding, first the samples per FMO symbol can be extracted by considering the identical preamble form (see top of Figure 12B) which each tag transmits prior to sending its bespoke data. This has the form 1010v1 where v is a 'violation' since it doesn't have a transition at the start of the FMO symbol. When this is convolved with the matched filter, the first and last “1” values will form large peaks. Since we know the preamble length in FMO symbols, we can identify the samples per FMO symbol by counting the samples between the two large peaks and dividing by 5 (since there are 5 FMO symbol periods between the start of the first “1” in the preamble and the start of the final “1” in the preamble). This is shown schematically in Figure 12B. In particular the plot at the bottom of the Figure 12B shows the square wave extracted signal (left hand scale) and a jagged output from the filter (right hand scale). The remainder of the received data can be decoded by the following process: • Begin from end of preamble (we know this from the preamble matched filter above) • Passing the truncated data through a matched filter with coefficient equal to half of an FMO data symbol (either 0 or 1, we know the number of samples per symbol from the preamble matched filter above). • Set 'high' for above a certain threshold, and 'low' for below. • Analyse matched filter samples in pairs: if there are consecutive 'highs' or 'lows' = 1, switched 'highs' / 'lows' = 0 For example, this assessment may be made as shown in Figure 12C. Here the received and reconstructed (binary) data are considered with the preamble stripped from the start (although this is not essential, it does help to focus the process on the bespoke data). The binary reconstructed data are convolved with a filter having half the duration of a full FMO symbol period (can be either high or low, here we chose half a FMO symbol 1 with a high state as an example). The output is shown on the right of Figure 12C. Due to the nature of a convolution, and the selection of a half FMO 1-symbol duration, the output of this process is that an encoded 0 in FMO will present as a FMO symbol period having both a high and a low value after the convolution, while an encoded 1 will present as a FMO symbol period having only high or low values, but not both. Therefore, once the convolution has been performed, the high portions of the output are assigned a 1 and the low portions a 0. Each FMO symbol period is split in two and the two halves labelled appropriately as 0 or 1 according to whether they are high or low. This means that each symbol period pair will either be a 01 or a 10, in which case it must represent an FMO symbol encoding of a 0, or it will be 11 or a 00, in which case it must represent an FMO symbol encoding of a 1. This process is illustrated in the lower right portion of Figure 12C. Moving on to step 913 in Figure 9, in which one-way channel transmission parameters to at least L receivers from each tag are identified from the data received at each receiver from each tag. This process is illustrated for two tags in Figure 13A and for three tags in Figure 13B. In each case, the L clusters reached from the all-0 point by translating along a different fundamental vector (i.e. the (0,1), (1,0) clusters in the two-tag case, or the (0,0,1), (0,1,0) and (1,0,0) clusters in the three tag case) are labelled with a letter, representing the complex number coordinate of (the centre of) that cluster. Note that since different receivers in general receive the data in such a way as to form a different shape in the l-Q plane, it is necessary to label L points distinctly in each of L receivers, i.e. to provide Lx L points for this analysis (in general there will be L x N points for L tags and N receivers). Therefore there are four points (A, B, C, D) in the two tag case and nine points (A, B, C, D, E, F, G, H, I) in the three tag case. The progression of the sample combinations in each receiver as a function of time is used to ensure that the assignment of these points is consistent across all receivers. For the two-tag, two-transceiver example in Figure 13A, and writing the transmission channel between transceiver i and tag j as hij, the transmission matrix has the form: ^1,1 ^1,2 .^2,1 ^2,2- The l-Q plane coordinates of clusters (i.e. complex numbers) assigned in the first receiver to the (1,0) and (0,1) symbols can be assigned as A and B respectively. This means that A corresponds to the first receiver receiving a 1 from tag 1 only and B corresponds to the first receiver receiving a 1 from tag 2 only.. Similarly, the l-Q plane coordinates of clusters (i.e. complex numbers) assigned in the second reader to the (1,0) and (0,1) symbols can be assigned as C and D respectively. This means that C corresponds to the second receiver receiving a 1 from tag 1 only and D corresponds to the second receiver receiving a 1 from tag 2 only. Having done this, the estimated matrix can be constructed by noting that the received signal at the receiver, R is given by: ^11(^11 T h2i)RN16i + / 112(^12 T ^22)^^1^2 ^21(^11 T h2i)RN16i + / 122(^12 T ^22)^^1^2 This can be solved to identify the estimated channel matrix for sending a reply to the tags by inputting the values of A, B C and D, and solving: | A2 B , ' best t,est] _ Mn n12 _ est ^est uest + I------ + c - h22 D 22 L“21 “22 c , D2 uest — flu + ---- jl i. “ D + B \ -1 For the three-tag, three-transceiver example in Figure 13B, and writing the transmission channel between receiver i and tag j as / iy, the transmission matrix has the form: ■ / in ^12 ^13’ ^21 ^22 ^23 ^31 ^32 ^33 The l-Q plane coordinates of clusters (i.e. complex numbers) assigned in the first receiver to the (1,0,0), (0,1,0), (0,0,1) symbols can be assigned as A, B, and C respectively. This means that A corresponds to the first receiver receiving a 1 from tag 1 only, B corresponds to the first receiver receiving a 1 from tag 2 only, And C corresponds to the first receiver receiving a 1 from tag 3 only. Similarly, the l-Q plane coordinates of clusters (i.e. complex numbers) assigned in the second receiver to the (1,0,0), (0,1,0), and (0,0,1) symbols can be assigned as D, E, and F respectively. This means that D corresponds to the second receiver receiving a 1 from tag 1 only, E corresponds to the second receiver receiving a 1 from tag 2 only, and F corresponds to the second receiver receiving a 1 from tag 3 only. Furthermore, the l-Q plane coordinates of clusters (i.e. complex numbers) assigned in the third receiver to the (1,0,0), (0,1,0), and (0,0,1) symbols can be assigned as G, H, and I respectively. This means that G corresponds to the third receiver receiving a 1 from tag 1 only, H corresponds to the third receiver receiving a 1 from tag 2 only, and I corresponds to the third receiver receiving a 1 from tag 3 only. Having done this, the estimated matrix can be constructed by noting that the received signal at the receiver, R is given by: ^11(^11 + ^21 + / 131W161 + ^12(^12 + ^22 + h32 )RN162 + ^13(^13 + ^23 + h33 )RN163 ^21(^11 + h21 + / 131W161 + / 122( / 112 + ^22 + ^32 )RNlb2 + ^23(^13 + ^23 + h33 )RN163 / 131( / 111 + ^21 + h31)RN161 + / 132(^12 + h22 + h32 )RN162 + h33(h13 + / ^23 + h33 )RN163 This leads to the identification of the nine clusters in the l-Q planes of the three receivers as: A = ^11(^11 + ^21 + ^31) 5 = h12(h12 + h22 + h32) G = h^3(h^3 + h23 + h33) D = + E = h22(h12 + h22 + h32) E = ^23(^13 T ^23 T E33) G = ^31(^11 + ^21 + ^31) H = ^32(^12 + h22 + / i32) I = ^33^13 + ^23 + ^33) This can be solved to identify the estimated channel matrix for sending a reply to the tags by inputting the values of A, B C and D, and solving: tbeSt “11 best “12 test! “13 Hest best “21 best n22 best “23 best L“31 best “32 best n33 + A A2 D i,est L22 c best Jn33 A + D + G D , l. est 1 A 11 ± A E2 F , best j “33 B + E + H G , best A u H , - / iff E 22 ±JC + F + I Because this is derived directly from the properties of the transmission channel, it does not matter which way around we assigned the (0,1) and (1,0) symbols as this was merely a convenience to keep track of the tags consistently. The core point is that the transmitted signal necessarily precodes the correct data to the correct tag because Hest takes into account the channel transmission properties to the tag which originally sent a given dataset. For completeness, the form of Hest for an arbitrary number of tags, L, is provided by constructing a matrix with coefficients: esttj . ^k = lri,k where i = j . , where i * j in which refers to the location in the l-Q plane of the data received by the ith receiver from the cluster in which the jth tag is transmitting a 1 and all other tags are transmitting a 0. In the final two steps 914, 915, the one way channel transmission is used to precode an acknowledgement signal for responding to each tag, and the precodes acknowledgement signal is then sent to each corresponding tag. This may include, for example, inverting the channel transmission matrix is inverted to provide a precoded signal, Sprecode for sending acknowledgement signals to each corresponding tag. The inversion of the channel matrix may be performed according to one of: Sprecode = S wherein S is a matrix representing the time-domain transmit signal representing the data sent by each tag, A7 represents the transpose of a matrix A, AH represents the Hermitian transpose of a matrix A, and A'1 represents the inverse of a matrix A. By inverting the estimated channel matrix in this way, a precoded ACK signal can be sent to each tag, thereby improving throughput. The first inversion listed above is the direct matrix inverse. This is used if det(W7st) ^0, but the second version uses the psuedo-inverse of the matrix, known as the 'Moore-Penrose inverse'. This is a best fit (least squares) and is a more generalized setup. In practice, this second option is always available and may be preferred for simplicity. Furthermore, other methods may be used to generate an appropriate inverse e.g. Minimum Mean Square Error (MMSE), which is a more balanced equalizer that balances interference and noise together (whereas the zero-forcing approaches above aims to minimise interference but can end up enhancing noise). The channel transmission parameters are used to precode the reader ACK signals from multiple transmission antennas into spatial channels so that the tags will receive sufficiently separated acknowledgements. In this way the problem of reduced-throughput in dense-tag scenarios is addressed by providing multiple transceivers (e.g. full-duplex monostatic antennas, in which the receiver also acts as a transmitter) operating simultaneously. The present approach leverages the tag collisions themselves to simultaneously recover collided tag data and perform channel estimation (i.e. extraction of the channel transmission parameters). The ability to communicate with multiple tags will be dependent on the channel matrix and channel estimation. There will be an interaction between the channel to each tag and the FSA protocol requiring new optimization of the FSA Q-parameter. The ability to estimate the channel matrix and separate tag responses depends on the SNR. Although presented primarily as a method in the above document, the invention extends to also cover RFID readers which are arranged to enact the method steps, or indeed as software which, when run on a processor, cause the processor to enact any of the methods set out above. The methods (or apparatus) set out above may be used in a warehouse, factory or shop and is used for the purpose of: inventory management; supply chain logistics; asset tracking; and / or theft prevention. The present invention allows for a throughput of more than 0.37 tags per read period by using the collision recovery procedures set out herein.

Claims

1. A method of collision recovery in a radio frequency identification, RFID,communication system, the method comprising:identifying a tag collision, the tag collision comprising data from each of L tags being received at each of L or more RFID receivers, wherein L is greater than or equal to 2;using the data received to extract the data from each tag;identifying one-way channel transmission parameters to at least L receivers from each tag from the data received at each receiver from each tag;using the one-way channel parameters from each tag to each receiver to estimate one-way channel transmission parameters from each transmitter to each tag;using the estimated one-way channel transmission parameters from each transmitter to each tag to precode an acknowledgement signal for responding to each tag; andsending each precoded acknowledgement signal to each corresponding tag.

2. The method of claim 1, wherein L is equal to 2, and wherein there are at leasttwo receivers.

3. The method of claim 1 or claim 2, wherein extracting data from each tagincludes, at least in part:receiving a series of individual data symbols in successive tag bit periods; and identifying each symbol received in the l-Q plane and identifying clusters of received symbols.

4. The method according to claim 3, wherein each receiver receives symbolswhich form 2L clusters in the l-Q plane, each cluster representing a different combination of 0 and 1 received as a symbol from each of the L tags in a given symbol period.

5. The method according to claim 4, wherein clusters representing at least one 0and at least one 1 from different tags received at a receiver in the same symbol period are assessed to identify which tag(s) transmitted a 0 and which tag(s) transmitted a 1 by assigning to each cluster in the l-Q plane a distinct combination of Os and 1s received from each tag.

6. The method of claim 4 or claim 5, wherein clusters representing every tagtransmitting a 0 or every tag transmitting a 1 are mapped respectively to an all-0 or all-1 received symbol using a known preamble sent by each tag prior to each tag sending its own data.

7. The method of claim 6, further comprising identifying L fundamental vectors inthe l-Q plane for the received data, the fundamental vectors being vectors which correspond to an l-Q plane translation:from the all-0 cluster to each of the L clusters corresponding to receiving a 1 from exactly one tag and all symbols received from other tags being 0; orfrom the all-1 cluster to each of the L clusters corresponding to receiving a 0 from exactly one tag and all symbols received from other tags being 1.

8. The method of claim 7, wherein the fundamental vectors are extracted from aset of candidate vectors, being vectors mapping between:the all-0 cluster and the closest clusters, being the set of clusters closest to the all-0 cluster; orthe all-1 cluster and the closest clusters, being the set of clusters closest to the all-1 cluster.

9. The method of claim 8, wherein the fundamental vectors are extracted from theset of candidate vectors by identifying and excluding one or more candidate vectors which are expressible as a sum of two or more other candidate vectors.

10. The method of claim 8 or claim 9, further comprising consistently assigningclusters associated with each fundamental vector as corresponding to a different one of the tags transmitting a different symbol to the other tags.

11. The method of any one claims 4 to 10 further comprising reconstructing thedata transmitted from each tag by concatenating the binary digits associated with each tag in successive symbol periods.

12. The method of claim 11, wherein a known preamble is omitted from the initialportion of the data.

13. The method of claim 12, further comprising extracting an estimate of thesamples per symbol using a preamble matched filter.

14. The method of any one of the preceding claims, wherein false edge recoveryis used to remove errors from the extracted data for each tag.

15. The method of any one of the preceding claims, wherein identifying one-waychannel transmission parameters from the tags to the receivers includes:identifying, at each of at least L receivers, a set of 2L clusters in the l-Q plane, each cluster representing a different combination of 0 and 1 received as a symbol from each of the L tags in a given symbol period;assigning to each cluster received at a first receiver a distinct combination of Os and 1s received from each tag;correlating the assignment of clusters and symbol correlations at the first receiver with symbols received at a different receiver forming a new set of 21 clusters in the l-Q plane by matching symbol periods between the receiver; andrepeating the correlating step with a further receiver until signals received at each of the L receivers have been considered.

16. The method of claim 15, wherein identifying the one-way channel transmissionparameters for each tag includes, at least in part, based on the portion of the l-Q plane in which each symbol is located, extracting an estimated transmission coefficient between each of the tags and each of the receivers.

17. The method of claim 16 wherein the estimated transmission coefficients fromeach tag to each receiver are formed into an estimated channel transmission matrix, Hest-18. The method of claim 17, wherein estimating the one-way channel transmissionparameters from each transmitter to each tag includes inverting the channel transmission matrix to provide a precoding matrix, Sprecode for sending precoded acknowledgement signals to each corresponding tag.

19. The method of claim 18, wherein the inversion of the channel matrix isperformed according to one of:Sprecode — (^est) $ orC _ rftiT liT ^-1 riiT .HeSprecode \\.nest) nest) \nestJ °20.21.22.23.wherein S is a matrix representing the time-domain transmit signal representing the data sent by each transmitter, AT represents the transpose of a matrix A, AH represents the Hermitian transpose of a matrix A, and A'1 represents the inverse of a matrix A.The method of any one of claims 17 to 19, wherein Hest is provided by:I L+ —-j------ , where i = j- %k=iri,k— . , where i + jin which rtJ refers to the location in the l-Q plane of the data received by the ith receiver from the cluster in which the jth tag is transmitting a 1 and all other tags are transmitting a 0.The method of any one of the preceding claims, wherein sending each precoded acknowledgement signal to each corresponding tag includes sending each acknowledgement to each tag simultaneously.The method of claim 21, wherein simultaneous transmission includes forming a superposition of each acknowledgement with a phase shift and / or amplitude adjustment to beamform each individual acknowledgement to its corresponding tag.A radio frequency identification reader, comprising:at least L transmitters, wherein L is greater than or equal to 2;at least L receivers; anda processor configured to:identify a tag collision, the tag collision comprising data from each of L tags being received at each of the receivers;use the data received at each receiver to extract the data from each tag;identify one-way channel transmission parameters to at least L receivers from each tag from the data received at each reader from each tag;use the one way channel transmission parameters from each receiver to each tag to estimate one-way channel transmission parameters from each transmitter to each tag;use the estimates one-way channel transmission parameters from each transmitter to each tag to precode acknowledgement signals for responding to each tag; andsend each precoded acknowledgement signal to each corresponding tag.

24. The reader of claim 23, wherein the processor is further configured to enact themethod of claims 2 to 22.

25. The reader or method of any one of the preceding claims, wherein the readeris used in a warehouse, factory or shop and is used for the purpose of:inventory management;supply chain logistics;asset tracking; and / or theft prevention.

26. The reader or method of any of any one of the preceding claims, wherein thecollision recovery provides a throughput of more than 0.37 tags per slot.

27. A computer program or computer program product comprising instructionswhich, when run on a processor, cause the processor to enact the method of any one of claims 1 to 22.41

Citation Information

Patent Citations

  • Apparatus and method for processing RFID signals

    US20130234834A1

  • Collision arbitration method and apparatus for reading multiple radio frequency identification tags

    US6377203B1