Contenido principal

Model NR NTN Channel

This example shows how to model these New Radio (NR) non-terrestrial network (NTN) channels.

  • Flat fading channel, as defined in 3GPP TR 38.811 section 6.7.1 [1]

  • Frequency selective fading clustered delay line (CDL) channel, as defined in 3GPP TR 38.811 section 6.9.1 [1]

  • Frequency selective fading tapped delay line (TDL) channel, as defined in 3GPP TR 38.811 section 6.9.2 [1]

These channels model different NTN deployment scenarios, covering both geosynchronous orbit (GSO) satellites and non-geosynchronous orbit (NGSO) satellites.

Introduction

In this example, you generate the path gains of the NTN channel model by applying the Doppler shift due to satellite movement, to the path gains generated from a base channel model. The example implements the base channel model for each NTN channel model using these standards:

  • Flat fading narrowband channel — ITU-R P.681-11, which defines the propagation data for a land mobile-satellite (LMS) channel [4].

  • Frequency selective CDL channel — 3GPP TR 38.901 section 6.9.1, which defines the terrestrial CDL channel [2].

  • Frequency selective TDL channel — 3GPP TR 38.901 section 6.9.2, which defines the terrestrial TDL channel [2].

The Doppler shift due to satellite movement depends on the satellite orbit, elevation angle, and carrier frequency. The Doppler shift due to satellite motion fd,sat, as defined in 3GPP TR 38.811 section 6.7.1 and section 6.9.2 [1], is:

fd,sat=(νsatc)*(RR+hcos(αmodel))*fc

  • c is the speed of light (299792458ms).

  • R is the earth radius (6371000m).

  • h is the satellite altitude.

  • αmodel is the satellite elevation angle.

  • fc is the carrier frequency.

  • νsat is the satellite speed and is given byGM(R+h), where G is gravitational constant (6.6743*10-11m3kgs2) and M is mass of Earth (5.9722*1024kg).

This example uses:

  • dopplerShiftCircularOrbit function to calculate the Doppler shift due to satellite movement.

  • p681LMSChannel System object™ to model the NTN narrowband channel

  • nrCDLChannel System object™ to model the NTN CDL channel

  • nrTDLChannel System object™ to model the NTN TDL channel

Set NTN Channel Common Parameters

Set the common parameters required to model an NTN channel. This example models a low Earth orbit (LEO) satellite moving at an altitude of 600 km and is operating in the S-band. Assume a mobile or user equipment (UE) speed of 3 km/hr. These default parameters are from 3GPP TR 38.821 table 6.1.2-4 [3].

commonParams = struct;
commonParams.CarrierFrequency = 2e9;              % In Hz
commonParams.ElevationAngle = 50;                 % In degrees
commonParams.SatelliteAltitude = 600000;          % In m
commonParams.MobileAltitude = 0;                  % In m
commonParams.MobileSpeed = 3*1000/3600;           % In m/s
commonParams.SampleRate = 7680000;                % In Hz
% Set the random stream and seed, for reproducibility
commonParams.RandomStream = "mt19937ar with seed";
commonParams.Seed = 73;
% Set the number of sinusoids used in generation of Doppler spread
commonParams.NumSinusoids = 48;
% Calculate the Doppler shift due to satellite movement
satelliteDopplerShift = dopplerShiftCircularOrbit(...
    commonParams.ElevationAngle,commonParams.SatelliteAltitude,...
    commonParams.MobileAltitude,commonParams.CarrierFrequency);
% Calculate the maximum Doppler shift due to mobile movement
c = physconst("lightspeed");
mobileMaxDoppler = commonParams.MobileSpeed*commonParams.CarrierFrequency/c;

NTN Narrowband Channel

This example supports all the land-mobile satellite (LMS) scenarios available for the NTN flat fading narrowband channel, as defined in 3GPP TR 38.811 section 6.7.1 [1]. The LMS scenarios defined for S-band are:

  • Urban

  • Suburban

  • RuralWooded

  • Residential

The LMS scenarios defined for Ka-band are:

  • Suburban

  • RuralWooded

Follow these steps to model the NTN flat fading narrowband channel, as specified in 3GPP TR 38.811 section 6.7.1 [1].

  1. Set channel parameters specific to an NTN flat fading narrowband channel.

  2. Generate the NTN flat fading narrowband channel.

  3. Visualize the spectrum of the faded or filtered signal.

The NTN flat fading channel is used for narrowband single-input-single-output (SISO) simulations.

Set NTN Narrowband Channel Parameters

