METHOD FOR PROCESSING A GNSS SIGNAL WITH A VIEW TO ATTENUATING AT LEAST ONE JAMMING SIGNAL

20240413923 ยท 2024-12-12

Assignee

Inventors

Cpc classification

International classification

Abstract

The invention relates to a method for processing a radio navigation signal originating from a satellite (SAT) and received by a radio navigation receiver comprising a plurality of receive antennas, each antenna being configured to receive signals originating from a satellite of interest (SAT), from at least one jammer and possibly from at least one other satellite (SAT) in given directions, the method comprising the following steps: detecting (E1), on the basis of the signal received by each antenna, at least one direction of a jamming signal; attenuating (E2, E2) the detected jamming signal in the detected direction; in which method detecting (E1) the direction of a jamming signal is based on determining a covariance matrix dependent on the signals received by each antenna given by (i), where Z is a matrix of size NM in which each column corresponds to the signal received by each antenna, N denoting the number of samples acquired during a fixed period T and M being the number of antennas.

Claims

1.-10. (canceled)

11. A method for processing a radio navigation signal coming from a satellite received by a radio navigation receiver comprising several receiving antennas, each antenna being configured to receive signals coming from a satellite of interest, of at least one jammer and possibly at least another satellite in given directions, the method comprising steps of: detecting from the signal received by each antenna, at least one direction of a jamming signal; attenuating the detected jamming signal in the detected direction; wherein detecting the direction of a jamming signal comprises the steps of: determining a covariance matrix function of the signals received by each antenna given by R.sub.ZZ=1/NZ.sup.HZ with Z a matrix of size NM where each column corresponds to the signal received by each antenna, N denoting the number of samples acquired during a set period T and M being the number of antennas; carrying out a singular value decomposition of the covariance matrix: R ZZ = .Math. m = 1 M m U m U m H where .sub.m are the eigenvalues, components being characteristic of the useful and jamming signals and other noise characteristics; comparing the eigenvalues together so as to detect the presence of at least one jammer; determining an indicator function of a direction of arrival comprised between [0; 2[, the indicator being a function of a scalar between a spatial signature model of a jammer S() and U.sub.M.sup.H which corresponds to the noise subspace of the noise space resulting from the decomposition, U.sub.M.sup.H and S() being orthogonal for a jammer in the direction ; a jammer being present in the direction for which the indicator is lower than a given threshold.

12. The method according to claim 11, wherein the comparison comprises a determination of a number of jammers by comparison in pairs of the eigenvalues by successively calculating a coefficient i , M = i M varying from M1 to 1, the number of jammers being equal to i for .sub.i,M greater than a determined threshold, preferably equal to 8(.sub.i,M).sub.noise.

13. The method according to claim 11, wherein the indicator is given by custom-character()=log.sub.2|U.sub.M.sup.HS()|, a jammer being present in the direction for which the indicator is lower than a given threshold.

14. The method according to claim 12, wherein a detected number B of jammers is known, a jammer being present in the B directions for which the corresponding indicator is lower than the threshold.

15. The method according to claim 12, wherein the detected number of jammers is less than or equal to M2, the indicator being given by custom-character()=.sub.m=B+1.sup.M log.sub.2|U.sub.m.sup.HS()|, where B is the number of jammers, a jammer being present in the M2 directions lower than the threshold.

16. The method according to claim 11, wherein several directions are obtained over time for each detected jammer, the method comprising a time filter of the directions obtained for each jammer.

17. The method according to claim 11, wherein the attenuation comprises the determination of a set of weighting coefficients w.sub.CRPA Or w.sub.CRPA.sup.(custom-character.sup.) associated with a satellite of interest making it possible to attenuate the jamming signal received in the thus detected directions and making it possible to attenuate, where appropriate, the signals coming from other satellites so as to optimize the signal coming from the satellite of interest.

18. The method according to claim 17, the receiver receiving signals coming from a single satellite, the determination of the coefficient w.sub.CRPA making it possible to attenuate the jamming signal received in the determined directions comprises the steps of: determining a reference vector w ( 0 ) = ( 1 i - 1 - i ) ; determining a weighting coefficient associated with each jammer or jamming direction w jammer ( p ) ( ^ p ) = ( e i 1 ( ^ p ) e i 2 ( ^ p ) e i 3 ( ^ p ) e i 4 ( ^ p ) ) , 1 p B where d.sub.1 ({circumflex over ()}.sub.p)=0, d.sub.2({circumflex over ()}.sub.p)=d cos ({circumflex over ()}.sub.p), d.sub.3 ({circumflex over ()}.sub.p)=d cos ({circumflex over ()}.sub.p)+d sin({circumflex over ()}.sub.p), d.sub.4({circumflex over ()}.sub.p)=d sin ({circumflex over ()}.sub.p) determining a rectangular or square matrix of size 4(B+1); = ( w ( 0 ) w ^ ( 1 ) .Math. w ^ ( B ) B columns ) determining the set of weighting coefficients
w.sub.CRPA=custom-character.sub.1 with custom-character.sub.1 the first component of the vector custom-character=(custom-character).sup.H=(custom-character.sub.1 . . . custom-character.sub.B-1 custom-character.sub.B) with
custom-character=custom-character.sup.=(custom-character.sup.Hcustom-character).sup.1custom-character.sup.H if B<3 or custom-character=custom-character.sup.1 if B=3.

19. The method according to claim 17, wherein the receiver receives signals from S>1 satellites, the determination of the coefficient making it possible to optimize the received signal associated with a satellite of interest and making it possible to attenuate the jamming signal in the determined directions and that of the other satellites, comprises the steps of: determining a weighting coefficient w.sub.{circumflex over ()}.sup.(s) associated with each satellite s: w ^ ( s ) = ( e i 1 ( ^ ( s ) ) e i 2 ( ^ ( s ) ) e i 3 ( ^ ( s ) ) .Math. e i M - 1 ( ^ ( s ) ) e i M ( ^ ( s ) ) ) = ( 1 e i 2 ( ^ AZIM ( s ) , ^ ELEV ( s ) ) e i 3 ( ^ AZIM ( s ) , ^ ELEV ( s ) ) .Math. e i M - 1 ( ^ AZIM ( s ) , ^ ELEV ( s ) ) e i M ( ^ AZIM ( s ) , ^ ELEV ( s ) ) ) for 1 s S where custom-character: denotes the wave number, d.sub.m denotes the path difference relative to the reference antenna, {circumflex over ()}.sup.(s)=({circumflex over ()}.sub.AZIM.sup.(s), {circumflex over ()}.sub.ELEV.sup.(s)) is the direction of the arrival of the received signal coming from satellite of index s, {circumflex over ()}.sub.AZIM.sup.(s) being the azimuthal component and {circumflex over ()}.sub.ELEV.sup.(s) being the elevation component; determining a weighting coefficient w{circumflex over ({circumflex over ()})}.sup.(b) associated with each jammer in each determined direction w ^ ( b ) = ( e i 1 ( ^ ( b ) ) e i 2 ( ^ ( b ) ) e i 3 ( ^ ( b ) ) .Math. e i M - 1 ( ^ ( b ) ) e i M ( ^ ( b ) ) ) = ( 1 e i 2 ( ^ AZIM ( b ) ) e i 3 ( ^ AZIM ( b ) ) .Math. e i M - 1 ( ^ AZIM ( b ) ) e i M ( ^ AZIM ( b ) ) ) for 1 b B determining a matrix custom-character of size M(S+B) where S is the number of satellites, B is the number of jammers or jamming directions and M is the number of antennas: = ( w ^ ( ) .Math. w ^ ( s ) .Math. S - 1 columns s w ^ ( 1 ) w ^ ( 2 ) .Math. w ^ ( B - 1 ) w ^ ( B ) B columns ) determining the set of weighting coefficients associated with a satellite custom-character of interest
w.sub.CRPA.sup.(custom-character.sup.)=custom-character.sub.1 with custom-character.sub.1 the first component of the vector custom-character=custom-character.sup.H=(custom-character.sub.1 custom-character.sub.2 . . . custom-character.sub.S+B1 custom-character.sub.S+B) with custom-character=custom-character.sup.=(custom-character.sup.Hcustom-character).sup.1custom-character.sup.H if S+B<M or custom-character=custom-character.sup.1 if S+B=M ().sup.H: denoting the operation transposition (noted ().sup.T)+complex conjugation (noted ()*).

20. A non-transitory computer-readable medium storing code instructions for implementing a method according to claim 11.

Description

PRESENTATION OF THE FIGURES

[0038] Other characteristics, aims and advantages of the invention will emerge from the following description, which is purely illustrative and not limiting, and which should be read in relation to the appended drawings in which:

[0039] FIG. 1 illustrates a receiver according to the invention;

[0040] FIG. 2 illustrates a possible configuration of an antenna plate according to the invention;

[0041] FIG. 3 illustrates steps of a method according to the invention;

[0042] FIG. 4 illustrates a distribution of the eigenvalues of a covariance matrix obtained from a matrix segment consisting of four Gaussian random signals of 1,024 samples resulting from four reduced centered Gaussian random variables;

[0043] FIG. 5 illustrates a metric obtained according to the method of the invention to detect one or more jammer(s) in a direction of arrival.

[0044] In all the figures, similar elements bear identical references.

DETAILED DESCRIPTION

[0045] FIG. 1 illustrates a GNSS receiver 1 comprising an array of antennas, for example of the patch type, disposed on an antenna plate 10. The GNSS signals received by each antenna 11, 12, 13, 14 are transmitted to a processing unit 2 comprising several successive stages. A processing unit is for example a processor configured to implement different processing operations on the signals as will be seen later.

[0046] Preferably, the plate includes four antennas 11, 12, 13, 14. The following description is placed in the case of four antennas, but the invention also applies to a different number of antennas (noted M in the following). A configuration of an antenna plate is illustrated in FIG. 2.

[0047] Furthermore, it is considered that the gain and phase calibration of the antennas has been previously carried out with appropriate hardware and software (algorithmic) means. Such an operation is indeed carried out before the acquisition.

[0048] In known manner, the calibration operation makes it possible to measure (in order to subsequently cancel them) the dispersive gains and phase shifts introduced by the receive chains associated with the antennas.

[0049] An incident signal s.sub. (where denotes the angle of incidence of the interfering signal) is received by each antenna connected to a stage 20 comprising radio units 21, 22, 23, 24 per antenna of known type allowing filtering of the signals, amplification and transposition into an intermediate frequency lower than the carrier frequency of the received signal. The signals are then digitized by an analog/digital conversion unit 30 comprising an analog/digital converter 31, 32, 33, 34 per signal received on each antenna.

[0050] Each converter provides digital samples that contain navigation information (useful data), jamming components and noise inherent in any radio transmission.

[0051] These digital samples are provided to a module 40 that operates on the principle of the CRPA algorithm which makes it possible to attenuate signals due to jammers. It is considered here that a jammer is the emission in one direction of jamming or interfering signals on the receiver 1.

[0052] Indeed, the received samples coming from each antenna are weighted by weighting coefficients that make it possible to attenuate or eliminate the components due to the jammers. Particularly, these weighting coefficients make it possible to attenuate interfering signals in given directions, which amounts to creating a kind of notches in the radiation pattern of the array of antennas since some directions are not taken into account in this case.

[0053] Returning to FIG. 1, the output signal of the module 40 is therefore a linear combination of the weighted digital signals, namely for an output sample n:

[00009] s = .Math. m = 1 M w CRPA ( m ) z m

or in vector notation =Zw.sub.CRPA where is a signal whose interference due to jammers is attenuated, and where z.sub.n is the signal coming from each antenna after analog-to-digital conversion and w.sub.CRPA is the vector containing the weightings to be applied to each channel, M being the number of antennas.

[0054] Indeed, the set of coefficients w.sub.CRPA makes it possible to attenuate the signals received in some directions, the signal s being a linear combination of the signals received by each antenna weighted by weighting coefficients attenuating the signal in directions in which a jamming signal is received. The set of coefficients w.sub.CRPA is a vector whose components are complex scalars.

[0055] Then, this signal s is provided to a unit 50 which makes it possible to calculate the navigation data (not described here because well known to those skilled in the art).

[0056] Returning to the module 40, the latter implements steps of a method for processing the signals received in order to weight these signals to attenuate the jammers described below and in relation to FIG. 3.

[0057] To do so, the unit 40 detects from the signal received and acquired (step E0) by each antenna, at least one direction of a jamming signal (step E1) then determines (step E2) for each direction of weighting coefficients to be applied to the signals received by each antenna, these coefficients making it possible to attenuate the signal received in the direction of the jamming signal.

Acquisition (step E0)

[0058] An incident signal is acquired (step E0) and formed of several series of N samples (1 series per antenna). The incident signal can be written in matrix form. Particularly, the incident signal s.sub. at the output of the unit 30 (in vector notation) is given by:


Z(k)=[s.sub.N.sup.(1)(k)s.sub.N.sup.(2)(k)s.sub.N.sup.(3)(k)s.sub.N.sup.(4)(k)]

where Z is a matrix of dimension N4 where N represents the number of samples acquired during the period T=NT.sub.S, T.sub.S being the sampling period of the digitized signals coming from the unit 30 and the number 4 corresponding to the number of antennas.

[0059] The signals s.sub.N.sup.(m)(k)(1m4), correspond to column vectors of dimensions N1:

[00010] s N m ( k ) = ( s ( m ) ( k T ) s ( m ) ( k T + T s ) .Math. s ( m ) ( k T + ( N - 2 ) T s ) s ( m ) ( k T + ( N - 1 ) T s ) )

[0060] It is assumed that the jammers are located in the azimuthal plane (terrestrial jammers).

[0061] The matrix Z has as dimensions: NM, M being the number of antennas. The integer k indicates that the (k+1).sup.th time slot (the first slot being arbitrarily indexed by 0) is considered. In summary, the analog-to-digital converters provide a continuous signal trace segmented into contiguous portions of duration T. Each of these portions is indexed by k.

Detection of the Jammers (Step E1)

[0062] In a step E11, the covariance matrix of the received multi-channel signal coming from the antennas is obtained. Particularly, the multichannel signal divided into contiguous time sections Z(k) of NM samples is considered, where M denotes the number of antenna elements of the array of antennas and N the number of time samples to calculate the matrix of covariance R.sub.ZZ as follows:


R.sub.ZZ==1/NZ.sup.HZ

[0063] This matrix R.sub.ZZ can be written as follows by singular value decomposition (SVD) (step E12)

[00011] R Z Z = .Math. m = 1 M m U m U m H

where .sub.m denotes the eigenvalue associated with the eigenvector U.sub.m

[0064] This decomposition can be interpreted in different ways. There are M+1 possibilities: [0065] 1.sup.st possibility (no jamming signal): the signal subspace corresponds to the empty set {} and the noise subspace corresponds to {U.sub.1, . . . , U.sub.M} [0066] 2.sup.nd possibility (1 jamming signal): the signal subspace corresponds to {U.sub.1} and the noise subspace corresponds to {U.sub.2, . . . , U.sub.M} [0067] 3.sup.rd possibility (2 jamming signals): the signal subspace corresponds to {U.sub.1, U.sub.2} and the noise subspace corresponds to {U.sub.3, . . . , U.sub.M} [0068] . . . [0069] m.sup.th possibility (m1 jamming signals): the signal subspace corresponds to {U.sub.1, . . . , U.sub.m1} and the noise subspace corresponds to {U.sub.m, . . . , U.sub.M} [0070] . . . [0071] M.sup.th possibility (M1 jamming signals): the signal subspace corresponds to {U.sub.1, . . . , U.sub.M1} and the noise subspace corresponds to {U.sub.M} [0072] (M+1).sup.th possibility (M jamming signals): the signal subspace corresponds to {U.sub.1, . . . , U.sub.M} and the noise subspace corresponds to {}

[0073] The invention consists in exploiting the noise subspace obtained from the covariance matrix of the multi-channel signal provided by the array of antennas. In what follows, the singular value decomposition of the covariance matrix will be noted as follows: R.sub.ZZ=custom-charactercustom-character.sup.H with custom-character=(custom-character.sub.1custom-character.sub.2 . . . . custom-character.sub.M1 custom-character.sub.M) where {custom-character.sub.m}.sub.1mM denotes the set of eigenvectors and =diag (.sub.1, .sub.2, . . . , .sub.M1, .sub.M) denotes the set of eigenvalues which are respectively associated with them with .sub.1.sub.2 . . . .sub.M-1.sub.M0.

[0074] Thus, any jammers possibly present in the radio environment are detected (step E13).

[0075] Such detection consists in comparing the eigenvalues of the covariance matrix with a threshold.

[0076] Indeed, the singular value decomposition of this matrix makes it possible to carry out a statistical interpretation of the acquired signals. The signal subspace, represented by the column vectors custom-character.sub.1, custom-character.sub.2 and custom-character.sub.3 of the matrix custom-character, is an ellipsoid whose semi-axes correspond to these column vectors. Weighted respectively by the eigenvalues .sub.1, .sub.2 and .sub.3, they indicate the directions of greatest variation of the set of signals constituting the matrix segment. As for the noise subspace, it is represented at a minimum by the column vector custom-character.sub.4 when the number of sources present in the radio environment is less than or equal to 3. The following table characterizes the signal and noise subspaces as a function of the number of sources B present in the radio environment:

TABLE-US-00001 Signal subspace Noise subspace B Dimension Generated by Dimension Generated by 0 0 4 .sub.4, .sub.3, .sub.2, .sub.1 1 1 .sub.1 3 .sub.4, .sub.3, .sub.2 2 2 .sub.1, .sub.2 2 .sub.4, .sub.3 3 3 .sub.1, .sub.2, .sub.3 1 .sub.4 4 4 .sub.1, .sub.2, .sub.3, .sub.4 0

[0077] In what follows, it is assumed that the jammers are independent in pairs and that the power of the noise (AWGN) of the receiver is zero.

[0078] Let B be the number of jammers.

[0079] In the case where B=1, the spatial signature of the source (b.sub.1) corresponds to a simple weighting and conjugation of the column vector custom-character1:


custom-character.sub.1=a.sub.1custom-character.sub.1*

where a.sub.1custom-character.

[0080] In the case where B=2, the spatial signature of the sources (b.sub.1 and b.sub.2) corresponds to a linear combination of the conjugated column vectors custom-character.sub.1 and custom-character.sub.2:


custom-character.sub.1=a.sub.1custom-character.sub.1*+b.sub.1custom-character.sub.2*


custom-character.sub.2=a.sub.2custom-character.sub.1*+b.sub.2custom-character.sub.2*

where a.sub.1, b.sub.1, b.sub.2, b.sub.2 custom-character.

[0081] In the case where B=3, the spatial signature of the sources (b.sub.1, b.sub.2 and b.sub.3) corresponds to a linear combination of the conjugated column vectors custom-character.sub.1, custom-character.sub.2 and custom-character.sub.3:


custom-character.sub.1=a.sub.1custom-character.sub.1*+b.sub.1custom-character.sub.2*+c.sub.1custom-character.sub.3*


custom-character.sub.2=a.sub.2custom-character.sub.1*+b.sub.2custom-character.sub.2*+c.sub.2custom-character.sub.3*


custom-character.sub.3=a.sub.3custom-character.sub.1*+a.sub.3custom-character.sub.2*+c.sub.3custom-character.sub.3*

where a.sub.1, b.sub.1, c.sub.1, a.sub.2, b.sub.2, c.sub.2, a.sub.3, b.sub.3, c.sub.3 custom-character.

[0082] If B3, it is observed that the product custom-character.sub.m.sup.Tcustom-character.sub.4=0 for m{1,2,3} since the matrix custom-character is unitary. Thus, if at most three jammers are to be cancelled, the set of weights to use is ideally:


w=custom-character.sub.4

[0083] If B4, the spatial signature of the jammers b.sub.m for m{1, 2, . . . , B} corresponds to a linear combination of the column vectors custom-character.sub.1, custom-character.sub.2, custom-character.sub.3 and custom-character.sub.4 after conjugation:


custom-character.sub.1=a.sub.1custom-character.sub.1*+b.sub.1custom-character.sub.2*+c.sub.1custom-character.sub.3*+d.sub.1custom-character.sub.4*


custom-character.sub.2=a.sub.2custom-character.sub.1*+b.sub.2custom-character.sub.2*+c.sub.2custom-character.sub.3*+d.sub.2custom-character.sub.4*


custom-character.sub.B=a.sub.Bcustom-character.sub.1*+b.sub.Bcustom-character.sub.2*+c.sub.Bcustom-character.sub.3*+d.sub.Bcustom-character.sub.4*

where a.sub.1, b.sub.1, c.sub.1, d.sub.1, a.sub.2, b.sub.2, c.sub.2, d.sub.2, . . . , a.sub.B, b.sub.B, c.sub.B, d.sub.B custom-character.

[0084] Unlike the previous case, a vector custom-character.sub.5 such as custom-character.sub.m.sup.Tcustom-character.sub.5=0 m{1, 2, . . . , B} cannot be proposed or constructed. Indeed, if such a vector exists, it necessarily decomposes into the orthonormal basis custom-characterB=(custom-character.sub.1, custom-character.sub.2, custom-character.sub.3, custom-character.sub.4) as follows:


custom-character.sub.5=a.sub.0custom-character.sub.1+b.sub.0custom-character.sub.2+c.sub.0custom-character3+d.sub.0custom-character.sub.4

where a.sub.0, b.sub.0, c.sub.0, d.sub.0, custom-character.

[0085] or,


custom-character.sub.m.sup.Tcustom-character.sub.5=0 m{1, 2, . . . , B}


.Math.a.sub.ma.sub.0+b.sub.mb.sub.0+c.sub.mc.sub.0+d.sub.md.sub.0=0 m{1, 2, . . . , B}


.Math.a.sub.0=b.sub.0=c.sub.0=d.sub.0=0custom-character.sub.5={right arrow over (0)}

[0086] These considerations explain why more than three jammers when an antenna plate comprising four antenna elements is used cannot be canceled.

[0087] The generalization of this property to an arbitrary number of antenna elements is immediate. It is noted that more than M1 jammers when an antenna plate comprising M antenna elements is used cannot be canceled.

[0088] It is now assumed that there is a noise of power .sup.2 per receive channel (in the absence of sources, the singular value decomposition of the covariance matrix C.sub.t.sup.(0) reveals the following eigenvalues: (.sub.1=.sub.1.sup.2)>(.sub.2=.sub.2.sup.2)>(.sub.3=.sub.3.sup.2)>(.sub.4=.sub.4.sup.2); the conditioning .sub.1/.sub.4 of the matrix is then close to 2). The method used to detect and identify the present sources is based on the comparison of the eigenvalues of the matrix :

[00012] = ( 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 4 )

[0089] In the case where B=1, we have:

[00013] = ( P 1 b 1 + 1 2 0 0 0 0 2 2 0 0 0 0 3 2 0 0 0 0 4 2 )

[0090] The term P.sub.1.sup.b.sup.1 describes the power of the source (b.sub.1) in the semi-axis of the signal subspace (1-dimensional ellipsoid) it generates.

[0091] In the case where B=2, we have:

[00014] = ( P 1 b 1 + b 2 + 1 2 0 0 0 0 P 2 b 1 + b 2 + 2 2 0 0 0 0 3 2 0 0 0 0 4 2 )

[0092] The terms P.sub.1.sup.b.sup.1.sup.+b.sup.2 and P.sub.2.sup.b.sup.1.sup.+b.sup.2 describe the power of the two sources (b.sub.1 and b.sub.2) in the 2 semi-axes of the signal subspace (2-dimensional ellipsoid) they generate.

[0093] In the case where B=3, we have:

[00015] = ( P 1 b 1 + b 2 + b 3 + 1 2 0 0 0 0 P 2 b 1 + b 2 + b 3 + 2 2 0 0 0 0 P 3 b 1 + b 2 + b 3 + 3 2 0 0 0 0 4 2 )

[0094] The terms P.sub.1.sup.b.sup.1.sup.+b.sup.2.sup.+.sup.3, P.sub.2.sup.b.sup.1.sup.+b.sup.2.sup.+.sup.3 and P.sub.3.sup.b.sup.1.sup.+b.sup.2.sup.+.sup.3 describe the power of the three sources (b.sub.1, b.sub.2 and b.sub.3) in the 3 semi-axes of the signal subspace (3-dimensional ellipsoid) they generate.

[0095] In all cases, the term .sub.m.sup.2, m{1,2,3,4}, describes the power of the noise (AWGN) in the vector subspaces generated by the column vectors of the matrix custom-character.

[0096] The principle consists in comparing the eigenvalues (.sub.1, .sub.2 and .sub.3) of the potential signal subspace with that (.sub.4) of the noise subspace starting with .sub.3.

[0097] The comparison is carried out iteratively as follows:

1.SUP.st .Iteration:

[0098] Initialize s.sub.3 (custom-character.sup.+*) [0099] if .sub.3>s.sub.3.sub.4 then B=3.fwdarw.stop

2.SUP.nd .Iteration:

[0100] otherwise Initialize s.sub.2 (custom-character.sup.+*) [0101] if .sub.2>s.sub.2.sub.4 then B=2.fwdarw.stop

3.SUP.rd .Iteration:

[0102] otherwise Initialize s.sub.1 (custom-character.sup.+*) [0103] if .sub.1>s.sub.1.sub.4 then B=1.fwdarw.stop [0104] otherwise B=0.fwdarw.stop

[0105] The multiplicative coefficients s.sub.3, s.sub.2 and s.sub.1 are determined from the distribution of the diagonal values of the matrix resulting from the singular value decomposition of a covariance matrix obtained from a Gaussian matrix segment consisting of 4 Gaussian random signals coming from 4 reduced centered (or identically distributed) independent Gaussian random variables. Their value results from a compromise between probability of detection (PD) and probability of false alarm (PFA).

[0106] FIG. 4 represents the simulated distribution of the eigenvalues of a covariance matrix obtained from a matrix segment consisting of four Gaussian random signals of 1,024 samples coming from four reduced centered Gaussian random variables.

[0107] In the absence of sources, it is observed that:

[00016] 1 _ 4 _ = 1 , 4 = 2 , 0639 = ( 1 , 4 ) noise 2 _ 4 _ = 2 , 4 = 1 , 1362 = ( 2 , 4 ) noise 3 _ 4 _ = 3 , 4 = 1 , 0666 = ( 3 , 4 ) noise

[0108] To detect the sources, it is proposed to use the following thresholds:


s.sub.1=8(.sub.1,4).sub.noise


s.sub.2=8(.sub.2,4).sub.noise


s.sub.3=8(.sub.3,4).sub.noise

[0109] In summary, to determine the number of jammers, the eigenvalues are compared with each other by successively calculating a coefficient

[00017] i , M = i M ,

i varying from M1 to 1, the number of jammers being equal to the smallest value of i giving .sub.i,M greater than the threshold s; which is preferably equal to 8 times (.sub.i,M).sub.noise (these noise values depend on the number of samples N and are calculated once for all, theoretically (when possible) or by simulation, during the design phase).

[0110] Once the number of jammers is determined, their direction is determined (step E14).

[0111] To do so, a metric is constructed for an angular domain scanned by performing the scalar product between the eigenvector associated with the noise subspace and the spatial signature function of the direction of arrival of the source to be detected. The metric thus constituted reveals at least as many notches as there are sources present in the radio environment captured by the array of antennas.

[0112] By spatial signature of a jammer it is meant the response of an antenna array to a jamming signal. Such a signature is linked to the physical characteristics of the antenna array (such as the radiation pattern of the constituent antenna elements, the coupling between these antenna elements, etc.).

[0113] The array of antennas custom-character.sub.M and the relating receive channels have been previously calibrated. The calibration is the operation that estimates (using signals dedicated to this task) and compensates for the amplitude and phase deviations between the channels due to the physical differences between the components and the lines constituting each unit of the receive chain (it includes one unit per channel). The spatial signature of a jammer is linked: [0114] to the difference in the path of the incident signal received by the antenna element m relative to a reference antenna element (the antenna element 1 by convention). [0115] to the physical characteristics of the antenna array (such as the radiation pattern of the constituent antenna elements, the coupling between these antenna elements, etc.).

[0116] For example, in the case of an array made up of equidistant elements disposed on a straight (aligned) line, the spacing must not exceed /2 (with the wavelength corresponding to the central frequency of the receive band considered). In our case (array made up of 4 antennal elements disposed on the 4 vertices of a square as illustrated in FIG. 2), the spacing (corresponding here to the measurement of the side of the square) must not exceed /2 as well. It is assumed that the antenna elements are ideal omnidirectional antennas and that the receive channels are perfectly calibrated. In addition, the phenomenon of coupling between antenna elements will not be neglected.

[0117] S() denotes the spatial signature of a hypothetical jammer located on the horizon and whose azimuthal direction makes an angle with a direction called reference direction. This is a vector of dimensions M1.

[0118] It is considered that the noise subspace is at least generated by the eigenvector U.sub.M, that is to say the last one.

[0119] The metric is an indicator function of a direction of arrival comprised between [0; 2[, the indicator being a function of a scalar between the spatial signature model of a jammer S() and U.sub.M.sup.H which corresponds to the noise subspace of the noise space resulting from the decomposition U.sub.M.sup.H and S() being orthogonal for a jammer in the direction .

[0120] Advantageously, such a metric is given by:


custom-character()=log.sub.2|U.sub.M.sup.HS()|

[0121] In the presence of jammers, this metric has notches at the directions of arrival .sub.b of the jammers. These are detected by comparing the amplitude of the notches (local minima of custom-character) with a predefined threshold . Up to M1 jammers can therefore be detected.

[0122] FIG. 5 illustrates the metric custom-character() in one exemplary embodiment. In this figure, the threshold is set at 15 dB, the notches being in the directions for which the metric custom-character() is below, namely for 25 degrees and 330 degrees.

[0123] In the case illustrated in the figure, there are two jammers. It is considered that it is the number determined in step E3. When there are more notches than detected jammers then the directions for which the notches are lower than the set threshold are taken.

[0124] In order to protect against the appearance of false alarms on .sub.b, due to a fortuitous orthogonality of U.sub.M with S() when the eigenvalues .sub.m with m1 . . . . M1 are comparable to .sub.M, jamming directions are successively determined over time to obtain a time sequence {.sub.b}.sub.t and this sequence is filtered with a Kalman filter (step E15).

[0125] Advantageously, the quality of the metric custom-charactercan be greatly improved when the number of jammers B detected is less than or equal to M2, in this case the following metric can be used:

[00018] ( ) = .Math. m = B + 1 M log 2 .Math. "\[LeftBracketingBar]" U m H S ( ) .Math. "\[RightBracketingBar]"

[0126] In this way, the local minima are deepened and the rest is averaged, which has the consequence of increasing the probability of detection and therefore the performance.

Determination of the Weighting Vector (Step E2)

[0127] The case where the receiver receives the signal from a single satellite is considered.

[0128] Once the directions have been determined in the previous step, for each of these directions, a weighting vector to be applied to the signals received by each antenna is determined, said vector making it possible to attenuate the signal received in the direction of the jamming signal.

[0129] In a way, it involves creating gain notches in the angular space in the directions determined in the previous step.

[0130] Thus, the jammers are detected using a specific module (comparing the eigenvalues of the covariance matrix with at least one reference value multiplied by a threshold) and their direction of arrival using a metric whose notches are compared with a threshold.

[0131] An example where three jammers can be detected is considered. The weighting w.sub.CRPA is constructed as follows:

[0132] a reference vector w.sup.(0) associated with the satellite (step E21) is determined:

[00019] w ( 0 ) = ( 1 i - 1 - i ) . ( 0 )

Such a vector makes it possible to initialize the calculation of the weighting vector.

[0133] A weighting coefficient associated with each jammer direction (here p=3 directions or jammers) (step E22) is determined:

[00020] w jammer ( p ) = ( ^ p ) = ( e i 1 ( ^ p ) e i 2 ( ^ p ) e i 3 ( ^ p ) e i 4 ( ^ p ) ) , 1 p 3 where : d 1 ( ^ p ) = 0 d 2 ( ^ p ) = d cos ( ^ p ) d 3 ( ^ p ) = d cos ( ^ p ) + d sin ( ^ p ) d 4 ( ^ p ) = d sin ( ^ p )

[0134] Let the square matrix be of order 4 (a reference vector and three jammers) (step E23).


custom-character=(w.sup.(0)w.sub.jammer.sup.(1)w.sub.jammer.sup.(2)w.sub.jammer.sup.(3)).

[0135] Either by inverting custom-character (custom-character is constructed so as to always be invertible provided that the directions of the selected jammers are distinct):


custom-character=custom-character.sup.1

Or if we note custom-character=(custom-character).sup.H=(custom-character.sub.1 custom-character.sub.2custom-character.sub.3custom-character.sub.4), the sought weight vector is given by (step E24):


w.sub.CRPA=custom-character.sub.1

[0136] More generally for B3 jammers we have:

[00021] = ( w ( 0 ) w ^ ( 1 ) .Math. w ^ ( B ) B columns )

[0137] Complementarily, if only one jammer was detected during the preliminary detection step then the matrix custom-character to be processed would be given by: custom-character=(w.sup.(0) w.sub.jammer.sup.(1)), of dimensions 42.

[0138] As custom-character is no longer square, we cannot simply invert it: in this case we must calculate the inverse of Moore-Penrose.

[0139] We then have:


custom-character=custom-character.sup.=(custom-character.sup.Hcustom-character).sup.1custom-character.sup.H


custom-character=(custom-character).sup.H=(custom-character.sub.1custom-character.sub.2)


w.sub.CRPA=custom-character.sub.1

[0140] In the same way, if two jammers were detected then the matrix M to be processed would be given by: custom-character(w.sup.(0) w.sub.jammer.sup.(1) w.sub.jammer.sup.(2)), of dimensions 43.


custom-character=custom-character.sup.=(custom-character.sup.Hcustom-character).sup.1custom-character.sup.H


custom-character=(custom-character).sup.H=(custom-character.sub.1custom-character.sub.2 custom-character.sub.3)


w.sub.CRPA=custom-character.sub.1

[0141] Alternatively, in the case of an arbitrary antenna plate we have

[00022] w ( 0 ) = ( 1 e 2 M .Math. e 2 ( M - 2 ) M e 2 ( M - 1 ) M ) .

Generalization to Several Satellites, Several Jammers, Several Antennas (Step E2)

[0142] In a complementary manner, the case where the receiver receives signals coming from several satellites is considered

[0143] It is assumed that the receiver simultaneously receives signals up to S satellites. The direction of arrival of GNSS signals is provided to the CRPA 40 module and comprises two angular components, the azimuth and the elevation, and is denoted as follows:


{circumflex over ()}.sup.(s)=({circumflex over ()}.sub.AZIM.sup.(s),{circumflex over ()}.sub.ELEV.sup.(s)), 1sS.

[0144] B jammers are considered (as for the case where only one satellite is present).

[0145] The direction of arrival of the jammers is estimated as before and comprises a single component, the azimuth, and is noted as follows:


{circumflex over ()}.sup.(b)={circumflex over ()}.sub.AZIM.sup.(b), 1bB.

[0146] It is assumed that the jammers are terrestrial (i.e. they are installed on masts, on road vehicles or even on ships; they are not airborne) so that their direction of arrival only presents an angular component: the azimuth.

[0147] The array of antennas used includes M coplanar elements (patch antennas), disposed according to a given geometric configuration (linear, circle, disk, matrix, any configuration). The antennas are indexed from 1 to M.

[0148] The antenna of index 1 is considered as the reference antenna (i.e. it is considered as the origin for the calculation of the path difference d between it and the other antennas).

[0149] The case where following condition is fulfilled is considered:


(S+B)M.

[0150] As before, it is sought to attenuate the signals in the directions of the identified jammers. To do so, a weight vector per tracked satellite (there are therefore, at each iteration, as many weight vectors calculated as there are tracked satellites) is calculated. The idea is to cancel both the contribution of the competing satellites of index s (there are S1) and that of the identified jammers (up to B) by projecting gain notches in the direction of these sources and to achieve a gain on the signals originating from the GNSS satellite of interest of index custom-character.

[0151] The following set of weighting coefficients (we speak of a reference vector for the satellite of interest) is calculated (step E21) regarding each satellite (including the satellite of interest of index s):

[00023] w ^ ( s ) = ( e i 1 ( ^ ( s ) ) e i 2 ( ^ ( s ) ) e i 3 ( ^ ( s ) ) .Math. e i M - 1 ( ^ ( s ) ) e i M ( ^ ( s ) ) ) = ( 1 e i 2 ( ^ AZIM ( s ) , ^ ELEV ( s ) ) e i 3 ( ^ AZIM ( s ) , ^ ELEV ( s ) ) .Math. e i M - 1 ( ^ AZIM ( s ) , ^ ELEV ( s ) ) e i M ( ^ AZIM ( s ) , ^ ELEV ( s ) ) ) for 1 s S [0152] custom-character: denotes the wave number. [0153] d.sub.m: denotes the path difference relative to the reference antenna (antenna, of index 1). It depends on the geometric configuration of the array of antennas. w.sub..sup.(s) is a vector whose each component corresponds to a weighting coefficient.

[0154] In a similar manner, regarding the jammers, the following set of weighting coefficients (step E22) is calculated.

[00024] w ^ ( b ) = ( e i 1 ( ^ ( b ) ) e i 2 ( ^ ( b ) ) e i 3 ( ^ ( b ) ) .Math. e i M - 1 ( ^ ( b ) ) e i M ( ^ ( b ) ) ) = ( 1 e i 2 ( ^ AZIM ( b ) ) e i 3 ( ^ AZIM ( b ) ) .Math. e i M - 1 ( ^ AZIM ( b ) ) e i M ( ^ AZIM ( b ) ) ) for 1 b B

[0155] The coefficient w.sub..sup.(s) plays a role similar to the role played by w.sup.(0) (see above): it is a vector that we will constrain in order to create a gain towards the GNSS satellite of interest and gain notches towards jammers and the other GNSS satellites (which could potentially disrupt the receipt of the signals originating from the GNSS satellite of interest; this is usually not the case because in general the GNSS signals from the same system are designed not to jam each other).

[0156] Let then be the following rectangular matrix of dimensions M(S+B) (the matrix is square if S+B=M) (step E23)

[00025] = ( w ^ ( ) .Math. w ^ ( s ) .Math. S - 1 columns s w ^ ( 1 ) w ^ ( 2 ) .Math. w ^ ( B - 1 ) w ^ ( B ) B columns )

[0157] Then we calculate the pseudo-inverse of Moore-Penrose of M:


custom-character=custom-character.sup.=(custom-character.sup.Hcustom-character).sup.1custom-character.sup.H

[0158] Or, if it is square, we simply reverse it:


custom-character=custom-character.sup.1

where: [0159] ().sup.H: denotes the operation transposition+complex conjugation

[0160] If we note W=custom-character.sup.H=(custom-character.sub.1 custom-character.sub.2 . . . custom-character.sub.S+B1 custom-character.sub.S+B) then the set of weighting coefficients associated with the satellite of interest of index custom-character is given by (step E24) w.sub.CRPA.sup.(custom-character.sup.)=custom-character.sub.1.

[0161] It is noted here that in the case of a single satellite w.sub.(custom-character) is replaced by

[00026] w ( 0 ) = ( 1 e 2 M .Math. e 2 ( M - 2 ) M e 2 ( M - 1 ) M ) .