• Aucun résultat trouvé

PRN and GPS decoding using Software Defined Radio

N/A
N/A
Protected

Academic year: 2022

Partager "PRN and GPS decoding using Software Defined Radio"

Copied!
35
0
0

Texte intégral

(1)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

PRN and GPS decoding using Software Defined Radio

J.-M Friedt, C. Fluhr, G. Cabodevila, E. Rubiola FEMTO-ST Time & Frequency department, Besan¸con, France

[email protected] slides and references at

jmfriedt.free.fr June 27, 2018

1 / 35

(2)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline

GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Outline

1 Spectrum spreading for timing capability

2 Cross-correlation computation and relation to Fourier transform

3 Orthogonal coding for Code Division Multiple Access

4 GPS decoding: Doppler frequency offset + PRN detection

• can I see satellites ? (autocorrelation)

• what is the coarse frequency offset ? (squaring the signal)

• PRN-Doppler chart (which satellite is where)

• navigation message

LO +5V

0..40 dB ADC 2 USB

active antenna

Software Defined Radio receiver applied to GNSS

2 / 35

(3)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Introduction: GNSS

GNSS:

• Spaceborne atomic clocks

• Aim: use of ultrastable time references beyond positioning ...

• ... eg. tide gauge1, moisture detection2, phase monitoring (TEC)

• Requires at least phase recovery.

• Educational purpose: detailed understanding of the steps needed to complete a GPS receiver low phase noise LO !

• Towards software defined radio GNSS receivers for improved security and safety (spoofing attacks)

Use a low cost DVB-T receiver for acquisition:

• 8 bit-resolution

• poor sensitivity⇒pre-amplified antenna

• 2.4 MHz measurement bandwidth limited by USB bandwidth (I, Q components)

1K.M. Larson:spot.colorado.edu/~kristine/Kristine_Larson/Home.html

2Bock et. al., West African Monsoon observed with ground-based GPS receivers ..., J. Geophysical Research 113, D21105 (2008), at

http://onlinelibrary.wiley.com/doi/10.1029/2008JD010327/pdf

3 / 35

(4)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

CDMA: decoding GPS

GPS signal encoding principle3 :

• the carrier is generated by an atomic clock (1575.42 MHz) ...

• ... is phase modulated at 1.023 MHz with a unique satellite identifier ...

• ... and again phase-modulated with the navigation message (50 bps)

3K. Borreet al.,A Software-Defined GPS and Galileo Receiver – A

Single-Frequency Approach, Birkh¨auser Boston, 2007 4 / 35

(5)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Spectrum spreading numerical experiments

Carrier frequency and bandwidth are two unrelated quantities which can be tuned independently formatching each sensor spectral characteristics

Binary Phase shift keying: ϕ[0;π] for spectrum spreading

0 10000 20000 30000 40000 50000 60000

-1 -0.5 0 0.5 1

power (no unit)

normalized frequency (no unit)

0 5000 10000 15000 20000 25000

-1 -0.5 0 0.5 1

power (no unit)

normalized frequency (no unit)

0 500 1000 1500 2000 2500 3000 3500 4000

-1 -0.5 0 0.5 1

power (no unit)

time=[0:0.02:1023];time=time(1:end-1);

signal=exp(j*2*pi*time);

f=linspace(-1,1,length(time));

plot(f,abs(fftshift(fft(signal))));

indices=[1:100:length(signal)-50]’...

*[ones(1,50)]+[0:49];

signal(indices)=-signal(indices);

c=cacode(11,50)*2;c=c-mean(c);

signal=signal.*c;

pure sine

periodically modulated sine

pseudo randomly modulated sine

normalized frequency (no unit)

200 400 600 800 1000 1200

time (no unit)

200 400 600 800 1000 1200

time (no unit)

200 400 600 800 1000 1200

time (no unit)

5 / 35

(6)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Spectrum spreading numerical experiments

Carrier frequency and bandwidth are two unrelated quantities which can be tuned independently formatching each sensor spectral characteristics

Binary Phase shift keying: ϕ[0;π] for spectrum spreading

0.85 0.9 0.95 1 1.05 1.1 1.15

0 20000 40000 60000 80000 100000

autocorr (no unit)

delay (no unit)

0 0.2 0.4 0.6 0.8 1 1.2 1.4