Set the NTN flat fading narrowband channel parameters using the defined common parameters and the parameters specific to NTN narrowband channel. This example configures an urban LMS scenario for the NTN narrowband channel.

% Initialize the NTN flat fading narrowband channel
ntnNarrowbandChan = p681LMSChannel;
ntnNarrowbandChan.SampleRate = commonParams.SampleRate;
ntnNarrowbandChan.CarrierFrequency = commonParams.CarrierFrequency;
ntnNarrowbandChan.ElevationAngle = commonParams.ElevationAngle;
ntnNarrowbandChan.MobileSpeed = commonParams.MobileSpeed;
ntnNarrowbandChan.SatelliteDopplerShift = satelliteDopplerShift;
ntnNarrowbandChan.RandomStream = commonParams.RandomStream;
ntnNarrowbandChan.Seed = commonParams.Seed;
ntnNarrowbandChan.Environment = "Urban";
ntnNarrowbandChan.AzimuthOrientation = 0;
ntnNarrowbandChan.FadingTechnique = "Sum of sinusoids";
ntnNarrowbandChan.NumSinusoids = commonParams.NumSinusoids;

% Set the below properties when Environment is set to Custom
if strcmpi(ntnNarrowbandChan.Environment,"Custom")
    ntnNarrowbandChan.StateDistribution = [3.0639 2.9108; 1.6980 1.2602];
    ntnNarrowbandChan.MinStateDuration = [10 6];
    ntnNarrowbandChan.DirectPathDistribution = [-1.8225 -15.4844; 1.1317 3.3245];
    ntnNarrowbandChan.MultipathPowerCoefficients = [-0.0481 0.9434; -14.7450 -1.7555];
    ntnNarrowbandChan.StandardDeviationCoefficients = [-0.4643 -0.0798; 0.3334 2.8101];
    ntnNarrowbandChan.DirectPathCorrelationDistance = [1.7910 1.7910];
    ntnNarrowbandChan.TransitionLengthCoefficients = [0.0744; 2.1423];
    ntnNarrowbandChan.StateProbabilityRange = [0.05 0.1; 0.95 0.9];
end

Get information about the P.681-11 LMS base channel model and check that the channel filter delay is 0 due to the flat fading nature of the channel.

p681ChannelInfo = info(ntnNarrowbandChan)
p681ChannelInfo = struct with fields:
                   PathDelays: 0
           ChannelFilterDelay: 0
    ChannelFilterCoefficients: 1
          NumSamplesProcessed: 0

Generate NTN Narrowband Channel

Generate the path gains of NTN flat fading narrowband channel and apply channel filtering to a random input signal using the resultant path gains.

% Generate a random input
rng(commonParams.Seed)
in = randn(commonParams.SampleRate,1,like=1i);

Generate the faded waveform for the NTN flat fading narrowband channel.

[narrowbandOut,narrowbandPathGains,narrowbandSampleTimes] = ...
    ntnNarrowbandChan(in);

Visualize NTN Narrowband Channel Received Spectrum

Plot the received spectrum of the faded signal from the NTN flat fading narrowband channel.

ntnNarrowbandAnalyzer = spectrumAnalyzer( ...
    SampleRate = ntnNarrowbandChan.SampleRate);
ntnNarrowbandAnalyzer.Title = "Received Signal Spectrum - NTN Narrowband Channel in " ...
    + string(ntnNarrowbandChan.Environment) + " Environment";
ntnNarrowbandAnalyzer.ShowLegend = true;
ntnNarrowbandAnalyzer.ChannelNames = "Rx Antenna 1";
ntnNarrowbandAnalyzer(narrowbandOut)

NTN CDL Channel

This example supports the four channel profiles of the NTN CDL channel defined in 3GPP TR 38.811 section 6.9.1 [1]. These four channel profiles are:

  • NTN-CDL-A

  • NTN-CDL-B

  • NTN-CDL-C

  • NTN-CDL-D

