Main Content

Model NR NTN Channel

This example shows how to model two types of New Radio (NR) non-terrestrial network (NTN) channels: a flat fading narrowband channel and a frequency selective fading tapped delay line (TDL) channel. These channels are defined in 3GPP TR 38.811 Section 6.7.1. and Section 6.9.2, respectively [1]. These channels are used to model different NTN deployment scenarios, covering both geo-synchronous orbit (GSO) satellites and non geo-synchronous orbit (NGSO) satellites.

Introduction

In this example, you generate the NTN channel model by generating path gains from a base channel model and then apply the Doppler shift due to satellite movement. The base channel model for the NTN flat fading narrowband channel is implemented per ITU-R P.681-11, which defines the propagation data for a land mobile-satellite (LMS) channel [4]. The base channel model for the NTN frequency selective TDL channel is implemented per 3GPP TR 38.901, which defines the terrestrial TDL channel [2].

The Doppler shift due to satellite movement depends on the satellite speed, 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

  • νsat is the satellite speed.

  • c is the speed of light.

  • R is the earth radius.

  • h is the satellite altitude.

  • αmodel is the satellite elevation angle.

  • fc is the carrier frequency.

To model an NTN narrowband or TDL channel, you need to set all the required channel parameters in addition to the parameters used for the base channel model. After defining all the channel parameters, construct a suitable base channel for the flat fading narrowband channel or frequency selective TDL channel. Generate the path gains from the base channel and apply a Doppler shift due to satellite movement to get the path gains of the NTN channel. Then, filter the input signal with the resultant path gains. The figure shows the workflow for generating the NTN channel.

Set NTN Channel Common Parameters

Set the common parameters required to model an NTN narrowband flat fading channel and NTN TDL channel. This example models a low Earth orbit (LEO) satellite moving at a speed of 7.5622 km/s and an altitude of 600 km that operates in the S-band. Assume a mobile or 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.SatelliteSpeed = 7562.2;             % In m/s
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;

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 the 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 common parameters in a new structure. This example configures an urban LMS scenario for the NTN narrowband channel.

% Initialize the NTN flat fading narrowband channel parameters in a
% structure
ntnNarrowbandParams = commonParams;
ntnNarrowbandParams.NTNChannelType = "Narrowband";
ntnNarrowbandParams.Environment = "Urban";
ntnNarrowbandParams.AzimuthOrientation = 0;
ntnNarrowbandParams.FadingTechnique = "Sum of sinusoids";

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

Get these building blocks of NTN flat fading narrowband channel by using the ntnNarrowbandParams structure and HelperSetupNTNChannel function.

  • Base channel ITU-R P.681-11 LMS System object™ with ChannelFiltering set to false

  • Doppler shift due to satellite movement

  • Channel filtering System object (comm.ChannelFilter) to get the filtered or faded waveform

ntnNarrowbandChan = HelperSetupNTNChannel(ntnNarrowbandParams)
ntnNarrowbandChan = struct with fields:
              ChannelName: "NTN narrowband with Urban environment"
              BaseChannel: [1x1 p681LMSChannel]
            ChannelFilter: [1x1 comm.ChannelFilter]
    SatelliteDopplerShift: 2.9637e+04
      MobileDopplerSpread: 5.5594

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.BaseChannel)
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 using the base channel ITU-R P.681-11 System object and Doppler shift due to the satellite movement. Then apply channel filtering to a random input signal using the resultant path gains.

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

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

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

Note that the state is maintained in the BaseChannel and ChannelFilter fields of the ntnNarrowbandChan structure. To realize the same outputs without reconstructing both the base channel and channel filter System objects, set the RandomStream property of the base channel to "mt19937ar with seed" and call the reset method of both the System objects.

Visualize NTN Narrowband Channel Received Spectrum

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

ntnNarrowbandAnalyzer = dsp.SpectrumAnalyzer( ...
    'SampleRate',ntnNarrowbandParams.SampleRate, ...
    'AveragingMethod','Exponential','ForgettingFactor',0.99);
ntnNarrowbandAnalyzer.Title = "Received Signal Spectrum " ...
    + ntnNarrowbandChan.ChannelName;
ntnNarrowbandAnalyzer.ShowLegend = true;
ntnNarrowbandAnalyzer.ChannelNames{1} = 'Rx Antenna 1';
ntnNarrowbandAnalyzer(narrowbandOut)

Figure Spectrum Analyzer contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object with title Received Signal Spectrum NTN narrowband with Urban environment contains an object of type line. This object represents Rx Antenna 1.

NTN TDL Channel

This example supports all 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 channel profiles NTN-TDL-A and NTN-TDL-B are defined for non-line-of-sight (NLOS) conditions. The channel profiles NTN-TDL-C and NTN-TDL-D are defined for line-of-sight (LOS) conditions. All four channel profiles are defined at an elevation angle of 50 degrees. The main differences between the NTN TDL channel [1] and terrestrial TDL channel [2] are:

  • NTN TDL channel accounts for Doppler shift due to satellite motion in addition to the Doppler shift due to mobile or user equipment (UE) movement.

  • NTN TDL channel delay profiles are different from the terrestrial TDL channel profiles, due to large propagation delays and different scattering environment.

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 the 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 common parameters in a new structure.