0 20000 40000 60000 80000 100000

autocorr (no unit)

delay (no unit)

0 10000 20000 30000 40000 50000 60000

0 20000 40000 60000 80000 100000

autocorr (no unit)

pure sine (xcorr(signal, ’unbiased’))

periodically modulated sine

pseudo randomly modulated sine

delay (no unit)

0 0.10.2 0.3 0.40.5 0.6 0.70.8 0.91

50 100 150 200

autocorr (no unit)

delay (no unit)

6 / 35

(7)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Spectrum spreading numerical experiments

From convolution to correlation:

Convolution: conv(s,r)(τ) = Z

s(t)r(τt)dt

Practical computation of convolution:

FT(conv(s,r)) =FT(s)·FT(r)

Correlation: corr(s,r)(τ) = Z

s(t)r(t+τ)dt

Convolutioncorrelation: time reversal

since exp(jωt)= exp(−jωt), we conclude

FT(corr(s,r)) =FT(s)·FT(r)

7 / 35

(8)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Lab session: hardware PRN

• Clock (carrier) feeds two PRN generators

• XOR/low pass filter as correlator

• Offset clock frequencies to sweep one PRN over the other

• Observe correlator dip when PRN sequences match (1 XOR 1=0 XOR 0=0)

• Introduction to the processing technique used to detect GPS a signal

8 / 35

(9)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Phase modulation

• PSK : Phase Shift Keying

• ϕ= arctan(Q/I): output of the I/Q demodulator

• local oscillator stability – constellation diagram

• GPS: BPSK (Binary Phase Shift Keying) – demonstration using a saturated mixer controlled by the bits to be transmitted

-1 -0.5 0 0.5 1

0 500 1000 1500 2000

tension (u.a.)

temps (u.a.)

9 / 35

(10)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Phase demodulation

Requires accurate reproduction of the unmodulated carrier

exp(j(∆ωt+ϕ))N = exp(j(N∆ωt+Nϕ)) = exp(jN∆ωt) ifϕ= 2π·n/N

carrier BPSK

BPSK^2

100 kHz

1.21 GHz source

LO, −43 dBm IF BPSK modulated

RF signal

DVB−T emission reception

cos(ϕ)2∝cos(2ϕ) ϕ∈[0;π]⇒2ϕ= 0[2π]

−1

−0.5 0 0.5 1

0 500 1000 1500 2000

signal (u.a.)

temps (u.a.)

0 0.2 0.4 0.6 0.8 1

0 500 1000 1500 2000

signal2 (u.a.)

temps (u.a.)

0 100 200 300 400 500

800 850 900 950 1000 1050 1100 1150 1200

FFT(signal) (u.a.)

frequence(u.a.)

0 200 400 600 800 1000

800 850 900 950 1000 1050 1100 1150 1200 FFT(signal2) (u.a.)

frequence(u.a.) FFT

X2

FFT

modulation porteuse

porteuse (absente)

Carrier recovery by squaring BPSK

FindNby raising the I/Q signal to various powers until modulation sidebands

disappear: try with the Meteor M2 signal:jmfriedt.free.fr/extrait_acq.bin 10 / 35

(11)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Meteor M2

-600000 -400000 -200000 0 200000 400000 600000

20 40 60 80 100

freq (Hz)

power (a.u.)

-600000 -400000 -200000 0 200000 400000 600000

0.1 0.2 0.3 0.4

freq (Hz)

power (a.u.)

-600000 -400000 -200000 0 200000 400000 600000

5e-05 0.0001 0.000150.0002 0.00025

freq (Hz)

power (a.u.)

-600000 -400000 -200000 0 200000 400000 600000

5e-12 1e-11 1.5e-11 2e-11

freq (Hz)

power (a.u.)

1

2

4

8

x=r e a d c o m p l e x b i n a r y (’ e x t r a i t _ a c q . bin ’) ; f s =11025∗64∗2;% 1 . 4 1 1 2 MHz

N=300 e 3 ;

f=l i n s p a c e(−f s / 2 , f s / 2 ,N) ; f o rm=0:3

s u b p l o t( 4 , 1 ,m+1) ;

p l o t( f ,f f t s h i f t(a b s(f f t( x ( 1 : N) . ˆ ( 2 ˆm) ) ) ) ) ; a x i s t i g h t ;

