Method for building a target sequence of binary samples of a code sequence comprising binary chips

The method constructs a target sequence of binary samples by concatenating and adjusting samples from a reference sequence, addressing the computational and memory challenges of conventional methods, enhancing efficiency in resource-constrained applications like GNSS receivers.

WO2025253021A1PCT designated stage Publication Date: 2025-12-11GMV AEROSPACE & DEFENCE SAU
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2025/065993
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-06-07
Filing Date
2025-06-09
Publication Date
2025-12-11

AI Technical Summary

Technical Problem

Conventional binary sampling methods for code sequences require sweeping through the entire code sequence, which is computationally expensive and memory-intensive, especially in applications with limited computational and memory resources, such as GNSS receivers.

Method used

A method that builds a target sequence of binary samples by concatenating sets of samples from a reference sequence, using the sampling rates and initial phases of both sequences to mathematically compute the indexes of samples to be duplicated or discarded, without requiring the underlying code sequence, thus reducing computational and memory demands.

Benefits of technology

This approach efficiently generates a target sequence without needing the original code sequence, optimizing computational efficiency and memory usage, particularly suitable for applications with limited resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2025065993_11122025_PF_FP_ABST
    Figure EP2025065993_11122025_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure proposes a method for getting a binary sequence representing the sampling of an underlying binary code sequence. The proposed approach builds the target sequence by concatenating sets of samples taken from another reference sequence representing the sampling of the same underlying code but at different sampling rate and / or initial phase than the target sequence. The main idea is that both the target and the reference sequences share sets of samples that are common, sample by sample, in both sequences, so that such sets of samples can be reused to build the target sequence, and, at each transition between sets, one or several reference samples must be either duplicated or discarded. The present disclosure explains how to compute the indexes of those common sets and shows how the samples at the transitions need to be managed. The main advantage of this approach is to allow computational savings.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] 1 METHOD FOR BUILDING A TARGET SEQUENCE OF BINARY SAMPLES OF A CODE SEQUENCE COMPRISING BINARY CHIPS TECHNICAL FIELD 5 The present disclosure can be applied to any signal-processing or communications area where binary sampling is needed; the disclosure is particularly relevant in the field of signal processing for GNSS receivers. BACKGROUND 10 Binary sampling is a widely required process in multiple technological applications, such as electronics, communications, signal analysis, signal processing, etc. In binary sampling, a code sequence, ^, of ^^ binary chips, ^ = ^^^, ^^, ^^ … ^^^^^ ^, isgiven; each chip ^^ can take two possible values (1 or 0), ∀ ^ ∈ ^0 … (^^ − 1)^, and the codesequence ^ has a given chip rate, ^^ , of ^^ ^ℎ^^^ / ^ (i.e., a chip period !^ = seconds / 15 chip). In regard to the present disclosure, the problem of binary sampling can be stated as how to find a target sequence of binary samples, #, this target sequence having ^$ samples,# = ^^ , ^ , ^%^^ ^ ^^ ^ ^^ … ^ , with a sample rate of ^$ ^&'^()^ / ^ (i.e., a sample period !$ ="*seconds / sample) and an initial phase +$(in seconds), where each sample ^,can take two20 possible values (1 or 0), ∀ - ∈ ^0 … (^$ − 1)^, in such a way that ^, = ^^, with ^ and - fulfillingthe following condition: ^· !^ ≤ - · !$ + +$ < (^ + 1) · !^ Eq.1As an illustration example, Figure 1 shows an interval of an example of code sequence ^ ([1,0,1,0,1,0…]) sampled at two different sampling rates, ^$^and ^$^, and having 25 initial code phases ^ℎ^^and ^ℎ^^, respectively. In Figure 1, the two sampling sequences, #^and #^, are represented with circles and with diamonds, respectively. Each sample takes the value 1 or 0 of the chip of the code sequence ^ where the sample falls. In particular, the two sampled sequences, #^and #^, of this example are as follows: #^ = ^1,1,1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0^30 #^ = ^1,1,0,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,0^A conventional and widely known mechanism for sampling a code sequence can be summarized as follows: - The code sequence ^ is assumed to be available, either because it is stored in a 2 reference vector or because it is possible to generate it on the fly, or by any other means. - For each target sample to be generated, its corresponding sampled time is computed, starting at zero for the first sample and propagating the initial code phase. 5 - For each target sample time, the chip index (within the code sequence) where the sample falls must be found, so that Eq.1 is fulfilled. The binary value (1 or 0) of the corresponding chip will be the binary value of the sample. - Proceed as above for all the samples in the vector. A slightly different approach, which is also widely known, involves sweeping on the 10 chips (instead of on the samples), finding those chip times for which the chips switch value (1 to 0 or 0 to 1). Those samples whose sampling times fall within the chip times will take the specific binary value of the chip. Both of the above techniques (either sweeping on sample domain or on chip domain) require that the original code sequence is available: in fact, the code sequence is used as 15 a reference for providing the chip values in the process of sample generation. For some applications, it is convenient to store the code sequence and / or the sampled sequence in what, throughout the present disclosure, is called packed format. This packed or packing implies that each binary element (either each chip of the code sequence or each sample of the sampled sequence) is stored in a bit (valued 1 or 0) of a N-bit word. Just as 20 an example, the sequence [1,1,1,0,0,0,0,1] composed of N=8 bits, may be represented by the integer number 225, because the bit representation of the number 225 coincides specifically with that sequence. This can be generalized for any set of N elements and N- bit words. Packing may be a convenient approach that can contribute to memory and 25 computational savings. Thus, it is common practice in some kinds of GNSS receivers and other communications systems. When packing is considered, the conventional sampling mechanisms described above (on sample domain or chip domain) needs to be consequently adapted, accounting for the fact that each binary element (either the chip in the code sequence and / or the sample 30 in the sampled sequence) is not linearly stored (that is, in a vector containing the binary elements in an element-to-element basis), but they are packed within the bits of sets of N- words. Therefore, additional binary operations (bit masking, bit shifting, AND, OR, XOR, NOT, etc.) must be included in the process, which is, in any case, a standard and widely known mechanism. 35 Sampling a code sequence to produce a sampled sequence can be a computationally expensive process. In order to avoid the need of on-the-fly sampling, in particular for the 3 case of those GNSS receivers that are short of computational capabilities, several techniques have been proposed in the literature, making use of look-up tables that contain sets of sampled sequences at different sampling conditions: - Storing sets of sampled codes, including several values for the initial code phase 5 (with a phase resolution according to a given criterion). - Storing sets of over-sampled codes (i.e., with sampling frequency higher than the target sampled sequence) which will be used as a basis for computing the actual required sampled sequence. Both these storing approaches (which require keeping in memory sets of sampled 10 sequences at different sampling parameters) avoid the need for on-the-fly sampling, but require large amounts of memory, making them not convenient for those applications where memory is a critical and expensive resource, as mass electronics and space applications. On the other hand, the conventional sampling approach -which consists in making a sweep for all samples of the target sequence or for all chips of the code in order to find the 15 correspondence (between target samples and chips) that provides, for each sample, the required binary value-, has the problem of requiring large computational capabilities that may be not affordable for many applications. DESCRIPTION 20 The present disclosure proposes a method for getting a sampled binary sequence that represents the sampling of an underlying binary code sequence, which, unlike the conventional sampling approach (which must sweep for the whole code sequence, looking at all the chips, in order to produce a target sequence) does not need to operate on the underlying binary code sequence. 25 In the present disclosure, the underlying binary code sequence is also referred to as original code sequence or code sequence and denoted as ^. As indicated in the background section, this code sequence, ^, has ^^binary chips and a chip rate ^^^ℎ^^^ / ^)^234 (i.e., a chip period ! = ^^ "^ ^)^234^ / ^ℎ^^ ).A first aspect of the present disclosure relates to a computer implemented method for 30 building a target sequence # of binary samples, the target sequence # of binary samples representing a sampling at a sampling rate ^5, a sampling period !5=^"%and an initial phase of the original code sequence ^.The target sequence is built by concatenating sets of samples taken from a reference sequence 6 of ^7 samples, the reference sequence 6 = ^8(^) being an already35 sampled sequence of the original code sequence ^ having a sampling rate ^7 > ^^, a 4 sampling period !7 = ^"9 and an initial phase +7. And either ^5 ≠ ^7 and / or +5 ≠ +7. In thereference sequence 6, each sample 8 ^) has an index ^ belonging to the interval ^0, (^7 −1)^.According to the method, the binary values of the samples contained in each of said 5 sets of samples coincide, sample by sample, in both the target and the reference sequences, there being differences between the reference and the target sequences. These differences between the target and the reference sequences are compensated by duplicating or discarding at least one sample of the reference sequence between each couple of sets of samples. The index of at least one sample to be duplicated or discarded 10 (between two sets of samples from the reference sequence when building the target sequence) is mathematically computed using the sampling rates and the initial phases of the target and the reference sequences. In certain embodiments, the step of computing the index of the at least one sample to be duplicated or discarded from the reference sequence 6 comprises computing several 15 indexes. This step of computing the index(es) of the at least one sample to be duplicated or discarded from the reference sequence 6 can be executed at the beginning of the method -which is computationally more efficient-, or can be executed as the remaining steps of the method are executed. The reference sequence 6, together with its sampling frequency ^7 and initial phase20 +7 are provided as input to the method for building the target sequence #. Thus, thereference sequence 6 is available in advance or computed on the fly, while the target sequence # to be built is not available in advance, but can be characterized by its sampling frequency ^5and initial phase +5, which are also provided as input to the method. Actually, the present disclosure arises from the inventor realizing that, when 25 comparing two sequences that represent the sampling of a binary code at two different sampling conditions, there are common sets or intervals of samples that share, sample by sample, exactly the same binary value (1 or 0) in the two sequences. And that in the transitions or boundaries between those common sets of samples, the difference between the two sequences is an excess or a defect of at least one sample. 30 Thus, based on the known sampling parameters (sampling rate and initial phase) of both the target and reference sequences, the present disclosure shows at least a way of mathematically computing the indexes of the samples that represent the boundaries between those common sets or intervals of samples, even having in mind that the target sequence is not available in advance. 35 It is important to bear in mind that in the method herein disclosed, reference is made to the code sequence ^ but this code sequence ^ is actually not needed. 5 The disclosure does not impose any constraint either on the sampling rates of the reference sequence 6 and of the target sequence #. Actually, both sampling rates can be arbitrary. The closer the sampling rates between the reference sequence and the target 5 sequence, the better the computational efficiency of the method. Thus, in certain embodiments, the sampling rates of both the reference sequence and the target sequence are close to each other, and jointly close to an integer multiple of the chip rate of the original code sequence, and the computation efficiency is thus improved. In certain embodiments the sampling rate ^7of the reference sequence 6 is an integer10 multiple of the chip rate ^^ , that is, ^7 = <5 · ^^, being <5 = and <5 > 1, with ^5being the sampling rate of the target sequence; each set of samples of the reference sequence 6 is delimited by samples having indexes ^, defined within the reference sequence, given by each couple of two consecutive elements from a vector ^',^, with - = ^0 … (NA − 1)^, wherein vector ^', ^ is defined as15 follows: ^ ^',^ = ^(228(^3,^),^ if ^5 < ^7 :20 B5 = ^)^(^^5 · B^ · <5 · (!5 − !7)^,^3,^ = C(,D^)·E9^FGE%^E9 + -H, ^',^ = ^)^((^3,^),where ^(228 and ^)^( represent integer rounding towards −∞ and ∞, respectively, and wherein the target sequence # is computed as follows: ^if ^5 > ^725 where samples 8(LR) with indexes ^ = ', from vector ^',^, said samples definedwithin the reference sequence, are duplicated when building the target sequence, ^if ^5 < ^7 : 30 where reference samples 8(LR) with indexes ^ = ', from vector ^',^ are discardedwhen building the target sequence. 6 In certain embodiments, the sampling rate ^5of the target sequence # is an integer multiple of the chip rate ^ , that is, ^ "9^ 5 = <7 · ^^, being <7 = 82=34("^) and <7 > 1, with ^7being the sampling rate of the reference sequence, each set of samples of the reference sequence 6 is delimited by samples having indexes ^, defined within the reference 5sequence, given by each couple of two consecutive elements from a vector ^'VU ^, with ) =^0 … B7 − 1^, wherein vector ^'VU ^ is defined as follows:^ if ^5 < ^7 : 10 ^ if ^5 > ^7 :B7 = ^)^(^^7 · B^ · <7 · (!7 − !5)^ where ^(228 and ^)^( represent integer rounding towards −∞ and ∞, respectively, and 15 wherein the target sequence # is computed as follows: ^if ^5 < ^7 : where samples 8 Y , with indexes ^ = 'V from vector ^'V(L\ ) U U ^ are discarded whenbuilding the target sequence,20 ^ if ^5 > ^7 : where samples V _ with indexes ^ = 'U from vector ^'VU ^ are duplicated whenbuilding the target sequence, and wherein ∆Uis: if '24=(=^('VU , <7) = 0 ^ ∆U= 125 In certain embodiments, the sampling rates of neither the reference sequence nor the target sequence are integer multiples of the chip rate. In these embodiments, each set of samples of the reference sequence 6 is delimited by samples having indexes given by each couple of two consecutive elements from a vector ^`a^, the vector ^`a^ being computed as 7 rounding of the elements of another vector ^^a^ computed by the combination of the elements from a first vector ^3,^ and the elements of a second vector ^3UV^. The first vector ^3,^ with - = ^0 … B5 − 1)^ is defined for the target sequence # asfollows: 5a) if ^5 > <5 · ^^ : where <5 is a number 10 And the second vector ^3VU ^ with ) = ^0 … (B7 − 1)^ is defined for the referencesequence 6 as follows: c) if ^7 > <7 · ^^ : d) if ^7 < <7 · ^^ :15 where <7 is a number The elements in vector^^a^are sorted in increasing order from 0 to ∞, where each element `a is computed by rounding the corresponding element ^a, for example, as follows: 20 where: ^ c8=3^ is rounding towards −∞ if element ^ais related to a sequence under the condition indicated in any of cases a) or c) above, or towards ∞ if element ^ais related to a sequence under the condition indicated in any of cases b) or d) above, ^ eaand daare two integer numbers, defined for each index f as follows:25 o if the reference sequence and the target sequence are from cases a) or c),ea = 0,o if the reference sequence and the target sequence are from cases b) or d),ea = 0, 8 o if the reference sequence is from cases a) or c) and the target sequence is from cases b) or d), eais the number of elements in the vector ^^a^ with indexes smaller than f corresponding to the reference sequence and da = 1,o if the reference sequence is from cases b) or d) and the target sequence is 5 from cases a) or c), eais the number of elements in the vector ^^a^ with indexes smaller than f corresponding to the target sequence and da = −1.In these embodiments, the target sequence is built as concatenation of the sets of samples from the reference sequence delimited by consecutive couples of elements of vector ^`a^, and where, for each set, at least one sample is either duplicated if the given10 element̀ a corresponds to a sequence from cases a) or c), or discarded if the given element`a corresponds to a sequence from cases b) or d). And, when for a given element `a, areference sample is to be duplicated, the index of the reference sample to be duplicated is: 15 and, when for a given element `a, a reference sample is to be discarded, the index of the reference sample to be discarded is given by the element `a. The disclosure does not impose any constraint about the fact that the target sequence#and / or the reference sequence 6 are vectors of consecutive samples or packed in N-bitwords. In case of sequences packed in N-bit words, the transitions or boundaries that the 20 method mathematically computes are represented by two indexes per transition (instead of one), in order to account for both the word index and the bit index within the word. In embodiments wherein a sequence is packed in N-bit words, the binary operations (such as bit masking, bit shifting, AND, OR, XOR, NOT, etc.) are included in order to duplicate or to discard the proper samples (bits) from the words. 25 The target sequence # can be used as replica sequence in devices implementing spread-spectrum modulation, either at transmission or reception. Another aspect of the present disclosure relates to a computer implemented method for building a target sequence # of binary samples from a reference sequence 6, the target sequence # of binary samples representing a sampling at a sampling rate ^5, a sampling30 period !5 = ^"% and an initial phase +5 of a code sequence ^ of B^ binary chips at chip rate^ and chip per ^^ iod !^ ="^ ,the reference sequence 6 = ^8(^) … 8(^9^^)^ being a sampled sequence of the codesequence ^ at a sampling rate ^ ^7, ^7 > ^^ , having a sampling period !7 = and an initial 9 phase +7, each sample 8 )of the reference sequence 6 having an index ^ belonging to the interval ^0, (^7 − 1)^,wherein either ^5 ≠ ^7 and / or +5 ≠ +7,wherein the reference sequence 6 is available in advance or provided as input, and 5 the target sequence # to be built is not available in advance, but is characterized by its sampling frequency ^5and initial phase +5, and wherein ^5, ^7, +5and +7are used to mathematically compute a vector of values for the indexes of the samples in the reference sequence 6, these computed values of the indexes being boundary indexes which are used for delimiting sets of samples in the 10 reference sequence 6, wherein the binary values of the said sets of samples in the reference sequence 6 coincide, on a sample-by-sample basis, with the binary values of as many sets of as many samples in the target sequence # to be built, and wherein, outside those sets of samples whose binary values coincide, the reference 15 sequence 6 and the target sequence # are different in at least one sample, wherein the target sequence # is built by taking, from the reference sequence 6, the sets of samples whose binary values coincide and by placing these sets of samples consecutively, with the provision of compensating, between each couple of the said sets of samples whose binary values coincide, at least one sample from the reference sequence20 6, wherein this compensating comprises either duplicating or discarding at least a samplefrom the reference sequence 6, wherein the index of the at least one sample to be duplicated or discarded from the reference sequence 6 is mathematically computed using the sampling rates and the initial phases of the target and the reference sequences, the target sequence # being used as replica sequence in spread-spectrum 25 modulation. Another aspect of the present disclosure relates to a computer implemented method for building a target sequence # of binary samples from a reference sequence 6, the target sequence # of binary samples representing a sampling at a sampling rate ^5, a sampling period !5 = ^"% and an initial phase +5 of a code sequence ^ of B^ binary chips at chip rate30 ^ ^^ and chip period !^ ="^ ,the reference sequence 6 = ^8(^) being a sampled sequence of the codesequence ^ at a sampling rate ^7, ^7 > ^^ , having a sampling period !7 = ^"9 and an initialphase +7, each sample 8( )of the reference sequence 6 having an index ^ or being assigned an index ^ belonging to the interval ^0, (^7 − 1)^,35 wherein the reference sequence 6, the sampling rates ^7&34 ^5, and the initial 10 phases +7&34 +5are inputs to the method, wherein either ^5 ≠ ^7 and / or +5 ≠ +7, andwherein ^5, ^7, +5and +7are used to mathematically compute a vector of values for the indexes of the samples in the reference sequence 6, these computed values of the 5 indexes being boundary indexes of sets of samples in the reference sequence 6, wherein the target sequence # is built by taking, from the reference sequence 6, the sets of samples using the computed boundary indexes and by placing these sets of samples consecutively, and between each couple of said sets at least one sample from the reference sequence 6 is either duplicated or discarded, the index of the at least one sample to be 10 duplicated or discarded from the reference sequence 6 being computed using the sampling rates and the initial phases of the target and the reference sequences, the target sequence # being used as replica sequence in spread-spectrum modulation. In the sets of samples delimited by the computed boundary indexes, the binary values 15 in the reference sequence 6 coincide, on a sample-by-sample basis, with the binary values of as many sets of as many samples in the target sequence # to be built. That is, there are sets of samples whose binary values coincide between the reference sequence 6 and the target sequence #. And outside those sets of samples whose binary values coincide, the reference sequence 6 and the target sequence # are different in at least one sample. And 20 in the transition between each couple of sets of samples whose binary values coincide (that is, when concatenating those sets of samples), at least one sample from the reference sequence 6 is discarded or duplicated for each couple of sets of samples whose binary values coincide. In the presented methods, the sequence of the disclosed steps can be carried out in several ways, and not necessarily in the specific order indicated. 25 By way of example, the method can be provided with the reference sequence R as input or provided on the fly together with the four parameters describing the reference and target sequences: ^5, ^7, +5and +7, and the boundary indexes are firstly computed. The boundary indexes are used to establish the beginning and end of the sets of samples from the reference sequence 6 to be used for the target sequence #. Then, for each set of 30 samples, the at least one sample from the reference sequence 6 is discarded or duplicated when building the target sequence #. Afterwards, the next set of samples from the reference sequence 6 determined by the following couple of boundary indexes is used to continue building the target sequence #, and successively. This way of executing the disclosed method is computationally effective. 35 It is also possible that the whole reference sequence 6 is copied and used as an embryo for building the target sequence #; the boundary indexes are then computed and 11 used to delimit the sets of samples in the embryo where at least one sample from the reference sequence 6 has to be compensated outside each of the sets of samples of the target sequence # by duplicating or discarding the at least one sample. In the context of the present disclosure, concatenate (or concatenation) means a process of combining two or 5 more sets of binary values into a longer set of binary values, but not necessarily in an adjacent way, in the sense that, between the sets of binary values (the samples) that are concatenated, there can be null, one or more samples. That is, when two sets of samples are concatenated at the transition (or junction) between the sets of samples, at least one or more samples is either duplicated or omitted. 10 A further aspect of the present disclosure relates to a signal-processing device, the signal-processing device comprising at least one processor, and at least one memory. The at least one memory is configured, together with the at least one processor, to cause the signal-processing device to carry out the steps of a method as defined in the foregoing. In certain embodiments the signal-processing device is a device implementing 15 spread-spectrum modulation, which can be a GNSS receiver. In such embodiments, using the method disclosed herein provides the GNSS receiver with the required sets of sampled PRN vectors, to be used as replica vectors for processing in the GNSS receiver, in an efficient manner. The different aspects and embodiments defined in the foregoing may be combined 20 with one another, as long as they are compatible with each other. Additional advantages and features of the present disclosure will become apparent from the detailed description that follows and will be particularly pointed out in the appended claims. 25 BRIEF DESCRIPTION OF THE DRAWINGS To complete the description and in order to provide for a better understanding of the disclosure, a set of drawings is provided. Said drawings form an integral part of the description and illustrate embodiments of the disclosure, which should not be interpreted as restricting the scope of the disclosure, but just as examples of how the disclosure can be 30 carried out. The drawings comprise the following figures: Figure 1 shows an interval of an example of code sequence hijsampled at two different sampling rates. Figures 2A and 2B show respective examples of the variable number of chips, including portions of desync sequences of samples, being oversync in Fig.2A and subsync 35 in Fig.2B. 12 DETAILED DESCRIPTION An essential point that sets this disclosure apart from the conventional methods is that, for the production of the target sequence # of binary samples, this disclosure makes use of another already-sampled sequence (at a different sampling rate and / or initial phase 5 from the sampling rate and / or initial phase of the target sequence), referred to as reference sequence 6, instead of making use of the original code sequence ^, with sets of samples from the reference sequence 6 being directly taken and concatenated to produce the target sequence #. The code sequence, C, has ^^ binary chips, C = ^^^, ^^, ^^ … ^^l^^ ^, where each chip10 ^^ can take two possible values 1 or 0, ∀ ^ ∈ ^0 … ^^ − 1^, and has a chip rate ^^^ℎ^^^ / ^)^234 (i.e., a chip period !^ = ^"^ ^)^234^ / ^ℎ^^).The target sequence S is a sequence of LA samples, # = ^, whereeach sample ^, can take two possible values 1 or 0, ∀ - ∈ ^0 … (^A − 1)^, with a sample rate^ ^&' ^A ^()^ / ^)^234 (i.e., a sample period !5 ="% ^)^234^ / ^&'^()) and an initial phase +A15 (in seconds). The sample sequence S represents the sampling of the code sequence ^ in the sense that ^, = ^^, with ^ and - fulfilling the following condition:^ · !^ ≤ - · !5 + +5 < (^ + 1) · !^ Eq.2The reference sequence of binary samples, R, used in the present disclosure is a sequence having ^7 samples, 6 = ^, where each sample 8, can take two20 possible values 1 or 0, ∀ - ∈ ^0 … (^7 − 1)^, with a sample rate ^7 ^&'^()^ / ^)^234 (i.e., asample period !7 = ^"9 ^)^234^ / ^&'^()) and an initial phase +7 (in seconds). The referencesequence 6 represents the sampling of the code sequence ^ in the sense that 8, = ^^, with^ and - fulfilling the following condition:^ · !^ ≤ - · !7 + +7 < (^ + 1) · !^ Eq.325 This reference sequence 6 is assumed to be available in advance, represents the sampling of the code sequence ^ and is used for building the target sequence #. For convenience and easiness of understanding, most of the present disclosure focuses on the case of sequences composed of vectors of consecutive samples, that is, on sequences that are not packed. But extrapolation to the case where the sequences are 30 packed may be assumed and an example is provided later. Prior to providing a detailed description of the present disclosure, and as a basis thereof, some important implications that the inventor has found out about sampled sequences are analyzed. This analysis is general, and is applicable to any sample sequence, therefore in the analysis that follows the sequence will be denoted as p (instead 13 of the specific symbol 6 or #, used above to denote the reference and the target sequences, respectively) and is expressed as p = ^q^, q^, q^ … ^.Throughout this description, for easiness of understanding, the sampling rates are assumed to be constant in time; but, conceptually, they could be variable, in such a way 5 that, for a given time c within the sequence, the sampling rate ^s(c) can be expressed in terms of the sampling-rate derivatives as follows: An important point of the present disclosure is to realize that the number of samples of a sample sequence p (having a sampling rate ^s) that falls on any code chip ^ of the 10 original code sequence ^ (having a chip rate of ^^) can take just two possible values, <xror <yr, i.e., any code chip ^ always contains either <xsor <yrsamples of p. Moreover, <xr and <yr depend on a number <s = 82=34 > , as follows:a) Oversync case, that is, if ^s > <s · ^^ ^ <xr = <s; <yr = <s + 1b) Subsync case, that is, if ^s < <s · ^^ ^ <xr = <s; <yr = <s − 115 c) Sync case, that is, when ^s = <s · ^^ ^ <xr = <s; <yr = B23 z^^(^^&{()In the following, the first two cases (oversync and subsync) are generically referred to as desync (abbreviation from desynchronized). Notice that, in each of them, the number of samples per chip differs in just ±1 sample, either in excess or in defect. In the sync case (abbreviation from synchronized), for which there is an integer ratio between the sampling 20 rate of the sampled sequence and the chip rate of the code, all the chips have the same number of samples, <xr = <s.Regarding the desync cases, and except for ^ br ·"^s = ^ (when <xr and <yr areequiprobable), there are usually more chips with <xrthan with <yrsamples. For this reason, the fact of having either <xror <ysies hereafter defined as nominal or non-nominal 25 events, respectively. For any desync sample sequence p with number <s, a sync sequence h^is defined as a sequence of ^^ = <s · B^ samples with sampling rate ^^ = <s · ^^ , sampling period!^ = ^"M and initial phase +^ = 0, representing the sampling of the same original codesequence C as p; let us express this sync sequence as: h^ = ^}^, }^, }^ … }(^M^^) ^.30 As way of example, let us assume there are two desync sample sequences, one of them oversync and the other subsync, with sampling parameters (expressed as a function of the parameters of the code sequence ^): ^ OVERSYNC (FIG 2A): Eq.4a 14 Sampling rate: ^~^U^ = 3.414 · ^^ → <~^U^ = 82=34(3.414) = 3Initial phase: +~^U^ = 0.34 · !^ .^ SUBSYNC (FIG 2B): Eq.4b Sampling rate: ^$^^ = 2.52 · ^^ → <$^^ = 82=34(2.52) = 35 Initial phase: +$^^ = 0.117 · !^.Notice that in both cases, the number <s = 3. Let us compare each of these desyncsequences with the corresponding sync sequence h^(i.e., a sequence of samples with ^^= 3· ^^). Figures 2A and 2B present, as an example, portions of the desync sequences ofsamples represented by diamonds (oversync in Fig.2A and subsync in Fig.2B), as well as 10 the corresponding sync sample sequence (with circles). Notice that all the chips in the sync sequence have <s = 3 sync samples, but this is not always the case for the desyncsequences: -Oversync (Fig.2A): there are two chips with <xr = 3 desync samples and one chipwith <yr = 4 desync samples. Notice that a general pattern occurs consisting of an15 alternation between desync and sync samples: each desync sample (diamond) is, in general, followed by a sync sample (circle), as indicated by the rightwards arrows from each diamond to the next circle. However, sometimes occurs that one desync sample is followed by another desync sample; in Fig.2A this occurs once, between samples 2 and 3, thus breaking the pattern. This non-nominal event is the reason 20 why the first chip has 4 desync samples instead of 3 desync samples. - Subsync (Fig.2B) shows the complementary case. In this case, the general pattern consists of an alternation between sync and desync samples: each sync sample (circle) is followed by a desync sample (diamond). However, sometimes occurs that one sync sample (circle) is followed by another sync sample; in Fig.2B this occurs 25 once, between samples 5 and 6. This non-nominal event is the cause for the second chip having 2 desync samples instead of 3 desync samples. In the following, non-nominal sync samples are defined as those samples in the sync sequence that are involved in a non-nominal event: - In the case shown in Fig.2A, the non-nominal event is associated to a couple of two 30 consecutive desync samples before a sync sample. The sync sample just after the second desync sample of each couple (i.e., the sync sample that has been preceded by a desync sample in excess) is defined as a non-nominal sync sample. In Fig.2A, sync sample 3 is a non-nominal sync sample. - In the case shown in Fig.2B, the non-nominal events are related to couples of two 35 consecutive sync samples before a desync sample. The first sample of each of those couples (i.e., the sync samples previous to the ones that are overpassed by 15 a desync sample) is defined as a non-nominal sync sample. In Fig.2B, sync sample 5 is a non-nominal sync sample. Another important point of the present disclosure is the inventor having realized that, given the sampling rate ^sand the initial phase +s, and for any of the two desync cases, it 5 is possible to mathematically compute the indexes of the non-nominal sync samples that represent the discrepancies between the desync and the sync sequences. Along the whole sync sequence, there will be Bsnon-nominal sync samples, with indexes ',that can be computed as follows: a) Oversync case, if ^s > ^^:10 b) Subsync case, if ^s < ^^: 15 c) Sync case, if ^s = ^^:Bs = 0 ^ trivial case where both sequences are equal (regardless of +^).^3,^, ^',^ ≡ B23 z^^(^^&{()As previously explained, an important point of the present disclosure is realizing the following facts: 20 - As long as a sample falls on a chip, the sample in the sampled sequence takes the binary value of the chip (exactly 1 or 0), regardless of the (in a general case, shifted) position of the sample within the chip (that is, as long as the inequality defined above as Eq.2 or Eq.3 are fulfilled and the sample time falls within the time range that defines the chip). 25 - The binary values of all the sync samples with index ' contained between two consecutive non-nominal sync samples (i.e., ∀', with (', + 1) < ' < ('(,D^) − 1)]coincide, sample by sample, with the binary values of an interval of as many samples in the desync sequence, since those samples between non-nominal samples are, by definition, nominal samples, and all these nominal samples in that interval of the30 desync sequence correspond to the nominal case of <x = <s samples per chip.- The non-nominal sync samples represent the differences between the sync and the desync sequences in the following way: o If the desync sequence is oversync (i.e., case a), any non-nominal sync sample is non-nominal in defect, i.e., a sample is lacking in the sync 35 sequence, compared to the oversync sequence. 16 o If the desync sequence is subsync (i.e., case b), any non-nominal sync sample is non-nominal in excess, i.e., that sync sample would not be needed, compared to the subsync sequence. Thus, for a desync sequence p, the corresponding sync sequence h^together with 5 the set of Bsnon-nominal sync sample indexes ',contain exactly the same information as the sequence p. In fact, the sequence p can be expressed from h^as follows: Oversync case, ^$ > ^^: where the non-nominal sync samples }(LR)have been duplicated because, in the 10 sync sequence h^, they are in defect compared to the oversync sequence p. Subsync case, ^s < ^^: where the non-nominal sync samples }(LR)have been discarded since, in the sync sequence h^, they are in excess compared to the subsync sequence p. 15 Alternatively, the sync sequence h^can be derived from the desync sequence p by concatenating intervals of samples taken from the sequence p and properly managing the transition samples between those intervals. In this case, the indexes for the transition samples (labelled now as ^3UV^ and ^'UV^, respectively before and after integer truncation) are defined on the domain of the desync sequence (instead of the domain of the sync 20 sequence): Oversync case, ^s > ^^:Bs = ^)^(^^s · B^ · <s · (!^ − !s)^, 25 where samples with indexes _ ) have been discarded from the oversync sequencepsince they are in excess compared to the sync sequence h^.Subsync case: ^s < ^^:Bs = ^)^(^^s · B^ · <s · (!s − !^)^ 17 where samples with indexesq(L_Y^∆_)have been duplicated from the subsync 5 sequence p because they are in defect compared to the sync sequence h^, with ∆Ubeing: if '24=(=^('VU , <s) = 0 ^ ∆U= 1if '24=(=^('VU , <s) ≠ 0 ^ ∆U= 0Note that this ∆Uwas not needed in the previous case when the desync sequence was derived from the sync sequence. This has to do with the fact that, in the previous case, 10 the starting point was the sync sequence V^, which is fully synchronized with the original code sequence ^, therefore, preserving exactly the code information. However, in this second case, the sequence used as starting point, p, is not synchronized with the original code sequence C, so this extra correction is required in order to introduce the (initially absent) synchronization. 15 As already stated, the purpose of this disclosure is a method to build a target sample sequence S (which represents the sampling, at sampling rate ^5and initial phase +5, of a code sequence ^, according to Eq. 2), based on another, already-sampled, reference sequence 6 that represents the sampling of the same code ^ but at sampling rate ^7and initial phase + 7 (according to Eq. 3), assuming that ^5 ≠ ^7 and / or +5 ≠ +7 (at least one, or20 both, of these two parameters is expected to be different between the two sample sequences), with no need at all of knowing the underlaying code sequence ^. Each of the involved sample sequences (reference or target) can be either oversync, subsync or sync, regardless of the other sequence (although, in practical terms, it would not make much sense that both sequences are sync). 25 The analysis presented above for a generic sequence p is applied now, separately, to both the reference and the target sequences, just by considering again the sequences 6 and #, respectively, with the provision that, depending on its specific sampling rate, each sequence can correspond to any of the three cases: oversync, subsync or sync. The method to build the target sequence then applies the proper equation (out of 30 those from Eq.5 or Eq.7) to both the reference sequence # and to the target sequence 6, based on the respective sampling rates and initial phases. In a most generic case, the integer number <s(which is the rounded ratio between the sampling rate of the desync sequence and the sampling rate of the corresponding sync 18 sequence) may take different values for the reference sequence and for the target sequence, so that there may be one such number <sfor the reference sequence 6, i.e. <7 = and another for the target sequence #, i.e., <5 = 82=34 >"%"^?. In otherwords, there may be two different sync sequences, one for the reference sequence and 5 another for the target sequence. If one of the sequences (reference or target) is of sync nature, the target sequence can be built just by following one of the above equations: ^In case that the reference sequence 6 is a sync sequence (i.e., 6 = h^, with ^7 =^^ = <5 · ^^) and the target sequence # is desync, then Eq. 6a or Eq. 6b directly10 allow building the target sequence # based on the reference sequence 6. ^If the reference sequence 6 is desync and the target sequence # is sync (^5 = <7 ·^^), then Eq.7b or Eq.7d allow building the target sequence based on the referencesequence. If both the reference and the target sequences are desync, a different approach is 15 applied, but the main idea of the disclosure is still the same: the target sequence is built by concatenating intervals of samples from the reference sequence, profiting from the fact that the binary values (1 or 0) of the samples are shared by both sequences in those intervals between consecutive non-nominal sync samples. In this case, both the reference and the target sequences have their corresponding 20 non-nominal sync samples: some of these non-nominal samples may sometimes coincide between both sequences but, in a general case, they may be different. Therefore, it is necessary to account for all the non-nominal events (jointly from both the reference and the target sequences). It is important to make clear that, although the non-nominal sync samples have been 25 mentioned, the sync sequence is not needed at all in this case where the two sequences are desync: the sync sequence is deemed just as a virtual sequence (not really needed) that provides a common frame, a conceptual, mathematical link in order to cross-relate the reference sequence to the target sequence through their respective vectors of non-nominal indexes, since such indexes bear a meaning only with respect to the sync sequence. 30 In a general case, the reference and the target sequences are both desync, either oversync or subsync, depending on the relation of their sampling rate with the sampling rate of the sync sequence. As previously indicated, no constraint is imposed in this respect and all combinations are possible: oversync reference sequence and oversync target sequence; oversync 35 reference sequence and subsync target sequence; subsync reference sequence and oversync target sequence; or subsync reference sequence and subsync target sequence. 19 The link between the target sequence and the sync sequence is determined by the indexes within vector ^',^, while the link between the reference sequence and the sync sequence is driven by the indexes within vector ^'UV^. One possible approach proposed by this disclosure to deal with this case, when both 5the target and the reference sequences are desync, starts by creating a combined vector^^ ^ containing all the elements of vector Va s [3U ^ and ^3,^, (i.e., those elements whose integertruncation yields the corresponding vectors of integer elements ['UV^ and ^',^), sorted in increasing order towards ∞: 10 where B7and B5are the number of non-nominal events respectively for the reference and the target sequences. Then, another vector ^`a^ is computed by integer truncation as follows: where: 15 ^ c8=3^ is rounding towards −∞ (^)^() if element ^ais related to an oversync sequence, or towards ∞ (^(228) if element ^ais related to a subsync sequence. ^ eaand daare two integer numbers, defined for each index f as follows: o If the reference sequence and the target sequence are both oversync or both subsync, then ea = 0.20 o If the reference sequence is from oversync and the target sequence is subsync, eais the number of elements in the vector ^^a^ with indexes smaller than f corresponding to the reference sequence and da = 1.oIf the reference sequence is subsync and the target sequence is oversync,ea is the number of elements in the vector ^^a^ with indexes smaller than f25 corresponding to the target sequence and d = −1.In order to build the target sequence from the reference sequence, vector ^`a^ is swept on all its elements in order to account for all the non-nominal events (coming either from the target or the reference sequences, both of them desync), implementing the required action for each, either duplicating or discarding samples, depending on the specific need: 30 ^ If a given element of vector ^`a^ is for the target sequence, duplicating or discarding the sample is consistent with either Eq. 6a or Eq. 6b, depending on whether the target sequence is oversync or subsync, respectively. ^ If a given element of ^`a^ is for the reference sequence, duplicating or discarding the sample is consistent with either Eq. 7b or Eq. 7d, depending on whether the 35 reference sequence is oversync or subsync, respectively. 20 In the particular case where the reference and the target sequences are desync and, in addition, share the same sampling rate (^7 = ^5 ≠ ^^, i.e., the difference between bothsequences is related to the initial phase, not the sampling rate), vector ^`a^ is composed by elements related alternatively to the reference and the target sequences. Otherwise, vector5^`a^ contains more indexes related to the sequence (reference or target) that is farther fromthe sampling rate of the sync-sequence. If one of the sequences is sync, ^`a^ is composed just by indexes of non-nominal events from the other sequence and the method is simplified to the case of a single equation. In case where both the reference and the target sequences are desync, many 10 combinations are possible: - If both sequences (reference and target) are desync in the same way (oversync or subsync): o If both sequences are oversync, then the non-nominal sync samples are in excess for both sequences (compared to the virtual sync sequence): 15 ^ If a non-nominal event is only for the reference sequence, the corresponding reference sample is discarded (since it is not needed as target). ^ If a non-nominal event is only for the target sequence, the proper sample is included twice (because the target sequence needs one more). ^ If a non-nominal event appears on both sequences, no action is needed, 20 since both sequences are consistent for that event. o If both sequences are subsync, then the non-nominal sync samples are in defect for both sequences (compared to the sync sequence): ^ If a non-nominal event is only for the reference sequence, the reference sequence lacks one sample compared to the target sequence, and the 25 proper reference sample is duplicated. ^ If a non-nominal event is only for the target sequence, the corresponding sample in the reference sequence is not needed and is discarded. ^ If a non-nominal event appears on both sequences, no action is needed, since both sequences are consistent for that event. 30 - If both sequences are desync, but each in a different way: o If the reference sequence is oversync and the target sequence is subsync, the non- nominal events are in excess for the reference sequence and in defect for the target sequence: ^ If a non-nominal event is only for the reference sequence, the corresponding 35 reference sample is discarded (since it is not needed as target). 21 ^ If a non-nominal event is only for the target sequence, the corresponding sample in the reference sequence is not needed and is discarded. ^ If a non-nominal event appears on both sequences, two reference samples (the current and the previous one) are discarded. 5 o If the reference sequence is subsync and the target sequence is oversync, the non- nominal events are in defect for the reference sequence and in excess for the target sequence: ^ If a non-nominal event is only for the reference sequence, the reference sequence lacks one sample compared to the target sequence, and the 10 proper reference sample is duplicated. ^ If a non-nominal event is only for the target sequence, the proper reference sample is duplicated (because the target sequence needs one more). ^ If a non-nominal event appears on both sequences, the reference sample is duplicated twice. 15 The practical efficiency of the proposed method depends on the number of involved intervals, which in turn depends on the value of the sampling rates involved: the closer the sampling rates (of the reference and target sequences) to the sampling rate of the corresponding sync sequence, the fewer number of non-nominal events, the longer intervals of samples between non-nominal samples, and the better efficiency. 20 From the point of view of computational efficiency, the intervals of nominal samples (between consecutive non-nominal samples) should be, ideally, as long as possible. However, depending on the sampling features of the sequences involved, there may be intervals of samples that are in fact composed of single samples, i.e., there may be nominal samples that are preceded and followed by non-nominal samples. 25 The examples given so far consider sequences which are vectors composed of consecutive, single samples. However, the present disclosure is also applicable when the samples are packed in clusters of N samples per N-bit word, with each sample taking one bit (1 or 0) in the representation of the word. In this case, each index ',is split in a couple of figures, a first figure represents the word index, and the other figure corresponds to the 30 bit index within the word. In addition, the method of taking intervals of samples from the packed reference sequence and concatenating them into the packed target sequence implies the use of bitwise operations (binary masking, bit shift, AND, OR, XOR, NOT…), which constitute standard and well-known mechanisms in signal processing. The advantage of this disclosure is that it allows to build the target sequence # by 35 concatenating sets of samples taken from a pre-existent already-sampled sequence, the reference sequence 6 (instead of from the code sequence), by taking care of managing the 22 transitions between the sets by either duplicating or discarding one or more samples, according to the analytically derived pattern disclosed in the foregoing. This approach contrasts with the conventional method, where all the chips and all the samples must be swept to generate the target sequence. 5 In what follows, three examples are presented just for illustration purposes: - The first two examples involve sequences composed of consecutive samples (also referred to as “linear sequences”) and refer to cases where both the reference and the target sequences are desync. Therefore, both sets of vectors ^3,^ and ^3UV^ are computed to ultimately produce the combined vector ^`a^, which is the basis for the 10 concatenation of the sets from the reference sequence to build the target sequence. - The third example shows how to deal with packed sequences, where the samples are packed as bits within words. Example 1: oversync reference sequence and subsync target sequence An example is provided based on the (short) sequences shown in Figures 2A-2B, 15 wherein two cases are presented, one for an oversync sequence (Fig.2A) and another for asubsync sequence (Fig. 2B), both of them with < = 3, with sampling parameters definedby Eq.4a and 4b. The oversync sequence represented by diamonds in Fig. 2A, with sampling parameters from Eq. 4a, is defined in this example as reference sequence, 6, and the 20 subsync sequence also represented by diamonds in Fig.2B, with sampling parameters from Eq.4b, is assumed as target sequence S. The purpose is to obtain the target sequence S based on the available reference sequence 6. Specifically in this example, the sequences take the following values: Since the reference sequence is oversync, the corresponding vector of non-nominal 25 samples, ^'UV^, is computed based on Eq. 7a. In this case, with such a short example sequence, the vector contains a single non-nominal sample, after operating: )= 0: ^3V^ ^ = ^3.8^ → ^'V^ ^ = ^(228(^3V^ ^) = ^3^ for the reference sequence.Regarding the target sequence, being subsync, the vector of non-nominal samples,^',^, is computed through Eq.5b, and also contains a single non-nominal sample:30 - = 0: ^3^^ = ^4.63^ → ^'^^ = ^)^((^3^^) = ^5^ for the target sequence.Then, the real-number combined vector ^^a^ has two elements (one from each sequence): 23 ^^a^ = ^3.8, 4.63^and the integer-number combined vector ^`a^ becomes:^`a^ = ^^(228(^^), ^)^((^^) + 1^ = ^37 , 65^where ^^has been truncated downwards (using ^(228) and ^^upwards (using ^)^(), 5 consistently with the corresponding sequences being oversync and subsync, respectively, and with element ` a(corresponding to a non-nominal event in the target sequence) being increased by 1 in order to account for the fact that there has been already a previous non- nominal event (sample excess) in the reference sequence. The subscripts 6 and # are added to indicate the underlying sequence (reference or target). 10 In this simple case, in order to build the target sequence from the reference sequence, just two non-nominal cases, `^ = 3^ and `^ = 6A, are to be analyzed. As the referencesequence is oversync and target sequence is subsync, all the non-nominal events from^`a^imply discarding reference samples. The information of which sample needs to be discarded in each case is contained in vector ^`a^. 15 As previously explained, each of these elements corresponds to a non-nominal sample in the virtual sync sequence (this sync sequence just being a conceptual, mathematical tool, which does not need to be available nor computed at all): ^`^ = 3^: this non-nominal event corresponds to a sample that is in excess in thereference sequence (as indicated by the subscript 6), because of being oversync.20 Therefore, the sample with index `^ = 3 in the reference sequence is discarded(valued 1). ^`^ = 6A: this non-nominal element corresponds to a sample that is missing in thetarget sequence (as indicated by the subscript #), because of being subsync. Therefore, the sample with index `^ = 6 in the reference sequence is discarded25 (valued 0). In summary, the target sequence is built by taking and concatenating sets of reference samples discarding (excluding) reference samples with indexes 3 and 6. Example 2: subsync reference and oversync target In this example, the subsync sequence represented by diamonds in Figure 2B is the 30 reference sequence and the oversync sequence represented by diamonds in Figure 2A is the target sequence: 24 Since the reference sequence is subsync, the corresponding vector of non-nominal samples, ^'UV^, is computed based on Eq. 7c. In this case, with such a short example sequence, the vector contains a single non-nominal sample, after operating: )= 0: ^3V^ ^ = ^4.42^ ^'V^ ^ = ^)^((^3V^ ^) = ^5^ for the reference sequence.5Regarding the target sequence, being oversync, the vector of non-nominal samples,^',^, is computed through Eq.5a, and also contains a single non-nominal sample:- = 0: ^3^^ = ^3.07^ → ^'^^ = ^(228(^3^^) = ^3^ for the target sequence.Then, the real-number combined vector ^^a^ has two elements (one from each sequence):10 ^^a^ = ^3.07, 4.42^and the integer-number combined vector ^`a^ becomes: where ^^has been truncated downwards (using ^(228) and ^^upwards (using ^)^(), consistently with the corresponding sequences being oversync and subsync, respectively, 15 and with element ` a(corresponding to a non-nominal event in the target sequence) being decreased by 1 in order to account for the fact that there has been already a previous non- nominal event (sample excess) in the target sequence. The subscripts 6 and # are added to indicate the underlying sequence (reference or target). In this simple case, in order to build the target sequence from the reference sequence,20 just two non-nominal cases, `^ = 3A and `^ = 4A, are to be analyzed. As the referencesequence is subsync and target sequence is oversync, all the non-nominal events from^`a^imply duplicating reference samples. The information of what sample needs to be duplicated in each case is contained in vector ^`a^. Notice that, in this case, it is necessary to consider the element ∆,, which may introduce a shift in the involved index. 25 As previously explained, each of these elements corresponds to a non-nominal sample in the virtual sync sequence (this sync sequence just being a conceptual, mathematical tool, which does not need to be available nor computed at all): ^`^ = 3A: this non-nominal event corresponds to a sample that is in excess in thetarget sequence, because of being oversync. Since '24=(=^(3,3) =0, ∆^= 1, the30 reference sample with index `^ − ∆^= 3 − 1 = 2 is duplicated (valued 1).^ ` = 4^: this non-nominal event corresponds to a sample that is missing in thereference sequence, because of being subsync. Since '24=(=^(4 ,3) ≠ 0, ∆^= 0.Therefore, the reference sample with index 4 − 0 = 4 is duplicated (valued 0).In summary, the target sequence is built by taking and concatenating sets from the 35 reference samples, inserting (duplicating) reference samples with indexes 2 and 4. 25 Example with packed samples So far, the description and examples given have been based on linear vector samples, i.e., the sequence is composed of consecutive single elements. But, as previously mentioned, the method proposed is also fully applicable to the case of packed samples, in 5 which the binary values of the samples are denoted by the bits that define the binary representation of integer words. Packing can be based on words of different lengths, with a number of bits, B^^^$, usually being a power of 2: B^^^$ = 4,8,16,35,64 … depending on thedesign approach and the features of the hosting processor. Packed processing is a well-known topic within the signal-processing community and 10 does not require to be covered in detail here. Nevertheless, a simple example is provided just for illustrative purposes. As in Example 1, the oversync sequence represented by diamonds in Figure 2A is the reference sequence, h$N, and the subsync sequence also represented by diamonds in Figure 2B is the target sequence h$^. For the sake of simplicity, B^^^$ = 4 bits per word is15 used for packing (although in practice, most processors usually deal with 32-bit words). The third word of the reference sequence is incomplete and only the two MSBs are used, assuming arbitrarily that XX =

