Matched filter bank
11533207 · 2022-12-20
Assignee
Inventors
Cpc classification
International classification
Abstract
A radio receiver comprises a matched filter bank and a decision unit. The matched filter bank has a plurality of filter modules for generating correlation-strength data from a sampled radio signal, each filter module being configured to cross-correlate the sampled signal with data representing a respective filter sequence. The decision unit is configured to use the correlation-strength data to generate a sequence of decoded symbols from the sampled signal. The matched filter bank and/or decision unit are configured to determine the value of each symbol in the sequence in part based on the value of a respective earlier decoded symbol from the sequence of decoded symbols.
Claims
1. A method of decoding data from a radio signal, the method comprising: applying a matched filter bank to a sampled radio signal to generate correlation-strength data, wherein each filter in the matched filter bank cross-correlates the sampled signal with data representing a respective filter sequence having a common filter length and; and using the correlation-strength data to generate a sequence of decoded symbols from the sampled signal wherein the value of each symbol in the sequence of decoded symbols is determined in part based on the value of a respective earlier decoded symbol from the sequence of decoded symbols, wherein determining the value of a symbol in the sequence of decoded symbols comprises: using the correlation-strength data to identify a plurality of matched filter sequences for a common length of the sampled signal, having a length equal to the filter length, wherein each of the identified filter sequences is a respective best-matched filter sequence, from a respective subset of the filter sequences, for said length of the sampled signal; using the value of said respective earlier decoded symbol to select one or more of the identified filter sequences that has the value of said earlier decoded symbol in a symbol position corresponding to a position of said earlier decoded symbol in the sequence of decoded symbols; and using the selected one or more filter sequences for determining the value of the symbol in the sequence of decoded symbols.
2. The method of claim 1, wherein the common filter length is two or more symbols.
3. The method of claim 1, wherein, for each symbol in the sequence of decoded symbols, the respective earlier decoded symbol is offset from said symbol in time by a constant time offset.
4. The method of claim 1, wherein each subset contains all the filter sequences that have a respective common value at a particular symbol position in the filter sequence, or that have respective common values at a plurality of predetermined symbol positions in the filter sequence.
5. The method of claim 1 comprising determining the value of each symbol in the sequence of decoded symbols in part based on the values of a plurality of respective earlier decoded symbols from the sequence of decoded symbols.
6. The method of claim 1, wherein determining the value of a symbol in the sequence of decoded symbols further comprises inputting the selected one or more filter sequences to a soft or hard symbol decision process.
7. The method of claim 1, wherein determining the value of a symbol in the sequence of decoded symbols further comprises inputting the selected one or more filter sequences to a symbol decision process, wherein the symbol decision process uses the selected one or more filter sequences and also one or more further sequences corresponding to one or more further observations of the symbol at a second time offset, different from a first time offset associated with the selected one or more filter sequences, when determining the value of the symbol.
8. A radio receiver comprising: a matched filter bank comprising a plurality of filter modules for generating correlation-strength data from a sampled radio signal, each filter module being configured to cross-correlate the sampled signal with data representing a respective filter sequence having a common filter length; and a decision unit configured to use the correlation-strength data to generate a sequence of decoded symbols from the sampled signal, and to determine the value of each symbol in the sequence of decoded symbols in part based on the value of a respective earlier decoded symbol from the sequence of decoded symbols, wherein the decision unit is configured to determine the value of a symbol in the sequence of decoded symbols by: using the correlation-strength data to identify a plurality of matched filter sequences for a common length of the sampled signal, having a length equal to the filter length, wherein each of the identified filter sequences is a respective best-matched filter sequence, from a respective subset of the filter sequences, for said length of the sampled signal; using the value of said respective earlier decoded symbol to select one or more of the identified filter sequences that has the value of said earlier decoded symbol in a symbol position corresponding to a position of said earlier decoded symbol in the sequence of decoded symbols; and using the selected one or more filter sequences for determining the value of the symbol in the sequence of decoded symbols.
9. The radio receiver of claim 8, wherein each subset contains all the filter sequences that have a respective common value at a particular symbol position in the filter sequence, or that have respective common values at a plurality of predetermined symbol positions in the filter sequence.
10. The radio receiver of claim 8, comprising one or more feedback paths from an output of the decision unit for feeding the value of the respective earlier decoded symbol back to the decision unit, wherein the decision unit is configured to use the value of said respective earlier decoded symbol, received over said one or more feedback paths, to select the one or more of the identified filter sequences that has the value of said earlier decoded symbol in a symbol position corresponding to a position of the earlier decoded symbol in the sequence of decoded symbols.
11. The radio receiver of claim 8, wherein the decision unit is configured to determine the value of each symbol in the sequence of decoded symbols in part based on the values of a plurality of respective earlier decoded symbols from the sequence of decoded symbols.
12. The radio receiver of claim 8, wherein the common filter length is two or more symbols.
13. The radio receiver of claim 8, wherein, for each symbol in the sequence of decoded symbols, the respective earlier decoded symbol is offset from said symbol by a constant number of symbol intervals.
14. The radio receiver of claim 8, wherein the decision unit is configured, when determining the value of a symbol in the sequence of decoded symbols, to input the selected one or more filter sequences to a soft symbol decision process.
15. The radio receiver of claim 8, wherein the decision unit is configured, when determining the value of a symbol in the sequence of decoded symbols, to input the selected one or more filter sequences to a hard symbol decision process.
16. The radio receiver of claim 15, wherein the decision unit is configured, when determining the value of a symbol in the sequence of decoded symbols, to input the selected one or more filter sequences to a majority-vote detector.
17. The radio receiver of claim 8, wherein the decision unit is configured, when determining the value of a symbol in the sequence of decoded symbols, to input the selected one or more filter sequences to a symbol decision process, wherein the symbol decision process is configured to use the selected one or more filter sequences and also one or more further sequences corresponding to one or more further observations of the symbol at a second time offset, different from a first time offset associated with the selected one or more filter sequences, when determining the value of the symbol.
18. The radio receiver of claim 8, the decision unit is configured, when determining the value of a symbol in the sequence of decoded symbols, to use a number of identified filter sequences, wherein said number is greater than the filter length.
19. The radio receiver of claim 8, wherein the matched filter bank is implemented as a hardware digital logic circuit, wherein each filter module comprises a respective plurality of logic gates, separate from any general-purpose processor of the radio receiver.
20. The radio receiver of claim 19, wherein each filter module is hardwired to cross-correlate the sampled signal with a respective fixed filter sequence, and wherein the matched filter bank has a different respective filter module for each possible filter sequence of length equal to the filter length.
Description
(1) Certain preferred embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9) The principal signal path through the components in
(10) The complex baseband samples are first input to a frequency correction block 2, which performs complex rotation on the samples to compensate for any carrier-frequency offset, based on outputs from a frequency estimator 3 and from a double correlator unit 4.
(11) The complex baseband samples are also fed to a double correlator unit 4 which performs an initial frequency offset as well as timing recovery and frame synchronization, by cross-correlating the received signal against a stored template, which corresponds to a fixed part of the preamble of any data packet that is intended for this radio receiver 1. The correlation is performed every sample. This timing information from the double correlator unit 4 is output to the frequency correction block 2 and to a matched filter bank 5. The frequency estimate needs to be relatively accurate (e.g., to within around 10 kHz) in order to avoid significant sensitivity degradation.
(12) The matched filter bank 5, in addition to the timing information, also receives the frequency-corrected samples from the frequency correction block 2. The matched filter bank 5 contains a set of filters, each K bits long. In
(13) At each time step, the matched filter bank 5 generates a set of complex correlation coefficients, one for each filter. It computes a real-valued modulus of each coefficient and outputs these correlation strength values to a decision unit 6.
(14) The decision unit 6 receives this correlation-strength data and processes it to generate a sequence of decoded bits. This processing is described in more detail below. The decision unit 6 outputs a demodulated bit value at each bit period.
(15) In some embodiments, the decoded bits are fed back to the matched filter bank along a feedback path 7. In such embodiments, these bits are used by the MFB 5 to define the filter sequences that the MFB 5 cross-correlates with the received samples. In other embodiments, however, no feedback to the MFB 5 is required; instead, decoded bits are fed back internally within the decision unit 6.
(16) The complex correlation coefficients from the matched filter bank 5 are also sent to the frequency estimator 3, which uses them to estimate any frequency drift, which can influence the operation of the frequency correction block 2 on an on-going basis.
(17) The decoded bit stream, output by the decision unit 6, may be stored in memory and/or processed further by the radio receiver 1 or another device, as appropriate.
(18)
(19) The MFB 200 uses a filter length of K=3.
(20) A transmitted frequency shift key (FSK)-encoded radio signal, with modulation index h, and oversampling ratio R, can be defined as:
(21)
where n indicates the current bit position; β.sub.l represent the successive bit values; r∈[0, R−1] indexes the current sample offset (in time), from the symbol's timing anchor; and P.sub.x is the power at x.sub.0. If the radio signal is binary-FSK modulated, the value β.sub.k, for each k between 0 and n, represents the sign (i.e., −1 or 1) of the instantaneous phase shift corresponding to the k.sup.th bit in the bit stream bit.sub.k; it can be formally defined as β.sub.k≙2.Math.bit.sub.k−1. The sum inside the exponential represents the accumulated phase offset of all the symbols leading up to the current symbol, accumulated over the whole bit stream thus far.
(22) The received signal is then given by
y.sub.nR+r=hx.sub.nR+r+ν.sub.nR+r
where h is a complex number representing the channel gain and phase, and ν.sub.nR+r is a noise term.
(23) The MFB 200 detects this received signal by non-coherently correlating the sampled radio signal with eight filters that have coefficients corresponding to the modulated signal for all possible 3-bit sequences. Each filter is indexed (labelled), with a unique reference, I. In some cases, the transmitted signal may employ pulse-shaping, such as Gaussian filtering. In such cases the model in equation (1) may not apply; however, it can still be possible for the coefficients of the MFB 200 to be based on equation (1) and successfully demodulate such a signal.
(24) In general output of the MFB 200, at symbol time n, for a filter using fixed bit sequence b={b.sub.0, b.sub.1, . . . , b.sub.K−1}, where the b.sub.i's here are the signs of the actual bits—i.e., representing the bits {0, 1} as the values {−1, 1} respectively—of the particular filter, is given by
(25)
(The inner sum term over b.sub.l is defined to be zero when k=0.) The particular bit sequence b that maximizes |d.sub.n(b)|.sup.2 is the noncoherent maximum likelihood estimate.
(26) The MFB 200 receives sample chips that have an up-sampling rate of eight—i.e., receiving eight samples y.sub.i for each bit. It cross-correlates each received set of eight chips with stored “zero”-bit filter coefficient C.sub.i.sup.0 and with stored “one”-bit filter coefficient C.sub.i.sup.1, to calculate complex correlation values S.sup.0 and S.sup.1 for each bit interval. The filter coefficients may correspond to the complex conjugate of the baseband representation of an FSK symbol with modulation index h, sampled at rate R, and an initial phase offset of 0 radians, corresponding to either a 0 or 1 bit, respectively.
(27) These intermediate correlation results S are buffered for three time intervals, and are input to each of the eight filter modules. Each filter module, k=0, . . . , 7, uses these intermediate results to calculate a respective correlation magnitude value, X.sub.k, representing a cross-correlation with a respective 3-bit filter sequence: [0 0 0], [0 0 1], [0 1 0], . . . , [1 1 1]. This is calculated as:
(28)
(29) The eight correlation magnitude values, X.sub.k, are then output to the decision unit 201. At each bit interval, the decision unit 201 identifies the index, I, of the filter sequence having the largest correlation magnitude. It then buffers three of these indices, over three time intervals, and uses majority voting logic 202 to decode the value of the one bit position that appears in all three filter sequences (at three different time offsets). This decoded binary value, F, is output as a hard bit in the decoded bit sequence.
(30)
(31) In both cases, the decoding assumes that some bits before a current observation window have already been correctly decoded, and feeds these bits back to assist the decoding of the current bit. For example, if using two feedback bits, instead of calculating d.sub.n(b), a radio receiver embodying the invention might calculate d.sub.n([{circumflex over (b)}.sub.n−K−1 {circumflex over (b)}.sub.n−Kb]) where {circumflex over (b)}.sub.n−K−1 and {circumflex over (b)}.sub.n−K are outputs from a majority vote detector.
(32)
(33) This receiver arrangement provides improved performance, compared with that of
(34) In this design, when decoding a current bit value, F, the two preceding hard bit outputs, F.sub.−1 and F.sub.−2 (which have already been calculated and output by the decision unit 301) are buffered and fed back to the MFB 300, which effectively appends these bits to the beginning of each of eight 3-bit filter sequences, to generate eight 5-bit filter sequences, against which the sampled signal is then correlated.
(35) The two most recent output bits, F.sub.−1 and F.sub.−2, are sent along the feedback path 303a to be fed into the MFB 300, where they are saved in a two-bit shift register 304a. The latest output bit is also sent along a feedback path 303b as a control to a selector which selects one of the two latest intermediate correlation results S to write into a two-bit shift 304b, according to the value of the latest output bit value. These earlier decoded output bits, F.sub.−1 and F.sub.−2 (stored in buffer 304a) and their corresponding intermediate correlation results S.sub.−1 and S.sub.−2 (stored in buffer 304b) are used by the MFB 300 to calculate a value X.sub.FD, which is in turn used by each filter module to generate the final outputs, X.sub.k, of the eight filter modules, according to the following calculations:
(36)
(37) In simulations, this design has been found to achieve about 0.9 dB of additional gain, compared with the arrangement of
(38) The decision unit 301 in
(39)
(40) Rather than, at each bit interval, merely identifying the one filter, I.sub.2, that has the largest correlation magnitude out of all eight filters and discarding the correlation magnitudes from the other filters, the decision unit 401 in
(41) The buffered index I.sub.1 has two possible values, one corresponding to the case that the hard decoded bit two positions before a particular “current” bit will be a zero—i.e., F.sub.−1=0—and another corresponding to the case when F.sub.−1=1. Similarly, the buffered index I.sub.0 has four options, covering the four possible combinations of values of the two decoded bit values, F.sub.−1 and F.sub.−2, that immediately precede the current bit. These correspond to the cases [F.sub.−2 F.sub.−1]=[0 0], [0 1], [1 0] and [1 1].
(42) The filters could, of course, be indexed in any arbitrary way. However, assuming a natural binary-value indexing of the eight filters, k=0 to 7:
(43) I.sub.1.sup.0 is the best-matched filter out of the four filters whose sequences have a zero in the first (earliest-received) bit position—i.e., in the set {[0 X Y], for X,Y=0 or 1}.
(44) I.sub.1.sup.0 is the best-matched filter out of the four filters whose sequences have a one in the first bit position—i.e., in the set {[1 X Y], for X,Y=0 or 1}.
(45) I.sub.0.sup.0 is the better-matched filter out of the two filters whose sequences are in {[0 0 X], for X=0 or 1}.
(46) I.sub.0.sup.1 is the better-matched filter out of the two filters whose sequences are in {[0 1 X], for X=0 or 1}.
(47) I.sub.0.sup.2 is the better-matched filter out of the two filters whose sequences are in {[1 0 X], for X=0 or 1}.
(48) I.sub.0.sup.3 is the better-matched filter out of the two filters whose sequences are in {[1 1 X], for X=0 or 1}.
(49)
(50)
(51) The majority-vote block 402 then uses the relevant bit position in each of the filter sequences corresponding to the resolved indices I.sub.1 and I.sub.0 to determine a current hard bit value, F, based on a majority vote across the three bit values, I.sub.0, I.sub.1 and I.sub.2. It then outputs this bit value, F, and also sends it along the feedback path 403 to a two-bit shift-register 404, to serve as a selector for the decoding of the next two bit positions.
(52) In this way, the decision unit 401 retains more information from each application of the filter bank. These filter indices are buffered for up to two bit intervals, and used to determine which of the filter sequences to input to a majority-vote block based on the values of the two feedback bits that are decoded during this buffer interval. In this way, additional correlation magnitude information is not simply discarded, but is used subsequently, once these two further bit decisions have been finalised, in inform the decoding of the current bit.
(53) In simulations, this design has been found to achieve about 0.6 dB gain, compared with the arrangement of
(54) It will be appreciated by those skilled in the art that the invention has been illustrated by describing one or more specific embodiments thereof, but is not limited to these embodiments; many variations and modifications are possible, within the scope of the accompanying claims. In particular, the filter sequences could be longer or shorter than is shown in these examples. If the sequences are an even number of bits long, then the majority vote may resolve a tie by an arbitrary selection or using any other suitable information. In some embodiments, the majority vote could be replaced by some other hard bit decision logic, such as a weighted vote, or it could be replaced with soft bit decision logic, e.g. based on the magnitude of the correlation value for the best filter where b=1 minus the correlation value for the best filter where b=0. The number of feedback bits could be larger or smaller than shown in these examples.