x l a b e l(’ f r e q ( Hz ) ’) ;y l a b e l(’ p o w e r ( a . u .) ’) ; l e g e n d(n u m 2 s t r( 2 ˆm) )

end

Tune N depending on SNR (e.g. Wifi – IEEE 802.11)

11 / 35

(12)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Phase demodulation

Software defined carrier recovery (feedback loop not allowed between GNURadio blocks): use the ready made Costas loop block:

modulation

30 dB

centrage sur 0 Hz

= boucle asservie

signal recu : porteuse décallée p.r à 0 Hz (1) (3)

porteuse

modulation porteuse carré du signal = elimine la modulation

20 dB

correction de fréquence phase du signal transposé de la porteuse corrigée

(2) (4)

f

signal recu : porteuse (1)

(3)

(2) (4)

phase du signal masquée par l’écart de fréquences pas de centrage sur 0 Hz

= boucle non asservie

porteuse trop décallée

Locked Costas loop Unlocked Costas loop

Carrier offset: ∆ω + Modulation: ϕ= [0;π]→sin(∆ω·t+ϕ

| {z }

separate

)

12 / 35

(13)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Example of GPS (BPSK)

Squaring a BPSK signal gets rid of modulation and collects all the energy in the carrier (requires averaging multiple Fourier transforms to get the squared signal spectrum out of the noise)

Coarse estimate of (twice) the Doppler shift+frequency offset4

4P. Boven,Observe, Hack, Make: GPS(2013): used in Vaisala RS80 radiosonde

13 / 35

(14)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Example of GPS (BPSK)

Squaring a BPSK signal gets rid of modulation and collects all the energy in the carrier (requires averaging multiple Fourier transforms to get the squared signal spectrum out of the noise)

0 2 4 6 8 10 12 14

-0.092

-0.09

-0.088

-0.086

time (hour)

Doppler shift (Hz)

Coarse estimate of (twice) the Doppler shift+frequency offset4

4P. Boven,Observe, Hack, Make: GPS(2013): used in Vaisala RS80 radiosonde

14 / 35

(15)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

CDMA: software decoding of GPS

• GPS: 31-satellite fleet5 orbiting Earth at a distance of 20000 km

• Time reference (Cs+Rb and then Rb only)

• Time of flight computation for positioning

• Offsets introduced by electromagnetic wave velocity fluctuations (ionosphere, troposphere) impossible to compensate for if a single frequency carrier is monitored

• Satellite ephemeris + time of flight = position of receiver on Earth

• Multiple applications beyond positioning6 7

All satellites transmit on the same carrier frequency

5http://spaceflightnow.com/2014/10/13/

gps-modernization-continues-with-quick-pace-of-launches/

6J.-M Friedt, G. Cabodevila,Exploitation de signaux des satellites GPS re¸cus par ecepteur de t´el´evision num´erique terrestre DVB-T, OpenSilicium 15, Juil.-Sept. 2015

7L. Lestarquitet al.,Reflectometry With an Open-Source Software GNSS Receiver: Use Case With Carrier Phase Altimetry, IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing9(10), pp. 4843–4853 (2016)

15 / 35

(16)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Objectives

• a modulator generates the information, here encoded in the phase of the carrier

• the information is carried on a signal whose frequency varies (Doppler, thermal drift of LO)

• recovering the transmitted information is a matter of eliminating carrier information

• two degrees of freedom (carrier frequency and CDMA for satellite identification) will require two feedback loops to recover the information

⇒carrier recovery and code position (delay) recovery

NAV (50 bps) PRN (1.023 Mbps)

NAV PRN feedback loop

feedback loop 1575.42 MHz±df

16 / 35

(17)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

CDMA: decoding GPS

Cross-correlation: search for a (known) patternm(t) in the received signals(t).

xcorr(τ) = Z +∞

−∞

s(t)×m(t+τ)dt becoming for discrete time

xcorr(n) =

+∞

X

k=−∞

s(k)×m(k+n)

Searching for a known pattern in an ap- parently random sequence:

aleat=rand(1000,1);aleat=aleat-mean(aleat);

code=rand(100,1);code=code-mean(code);

aleat(1:100)=aleat(1:100)+code;

plot(xcorr(code,aleat))

aleat(end-99:end)=aleat(end-99:end)+code;

