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, , as defined in 3GPP TR 38.811 Section 6.7.1 and Section 6.9.2 [1], is:
is the satellite speed.
is the speed of light.
is the earth radius.
is the satellite altitude.
is the satellite elevation angle.
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].
Set the channel parameters specific to an NTN flat fading narrowband channel.
Generate the NTN flat fading narrowband channel.
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 falseDoppler 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 = spectrumAnalyzer( ... SampleRate = ntnNarrowbandParams.SampleRate); ntnNarrowbandAnalyzer.Title = "Received Signal Spectrum " ... + ntnNarrowbandChan.ChannelName; ntnNarrowbandAnalyzer.ShowLegend = true; ntnNarrowbandAnalyzer.ChannelNames = "Rx Antenna 1"; ntnNarrowbandAnalyzer(narrowbandOut)
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].
Set the channel parameters specific to the NTN frequency selective fading TDL channel.
Generate the NTN frequency selective fading TDL channel.
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" andChannelFiltering
set to falseDoppler 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
MaximumChannelDelay: 8
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 = spectrumAnalyzer(SampleRate = ntnTDLParams.SampleRate); ntnTDLAnalyzer.Title = "Received Signal Spectrum " ... + ntnTDLChan.ChannelName; 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 or TDL channels for other satellite orbits, change the
SatelliteAltitude
andSatelliteSpeed
fields of thecommonParams
structure.To analyze the NTN flat fading narrowband channel for another environment, change the
Environment
field of thentnNarrowbandParams
structure.To analyze the NTN TDL channel for LOS delay profiles, change the
DelayProfile
field of thentnTDLParams
structure to NTN-TDL-C or NTN-TDL-D.To configure the NTN TDL channel for multiple antennas, change the
MIMOCorrelation
andPolarization
fields of thentnTDLParams
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:
HelperGenerateNTNChannel — Generate NTN channel
HelperSetupNTNChannel — Set up NTN channel
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.