The 3GPP specification defines the NTN-CDL-A and NTN-CDL-B channel profiles for non-line-of-sight (NLOS) conditions, and the NTN-CDL-C and NTN-CDL-D channel profiles for line-of-sight (LOS) conditions. The specification defines all four channel profiles at an elevation angle of 50 degrees. These are the key distinguishing factors between the NTN CDL channel [1] and the terrestrial CDL channel [2], which primarily arise due to the large propagation delay and different scattering environment in NTN scenarios.

  • Angle of departure — In the NTN CDL channel, the azimuth angle of departure and zenith angle of departure from the satellite (the transmitter) are the same for all clusters, whereas, in the terrestrial CDL channel, these angles can differ for each cluster.

  • Angular spread — In the NTN CDL channel, the azimuth spread of departure and zenith spread of departure from the satellite are zero. This means that you can effectively represent all departure rays using a single departure ray. In contrast, the terrestrial CDL channel has non-zero angular spreads.

  • Doppler shift — The NTN CDL channel accounts for the time evolution of Doppler shift caused by both satellite motion and UE movement. The terrestrial CDL channel, however, considers only the Doppler shift due to UE movement.

  • Delay profile — The NTN CDL channel delay profiles contain fewer clusters compared to those of the terrestrial CDL channel.

Follow these steps to model the NTN frequency selective fading CDL channel, as specified in 3GPP TR 38.811 section 6.9.1 [1].

  1. Set channel parameters specific to the NTN frequency selective fading CDL channel.

  2. Generate the NTN frequency selective fading CDL channel.

  3. Visualize the spectrum of the faded or filtered signal.

Set NTN CDL Channel Parameters

Set the NTN frequency selective fading CDL channel parameters using the defined common parameters and the parameters specific to the NTN CDL channel. By default, this example models a downlink channel (in which the satellite is the transmitter and the UE is the receiver). To model an uplink channel, use the swapTransmitAndReceive function to reverse the link direction of nrCDLChannel before calling the step function.

% Initialize the NTN CDL channel
ntnCDLChan = nrCDLChannel;
ntnCDLChan.DelayProfile = "NTN-CDL-A";
ntnCDLChan.DelaySpread = 30e-9;                                   % In s
ntnCDLChan.SatelliteElevationAngle = commonParams.ElevationAngle;
ntnCDLChan.CarrierFrequency = commonParams.CarrierFrequency;
ntnCDLChan.SampleRate = commonParams.SampleRate;
ntnCDLChan.RandomStream = commonParams.RandomStream;
ntnCDLChan.Seed = commonParams.Seed;

% Set the antenna configuration
% The number of elements of an array is the product of all the elements in
% the Size field. Size is a five-element vector of form [M N P Mg Ng],
% where M is the number of rows in the antenna array, N is the number of
% columns in the antenna array, P is the number of polarizations, and Mg
% and Ng are the number of rows and columns of the array panels,
% respectively. The Element field defines the antenna element in the array.
ntnCDLChan.TransmitAntennaArray.Size = [1 1 1 1 1];
ntnCDLChan.TransmitAntennaArray.PolarizationAngles = 0;
ntnCDLChan.TransmitAntennaArray.Element = "38.901";
ntnCDLChan.ReceiveAntennaArray.Size = [1 1 2 1 1];
ntnCDLChan.ReceiveAntennaArray.PolarizationAngles = [45 -45];
ntnCDLChan.ReceiveAntennaArray.Element = "isotropic";

Use the info object function to observe the path delays, average path gains, arrival angles, departure angles, and the K-factor first tap value. Use this information to verify that the channel has been configured for the defined NTN channel delay profile and delay spread.

cdlChanInfo = info(ntnCDLChan)
cdlChanInfo = struct with fields:
    KFactorFirstCluster: -Inf
           ClusterTypes: {'NLOS'  'NLOS'  'NLOS'}
             PathDelays: [0 3.2433e-08 8.5248e-08]
       AveragePathGains: [0 -4.6750 -6.4820]
              AnglesAoD: [0 0 0]
              AnglesAoA: [178.8000 -115.7000 111.5000]
              AnglesZoD: [140 140 140]
              AnglesZoA: [35.6000 22.9000 127.4000]
    ClusterAngleSpreads: [0 15 0 7]
                    XPR: 10
    NumTransmitAntennas: 1
        NumInputSignals: 1
     NumReceiveAntennas: 2
       NumOutputSignals: 2
     ChannelFilterDelay: 7
    MaximumChannelDelay: 8

Use the MaximumDopplerShift and UTDirectionOfTravel properties to model Doppler shift in the NTN CDL channel.

  • The Doppler shift due to satellite motion is translated as a frequency shift, as there is no spread in departure angles. Set the second element of the MaximumDopplerShift property to the Doppler shift caused by satellite motion. Then, set the second column of the UTDirectionOfTravel property to the corresponding departure angles.

  • The movement of the UE introduces a Doppler or frequency spread due to a scattering environment. To model the frequency spread, set the first element of the MaximumDopplerShift property to the maximum Doppler shift due to UE movement. Then, specify the first column of the UTDirectionOfTravel property to define the direction of UE movement.