plot(xcorr(code,aleat)) aleat(end-500-99:end-500)= \

aleat(end-500-99:end-500)+code;

plot(xcorr(code,aleat))

-4 -2 0 2 4 6 8 10

0 200 400 600 800 1000

xcorr (u.a.)

temps (u.a.)

3 codes 2 codes 1 code aleatoire

+ magnitude of the cross-correlation indicates whether a bit is found 17 / 35

(18)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

CDMA: decoding GPS

Cross-correlation: search for a (known) patternm(t) in the received signals(t).

xcorr(τ) = Z +∞

−∞

s(t)×m(t+τ)dt becoming for discrete time

xcorr(n) =

+∞

X

k=−∞

s(k)×m(k+n)

Searching for a known pattern in an ap- parently random sequence:

a=rand(1000,1);a=a-mean(a);

code=rand(800,1);code=code-mean(code);

a2=a;P=[101:900];

a2(P)=a(P)+10*code*exp(j*0.8);

r=angle(xcorr(code,conj(a2))); r(800) a3=a;

a3(P)=a(P)+10*code*exp(-j*0.8);

r=angle(xcorr(code,conj(a3))); r(800)

-4 -3 -2 -1 0 1 2 3 4

0 500 1000 1500 2000

angle(xcorr) (no unit)

time (a.u.)

+0.8 rad -0.8 rad

+phaseof the complex signal is trans- ferred to the cross-correlation 18 / 35

(19)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

CDMA: decoding GPS

Modulation steps:

• the carrier is binary-phase shift keying modulated with the satellite identifier at a rate of 1.023 MHz (phase rotations 0-180)

• the message is additionnally binary-phase shift keying modulated over the previous signal (50 bps)

NAV0 NAV1 NAV2

20 ms

abs(xcorr(signal.code))

1/1.023 us

1 ms

NAV3 arg(xcorr(signal,code))

code LO NAV

• when demodulating; first eliminate the code, ...

• ... to identify and eliminate the carrier,

• in order to recover the message.

The carrier frequency is not accurately known (Doppler shift): what LO offset is acceptable for demodulating the message ?

19 / 35

(20)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

CDMA: decoding GPS

Even if we did not know the GPS encoding scheme, knowing that this code repeats is enough to assess whether a GPS signal is usable: autocorr´elation

f=f o p e n(’ f i c h i e r . bin ’) ; d=f r e a d( f , i n f ,’ u c h a r ’) ;f c l o s e( f ) ; d=d ( 1 : 2 :end)−127+ i∗( d ( 2 : 2 :end)−127) ;

t i m e = [−1 0 0 0 0 : 1 0 0 0 0 ] ;

dx=a b s( x c o r r ( d−mean( d ) , d−mean( d ) ) ) ;

p l o t( t i m e , dx ( 2 e6−10000:2 e 6 +10000) ) ; y l i m ( [ 0 1 e 6 ] ) % 2 MHz

5000 10000 15000 20000 25000 30000

0 50000 100000 150000 200000 250000 300000

autocorr (a.u.)

time (500 ns/sample)

Repetition every 1 ms at 2 MS/smax(autocorr) every 2000 samples

20 / 35

(21)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

CDMA: decoding GPS

• Decoding GPS isonlypossible if the carrier frequency is accurately known ...

• ... whcih can only be identified after removing the code from the received signal !

• Initialexaustive(Acquisition) search of all possible codes and frequency offsets (brute force) for later onlytracking satellites known to be visible.

• What frequency offset should we look for ?

H H0

r orbit R+r Earth

R

P ϑ

~ v

~ v//

90ϑ

Doppler shift: (R+r) = 20000 + 6400 km in 12 h (T2/R3= cst) ⇒ |~v|= 3830 m/s Since sin(θ) =r+RR orR'6400 km

⇒ |~v//|=|~v|cos(90−θ) =|~v|sin(θ) =|~v|r+RR Result: |~v//| ∈[±4880] Hz

+ local oscillator contribution (bias and random fluctuations) !

Application: decode an acquired signal, using the GPS

pseudo-random code generator available at fr.mathworks.com/

matlabcentral/fileexchange/14670-gps-c-a-code-generator/21 / 35

(22)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Observed Doppler shift

Record Doppler offset provided bygnss-sdras a function of time for all visible satellites

-4000 -2000 0 2000 4000

