Contenido principal

navicWaveformGenerator

R2026b

Generate NavIC waveforms (L1-SPS, L5-SPS, and S-SPS)

Since R2026b

Description

The navicWaveformGenerator System object™ creates a Navigation with Indian Constellation (NavIC) waveform generator that supports these NavIC standard positioning service (SPS) waveforms.

  • L1-SPS

  • L5-SPS

  • S-SPS

Note

When you set the SignalType property to "L1-SPS", the first call to the object prompts you to download the required NavIC L1 initial conditions dataset. After MATLAB® downloads and extracts the dataset to prefdir, the object uses the local files for subsequent calls that generate L1-SPS waveforms.

To create a NavIC waveform generator:

  1. Create the navicWaveformGenerator object and set its properties.

  2. Call the object with arguments, as if it were a function.

To learn more about how System objects work, see What Are System Objects?

Creation

Description

navicWaveObj = navicWaveformGenerator creates a default NavIC waveform generator System object.

example

navicWaveObj = navicWaveformGenerator(PropertyName=Value) sets writable properties using one or more name-value arguments. For example, SampleRate=20e6 sets the sample rate of the generated NavIC waveform to 20e6 hertz.

Properties

expand all

Unless otherwise indicated, properties are nontunable, which means you cannot change their values after calling the object. Objects lock when you call them, and the release function unlocks them.

If a property is tunable, you can change its value at any time.

For more information on changing property values, see System Design in MATLAB Using System Objects.

Type of signal to generate, specified as "L5-SPS", "L1-SPS", or "S-SPS". The input is not case-sensitive.

Data Types: char | string

Satellite pseudo-random noise (PRN) index, specified as one of these options.

  • Integer in the range [1, 64] — Input a PRN index for a single satellite.

  • Vector of integers in the range [1, 64] — Input PRN indices for multiple satellites.

Note

When you set the SignalType property to "L5-SPS" or "S-SPS", each value of PRNID must be in the range [1, 14].

Data Types: double | uint8

Initial time, in seconds, specified as a real scalar in the range [0, 604799]. The property indicates the initial time to start generating the waveform, and must be within one week.

Data Types: double

Sample rate for the signal, in hertz, specified as a scalar. This property specifies the sample rate of the signal output by the step object function.

Data Types: double

This property is read-only.

Duration of one bit in NavIC navigation data, in seconds, represented as one of these values.

  • 10e-3 — Applies when the SignalType property is set to "L1-SPS".

  • 20e-3 — Applies when the SignalType property is set to "L5-SPS" or "S-SPS".

Data Types: double

This property is read-only.

Chip rate of the spreading code, in hertz, represented as 1.023e6 for all signal types.

Data Types: double

Usage

Description

waveform = navicWaveObj(navdata) generates the time-domain NavIC waveform.

Input Arguments

expand all

Navigation bits, specified as one of these options.

  • Scalar — Use this option for a single satellite with a single navigation bit.

  • Vector — Use this option for multiple satellites wit one navigation bit or multiple navigation data bits for one satellite. When specified as a row vector, each column represents the satellite at the corresponding index of the PRNID property. When specified as a column vector, each element is a navigation data bit to use to generate the waveform, specified for a single satellite.

  • Matrix — Use this option for multiple satellites with multiple navigation data bits. The matrix must be of size N-by-length(PRNID), where N is the number of navigation data bits to use to generate the waveform.

The elements of the navigation bits must be binary, irrespective of the input format.

Data Types: double | int8 | logical

Output Arguments

expand all

Generated NavIC waveform, returned as a vector or a matrix.

This expression gives the size of the generated waveform.

(round(BitDuration * SampleRate) * N) * length(PRNID).

N is the number of navigation data bits to use to generate the waveform and is equal to size(navdata, 1).

Data Types: double
Complex Number Support: Yes

Object Functions

To use an object function, specify the System object as the first input argument. For example, to release system resources of a System object named obj, use this syntax:

release(obj)

expand all

infoCharacteristic information about object

expand all

stepRun System object algorithm
releaseRelease resources and allow changes to System object property values and input characteristics
resetReset internal states of System object
cloneCreate duplicate System object
isLockedDetermine if System object is in use

Examples

collapse all

Generate a NavIC L1-SPS waveform for two satellites.

When you set the SignalType property to L1-SPS, the first call to the object prompts you to download the required NavIC L1 initial conditions dataset. After MATLAB downloads and extracts the dataset to prefdir, the object uses the local files for subsequent calls that generate L1-SPS waveforms.

Specify the PRN IDs of the two satellites.

prn = [1 5];

Create and set the properties of a NavIC waveform generation System object.

navwavegen = navicWaveformGenerator(PRNID=prn, ...
    SignalType="L1-SPS");

Specify the number of navigation bits to form the navigation data.

numNavBits = 10;
navdata = randi([0,1],numNavBits,length(navwavegen.PRNID));

Generate a NavIC L1 waveform.

waveform = navwavegen(navdata);
size(waveform)
ans = 1×2

    1023000    2

Visualize the spectrum of the waveform.

scope = spectrumAnalyzer(SampleRate=navwavegen.SampleRate, ...
             Title="NavIC L1 Spectrum",SpectrumType="Power");
scope(waveform);

References

[1] Indian Space Research Organisation (ISRO). Signal-In-Space Interface Control Document (ICD) for NavIC Service on L1 Frequency. ISRO-NavIC-SIS-ICD-L1-V1.0. ISRO, August 2023.

[2] Indian Space Research Organisation (ISRO). Indian Regional Navigation Satellite System Signal in Space ICD for Standard Positioning Service. ISRO-IRNSS-ICD-SPS-V1.1. ISRO, August 2017.

Extended Capabilities

expand all

Version History

Introduced in R2026b