ntnCDLChan.MaximumDopplerShift = [mobileMaxDoppler satelliteDopplerShift];
ntnCDLChan.UTDirectionOfTravel = [0 cdlChanInfo.AnglesAoD(1); 90 cdlChanInfo.AnglesZoD(1)];
% Orient the transmit beam in the direction of the departure angle
ntnCDLChan.TransmitArrayOrientation = [cdlChanInfo.AnglesAoD(1); cdlChanInfo.AnglesZoD(1)-90; 0];

Generate NTN CDL Channel

Generate the path gains of the NTN frequency selective fading CDL channel, and apply channel filtering to a random input signal using the resultant path gains.

% Generate a random input
rng(commonParams.Seed)
in = randn(commonParams.SampleRate,cdlChanInfo.NumTransmitAntennas,like=1i);

Generate the faded waveform for the NTN CDL channel.

[cdlOut,cdlPathGains,cdlSampleTimes] = ntnCDLChan(in);

Visualize NTN CDL Channel Received Spectrum

Plot the received spectrum of the faded signal from the NTN frequency selective fading CDL channel.

ntnCDLAnalyzer = spectrumAnalyzer(SampleRate = ntnCDLChan.SampleRate);
ntnCDLAnalyzer.Title = "Received Signal Spectrum - NTN CDL Channel with " ...
    + string(ntnCDLChan.DelayProfile) + " Delay Profile";
ntnCDLAnalyzer.ShowLegend = true;
for nRx = 1:size(cdlOut,2)
    ntnCDLAnalyzer.ChannelNames{nRx} = "Rx Antenna " + nRx;
end
ntnCDLAnalyzer(cdlOut)

NTN TDL Channel

This example supports the four channel profiles of the NTN TDL channel defined in 3GPP TR 38.811 section 6.9.2 [1]. These four channel profiles are:

  • NTN-TDL-A

  • NTN-TDL-B

  • NTN-TDL-C

  • NTN-TDL-D

The 3GPP specification defines the NTN-TDL-A and NTN-TDL-B channel profiles for NLOS conditions, and the NTN-TDL-C and NTN-TDL-D channel profiles for LOS conditions. The specification defines all four channel profiles at an elevation angle of 50 degrees. These are the key distinguishing factors between the NTN TDL channel [1] and the terrestrial TDL channel [2], which primarily arise due to the large propagation delay and different scattering environment in NTN scenarios.

  • Doppler shift — The NTN TDL channel accounts for the time evolution of Doppler shift caused by both satellite motion and UE movement. The terrestrial TDL channel, however, considers only the Doppler shift due to UE movement.

  • Delay profile — The NTN TDL channel delay profiles contain fewer clusters compared to those of the terrestrial TDL channel.

Follow these steps to model the NTN frequency selective fading TDL channel, as specified in 3GPP TR 38.811 section 6.9.2 [1].

  1. Set channel parameters specific to the NTN frequency selective fading TDL channel.

  2. Generate the NTN frequency selective fading TDL channel.

  3. Visualize the spectrum of the faded or filtered signal.

Set NTN TDL Channel Parameters

Set the NTN frequency selective fading TDL channel parameters using the defined common parameters and the parameters specific to the NTN TDL channel. By default, this example models a downlink channel (in which the satellite is the transmitter and the UE is the receiver). To model an uplink channel, use the swapTransmitAndReceive function to reverse the link direction of nrTDLChannel before calling the step function.

% Initialize the NTN TDL channel
ntnTDLChan = nrTDLChannel;
ntnTDLChan.DelayProfile = "NTN-TDL-A";
ntnTDLChan.DelaySpread = 30e-9;                          % In s
ntnTDLChan.TransmissionDirection = "Downlink";
ntnTDLChan.MIMOCorrelation = "Low";
ntnTDLChan.Polarization = "Co-Polar";
ntnTDLChan.SampleRate = commonParams.SampleRate;
ntnTDLChan.MaximumDopplerShift = mobileMaxDoppler;
ntnTDLChan.SatelliteDopplerShift = satelliteDopplerShift;
ntnTDLChan.RandomStream = commonParams.RandomStream;
ntnTDLChan.Seed = commonParams.Seed;

% Set the antenna configuration

% Specify these properties, when MIMOCorrelation is a value other than
% Custom
if ~strcmpi(ntnTDLChan.MIMOCorrelation,"Custom")
    ntnTDLChan.NumTransmitAntennas = 1;
    ntnTDLChan.NumReceiveAntennas = 2;
