Contenido principal

ionosphericOffset

R2026b

Compute ionospheric propagation delay

Since R2026b

    Description

    ionoOffset = ionosphericOffset(rxpos,satposECEF,time,ionoparms) computes the ionospheric propagation delay ionoOffset along the line-of-sight between a receiver and a satellite. rxpos is the receiver position in geographic coordinates and satposECEF is the satellite position in Earth-centered Earth-fixed (ECEF) coordinates. time specifies the actual time at which the ionosphericOffset function calculates the ionospheric delay. ionoparms specifies the ionospheric model coefficients or sunspot number required for delay computation.

    example

    ionoOffset = ionosphericOffset(rxpos,satposECEF,time,ionoparms,Name=Value) specifies options using one or more name-value pair arguments. For example, Model="klobuchar-gps" selects the Klobuchar ionospheric model as the correction algorithm to use for computing delay in the Global Positioning System (GPS) constellation.

    Examples

    collapse all

    Specify the receiver position in geographic coordinates.

    rxpos = [37.4 -122.1 10];

    Specify the positions of the three visible satellites in ECEF coordinates.

    satposECEF = 1.0e+07 * [2.4235 1.3992 1.0171; ...
                            2.1929 0.0000 1.9716; ...
                            1.9172 0.4780 1.7762];

    Specify the time of observation and ionospheric model coefficients to compute the ionospheric delay.

    time = datetime(2026,3,25,12,0,0);
    ionoparams = rand(1,8);

    Calculate the ionospheric delay for the three satellites using the Klobuchar GPS correction model with output in meters.

    ionoOffset = ionosphericOffset(rxpos,satposECEF,time,ionoparams, ...
    Model="klobuchar-gps",OutputUnit="meters");

    Specify the positions of the receiver and four visible satellites.

    rxpos = [0 13 50];
    satposECEF = 1.0e+07 * [2.4235 1.3992 1.0171; ... % Four visible satellites
                            2.5719 0.8357 0.9297; ...
                            1.9172 0.4780 1.7762; ...
                            2.1929 0.0000 1.9716];

    Specify the time of observation and ionospheric model coefficients to compute the ionospheric delay.

    time = datetime("now",TimeZone="UTC");
    ionoparms = [2.580271 0.127628236 0.0252748384];  

    Calculate the ionospheric delay for the four visible satellites using the NeQuick-G correction model with output in TEC units.

    ionoOffset = ionosphericOffset(rxpos,satposECEF,time,ionoparms, ...
        Model="nequick-g",OutputUnit="tecu",CarrierFrequency=1575.42e6)
    ionoOffset = 4×1
    
        4.6760
        4.0447
        6.4918
        6.0804
    
    

    Input Arguments

    collapse all

    Receiver position in geographic coordinates, specified as a three-element row vector of the form [latitude longitude height]. Specify latitude, in degrees, in the range [–90, 90], longitude, in degrees, in the range [–180, 180], and height as a real scalar in meters.

    Data Types: double

    Satellite position in ECEF coordinates, specified as one of these options.

    • Three-element row vector — Use this option to specify the position of one visible satellite.

    • N-by-3 matrix — Use this option to specify the position of N visible satellites where N is a positive integer. Each row specifies the ECEF coordinates of one visible satellite.

    Data Types: double

    Time of observation used to compute the ionospheric delay, specified as one of these options.

    • datetime object — Specifies the time as a standard date-time representation including date and time information in the UTC time zone.

    • Structure — Specifies the time as a structure with two fields.

      • WeekNumber — Global navigation satellite system (GNSS) week number corresponding to the chosen constellation system, specified as a nonnegative integer.

      • TimeofWeek — Time within the specified week, in seconds, specified as a real scalar in the range [0, 604,800), where 604,800 is the total number of seconds in a week.

    Data Types: struct | datetime

    Ionospheric model coefficients or sunspot number used to compute the ionospheric delay, specified as a P-by-M matrix. The interpretation of ionoparms depends on the value specified for the name-value argument Model.

    • P represents the number of visible satellites.

      • If you set P = 1, the function applies the same set of coefficients to all satellites.

      • If you set P = N, where N is the number of visible satellites, the ith row of the matrix corresponds to the ith satellite.

    • M represents the coefficients per satellite and depends on the value specified for the name-value argument Model. Valid values of M are {1, 3, 8, 9}.

    This table describes how the interpretation and structure of ionoparms varies based on the value specified for the Model name-value argument.

    Value of MStructure of MApplicable Model Values
    1

    Specifies the solar sunspot number.

    "nequick-2"

    When you specify ionoparms as a P-by-1 matrix without explicitly specifying the Model argument, the function automatically applies the NeQuick-2 model.

    3

    Specifies three coefficients [a0, a1, a2].

    "nequick-g", "ntcm-g", or "nequick-n"

    When you specify ionoparms as a P-by-3 matrix without explicitly specifying the Model argument, the function automatically applies the NeQuick-G model.

    8

    Specifies eight coefficients [Alpha0, Alpha1, Alpha2, Alpha3, Beta0, Beta1, Beta2, Beta3].

    "klobuchar-gps", "klobuchar-beidou", or "klobuchar-navic"

    When you specify ionoparms as a P-by-8 matrix without explicitly specifying the Model argument, the function automatically applies the Klobuchar-GPS model.

    9

    Specifies nine coefficients [a0, a1, a2, a3, a4, a5, a6, a7, a8].

    "beidou"

    When you specify ionoparms as a P-by-9 matrix without explicitly specifying the Model argument, the function automatically applies the BeiDou model.

    Note

    For information on how the function processes the MODIP and CCIR files of NeQuick-2, NeQuick-G, and NeQuick-N models, see the Tips section.

    Data Types: double

    Name-Value Arguments

    collapse all

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Example: ionosphericOffset(rxpos,satECEF,time, ionoparms,Model="nequick-n") specifies NeQuick-N as the ionospheric correction model used to compute the delay.

    Ionospheric correction model used to compute the delay, specified as one of these options.

    • "klobuchar-gps" — Specifies a Klobuchar model for GPS.

    • "klobuchar-beidou" — Specifies a Klobuchar model for the BeiDou system.

    • "klobuchar-navic" — Specifies a Klobuchar model for the Navigation with Indian Constellation (NavIC) system.

    • "nequick-g" — Specifies a NeQuick-G model for the Galileo system.

    • "ntcm-g" — Specifies an NTCM-G model for Galileo system.

    • "nequick-n" — Specifies a NeQuick-N model for NavIC system.

    • "beidou" — Specifies a BeiDou-specific ionospheric model.

    • "nequick-2" — Specify to calculate ionospheric delay based on a solar sunspot number.

    Note

    This function does not automatically detect GNSS constellations. If you want a specific Klobuchar variant (NavIC, GPS, or BeiDou), specify Model explicitly.

    All models require a direct line-of-sight (LOS) between the receiver and the satellite. If a LOS is not present, the function returns NaN.

    Data Types: char | string

    Carrier frequency of the GNSS signal used to compute the ionospheric delay, specified as a real scalar in the range (1000e6, 4000e6). Units are in hertz.

    Data Types: double

    Type of output the function calculates and returns, specified as one of these options.

    • "meters" — Outputs the ionospheric offset distance along the signal path, in meters. This value represents the additional path length caused by ionospheric delay.

    • "seconds" — Outputs the signal delay caused by the ionosphere, in seconds.

    • "tecu" — Outputs the total electron content (TEC) along the signal path, in TEC units (TECU), where 1 TECU = 1016 electrons/m2.

    While all models can output in meters or seconds, to specify this argument as "tecu", you must specify Model as one of these values:

    • "nequick-g"

    • "ntcm-g"

    • "nequick-n"

    • "beidou"

    • "nequick-2""

    Data Types: char | string

    Output Arguments

    collapse all

    Ionospheric delay computation, returned as an N-by-1 column vector where N is the number of visible satellites. The returned values depends on the values specified to the Model and OutputUnit arguments.

    Data Types: double

    Tips

    • nequickData.mat — This MAT file contains the MODIP and CCIR files required for the NeQuick correction algorithm. The MAT file has been sourced from the European GNSS (Galileo) Open Service: Ionospheric Correction Algorithm for Galileo Single Frequency User specification [9].

    • Model dependencies — When you specify the Model argument as "nequick-2", "nequick-g", or "nequick-n", the function requires both MODIP and CCIR files.

      • By default, the NeQuick-G model uses nequickData.mat. To use custom MODIP and CCIR data, you must follow these naming conventions.

        • MODIP file — Rename your file to modipNeQG_wrapped.txt.

        • CCIR Files — You must provide 12 files named sequentially from ccir11.txt to ccir22.txt.

        • Place all files in your current path.

        If any filename is incorrect or missing, the model defaults back to nequickData.mat.

      • For the NeQuick-2 and NeQuick-N models, the function defaults to the nequickData.mat file to compute the ionospheric delay if model-specific MODIP and CCIR files are not present on the path.

        Note

        Using nequickData.mat with the NeQuick-2 or NeQuick-N model can result in some variation in the computed delay as compared to using model-specific MODIP and CCIR files.

    References

    [1] Science Applications International Corporation (SAIC). NAVSTAR GPS Space Segment/Navigation User Segment Interfaces. IS-GPS-200N. El Segundo, CA: SAIC, August 22, 2022.

    [2] China Satellite Navigation Office. BeiDou Navigation Satellite System Signal in Space Interface Control Document Open Service Signal B3I (Version 1.0). China Satellite Navigation Office, February, 2018.

    [3] Indian Space Research Organization. Indian Regional Navigation Satellite System Signal in Space ICD for Standard Positioning Service Version 1.1. ISRO-IRNSS-ICD-SPS-1.1. Bangalore, IN: ISRO Satellite Centre, August, 2017.

    [4] China Satellite Navigation Office. BeiDou Navigation Satellite System Signal in Space Interface Control Document Open Service Signal B2a (Version 1.0). China Satellite Navigation Office, December, 2017.

    [5] International Telecommunication Union Radiocommunication Sector. Ionospheric Propagation Data and Prediction Methods Required for the Design of Satellite Networks and Systems. Recommendation ITU-R P.531-16 P Series: Radiowave Propagation. Geneva, CHE: ITU, September, 2025.

    [6] "Ionospheric Correction User Algorithm Using NeQuick-NavIC (NeQuick-N) Model for NavIC Single Frequency Users." Version 1.0. 2023.

    [7] European GNSS (Galileo) Open Service, Issue 1.0. "NTCM-G Ionospheric Model Description." May, 2022.

    [8] Navipedia. "Time References in GNSS." Accessed April 10, 2026.

    [9] European GNSS (Galileo) Open Service, Version 1.2. "Ionospheric Correction Algorithm for Galileo Single Frequency User." September, 2016.

    Extended Capabilities

    expand all

    Version History

    Introduced in R2026b