[0000] , thus taking value 12. With this packed approach, the index vector of the non-nominal events, ^¡^ (using capital letters to denote packing), take the format of two numbers per event: one to20 represent the word (¢) and another to represent the bit within that word (£):^¡^ ≡ ^(¢, £)s^where p = 628 # identifies the sequence (reference or target).For every non-nominal index -, each linear element of ¡,is related to the corresponding pair (¢, , £,)s:25 ^, = ¢, × B^^^$ + £,In this example, ^¡^ = ^37 , 55^. Therefore:^¡^ ≡ ^(0,3)7 , (1,2)5^All the reasoning from Example 1 is applicable here, so that samples number 3 and 6 are discarded from the reference sequence in order to build the target sequence. Being 30 packed, the method uses binary operations working on the words. Discarding a sample (i.e., a bit from a word) implies masking the involved bit and shifting leftward one position all the bits (from all the words) rightwards. For example, discarding sample number 3 from the first word: 26 (¢^)5 = ^(¢^)7&'&^-7^|(^(¢^)7&'&^-5^ ≫ 3) = ^15&14^|(^1&8^ ≫ 3) = 14'&^-7 = 14 and '&^-5 = 8 are used as masks to select the required bits;& represents binary AND; |corresponds to binary OR;5≫ stands for binary shift to the right.The method continues for all required non-nominal events and all the words, in order to build the target sequence. As previously explained, the reference sequence 6 is available in advance or provided on the fly as input together with the four parameters describing the reference and target 10 sequences: ^5, ^7, +5and +7. Based on these parameters, the boundary indexes are computed and the target sequence is built. Several possibilities could be envisaged, all of them related to the proposed method, among the following: One possibility is as follows: 15 - Computing first the whole vector of boundary indexes. - Sweeping on the computed vector of boundary indexes; for each couple of boundary indexes, taking the corresponding (delimited) set of samples from the reference sequence and placing the sets in consecutive order to build the corresponding part of the target sequence, duplicating or discarding one or more samples. 20 - Successively continue for the rest of boundary indexes until the whole target sequence is built. Another possibility is as follows: - Computing first the whole vector of boundary indexes. - Making a copy of the reference sequence, and considering this copy as embryo for 25 the target sequence. - Sweeping on the computed vector of boundary indexes and, for each couple of boundary indexes, applying the corresponding action on the embryo target sequence: either removing at least one sample or inserting at least a duplicated sample, and shifting accordingly the rest of the target sequence embryo in order to 30 either fill the gap (if at least one sample has been removed) or making room (if at least one sample has to be duplicated). - Successively continue for the rest of couples of boundary indexes until, at the end, the embryo becomes the target sequence. Other further possibilities could be similar to the two described possibilities but, 35 instead of initially computing the whole set of boundary indexes, the couples of boundary 27 indexes can be computed one by one at the same pace (just before) as the process of placing the sets of samples from the reference sequence to build the target sequence. Another further possibility is related to the direction, in such a way that all the options described above could be implemented from the beginning till the end or the opposite way, 5 starting at the end and going towards the beginning. There are many signal-processing applications where this computer implemented method can be of help. One of the clearest cases is the generation of replica sequences in spread-spectrum modulations. The concept of spread-spectrum encompasses a large family of technologies widely used in many communications, ranging and radar techniques, 10 including (to name a few): CDMA (Code Division Multiple Access), Frequency and Direct Sequence Spread Spectrum, Ultra-Wide-Band, etc. Applications of these technologies include LTE, 4G, 5G, 6G, GNSS (GPS, Galileo, Beidou, GLONASS, INSS, QZSS). A device for spread-spectrum techniques according to the present disclosure is configured to generate the target sequence(s) #, which are used as replica sequences 15 (sampled versions of binary PRN codes). The proposed method thus represents a significant breakthrough in terms of computational and / or memory saving, since the target sequences # are efficiently built to be used as the mentioned replica sequences. As just explained, the present disclosure has specific application in GNSS systems, which make use of spread-spectrum modulations, where the signals transmitted by the 20 satellites are based on sequences of PRN codes, known to both the transmitter and the receiver. In a specific application of the present disclosure, the original code sequence ^ are the PRN codes. Most of the spread-spectrum signals (including GNSS) are based on periodic PRN codes. Each PRN code is characterized by the chip rate (number of chips per 25 second) and code length (number of chips in a periodic code before repetition). For example, for GPS C / A signal, the chip rate is 1.023 Mchips / s and the code length 1023 chips (or, equivalently in time, 1 ms). Typically, there is a particular constraint that affects the choice of the sampling frequency for spread spectrum devices (including GNSS receivers), since it is 30 recommended that the sampling frequency is not an exact integer multiple of the chip rate. If the sampling frequency were an exact integer multiple, the generated PRN code may not show the effect of the specific code phase. The method disclosed herein provides a novel and efficient mechanism for providing the receiver with the required sets of sampled PRN codes, to be used as replicas for the 35 receiver processing, which replicas, as previously explained, are the target sequences #. 28 In this text, the term “includes”, “comprises” and derivations thereof (such as “including”, “comprising”, etc.) should not be understood in an excluding sense, that is, these terms should not be interpreted as excluding the possibility that what is described and defined may include further elements, steps, etc. On the other hand, the disclosure is 5 obviously not limited to the specific embodiments or examples described herein, but also encompasses any variations that may be considered by any person skilled in the art within the general scope of the invention as defined in the claims.