0 5 10 15 20 25

Doppler shift (Hz)

time (h)

Doppler indeed∈[±4000] Hz accounting for minimum elevation for

detectable signal 22 / 35

(23)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

On the need for high stability LO:

offset v.s Doppler

Recording a 100 MHz carrier referenced to a Cs clock:

-75 ppm offset or 120 kHz at 1.57 GHz

⇒rather than20 Doppler frequencies (±5 kHz with 500 Hz steps) we must probe ≥500Doppler frequencies

23 / 35

(24)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Doppler analysis frequency step

How accurately should the Doppler shift be known ?

-50 0 50 100 150 200 250 300

0 500 1000 1500 2000 2500

|xcorr| (a.u.)

sample offset (no unit) PRN2,PRN1 PRN1,PRN1 PRN1,1.001*PRN1 PRN1,1.003*PRN1 PRN1,1.01*PRN1

-50 0 50 100 150 200 250 300

1000 1010 1020 1030 1040 1050 1060 1070 1080

|xcorr| (a.u.)

sample offset (no unit) PRN2,PRN1 PRN1,PRN1 PRN1,1.001*PRN1 PRN1,1.003*PRN1 PRN1,1.01*PRN1

• 1023 kb/s '1 µs/bit

• 1 ms long sentence: if the last bit mismatches:

dt/t = 10−6/10−3= 10−3

• df/f =dt/t⇒df = 10−3×1023 kb=1 kHz

• to be safe, we select df=500 Hz

24 / 35

(25)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

CDMA: decoding GPS

• CDMA basics: each useful bit (navigation data) is transmitted with its associated satellite identifier (SV PRN).

• All satellites transmit on the same carrier (1575.42 MHz), only their unique identifier allows differentiating each source.

• Each identifier is repeated every millisecond, NAV is at 50 bps so 20 samples/bit.

PRN

frequency (kHz)

5 10 15 20 25 30

85

90

95

100

105

GNU/Octave v.s.gnss-sdrSV 15, 18, 26 are visible

25 / 35

(26)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

CDMA: decoding GPS

Why do we need accuracte oscillators ?

PRN

frequency (kHz)

5 10 15 20 25 30

85

90

95

100

105

E4000 DVB-T +59 ppm bias

=+91 kHz at 1575.42 GHz

PRN

frequency (kHz)

5 10 15 20 25 30

−115

−110

−105

−100

−95

R820T DVB-T -68 ppm bias

=-107 kHz at 1575.42 GHz Instead of searching a±5 kHz range (Doppler) with 500 Hz steps, we must search ±150 kHz range⇒computation time8multiplied by 30 !

820 kHz range with 500 Hz steps on 2·105samples: 302 seconds with Matlab R2010, 342 seconds with GNU/Octave 3.8.2

26 / 35

(27)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

SDR v.s U-Blox

SV 10, 20, 27, 32 best visible with both re- ceivers recording at the same time

27 / 35

(28)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

CDMA: decoding GPS

• Cross-correlating the received RF signal with orthogonal codes allows for identifying the source of the signal, but the message is lost

• once theacquisition phase is completed,trackingby controlling LO on the received carrier

• challenge: the phase is used both to encode the message and track the carrier

• how to eliminate the phase modulation to control the frequency ?

• N-PSK :ϕN= 0[2π] but reduction by a factor N of the allowed frequency offset

-60 -40 -20 0 20 40

0 500 1000 1500 2000 2500 3000 3500 4000

phase (rad)

time (ms) FFT freq estimate manual correction: +100 Hz unwrapped manual corr.

-1.5 -1 -0.5 0 0.5 1

0 500 1000 1500 2000

atan (rad)

time (ms)

-4 -2 0 2 4 6

0 500 1000 1500 2000

freq (Hz)

time (ms)

-1 0 1 2 3 4 5 6

0 500 1000 1500 2000

angle (rad)

time (ms)

28 / 35

(29)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

CDMA: decoding GPS

• Cross-correlating the received RF signal with orthogonal codes allows for identifying the source of the signal, but the message is lost

• once theacquisition phase is completed,trackingby controlling LO on the received carrier

• challenge: the phase is used both to encode the message and track the carrier

• how to eliminate the phase modulation to control the frequency ?