% Initialize the NTN TDL channel parameters in a structure
ntnTDLParams = commonParams;
ntnTDLParams.NTNChannelType = "TDL";
ntnTDLParams.DelayProfile = "NTN-TDL-A";
ntnTDLParams.DelaySpread = 30e-9;                          % In s
ntnTDLParams.TransmissionDirection = "Downlink";
ntnTDLParams.MIMOCorrelation = "Low";
ntnTDLParams.Polarization = "Co-Polar";
% Modify the below parameters, when DelayProfile is set to Custom
ntnTDLParams.PathDelays = 0;                               % In s
ntnTDLParams.AveragePathGains = 0;                         % In dB
ntnTDLParams.FadingDistribution = "Rayleigh";

% Set the antenna configuration
% Modify the below parameters, when MIMOCorrelation is set to a value other
% than Custom
ntnTDLParams.NumTransmitAntennas = 1;
ntnTDLParams.NumReceiveAntennas = 2;
% Modify the below parameters, when MIMOCorrelation is set to Custom and
% Polarization is set to Co-Polar or Cross-Polar
ntnTDLParams.TransmitCorrelationMatrix = 1;
ntnTDLParams.ReceiveCorrelationMatrix = [1 0; 0 1];
% Modify the below parameters, when MIMOCorrelation is set to Custom and
% Polarization is set to Cross-Polar
ntnTDLParams.TransmitPolarizationAngles = [45 -45];        % In degrees
ntnTDLParams.ReceivePolarizationAngles = [90 0];           % In degrees
ntnTDLParams.XPR = 10;                                     % In dB
% Modify the below parameters, when both MIMOCorrelation and Polarization
% are set to Custom
ntnTDLParams.SpatialCorrelationMatrix = [1 0; 0 1];

Get these building blocks of NTN frequency selective fading TDL channel by using the ntnTDLParams structure and HelperSetupNTNChannel function.

  • Base channel terrestrial TDL System object with DelayProfile set to "Custom" and ChannelFiltering set to false

  • Doppler shift due to satellite movement

  • Channel filtering System object (comm.ChannelFilter) to get the filtered or faded waveform

ntnTDLChan = HelperSetupNTNChannel(ntnTDLParams)
ntnTDLChan = struct with fields:
              ChannelName: "NTN TDL with NTN-TDL-A delay profile"
              BaseChannel: [1x1 nrTDLChannel]
            ChannelFilter: [1x1 comm.ChannelFilter]
    SatelliteDopplerShift: 2.9637e+04
      MobileDopplerSpread: 5.5594

Check that the channel is 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.BaseChannel)
tdlChanInfo = struct with fields:
          ChannelFilterDelay: 7
                  PathDelays: [0 3.2433e-08 8.5248e-08]
            AveragePathGains: [0 -4.6750 -6.4820]
             KFactorFirstTap: -Inf
         NumTransmitAntennas: 1
          NumReceiveAntennas: 2
    SpatialCorrelationMatrix: [2x2 double]

Generate NTN TDL Channel

Generate the path gains of the NTN frequency selective fading TDL channel using the base channel terrestrial TDL System object and the Doppler shift due to the satellite movement. Then apply channel filtering to a random input signal using the resultant path gains.

% Generate a random input
rng(commonParams.Seed);
in = complex(randn(commonParams.SampleRate,tdlChanInfo.NumTransmitAntennas), ...
    randn(commonParams.SampleRate,tdlChanInfo.NumTransmitAntennas));
% Generate the faded waveform for NTN TDL channel
[tdlOut,tdlPathGains,tdlSampleTimes] = HelperGenerateNTNChannel(ntnTDLChan,in);

Note that the state is maintained in the BaseChannel and ChannelFilter fields of the ntnTDLChan structure. To realize the same outputs without reconstructing both the base channel and channel filter System objects, set the RandomStream property of the base channel to "mt19937ar with seed" and call the reset method of both the System objects.

Visualize NTN TDL Channel Received Spectrum

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

ntnTDLAnalyzer = dsp.SpectrumAnalyzer('SampleRate',ntnTDLParams.SampleRate, ...
    'AveragingMethod','Exponential','ForgettingFactor',0.99);
ntnTDLAnalyzer.Title = "Received Signal Spectrum " ...
    + ntnTDLChan.ChannelName;
ntnTDLAnalyzer.ShowLegend = true;
for nRx = 1:size(tdlOut,2)
    ntnTDLAnalyzer.ChannelNames{nRx} = ['Rx Antenna ' num2str(nRx)];
end
ntnTDLAnalyzer(tdlOut)

Figure Spectrum Analyzer contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object with title Received Signal Spectrum NTN TDL with NTN-TDL-A delay profile contains 2 objects of type line. These objects represent Rx Antenna 1, Rx Antenna 2.

Further Exploration

You can use this example to further explore these options:

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

  • To analyze the NTN flat fading narrowband channel for another environment, change the Environment field of the ntnNarrowbandParams structure.

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

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

  • Try using the two NTN channel models used in the example in a link simulation and compute the link metric. For more information, see the NR NTN PDSCH Throughput example.

Appendix

The example uses these helper functions:

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.

Related Topics