GPS-SDR-SIM generates GPS baseband signal data streams, which can be converted to RF using software-defined radio (SDR) platforms, such as bladeRF(http://nuand.com/), HackRF(https://github.com/mossmann/hackrf/wiki) and USRP(http://www.ettus.com/).
Generating the GPS signal file:
+ A user-defined trajectory can be specified in either a CSV file, which contains the Earth-centered Earth-fixed (ECEF) user positions, or an NMEA GGA stream. The sampling rate of the user motion has to be 10Hz. The user is also able to assign a static location directly through the command line.
+ The user specifies the GPS satellite constellation through a GPS broadcast ephemeris file. The daily GPS broadcast ephemeris file (brdc) is a merge of the individual site navigation files into one. The archive for the daily file is:
ftp://cddis.gsfc.nasa.gov/gnss/data/daily/
+ These files are then used to generate the simulated pseudorange and Doppler for the GPS satellites in view. This simulated range data is then used to generate the digitized I/Q samples for the GPS signal.
+ The bladeRF command line interface requires I/Q pairs stored as signed 16-bit integers, while the hackrf_transfer and gps-sdr-sim-uhd.py support signed bytes.
+ HackRF and bladeRF require 2.6 MHz sample rate, while the USRP2 requires 2.5 MHz (an even integral decimator of 100 MHz).
+ The simulation start time can be specified if the corresponding set of ephemerides is available. Otherwise the first time of ephemeris in the RINEX navigation file is selected.
Usage:
git clone https://github.com/osqzss/gps-sdr-sim && cd gps-sdr-sim gcc gpssim.c -lm -O3 -o gps-sdr-sim Windows build instructions 1. Start Visual Studio. 2. Create an empty project for a console application. 3. On the Solution Explorer at right, add "gpssim.c" and "getopt.c" to the Souce Files folder. 4. Select "Release" in Solution Configurations drop-down list. 5. Build the solution. Example: ./gps-sdr-sim -e brdc3540.14n -u circle.csv
Source: https://github.com/osqzss