Agent skill · Testing & QA

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

matlabgithub.com/matlabGitHub ↗
claude-codecodexcopilotNOASSERTION
Install
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.

Facts
Files in the skill folder: 9
SKILL.md size: 20 KB
Bundled scripts: none
Version: 1.0
Declared author: MathWorks
Requires: >=R2026a
Path: skills-catalog/wireless-communications/matlab-generate-gnss-waveform/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 868
Language: MATLAB

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

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.
From the SKILL.md

# 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

What's inside
Steps it walks through
  1. When to Use
  2. When NOT to Use
  3. Prerequisites: Helper Files
  4. Workflow
  5. Step 0: Determine signal type, channel mode, and data source
  6. Step 1: Configure waveform generator (constellation-specific)
  7. Step 2: Set up satellite scenario (SCENARIO MODE ONLY)
  8. Step 3: Compute channel parameters from physics (SCENARIO MODE ONLY)
  9. Step 3c: Set up custom channel parameters (CUSTOM MODE ONLY)
  10. Step 4: Encode navigation data (BOTH MODES, constellation-specific)
  11. Step 5: Generate waveform with channel (BOTH MODES)
  12. Signal Type Quick Reference
  13. Verification (Scenario Mode Only)
  14. Key Functions
Ships with 8 files
  • manifest.yaml
  • references/galileo-pipeline.md
  • references/gps-pipeline.md
  • references/helper-files.md
  • references/navic-pipeline.md
  • references/physical-constraints.md
  • references/rinex-integration.md
  • references/signal-type-mapping.md
More from matlab-agentic-toolkit
All skills →
About this skill
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.

Keep going