The present disclosure relates to a current-mode matched filter architecture used for digital signal processing (DSP) applications such as global navigation satellite systems (GNSS) or radio detection and ranging (RADAR).
A matched filter is a signal processing construct used to detect the presence of a known signal pattern within a received signal that is obscured by noise. The core operation of a matched filter is correlation, which is a dot product operation of a local replica of the pattern with the received signal. Correlation of two identical patterns results in a spike in signal energy at the output of the summation, whereas correlation of any signal with a random signal—i.e. noise —yields no increase in energy. Thus, if the pattern is present in the received signal and aligned with the local replica in the time domain, a spike in signal to noise ratio at the detector is seen. Many matched filter implementations include a scheme to search incoming data for the pattern in the time domain to find the correct alignment. For example, the pattern may be held constant while the incoming signal is sent through a shift register.
Several popular technologies rely on matched filters in their operation. Code-division-multiplex access (CDMA) receivers use patterns known as spreading codes to modulate a data transmission. In the specific case of an N-length binary spreading code, the bandwidth of the signal is increased by a factor of N, while the spectral power is reduced by a factor of N. The benefits of CDMA include the ability to share a frequency allocation among multiple simultaneous transmitters, and increased resilience to narrow-band interference. Global navigation satellite systems (GNSS), including the U.S. Global Positioning System (GPS), are a special case of CDMA. In addition to the previous benefits, GNSS systems leverage the inherent time synchronization that comes with matching a local pattern to a received pattern. GNSS receivers use matched filters to synchronize to a set of satellites, measure the relative transmission delay, and calculate the user's position. Other applications include radar, where matched filters are used to detect objects in the presence of unwanted reflected signals, and image processing applications such as X-ray.
In technologies such as GNSS, long binary CDMA codes are used with lengths of at least 1023 bits and transmit rates of at least 1.023 MHz; longer codes minimize inter-satellite interface and maximize the resolution of the time synchronization (and therefore position accuracy). The resulting decrease in spectral power from the frequency spreading is large enough that the signal appears to the receivers to be below the noise floor and undetectable. Through application of the matched filter, however, the SNR at the detector increases above the noise floor and the signal becomes detectable.
Matched filters can be implemented in hardware using a variety of methods. Using GNSS as an example, if the correct time synchronization between the receiver and the GNSS satellites is known, then a time domain search of the spreading pattern offset in the received signal is not needed. A simple multiply-accumulate register is needed to correlate the received signal with the pattern—and indeed this is the most common implementation in a GNSS receiver when the time synchronization is known and is being actively maintained. This is called tracking in satellite receivers.
If the time synchronization is not known in a GNSS receiver, then a time domain search is needed to determine the correct time-domain alignment in the matched filter between the local replica spreading pattern and the received pattern. Because the signal is below the noise floor, it cannot simply be examined—the matched filter must be used to increase the SNR above the noise floor at the signal detector. In the case of the GPS legacy civilian code, a 1023 bit spreading code is used and all possible rotations of that code must be correlated. Newer GNSS standards use much longer codes and in military receivers, the code does not repeat, so many more time-steps must be correlated. This requires an enormous amount of computation in a receiver whose users demand position lock times on the order of seconds, so many high performance matched filter hardware implementations have been invented which are directly applicable to the signal acquisition portion of GNSS.
High performance matched filter hardware typically involves two array of storage elements, one that is stationary, and one that is shifted in order to perform the time-domain search. At each shift offset, a correlation is performed whereby the two arrays are compared or multiplied with each other, and the result at each array element is summed together. The multiplication or comparison can typically be implemented using a small number of gates; it is the summation and shifting that is challenging to implement in a traditional digital microchip solution. The summation involves the addition of a large number of elements, so a correspondingly large number of adder cells are required to form the summation adder tree. This adder tree must span the entire storage array, so routing and interconnects is a challenge and the energy overhead is large due to the excessive wire capacitance.
This disclosure addresses these issues by replacing the sprawling digital summation with a current-mode approach that reduces the wiring congestion to a single shared wire. At each sample point in the correlation, the multiplication result is converted to a current and connected to a common node. The currents naturally sum on this shared wire via Kirchhoff's Current Law (KCL), and the resulting current summation can be read by a properly designed output circuit. In addition to the reduction of wiring congestion, this strategy also enables a grid-based layout of cells similar to memories. Thus, these cells can be additionally optimized to reduce power and increase performance well beyond a standard digital design created with automatic place and route tools. Therefore, not only is the routing congestion reduced, but the remaining digital portions of the acquisition system are also now optimized. By using an optimized grid-based layout couple digital sampling with current-mode computation, a much larger system is possible than before. The resulting loss of accuracy due to replacing a digital summation with a current-mode summation is minor, and is more than offset by the improvements of performance, efficiency, and scale of the system. Using this strategy, a design was produced for a 262144 sample acquisition system, which is both 64 times larger and 64 times faster than a 4096 sample system (a standard design in this area), as well as more energy efficient.
This section provides background information related to the present disclosure which is not necessarily prior art.
This section provides a general summary of the disclosure, and is not a comprehensive disclosure of its full scope or all of its features.
A matched filter is provided for signal processing applications such as GNSS and RADAR. The filter includes a plurality of correlator cells configured to receive a digital signal and are arranged so that values of the digital signal can be shifted amongst the plurality of correlator cells. Each correlator cell includes a correlator circuit, a data source and a current source. The correlator circuit is configured to receive a value from the digital signal and operates to correlate the value with a value of the known pattern stored in the data store. In other arrangements, values of the known pattern are shifted amongst the correlator cells and the value from the digital signal is stored in the data store. The current source is interfaced with the correlator circuit and selectively sources current based on the correlation operation performed by the correlator circuit; and an output circuit is coupled to each of the plurality of correlator cells and operates to generate an output which is correlated to current that is being source collectively by the current sources.
In one embodiment, the data store is implemented with a register, the correlator circuit is implemented with an XOR gate, and the current source is implemented by a transistor.
In some embodiments, a current switch is interposed between the current source and the common wire and selectively enables the current source to source current based on the correlation operation performed by the correlator circuit. The current switch may be implemented by a transistor that is interfaced with the correlator circuit to selectively turned on to source current onto the common wire.
In one embodiment, the output circuit operates to maintain voltage at the common node constant. For example, the output circuit can be further defined as at least one of an operational amplifier or an operational transconductance amplifier.
In other embodiments, the output circuit includes a reset circuit electrically coupled to the common node and operates to set voltage at the common node to a predefined value; and a read circuit electrically coupled to the common node and operates to measure voltage at the common node.
Further areas of applicability will become apparent from the description provided herein. The description and specific examples in this summary are intended for purposes of illustration only and are not intended to limit the scope of the present disclosure.
The drawings described herein are for illustrative purposes only of selected embodiments and not all possible implementations, and are not intended to limit the scope of the present disclosure.
Corresponding reference numerals indicate corresponding parts throughout the several views of the drawings.
Example embodiments will now be described more fully with reference to the accompanying drawings.
Components of a correlator cell 12 are depicted in
In one embodiment, the value from the incoming digital signal is stored in a shiftable data store 23; whereas, the value of the known pattern is stored in a second data store 24. Values in the shiftable data store 23 may be shifted from cell to cell as further described below. In an alternative embodiment, the value from the incoming digital signal is stored in the second data store 24 and the value of the known pattern is stored in the shiftable data store 23. Typically, the unknown data is shifted since that lends itself naturally to an incoming stream of RF data, however, in some applications, it is more energy efficient to shift the known pattern data, for example because the RF data has more bits per sample than the pattern data. In some embodiments, the second data store can also be implemented with a shift chain.
In some embodiments, it is desirable to have differential signaling, which can have benefits including increased performance in greater noise immunity. To implement differential signaling, there needs to be two common nodes instead of one, where the currents sourced to the two common nodes are opposite (e.g., common_pos and common_neg). To make this conversion, the signals enabling/disabling the current sources instead are now selecting whether a current should be sourced to common_pos or instead to common_neg. This strategy helps keep current sources in a consistent state since they are always used (i.e., current steering), which aides performance and accuracy. The output circuit also needs to be modified to accept differential input currents, which should be readily realized by someone skilled in the art.
In an alternative embodiment, the current switch 32 is omitted and the current source is implemented by a single transistor, such as a PMOS transistor. In this example, the correlation operation is performed by a XOR gate but otherwise this embodiment operates as described above. While example output circuits are further described below, it is noted that this correlator cell 30 is best paired with the output circuit shown in
More specifically, the shiftable data store 43 is configured to store two different codes and thus is comprised of four latches 45. The latches use a master-slave latching scheme which separates two clocks and was found to be simpler to implement. A multiplexer 50 enables selection of one of the two codes such that multiple satellites can be searched in parallel. Two additional multiplexers 51, 52 enable the two codes to be combined into one long code. Shifting the code instead of the data was chosen in this case because there are two code bits but eight data bits, resulting in a 75% decrease in shifting energy and area.
The second data store 44 is configured to store four samples with each sample being represented by two bits. In this case, eight latches 54 are used to store the samples. Latches can be used instead of registers due to their lower overhead. The second data store 44 further includes a selection circuit 55 which enables one of the four samples to be input to the correlator circuit 42. In an example embodiment, the selection circuit 55 is implemented by two 4×1 transmission gate multiplexers. Since each cell would be selecting the same storage location, the signals controlling the selection circuit (that is, the signals going to the gates of the transmission gates) can be shared between the cells. Additional circuitry may be used to facilitate storing the next code in the shiftable data store 43 or writing of the data to the second data store 44.
In operation, the correlator circuit 41 correlates a selected one of the four RF samples with one of the codes stored in the shiftable data store 43. In an example embodiment, the correlation result is encoded as a thermometer code having values −3, −1, 1 or 3, which map to the digital numbers 0, 1, 2, 3 by adding three and dividing by two. For the RF samples, this mapping allows us to store the four numbers as a two bit value, and for the correlation result it allows us to represent the number by turning on zero, one, two, or three current sources in correlation circuit 42. The code selected by 50 is a single bit value representing −1 or 1. To perform the correlation, the correlation circuit 41 will perform a multiplication of the RF sample and the code value and map the result to a 0, 1, 2, 3 value which will enable 0, 1, 2, or 3 current sources. In an example embodiment, this multiplication and mapping can be performed with an AND gate, a NAND gate, a NOT gate and an XOR gate.
In the example embodiment, the current source circuit 42 is further defined by three parallel circuit paths, where each circuit path has at least one transistor interfaced with an output of the correlator circuit 41 although each path may be comprised of multiple transistors to reduce the amount of current draw. Either zero, one, two or three of the circuit paths are turned on in accordance with the value of the thermometer code, thereby outputting a current onto the common wire. Likewise, it is noted that correlator cell 40 is best paired with the output circuit shown in
Triggering of the computation in this example embodiment is further described in relation to
In
Another aspect of this disclosure relates to an efficient technique for shifting data amongst the correlation cells of a matched filter. A new signal value must be delivered from outside the acquisition architecture to any given point inside the physical structure. The acquisition architecture can be very large, so having a wire that traverses the entire structure would consume considerable power if it switched every clock cycle. Instead, a switched-network is used, where the wire is selectively gated as seen in
The foregoing description of the embodiments has been provided for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure. Individual elements or features of a particular embodiment are generally not limited to that particular embodiment, but, where applicable, are interchangeable and can be used in a selected embodiment, even if not specifically shown or described. The same may also be varied in many ways. Such variations are not to be regarded as a departure from the disclosure, and all such modifications are intended to be included within the scope of the disclosure.
This invention was made with government support under DGE1256260 awarded by the National Science Foundation, and FA8650-13-C-1606 awarded by the US Air Force/AFRL. The Government has certain rights in the invention.