• atan(Q/I) v.s atan2(Q,I): Q/I cannot detect 180 phase rotation, while atan2 provides NAV..

Q

I

(−1,1)=(1,−1) (1,1)=(−1,−1)

-1.5 -1 -0.5 0 0.5 1

0 500 1000 1500 2000

atan (rad)

time (ms)

-4 -2 0 2 4 6

0 500 1000 1500 2000

freq (Hz)

time (ms)

-1 0 1 2 3 4 5 6

0 500 1000 1500 2000

angle (rad)

time (ms)

29 / 35

(30)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Pulse compression basics

• The longer the code (T), the longer the time during which the integral of xcorr accumulates energy andsmoothes noise,

• but long pulse inducesloss of time resolution⇒cross-correlation is a broad peak

• strong variation of code over time⇒increased bandwidthB ⇒ cross correlation peak width 1/B

pulse compression ratio (PCR) =B·T

0 0.0020.0040.0060.0080.01 -1

-0.5 0 0.5 1

0 0.0020.0040.0060.0080.01 -10

-5 0 5

0 0.0020.0040.0060.0080.01 -10

-5 0 5 10

5000 10000 15000 20000

-4000 -2000 0 2000 4000

xcorr

0 0.0020.0040.0060.0080.01 -0.5

0 0.5 1

0 0.0020.0040.0060.0080.01 -10

-5 0 5

0 0.0020.0040.0060.0080.01 -10

-5 0 5 10

sin Noise chirp Noise

1 kHz sin noise signal+noise

1-5 kHz chirp noise signal+noise

time=[0:1e-6:1e-2]; %samp. rate=1 us x=chirp(time,1e3,time(end),1e3);

noise=20*rand(length(x),1)’;

noise=noise-mean(noise);

xx=xcorr(x,x); xb=xcorr(x,noise);

plot(xx,’b-’);hold on;plot(xb,’r-’);

x=chirp(time,1e3,time(end),5e3);

xx=xcorr(x,x); xb=xcorr(x,noise);

plot(xx,’k-’);hold on;plot(xb,’m-’);

30 / 35

(31)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Pulse compression basics

• The longer the code (T), the longer the time during which the integral of xcorr accumulates energy andsmoothes noise,

• but long pulse inducesloss of time resolution⇒cross-correlation is a broad peak

• strong variation of code over time⇒increased bandwidthB ⇒ cross correlation peak width 1/B

pulse compression ratio (PCR) =B·T

5000 10000 15000 20000

-4000 -2000 0 2000 4000

delay

xcorr

sin 3 kHz chirp 3-3.5 kHz chirp 3-10 kHz

time=[0:1e-6:1e-2]; %samp. rate=1 us x=chirp(time,1e3,time(end),1e3);

noise=20*rand(length(x),1)’;

noise=noise-mean(noise);

xx=xcorr(x,x); xb=xcorr(x,noise);

plot(xx,’b-’);hold on;plot(xb,’r-’);

x=chirp(time,1e3,time(end),5e3);

xx=xcorr(x,x); xb=xcorr(x,noise);

plot(xx,’k-’);hold on;plot(xb,’m-’);

31 / 35

(32)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Pulse compression basics

• The longer the code (T), the longer the time during which the integral of xcorr accumulates energy andsmoothes noise,

• but long pulse inducesloss of time resolution⇒cross-correlation is a broad peak

• strong variation of code over time⇒increased bandwidthB ⇒ cross correlation peak width 1/B

pulse compression ratio (PCR) =B·T

0 500 1000 1500 2000

-300 -200 -100 0 100 200 300

delay

xcorr

0 200 400 600 800 1000

-0.5 0 0.5 1 1.5 2

sample number

code

Remember: GPS is designed for timing signals with better than one “chip” resolution.

noise=rand(1023,1)’*7;

noise=noise-mean(noise);

b=[1:1023];

b=mod(b,2);b=b-mean(b);

plot(xcorr(b+noise,b),’r’);hold on a=cacode(1,1);a=a-mean(a);

plot(xcorr(a+noise,a));

plot(a+1.5);hold on;plot(b,’r’);32 / 35

(33)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Link budget

• a radiofrequency (electrical) power is emitted, either isotropically or in a directional pattern with an antenna gain G1: PE×G1

• this power spreads on a sphere centered on the emitter: in the case of isotropic emitter, the area of this sphere is, at a distanced, 4πd2

