# GPS Signals recorded IQ samples file

**URL:** <https://www.ruby-forum.com/t/gps-signals-recorded-iq-samples-file/243100>\
**Category:** GNU Radio\
**Created:** [August 21, 2015, 3:58am UTC](https://www.ruby-forum.com/t/gps-signals-recorded-iq-samples-file/243100 "2015-08-21T03:58:58Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rafa\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/958977/32.png) [@Rafa\_F](https://www.ruby-forum.com/u/Rafa_F)\
**Post date:** [August 21, 2015, 3:58am UTC](https://www.ruby-forum.com/t/gps-signals-recorded-iq-samples-file/243100/1 "2015-08-21T03:58:58Z")

</div>

Hi!

After googling a lot and searching in this lists archive, I couldn’t  
find  
any recording of IQ samples from GPS signals.

I’m trying to record one myself, with no luck so far because (I suspect)  
of  
a malfunctioning active antenna.

Would anybody with the right equipment be so kind to record some minutes  
of  
4 MHz around 1.57542 GHz and share the recorded iq samples file?

Many thanks in advance!

Francisco.

---

<div class="post-metadata">

**Author:** ![Francisco\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/51bf81/32.png) [@Francisco\_A](https://www.ruby-forum.com/u/Francisco_A)\
**Post date:** [August 21, 2015, 5:19am UTC](https://www.ruby-forum.com/t/gps-signals-recorded-iq-samples-file/243100/2 "2015-08-21T05:19:38Z")

</div>

You may try this GPS signal simulator to generate IQ samples for  
testing.

> **[GitHub - osqzss/gps-sdr-sim: Software-Defined GPS Signal Simulator](https://github.com/osqzss/gps-sdr-sim)**
>
> Software-Defined GPS Signal Simulator. Contribute to osqzss/gps-sdr-sim development by creating an account on GitHub.

–  
Wang Kang  
Blog: [http://scateu.me](http://scateu.me)  
Fingerprint: 011F 0492 97D6 5D75 8AC4 6458 D43F 3CE2 3353 B7BD

---

<div class="post-metadata">

**Author:** ![Francisco\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/51bf81/32.png) [@Francisco\_A](https://www.ruby-forum.com/u/Francisco_A)\
**Post date:** [August 21, 2015, 7:29am UTC](https://www.ruby-forum.com/t/gps-signals-recorded-iq-samples-file/243100/3 "2015-08-21T07:29:54Z")

</div>

GPS data records and processing scripts for GNU/Octave are available at  
[http://jmfriedt.free.fr/efts\_archive.tar.gz](http://jmfriedt.free.fr/efts_archive.tar.gz). The tutorial I presented on  
this  
topic during the EFTS seminar is summarized at  
[http://jmfriedt.free.fr/sdr\_gps\_eng.pdf](http://jmfriedt.free.fr/sdr_gps_eng.pdf)

JM

> > Would anybody with the right equipment be so kind to record some minutes of  
> > [Discuss-gnuradio Info Page](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio)  
> > –  
> > JM Friedt, FEMTO-ST Time & Frequency/SENSeOR, 26 rue de l’Epitaphe,  
> > 25000 Besancon, France

---

<div class="post-metadata">

**Author:** ![Francisco\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/51bf81/32.png) [@Francisco\_A](https://www.ruby-forum.com/u/Francisco_A)\
**Post date:** [August 21, 2015, 9:37am UTC](https://www.ruby-forum.com/t/gps-signals-recorded-iq-samples-file/243100/4 "2015-08-21T09:37:16Z")

</div>

Hi Francisco,

are you sure you did not see GPS? The problem is that GPS is often below  
the thermal noise floor and only detectable by the virtue of processing  
gain.  
I’d try and take a whole lot of samples (like: 2s worth of samples), and  
calculate the autocorrelation[1]. You should see peaks at multiples of 1  
ms, because that’s the spreading code’s period.

Best regards,  
Marcus

[1] Warning, a 8-million-points autocorrelation might take some CPU  
power. You might want to apply a bit of FFT magic.

---

<div class="post-metadata">

**Author:** ![Francisco\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/51bf81/32.png) [@Francisco\_A](https://www.ruby-forum.com/u/Francisco_A)\
**Post date:** [August 22, 2015, 2:43am UTC](https://www.ruby-forum.com/t/gps-signals-recorded-iq-samples-file/243100/5 "2015-08-22T02:43:05Z")

</div>

Wang: Sounds good! Thanks! Did you try it?

Jean: many many thanks for sharing all the scripts! Your paper has  
caught  
my attention. I will print it and read it.

Marcus: I was not expecting to “see” the signal because I already knew  
it  
was under noise floor. My conclusion of “signal absence” was after my  
GPS  
receiver was not able to decode it when I replayed it with an USRP.  
However, due to my little knowledge of GPS, it did not occur to me any  
other way of searching, so I thank you for your suggestion. I nearly  
killed  
my pc with a naive approach. 😛 I need a wiser one.

Sylvain: interesting. I will try that too. Thanks!

2015-08-21 9:07 GMT-03:00 Sylvain M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

---

<div class="post-metadata">

**Author:** ![Francisco\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/51bf81/32.png) [@Francisco\_A](https://www.ruby-forum.com/u/Francisco_A)\
**Post date:** [August 22, 2015, 3:54am UTC](https://www.ruby-forum.com/t/gps-signals-recorded-iq-samples-file/243100/6 "2015-08-22T03:54:21Z")

</div>

On Fri, 21 Aug 2015, Francisco A. wrote:

> Wang: Sounds good! Thanks! Did you try it?

Yeah. It works like a charm, in both HackRF and BladeRF.

---

<div class="post-metadata">

**Author:** ![Francisco\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/51bf81/32.png) [@Francisco\_A](https://www.ruby-forum.com/u/Francisco_A)\
**Post date:** [August 21, 2015, 2:08pm UTC](https://www.ruby-forum.com/t/gps-signals-recorded-iq-samples-file/243100/7 "2015-08-21T14:08:19Z")

</div>

Hi,

> are you sure you did not see GPS? The problem is that GPS is often below the  
> thermal noise floor and only detectable by the virtue of processing gain.  
> I’d try and take a whole lot of samples (like: 2s worth of samples), and  
> calculate the autocorrelation[1]. You should see peaks at multiples of 1 ms,  
> because that’s the spreading code’s period.

You can also square the signal, then decimate it a bit and FFT it and  
you’ll see peaks at whatever doppler the sat currently has. (so you’ll  
see different peaks for different sats).

Cheers,

```
Sylvain

```

---

<div class="post-metadata">

**Author:** ![Francisco\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/51bf81/32.png) [@Francisco\_A](https://www.ruby-forum.com/u/Francisco_A)\
**Post date:** [August 22, 2015, 5:35pm UTC](https://www.ruby-forum.com/t/gps-signals-recorded-iq-samples-file/243100/8 "2015-08-22T17:35:07Z")

</div>

On Fri, Aug 21, 2015 at 8:41 PM, Francisco A. \<  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)\> wrote:

> Marcus: I was not expecting to “see” the signal because I already knew it  
> was under noise floor. My conclusion of “signal absence” was after my GPS  
> receiver was not able to decode it when I replayed it with an USRP.

​If you replayed the capture file over the USRP for reception by a  
commercial GPS receiver, you’ll have to carefully adjust the digital  
amplitude sent to the USRP and USRP PA gain setting in order to 1)  
transmit  
enough signal power, as the captured data typically has very low  
numerical  
values, and 2) avoid overloading the front end of the GPS receiver that  
is  
designed to work with low-level signals.

I’ve done this successfully in the past in building GPS interference  
mitigation applications.