else
    % Specify these properties, when MIMOCorrelation is Custom and
    % Polarization is Co-Polar or Cross-Polar
    if any(strcmpi(ntnTDLChan.Polarization,["Co-Polar","Cross-Polar"]))
        ntnTDLChan.TransmitCorrelationMatrix = 1;
        ntnTDLChan.ReceiveCorrelationMatrix = [1 0; 0 1];
    end
    % Specify these properties, when MIMOCorrelation is Custom and
    % Polarization is Cross-Polar
    if strcmpi(ntnTDLChan.Polarization,"Cross-Polar")
        ntnTDLChan.TransmitPolarizationAngles = [45 -45];        % In degrees
        ntnTDLChan.ReceivePolarizationAngles = [90 0];           % In degrees
        ntnTDLChan.XPR = 10;                                     % In dB
    end
    % Specify this property, when both MIMOCorrelation and Polarization are
    % Custom
    if strcmpi(ntnTDLChan.Polarization,"Custom")
        ntnTDLChan.SpatialCorrelationMatrix = [1 0; 0 1];
    end
end

Check that the channel has been configured for the defined NTN channel delay profile and delay spread by calling the object function info to observe the path delays, average path gains, and K-factor first tap value.

tdlChanInfo = info(ntnTDLChan)
tdlChanInfo = struct with fields:
          ChannelFilterDelay: 7
         MaximumChannelDelay: 8
                  PathDelays: [0 3.2433e-08 8.5248e-08]
            AveragePathGains: [0 -4.6750 -6.4820]
             KFactorFirstTap: -Inf
         NumTransmitAntennas: 1
          NumReceiveAntennas: 2
    SpatialCorrelationMatrix: [2×2 double]

Generate NTN TDL Channel

Generate the path gains of the NTN frequency selective fading TDL channel, and apply channel filtering to a random input signal using the resultant path gains.

% Generate a random input
rng(commonParams.Seed)
in = randn(commonParams.SampleRate,tdlChanInfo.NumTransmitAntennas,like=1i);

Generate the faded waveform for the NTN TDL channel.

[tdlOut,tdlPathGains,tdlSampleTimes] = ntnTDLChan(in);

Visualize NTN TDL Channel Received Spectrum

Plot the received spectrum of the faded signal from the NTN frequency selective fading TDL channel.

ntnTDLAnalyzer = spectrumAnalyzer(SampleRate = ntnTDLChan.SampleRate);
ntnTDLAnalyzer.Title = "Received Signal Spectrum - NTN TDL Channel with " ...
    + string(ntnTDLChan.DelayProfile) + " Delay Profile";
ntnTDLAnalyzer.ShowLegend = true;
for nRx = 1:size(tdlOut,2)
    ntnTDLAnalyzer.ChannelNames{nRx} = "Rx Antenna " + nRx;
end
ntnTDLAnalyzer(tdlOut)

Further Exploration

You can use this example to further explore these options:

  • To configure and analyze the NTN narrowband, TDL, or CDL channels for other satellite orbits, change the SatelliteAltitude field of the commonParams structure.

  • To analyze the NTN flat fading narrowband channel for another environment, change the Environment property of the p681LMSChannel.

  • To analyze the NTN TDL channel for LOS delay profiles, change the DelayProfile property of the nrTDLChannel to NTN-TDL-C or NTN-TDL-D.

  • To configure the NTN TDL channel for multiple antennas, change the MIMOCorrelation and Polarization properties of the nrTDLChannel. You might need to set other properties depending on these values.

  • To analyze the NTN CDL channel for LOS delay profiles with multiple antennas, set the DelayProfile property of nrCDLChannel to NTN-CDL-C or NTN-CDL-D, and adjust the Size field of the TransmitAntennaArray or ReceiveAntennaArray property.

  • Use the NTN channel models in a link simulation to compute the link metric. For more information, see the NR NTN PDSCH Throughput example.

References

[1] 3GPP TR 38.811. "Study on new radio (NR) to support non-terrestrial networks." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[2] 3GPP TR 38.901. "Study on channel model for frequencies from 0.5 to 100 GHz." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[3] 3GPP TR 38.821. "Solutions for NR to support non-terrestrial networks (NTN)." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[4] ITU-R Recommendation P.681-11 (08/2019). "Propagation data required for the design systems in the land mobile-satellite service." P Series; Radio wave propagation.

See Also

Topics