Digital radio communication
11070246 · 2021-07-20
Assignee
Inventors
Cpc classification
International classification
Abstract
A method of operating a digital radio receiver comprising: receiving a radio signal; passing said radio signal to a correlator for correlating said radio signal with a predetermined pattern to provide an output signal comprising a plurality of peaks separated in time; determining an amplitude of a first peak in the plurality of peaks; calculating a selection threshold based on said first peak amplitude; determining an amplitude of a second peak in the plurality of peaks; comparing said second peak amplitude to the selection threshold; and identifying the second peak as a correlation peak if the second peak amplitude is greater than the selection threshold.
Claims
1. A method of operating a digital radio receiver comprising: receiving a radio signal; passing said radio signal to a correlator for correlating said radio signal with a predetermined pattern to provide an output signal comprising a plurality of peaks separated in time; determining an amplitude of a first peak in the plurality of peaks; calculating a selection threshold based on said first peak amplitude; determining an amplitude of a second peak in the plurality of peaks; calculating a time separation between the first peak and the second peak; determining if the time separation is an expected value or within an expected range; if the time separation is an expected value or within an expected range, identifying the second peak as a correlation peak; if the time separation is not an expected value or not within an expected range, comparing said second peak amplitude to the selection threshold based on said first peak amplitude; and identifying the second peak as a correlation peak if the second peak amplitude is greater than the selection threshold.
2. The method as claimed in claim 1 further comprising additionally applying a fixed threshold to the amplitudes of the first and/or second peaks.
3. The method as claimed in claim 2, wherein the selection threshold is additionally based on the fixed threshold.
4. The method as claimed in claim 3, wherein the selection threshold is calculated according to:
Th.sub.sidelobe=α.sub.1.Math.Q.sub.lastpeak+α.sub.2.Math.T.sub.h where Th.sub.sidelobe is the selection threshold, Q.sub.last peak is the amplitude of the first peak, T.sub.h is the fixed threshold, and α.sub.1 and α.sub.2 are positive combining coefficients that add to 1.
5. The method as claimed in claim 1, wherein the radio signal encodes a data stream comprising a repeated bit sequence, and the correlator cross-correlates the radio signal with a reference bit sequence to provide an output signal comprising a sequence of peaks separated in time.
6. The method as claimed in claim 5, wherein the peaks in the output signal from the correlator are spaced apart in time by an amount corresponding to a length of the repeated bit sequence.
7. The method as claimed in claim 5, wherein the reference bit sequence comprises some or all of the repeated bit sequence.
8. The method as claimed in claim 5, wherein the reference bit sequence is a predetermined sequence stored in the radio receiver.
9. The method as claimed in claim 5, wherein at least some bits in the data stream are encoded using direct-sequence-spread-spectrum-(DSSS-) encoding in which a fixed chip sequence is used to represent specific bits or bit sequences.
10. The method as claimed in claim 5, further comprising de-spreading the received data stream after correlating the data stream.
11. The method as claimed in claim 1 further comprising using the first and second peaks for symbol timing recovery or frame synchronisation.
12. An apparatus comprising a digital radio receiver for receiving a radio signal, and a correlator for correlating the radio signal with a predetermined pattern to provide an output signal comprising a plurality of peaks separated in time, the digital radio receiver arranged to: pass said radio signal to the correlator to produce an output signal comprising a plurality of peaks separated in time; determine an amplitude of a first peak in the plurality of peaks; calculate a selection threshold based on said first peak amplitude; determine an amplitude of a second peak in the plurality of peaks; calculate a time separation between the first peak and the second peak in the plurality of peaks; determine if the time separation is an expected value or within an expected range; if the time separation is an expected value or within an expected range, identify the second peak as a correlation peak; if the time separation is not an expected value or not within an expected range, compare said second peak amplitude to the selection threshold based on said first peak amplitude; and identify the second peak as a correlation peak if the second peak amplitude is greater than the selection threshold.
13. The apparatus as claimed in claim 12 further arranged to additionally apply a fixed threshold to the amplitudes of the first and/or second peaks.
14. The apparatus as claimed in claim 13, wherein the selection threshold is additionally based on the fixed threshold.
15. The apparatus as claimed in claim 14, wherein the selection threshold is calculated according to:
Th.sub.sidelobe=α.sub.1.Math.Q.sub.lastpeak+α.sub.2.Math.T.sub.h where Th.sub.sidelobe is the selection threshold, Q.sub.last peak is the amplitude of the first peak, T.sub.h is the fixed threshold, and α.sub.1 and α.sub.2 are positive combining coefficients that add to 1.
16. The apparatus as claimed in claim 12, wherein the radio signal encodes a data stream comprising a repeated bit sequence, and the correlator is arranged to cross-correlate the radio signal with a reference bit sequence to provide an output signal comprising a sequence of peaks separated in time.
17. The apparatus as claimed in claim 16, wherein the peaks in the output signal from the correlator are spaced apart in time by an amount corresponding to a length of the repeated bit sequence.
18. The apparatus as claimed in claim 16, wherein the reference bit sequence comprises some or all of the repeated bit sequence.
19. The apparatus as claimed in claim 16, wherein the reference bit sequence is a predetermined sequence stored in the radio receiver.
20. The apparatus as claimed in claim 16, wherein at least some bits in the data stream are encoded using direct-sequence-spread-spectrum-(DSSS-) encoding in which a fixed chip sequence is used to represent specific bits or bit sequences.
21. The apparatus as claimed in claim 16, wherein the digital radio receiver is further arranged to de-spread the received data stream after correlating the data stream.
22. The apparatus according to claim 12, wherein the digital radio receiver is further arranged to use the first and second peaks for symbol timing recovery or frame synchronisation.
23. A non-transitory computer readable medium comprising software, when run on a data processing apparatus, to cause the data processing apparatus to: receive a radio signal from a digital radio receiver; correlate said radio signal with a predetermined pattern to provide an output signal comprising a plurality of peaks separated in time; determine an amplitude of a first peak in the plurality of peaks; calculate a selection threshold based on said first peak amplitude; determine an amplitude of a second peak in the plurality of peaks; calculate a time separation between the first peak and the second peak in the plurality of peaks; determine if the time separation is an expected value or within an expected range; if the time separation is an expected value or within an expected range, identify the second peak as a correlation peak; if the time separation is not an expected value or not within an expected range, compare said second peak amplitude to the selection threshold based on said first peak amplitude; and identify the second peak as a correlation peak if the second peak amplitude is greater than the selection threshold.
Description
(1) Certain 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) The wireless heart-rate monitor 1 has a heart-rate sensor 2 which is connected to a microprocessor 3 (such as an ARM™ Cortex M-series). The microprocessor 3 is connected to a radio transmitter 4. The radio transmitter 4 includes an encoder 5 (among other components). Other conventional components, such as memory, a battery, etc. are also present, but are omitted from the drawing for the sake of simplicity. The microprocessor 3 and radio transmitter 4 may be integrated on a single silicon chip. The monitor 1 has a radio antenna 6, which may be integrated on such a chip or external to it.
(9) The smartphone 7 has, among other conventional components (not shown), an antenna 8, suitable for receiving short-range radio communications from wireless-personal-area-network devices, which is connected to a radio receiver 9. The radio receiver 9 includes synchronization and decoding logic 10, among other components. The radio receiver 9 is connected to a microprocessor 11 (such as an ARM™ Cortex M-series), which can output data for display on a screen 12, possibly via other components, such as a further microprocessor (not shown) running an operating system and appropriate software applications.
(10) In use, the wireless heart-rate monitor 1 receives periodic heart-rate readings for a human user from the heart-rate sensor 2. The microprocessor 3 processes the readings into a suitable format for transmission, and sends the message data to the radio transmitter 4. In some embodiments, the message data may already be differentially encoded, in order to improve the efficiency of the decoding operation on the radio receiver 9. The radio transmitter 4 determines whether the message data can fit within a single data packet, or if it must be split across two or more data packets. The encoder 5 in the radio transmitter 4 encodes the message data using a convolution-based forward-error-correcting code. It pre-pends a link-layer Access Address (cAA) and a rate indicator (RI) to the encoded message data to create a payload. The transmitter 4 then pre-pends a preamble comprising a synchronisation word to the payload. The synchronisation word comprises ten repetitions of a predetermined sequence, S1 [00111100] (for example). Each bit in a transmitted packet may be direct-sequence-spread-spectrum-(DSSS-) encoded using a fixed chip sequence. For example, each ‘1’ bit might be represented by the 4-bit sequence [1 1 0 0] and each ‘0’ bit represented by the sequence [0 0 1 1]. Of course, other lengths of chip sequence may be used, which may or may not be powers of two.
(11) The radio transmitter 4 then transmits the encoded data packet from the antenna 6, modulated on a radio-frequency carrier (e.g. at around 2.4 GHz), using two-level GFSK with a modulation index of 0.5. Alternatively, the radio transmitter 4 may use FSK modulation.
(12)
(13) In use, the smartphone 7 receives the radio data packet at the antenna 8. The radio receiver 9 processes the GFSK signal using the synchronization and decoding logic 10. The receiver 9 first correlates the received signal with a stored synchronization sequence (e.g. [0 0 1 1 1 1 0 0]), in order to determine symbol timing recovery and frequency offset correction. Preferably, the stored synchronisation sequence corresponds to the predetermined sequence (i.e. S1) in the preamble.
(14) Correlation peaks in the correlation provides timing synchronization and hence frame synchronization information which may then be used to decode the data payload. This operation is explained in more detail below.
(15) The wireless heart-rate monitor 1 and smartphone 7 may be configured so that heart-rate message data is transferred from the wireless heart-rate monitor 1 to the smartphone 7 substantially according to the Bluetooth Low Energy (BTLE)™ core specification version 4.0, with the exception of the physical layer. The wireless heart-rate monitor 1 and mobile telephone 7 may be equipped for two-way radio communication, using corresponding components for radio transmission in the opposite direction, although this is not essential.
(16)
(17) Steps such as filtering and residual frequency offset tracking are not shown for reasons of conciseness. The design of the radio receiver aims to optimize sensitivity while tolerating realistic channel conditions (carrier frequency offset, carrier drift, fading, etc.).
(18) Complex-valued baseband samples are shown entering from the left side of
(19)
(20) The synchronization unit 22 comprises a data-aided joint timing and frequency estimator which exploits knowledge of the data in the received symbols to cancel the effect of the modulation on the estimate of a conventional delay-and-correlate type of carrier frequency offset estimator. The principle behind the synchronization is described in WO 2014/167318, by the present applicant, the entire contents of which are hereby incorporated by reference.
(21) Because a repeated synchronization sequence is received, checks on the time domain distances between successive magnitude responses can be used (at least in part) to filter out false detections (i.e. sidelobe peaks and noise peaks) and thereby identify valid detections (i.e. correlation peaks). This means that a shorter correlator with a lower detection threshold can be used to achieve a given level of sensitivity lowering receiver complexity.
(22) The “joint timing & freq. offset sync” synchronization unit 22 in
(23)
where L is the number of samples representing an up-sampled “synchronization word”, which is defined as a number of repetitions of the sequence S1 above; where D is a lag which is decided at design time; and where T is the sample period.
(24) The coefficients are given as d.sub.i=p.sub.i*p.sub.i+D where p.sub.i* and p.sub.i+D are the samples constituting the up-sampled and modulated sync word bits. The correlator should be sampled at the right point in time for the frequency offset estimate to be valid, and this time instant is when a “correlation peak” is observed in the cross correlation output, M.sub.n, given by:
(25)
(26) The coefficients d.sub.i=p.sub.i*p.sub.i+D are calculated at design time.
(27) An example of a normalised cross-correlation output as a function of time is given in
(28) The synchronization unit 22 determines a correlation peak in the cross-correlation output based on a variable sidelobe threshold check. The sidelobe threshold check is applied to one or more neighbouring pairs of peaks in the cross-correlation output. The check determines whether the latter peak of two neighbouring peaks (i.e. second peak—e.g. peak 403) in the cross-correlation output exceeds a calculated dynamic sidelobe threshold. The calculation of the dynamic sidelobe threshold is based on the amplitude of the earlier peak in the pair of neighbouring peaks (i.e. the first peak—e.g. peak 402). An example of how a correlation peak is determined using the variable sidelobe threshold check is discussed in more detail below with reference to
(29) A further, fixed threshold (e.g. 0.4) is used as a first check to identify potential correlation peaks in the cross-correlation output and to filter out noise. The threshold is chosen so that all the genuine correlation peaks are expected to exceed it. This stage of filtering should result in most of the correlation peaks remaining along, probably, with some false peaks such as sidelobe peaks. For example, a programmable threshold of 0.4 may be applied to the cross-correlation output of
(30) The dynamic sidelobe threshold check is applied only when a peak is spaced outside an expected range from the previous peak, the expected range being the sync word length, plus or minus an error margin, Δ, to account for noise.
(31) The calculation of the sidelobe threshold (Th.sub.sidelobe) may be given by:
Th.sub.sidelobe=α.sub.1.Math.Q.sub.lastpeak+α.sub.2.Math.T.sub.h (Eq 3)
where Q.sub.last peak is the amplitude of the first peak in the currently analysed neighbouring pair of peaks, T.sub.h is the predetermined threshold, and α.sub.1 and α.sub.2 are positive combining coefficients that add to 1.
(32) The repeated synchronization sequence together with the variable sidelobe threshold check have the advantage that the synchronization logic 10 can filter out sidelobe peaks (or rather qualify a correlation peak) based on the amplitude of an earlier neighbouring peak, which gives a more accurate prediction of the likely amplitude of the next peak than an arbitrarily chose fixed threshold. Since the sidelobe threshold is dynamic it is increased or decreased to adjust for changes in the amplitude of correlation peaks in the correlation output. This allows a wider range of correlation peaks to be detected to improve receiver sensitivity, while maintaining robustness against false detections (e.g. sidelobe detections). This in turn means that, for example, an 8-bit correlator can be used to achieve a high level of sensitivity at low receiver complexity.
(33) Another advantage of this pulse train synchronization is that, if a correlator frame longer than the repeat sequence is used, as may be the case in some embodiments, the receiver correlator coefficients will also be a repeated sequence. This simplifies the implementation of longer correlators, while maintaining their basic noise averaging qualities.
(34) The process outlined above will now be described in more detail.
(35) Referring back to
(36) The coded-Access-Address correlation unit 20 performs a correlation operation F=Σ.sub.k=1.sup.Nh(n−k)cAA(k) using a stored version of the coded Access Address, in order to determine the frame synchronization for the incoming data frame.
(37) The message data bits are then determined by the Viterbi decoder unit 21, which operates in a conventional manner.
(38)
(39) The state of this FSM is given by the variable syncstate. At block 510, the FSM receives a cross-correlation output and starts out in syncstate=0, time t=0, and MnCnt=0. Syncstate=0 indicates that the FSM has not yet found the required number of correlation peaks for processes such as symbol timing recovery and frame synchronisation. MnCnt is a counter which counts the number of correlation peaks that are determined to have amplitudes that exceed a predetermined threshold and a sidelobe threshold, and to have a certain time separation from an earlier neighbouring correlation peak. When a sufficient minimum number MaxMnCnt of correlation peaks has been determined, the syncstate is set to one at block 580 and the receiver may then use the timings of the determined correlation peaks for processes such as timing and carrier frequency offset synchronization and frame synchronization.
(40) At processing block 515, the FSM selects one peak in the received cross-correlation output for analysis. At this stage, it is not yet determined whether the selected peak is a correlation peak or a false peak (e.g. sidelobe peak). The peaks are selected in order of the time they occurred with the earliest peak being selected first and the most recent peak being selected last. The selected peak is passed to decision block 520.
(41) At decision block 520, the FSM determines whether the amplitude of the selected peak exceeds a threshold, T.sub.h. The threshold T.sub.h is fixed and is preprogramed into the FSM. Preferably, the threshold T.sub.h is kept low enough so that the respective amplitudes of at least most of the correlation peaks exceed the threshold T.sub.h. It will be appreciated that the application of this threshold may filter out some of the sidelobe peaks. However, as a consequence of keeping T.sub.h low enough so that most of the correlation peaks are detected, there may be a portion of sidelobe peaks that pass this threshold test (i.e. there may be a portion of sidelobes that have amplitudes that exceed threshold T.sub.h).
(42) If the selected peak is found to exceed threshold T.sub.h, the FSM notes the time at which the peak occurred and passes the selected peak to block 525 for further processing and tests. If the amplitude of the selected peak does not exceed threshold T.sub.h, the FSM proceeds to decision block 585 where it determines whether or not a timeout has occurred. Provided that a timeout hasn't occurred, the FSM is configured to return to block 515 to select the next peak in the cross-correlation output for evaluation. If a timeout has occurred, the FSM proceeds to block 575 to reset the timer and MnCnt.
(43) At decision block 525, the FSM determines whether the minimum number MaxMnCnt of correlation peaks has been determined.
(44) Decision block 530 evaluates whether or not MnCnt equals zero. When MnCnt equals zero, the selected peak is labelled and processed as a “first” peak, and when MnCnt does not equal zero the selected peak is labelled and processed as a “second” peak. First peaks are passed to processing block 535 and second peaks are passed to processing block 540.
(45) Each time a peak is passed to block 535 (which may be from either block 530 or block 550), it stores the time at which the peak occurred as T(MnCnt), increments MnCnt by one, and the time separation period between the “first” peak and the “second” peak. Q.sub.lastpeak is used for determining the sidelobe threshold at block 555. The stored values may additionally be used for processes such as timing and carrier frequency offset synchronization and frame synchronization.
(46) At block 540, the FSM determines the time at which the “second” peak occurred and then calculates the time separation period (i.e. D=t−T(Mncnt)) between the “first” and the “second” correlation peaks.
(47) Decision block 545 then evaluates whether or not the first and the second peaks are spaced apart in time by amounts corresponding to the “sync word” length within the error margin 4, to account for noise. If they are separated by this amount, MnCnt is incremented by one and then evaluated at block 550 to determine whether or not the minimum number MaxMnCnt of correlation peaks has been found. When the minimum number MaxMnCnt of correlation peaks has yet to be found, the “second” peak is passed to block 535 to be labelled and processed as a “first” peak. That is, the “second” peak is then considered to be the “first” peak for analysis of the next peak selected by block 515. On the other hand, when the minimum number MaxMnCnt of correlation peaks has been found, the FSM proceeds to block 580.
(48) If the first peak and the second peak are not spaced apart in time by amounts corresponding to the “sync word” length, plus or minus Δ, block 555 then calculates a sidelobe threshold Th.sub.sidelobe using equation (Eq 3) above, the value of T.sub.h, and Q.sub.lastpeak from block 535.
(49) At decision block 565, the second peak is evaluated to determine whether or not it is a correlation peak or a false peak (e.g. sidelobe peak). This is done by determining whether or not the amplitude of the “second” peak exceeds the calculated sidelobe threshold Th.sub.sidelobe from block 555. If the “second” peak exceeds the calculated sidelobe threshold Th.sub.sidelobe, the second peak is determined to be a correlation peak and the FSM then proceeds to set MnCnt equal to one and select the next peak in the cross-correlation output for evaluation at block 515. On the other hand, if the “second” peak does not exceed the calculated sidelobe threshold Th.sub.sidelobe, the second peak is determined to be a false peak and the FSM then proceeds to block 515 without changing MnCnt or the timer.
(50) The methods herein may be repeated to fine tune the determination of the correlation peaks and thereby fine tune subsequent processes such as timing and carrier frequency offset synchronization and frame synchronization. The iteration(s) may be based on the same data packet that was used in the first iteration of the method or, alternatively, on a different data packet received by the receiver. It will be appreciated that iteration(s) improve the synchronisation accuracy.
(51) The iteration(s) (e.g. second iteration) of a method in accordance with the present invention may use a different threshold T.sub.h than in a preceding iteration (e.g. first iteration). Preferably, a lower threshold T.sub.h is used in each subsequent iteration to improve the sensitivity of the receiver.
(52) It will be appreciated by those skilled in the art that whilst various specific features have been used to exemplify the invention, these are not limiting and many modifications and variations may be made without departing from the scope of the invention.