Claims

29 CLAIMS 1. A computer implemented method for building a target sequence # of binary samples from a reference sequence 6, the target sequence # of binary samples representing a 5sampling at a sampling rate ^ , a sampling p ^5 eriod !5 =and an initial phase +5 of a codesequence ^ of B binary chips at ^^ chip rate ^^ and chip period !^ ="^ ,the reference sequence 6 = ^8(^) …being a sampled sequence of the codesequence ^ at a sampling rate ^ , ^ > ^ , havi ^7 7 ^ ng a sampling period !7 ="9 and an initialphase +7, each sampleof the reference sequence 6 having an index ^ belonging to the10 interval ^0, (^7 − 1)^,wherein either ^5 ≠ ^7 and / or +5 ≠ +7,wherein the reference sequence 6 is available in advance or provided as input, and the target sequence # to be built is not available in advance, but is characterized by its sampling frequency ^5and initial phase +5, and 15 wherein ^5, ^7, +5and +7are used to mathematically compute a vector of values for the indexes of the samples in the reference sequence 6, these computed values of the indexes being boundary indexes which are used for delimiting sets of samples in the reference sequence 6, wherein the binary values of the said sets of samples in the reference sequence 6 20 coincide, on a sample-by-sample basis, with the binary values of as many sets of as many samples in the target sequence # to be built, and wherein, outside those sets of samples whose binary values coincide, the reference sequence 6 and the target sequence # are different in at least one sample, wherein the target sequence # is built by taking, from the reference sequence 6, the 25 sets of samples whose binary values coincide and by placing these sets of samples consecutively, with the provision of compensating, between each couple of said sets of samples whose binary values coincide, at least one sample from the reference sequence6, wherein this compensating comprises either duplicating or discarding the at least onesample from the reference sequence 6, wherein the index of the at least one sample to be 30 duplicated or discarded from the reference sequence 6 is mathematically computed using the sampling rates and the initial phases of the target and the reference sequences, the target sequence # being used as replica sequence in spread-spectrum modulation. 35 2. A computer implemented method for building a target sequence # of binary samples,30 the target sequence # of binary samples representing a sampling at a sampling rate ^5, a sampling period !5 = ^"% and an initial phase +5 of a code sequence ^ of B^ binary chips atchip rate ^ ^^ and chip period !^ ="^ ,wherein the target sequence is built by concatenating sets of samples taken from a 5reference sequence 6 of samples, the reference sequence 6 =being analready sampled sequence of the code sequence ^ having a sampling rate ^7 > ^^ , asampling period !7 = ^"9 and an initial phase +7, where each sample 8(^) of the referencesequence has an index ^ belonging to the interval ^0, (^7 − 1)^,wherein either ^5 ≠ ^7 and / or +5 ≠ +7, and10 wherein the binary values of the samples contained in each of said sets of samples coincide, sample by sample, in both the target and the reference sequences, there being differences between the reference and the target sequences, and wherein the differences between the target and the reference sequences, when concatenating the sets of samples from the reference sequence to build the target sequence 15 are compensated by duplicating or discarding at least one sample of the reference sequence between each couple of sets of samples, wherein the index of the at least one sample to be duplicated or discarded from the reference sequence is mathematically computed using the sampling rates and the initial phases of the target and the reference sequences. 20 3. The method of any one of claims 1 or 2, wherein the sampling rate ^7of the reference sequence 6 is an integer multiple of the chip rate ^^ , where ^7 = <5 · ^^, being <5 =and <5 > 1, with ^5 being the sampling rate of the target sequence,wherein each set of samples of the reference sequence 6 is delimited by samples 25 having indexes ^, defined within the reference sequence, given by each couple of two consecutive elements from a first vector ^',^, with - = ^0 … (NA − 1)^, wherein the firstvector^',^is defined as follows: ^30^if ^5 < ^7 :31 B5 = ^)^(^^5 · B^ · <5 · (!5 − !7)^,where ^(228 and ^)^( represent integer rounding towards −∞ and ∞, respectively, and wherein the target sequence # is computed as follows: 5^ if ^5 > ^7where samples 8(LR) with indexes ^ = ', from the first vector ^',^, said samplesdefined within the reference sequence, are duplicated when building the target sequence, ^if ^5 < ^7 :10where reference samples 8(LR) with indexes ^ = ', from the first vector ^',^ arediscarded when building the target sequence.

