matlab-generate-gnss-waveform
Generate GNSS baseband waveforms (GPS, Galileo, NavIC) with physically realistic or user-specified channel impairments using the Satellite Communications Toolbox. Use when generating GPS L1 C/A, L1C, L2C, L5, Galileo E1, E1C, E5a, E5b, E5, or NavIC L5, S, L1 signals. Covers gpsWaveformGenerator, galileoWaveformGenerator, satelliteScenario, Doppler/delay from orbital dynamics or custom values, navigation data encoding with ephemeris, and RINEX integration. Triggers on: GPS waveform, Galileo waveform, NavIC waveform, GNSS signal, satellite scenario, GNSS simulation, receiver test signal, baseban
npx skills add matlab/matlab-agentic-toolkit --skill matlab-generate-gnss-waveform --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Generate multi-satellite GNSS baseband waveforms with properly encoded navigation data. Channel impairments (Doppler, delay, noise) can come from a realistic satellite scenario OR from user-specified custom values. Supports GPS, Galileo, and NavIC constellations. The waveform carries real ephemeris so a receiver can decode it for position estimation.
How it works
Follows a 6-step workflow:
- Step 0: Determine signal type, channel mode, and data source. Choose scenario-driven or custom values for Doppler/delay/SNR and select data source (RINEX or almanac) accordingly. Print a standalone configuration summary before code execution.
- Step 1: Configure waveform generator per constellation (gpsWaveformGenerator, galileoWaveformGenerator) with specified sample rate, center frequency, and bit duration. Validate stepTime against known values per constellation.
- Step 2: Set up satelliteScenario if in SCENARIO MODE. Create ground station, define wave duration, and add satellites using GPS Galile o/NavIC-specific methods. Use almanac by default unless RINEX is provided.
- Step 3: Compute channel parameters from physics (scenario mode) or skip to Step 3c in custom mode. Calculate dopShifts, ltncy, and snrs based on a link budget; verify visible satellites are present.
- Step 3c: In CUSTOM MODE, accept user-provided Doppler, delay, and/or SNR. Expand static values to a time-varying matrix if needed.
- Step 4: Encode navigation data. For real ephemeris, use the same data source as the scenario; for dummy data, generate random bits. When RINEX was used for orbit propagation, use matching RINEX-based nav encoding helpers. Constellation-specific nav data encoding patterns are invoked (GPS Almanac or RINEX, Galileo mappings, NavIC RINEX, etc.).
- Step 5: Generate waveform with channel. Both SCENARIO and CUSTOM modes converge here: configure HelperGNSSChannel with per-satellite Doppler, delay, and SNR; iterate over time steps to produce the waveform, updating channel parameters per step. NavIC uses a separate path with its own helpers. Verify waveform length and non-zero content.
When to use it
- For generating GNSS baseband signals (GPS, Galileo, NavIC) for receiver testing
- For simulating multi-satellite channels with Doppler and delay from orbital dynamics
- For testing with specific Doppler/delay/SNR values (custom channel mode)
- For end-to-end GNSS receiver simulations needing decodable navigation data
What it can touch
- gpsWaveformGenerator
- galileoWaveformGenerator
- satelliteScenario
- HelperAddGalileoSatellitesToScenario
- rinexread (when using RINEX paths)
- HelperGPSAlmanac2Config, HelperGPSNAVDataEncode, HelperGalileoNavigationData, HelperGPSRINEX2Config, HelperGNSSChannel, and related constellation-specific helpers
- NavIC-specific helpers (HelperNavICBBWaveform, HelperNavICRINEX2Config, HelperNavICRINEX2Config)
Caveats
- Compatibility requires >=R2026a. License information is listed as NOASSERTION.
- Not suited for signal acquisition, tracking loops, navigation decoding, or position estimation in some configurations (per the When NOT to Use guidance).
- NavIC handling differs between L5/S/L1 and may require RINEX toolbox availability. RINEX-based workflows rely on corresponding Navigation Toolbox presence.
- Before code generation, a standalone configuration summary must be printed and confirmed in interactive mode.
# Generate GNSS Waveform Generate multi-satellite GNSS baseband waveforms with properly encoded navigation data. Channel impairments (Doppler, delay, noise) can come from a realistic satellite scenario OR from user-specified custom values. Supports GPS, Galileo, and NavIC constellations. The waveform carries real ephemeris so a receiver can decode it for position estimation. ## When to Use - Generating GNSS baseband signals (GPS, Galileo, or NavIC) for receiver testing - Simulating multi-satellite channels with Doppler and delay from orbital dynamics - Testing with specific Doppler/delay/SNR values (custom channel mode) - Building end-to-end GNSS receiver simulations that need decodable nav data ## When NOT to Use - Signal acquisition, tracking loops, nav decoding, or position estimation - BeiDou/GLONASS (not supported) or SDR hardware transmission ## Prerequisites: Helper Files Copy helper files from MathWorks examples into your project folder. See `references/helper-files.md` for the full list of source examples and files to copy per constellation (GPS, Galileo, NavIC). ## Workflow The pipeline has 6 steps (0-5). Step 0 determines signal type, channel mode, and data source. The c
- When to Use
- When NOT to Use
- Prerequisites: Helper Files
- Workflow
- Step 0: Determine signal type, channel mode, and data source
- Step 1: Configure waveform generator (constellation-specific)
- Step 2: Set up satellite scenario (SCENARIO MODE ONLY)
- Step 3: Compute channel parameters from physics (SCENARIO MODE ONLY)
- Step 3c: Set up custom channel parameters (CUSTOM MODE ONLY)
- Step 4: Encode navigation data (BOTH MODES, constellation-specific)
- Step 5: Generate waveform with channel (BOTH MODES)
- Signal Type Quick Reference
- Verification (Scenario Mode Only)
- Key Functions
What does the matlab-generate-gnss-waveform skill do?
Generate GNSS baseband waveforms (GPS, Galileo, NavIC) with physically realistic or user-specified channel impairments using the Satellite Communications Toolbox. Use when generating GPS L1 C/A, L1C, L2C, L5, Galileo E1, E1C, E5a, E5b, E5, or NavIC L5, S, L1 signals. Covers gpsWaveformGenerator, galileoWaveformGenerator, satelliteScenario, Doppler/delay from orbital dynamics or custom values, navigation data encoding with ephemeris, and RINEX integration. Triggers on: GPS waveform, Galileo waveform, NavIC waveform, GNSS signal, satellite scenario, GNSS simulation, receiver test signal, baseban
How do I install it?
Run `npx skills add matlab/matlab-agentic-toolkit --skill matlab-generate-gnss-waveform --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From matlab/matlab-agentic-toolkit, a repository with 868 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