• ifG1>1, then only a fraction 4πd2/G1 of the sphere is illuminated

• this sphere intersects the receiver, which can detect any incoming signal on a 4π-steradian sphere on a typical area of λ2

• this receiver might exhibit a reception antenna gainG2

PR

PE

=G1G2

λ 4πd

2

: Friis9equation

or Free Space Propagation Loss (FSPL), since 20 log10(c/4/π) = 147.5 dB

FSPL= 20 log10(f) + 20 log10(d)−147.55 dB

9H.T. FriisA Note on a Simple Transmission Formula, Proc. I.R.E. 254-–256 (1946)

33 / 35

(34)

decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Link budget

• a radiofrequency (electrical) power is emitted, either isotropically or in a directional pattern with an antenna gain G1: PE×G1

• this power spreads on a sphere centered on the emitter: in the case of isotropic emitter, the area of this sphere is, at a distanced, 4πd2

• ifG1>1, then only a fraction 4πd2/G1 of the sphere is illuminated

• this sphere intersects the receiver, which can detect any incoming signal on a 4π-steradian sphere on a typical area of λ2

• this receiver might exhibit a reception antenna gainG2

PR

PE

=G1G2

λ 4πd

2

: Friis equation Application:

1 a GPS satellite emits 50 W (17 dBW=47 dBm) at 1575.42 MHz with an antenna gain of 13 dBi and flies at 20000 km over the Earth

2 FSPL= 182 dB⇒PR =−152 dBW=−122dBm

3 receiver sensitivity: typically around -159 dBm (usglobalsat.com/store/download/53/et312_ug.pdf)

4 DVB-T: detection limit around -95 dBm (10 dB SNR) + 27 dB antenna gain =-122 dBmdetection limit

34 / 35

(35)

PRN and GPS decoding using Software Defined

Radio J.-M Friedt & al.

Outline GNSS & CDMA Spectrum spreading Lab session PSK SDR decoding of GPS From acquisitin to tracking (NAV messages) Pulse compression Link budget

Link budget

• a radiofrequency (electrical) power is emitted, either isotropically or in a directional pattern with an antenna gain G1: PE×G1

• this power spreads on a sphere centered on the emitter: in the case of isotropic emitter, the area of this sphere is, at a distanced, 4πd2

• ifG1>1, then only a fraction 4πd2/G1 of the sphere is illuminated

• this sphere intersects the receiver, which can detect any incoming signal on a 4π-steradian sphere on a typical area of λ2

• this receiver might exhibit a reception antenna gainG2

PR PE

=G1G2 λ

4πd 2

: Friis equation What is the thermal noise power ?

1 1 MHz bandwidth (1023 kHz) so that 10 log10(106) = 60 dB

2 −174 + 60 =−114dBm>-122 dBm !

3 but 30 dB=1023 kHz/1 kHz pulse compression:

−122 + 30 =−92>114 dBm (SNR'22 dB after compression)

4 the cross-correlation brings the signal out of the noise: a spectral analysis (FFT)cannot display the GPS signal !

35 / 35

Références

Documents relatifs

Rotate it into a local North, East, Up frame (= local [n, e, u] topocentric frame at latitude 40N, longitude 86W) using the Matlab function written for a previous lab.. Convert [n,

Therefore, you first need to find the correct time of ephemeris (t oe ) in the navigation file given the time for which you need to extrapolate the satellite position (t data ).

⇒ Isn’t there an important additional noise term that is not modeled here and which, consequently, is present in MP1 and MP2 as derived above. ⇒ Write a Matlab function to compute

Plot the site position and PDOP vector versus time 6.. Save plot as a

In this section, we formulate the decoding of an RS(n, k) code virtually extended to a VIRS (n, k, s) code as a modified GS interpolation problem.. The constraints of the

In Section 3 we show how the dyadic variant can be made more secure against [14] and present our results on keysize reduction obtained using the best known list decoding algorithm

La trace au sol de chaque prise de vue a une largeur de 60 km en prise de vue verticale, 117 km si l’on juxtapose les prises de vue des deux instruments (fig. Dans ce dernier cas,

De façon classique pour les GPS de navigation, EVADEO est doté de toutes les fonctionnalités liées à la navigation routière : grâce aux dernières cartes numériques