4. The method of any one of claims 1 or 2, wherein the sampling rate ^5of the target15 sequence # is an integer multiple of the chip rate ^^ , where ^5 = <7 · ^^, being <7 =and <7 > 1, with ^7 being the sampling rate of the reference sequence,wherein each set of samples of the reference sequence 6 is delimited by samples having indexes ^, defined within the reference sequence, given by each couple of two consecutive elements from a second vector ^'VU ^, with ) = ^0 … B7 − 1^, wherein the second20 vector^'UV ^is defined as follows: ^if ^5 < ^7 :B7 = ^)^(^^7 · B^ · <7 · (!5 − !7)^,^if ^5 > ^7 :25 B7 = ^)^(^^7 · B^ · <7 · (!7 − !5)^, ^'V ^ = ^)^(( VU ^3U^)where ^(228 and ^)^( represent integer rounding towards −∞ and ∞, respectively, and wherein the target sequence # is computed as follows:30 ^ if ^5 < ^7 :32where samples 8 Y , with indexes ^ = 'V from the second ve V(L\ ) U ctor ^'U ^ are discardedwhen building the target sequence, ^if ^5 > ^7 :5where samples 8_ ) with indexes ^ = 'VU from the second vector ^'VU ^ are duplicatedwhen building the target sequence, and wherein ∆U is:^^ '24=(=^('VU , <7) = 0 ^ ∆U= 110 ^^ '24=(=^('VU , <7) ≠ 0 ^ ∆U= 0.

5. The method of any one of claims 1 or 2, wherein each set of samples of the reference sequence 6 is delimited by samples having indexes given by each couple of two consecutive elements from a vector ^`a^, the vector ^`a^ being computed as rounding of the 15 elements of another vector ^^a^ computed by combining elements from a first vector ^3,^ and elements of a second vector ^3UV^, wherein the first vector ^3,^ with - = ^0 … B5 − 1)^ is defined for the target sequence# as follows:a) if ^5 > <5 · ^^ :20b) ^5 < <5 · ^^ :Bwwherein the second vector ^3VU ^ with ) = ^0 … (B7 − 1)^ is defined for the reference25 sequence 6 as follows:33 where <7 is a numberwherein the elements in ^^a^ are sorted in increasing order, where each element `ais computed by rounding the corresponding element ^a. 5 6. The method of claim 5, wherein each element `ais computed by rounding the corresponding element ^aas follows:where: ^ c8=3^ is rounding towards −∞ if element ^ais related to a sequence following any 10 of cases a) or c) above, or towards ∞ if element ^ais related to a sequence following any of cases b) or d) above, ^ eaand daare two integer numbers, defined for each index f as follows: oif the reference sequence and the target sequence are from cases a) or c),ea = 0,15 o if the reference sequence and the target sequence are from cases b) or d),ea = 0,o if the reference sequence is from cases a) or c) and the target sequence is from cases b) or d), eais the number of elements in the vector ^^a^ with indexes smaller than f corresponding to the reference sequence and da = 1,20 o if the reference sequence is from cases b) or d) and the target sequence is from cases a) or c), eais the number of elements in the vector ^^a^ with indexes smaller than f corresponding to the target sequence and da = −1,wherein the target sequence is built by concatenating or consecutively placing the sets of samples from the reference sequence delimited by consecutive couples of elements 25 of vector ^`a^, and where, for each set, at least one sample is either duplicated if the given element̀ a corresponds to a sequence from cases a) or c), or discarded if the given element`a corresponds to a sequence from cases b) or d),and where, when for a given element `a, a reference sample is to be duplicated, the index of the reference sample to be duplicated is:30and where, when for a given element `a, a reference sample is to be discarded, the index of the reference sample to be discarded is given by the element `a.34 7. The method of any one of claims 3-4, wherein the reference sequence and / or the target sequence are / is packed in sets of words, each word being composed of B bits, wherein each element of the first vector^',^and / or the second vector^',V ^is 5 represented by a first number and a second number, the first number corresponding to a word index and the second number indicating a bit index within the corresponding word.

8. The method of claim 5, wherein the reference sequence and / or the target sequence are / is packed in sets of words, each word being composed of B bits, 10 wherein each element of the first vector ^3,^ and of the second vector ^3UV^ is represented by a first number and a second number, the first number corresponding to a word index and the second number indicating a bit index within the corresponding word.

9. The method of any of claims 7-8, wherein the step of duplicating and / or discarding 15 samples from the reference sequence in order to build the target sequence, is carried out by using bitwise operations.

10. The method of any one of claims 1-9, wherein the sampling rate ^7of the reference sequence and / or the sampling rate ^5of the target sequence are / is time variable, and are / is20 expressed, for a given time c, in terms of time derivatives,… of the correspondingsampling rate ^̈ with q = 1282, as follows:

11. The method of claim 2, wherein the target sequence # is used as replica sequence 25 in spread-spectrum modulation.

12. The method of any one of claims 2 or 11, wherein the step of computing the index of the at least one sample to be duplicated or discarded from the reference sequence comprises computing several indexes. 30 13. A signal-processing device, comprising: at least one processor; and at least one memory; wherein the at least one memory is configured, together with the at least one 35 processor, to cause the signal-processing device to carry out the steps of a method according to any one of claims 1-12.35 14. The signal-processing device of claim 13, wherein the signal-processing device is a device implementing spread-spectrum modulation. 5 15. A computer program comprising instructions which, when the program is executed by a computing device, cause the computing device to carry out the steps of a method according to any one of claims 1-12.

Citation Information

Patent Citations

  • Mitigation of multipath effects in global positioning system receivers

    WO1996037789A1