STK ObjectsSend comments on this topic.
IAgReceiverModelSimple Interface

Description

Provides access to the properties and methods defining a simple receiver model.

Public Methods

Public Method SetDemodulatorSets the current demodulator model by name.
Public Method SetFilterSets the current filter model by name.
Public Method SetPolarizationTypeSets the current polarization type.

Public Properties

Public Property AutoScaleBandwidthGets or set the auto scale bandwidth option.
Public Property AutoSelectDemodulatorGets or set the auto select demodulator option.
Public Property AutoTrackFrequencyGets or set the auto track frequency option.
Public Property BandwidthGets or set the bandwidth.
Public Property DemodulatorGets the current demodulator model.
Public Property EnableFilterGets or set the flag determines whether or not to enable the Filter.
Public Property EnablePolarizationGets or sets the enable polarization option.
Public Property FilterGets the current filter model.
Public Property FrequencyGets or set the frequency.
Public Property GOverTGets or set the G/T.
Public Property InterferenceGets the radio frequency interference.
Public Property LinkMarginGets the interface for configuring the link margin computation parameters.
Public Property PolarizationGets the polarization.
Public Property PreDemodGainsLossesGets the collection of additional pre-demod gains and losses.
Public Property PreReceiveGainsLossesGets the collection of additional pre-receive gains and losses.
Public Property RainOutagePercentGets or sets the rain outage percent.
Public Property SupportedDemodulatorsGets an array of supported demodulator model names.
Public Property SupportedFiltersGets an array of supported filter model names.
Public Property SupportedRainOutagePercentValuesGets an array of supported rain outage percent values.
Public Property UseRainGets or sets the option for computing rain loss.

Interfaces

CoClasses that Implement IAgReceiverModelSimple

Example

Compute a link budget for a Transmtiter and Receiver pair, using simple models
[C#]
IAgStkObject xmtrAsStkObject = geoTransmitter as IAgStkObject;
IAgStkObject rcvrAsStkObject = facilityReceiver as IAgStkObject;

//Set the transmitter to the simple model
geoTransmitter.SetModel("Simple Transmitter Model");
IAgTransmitterModelSimple simpleTrans = geoTransmitter.Model as IAgTransmitterModelSimple;

//Set the simple transmitter model's frequency to 3.2 GHz
simpleTrans.Frequency = 3.2;

//Set the simple transmitter model's EIRP to 60 dBW
simpleTrans.Eirp = 60.0;

//Set the receiver to the simple model
facilityReceiver.SetModel("Simple Receiver Model");
IAgReceiverModelSimple simpleRcvr = facilityReceiver.Model as IAgReceiverModelSimple;

//Set the simple receiver model's G/T to 60 dB/K
simpleRcvr.GOverT = 60.0;

//Create an access object for the access between the transmitter and recevier objects
IAgStkAccess linkAccess = xmtrAsStkObject.GetAccessToObject(rcvrAsStkObject);

//Compute access
linkAccess.ComputeAccess();

// Get the access intervals 
IAgIntervalCollection accessIntervals = linkAccess.ComputedAccessIntervalTimes;

// Extract the access intervals and the range information for each access interval 
Array dataPrvElements = new object[] { "Time", "Eb/No", "BER" };

IAgDataPrvTimeVar dp = linkAccess.DataProviders["Link Information"] as IAgDataPrvTimeVar;

for (int index0 = 0; index0 < accessIntervals.Count; ++index0)
{
    object startTime = null, stopTime = null;
    accessIntervals.GetInterval(index0, out startTime, out stopTime);

    IAgDrResult result = dp.ExecElements(startTime, stopTime, 60, ref dataPrvElements);

    Array timeValues = result.DataSets[0].GetValues();
    Array ebno = result.DataSets[1].GetValues();
    Array ber = result.DataSets[2].GetValues();

    for (int index1 = 0; index1 < timeValues.GetLength(0); ++index1)
    {
        string time = (string)timeValues.GetValue(index1);
        double ebnoVal = (double)ebno.GetValue(index1);
        double berVal = (double)ber.GetValue(index1);
        Console.WriteLine("{0}: Eb/No={1} BER={2}", time, ebnoVal, berVal);
    }

    Console.WriteLine();
}

Compute a link budget for a Transmtiter and Receiver pair, using simple models
[Visual Basic .NET]
Dim xmtrAsStkObject As IAgStkObject = TryCast(geoTransmitter, IAgStkObject)
Dim rcvrAsStkObject As IAgStkObject = TryCast(facilityReceiver, IAgStkObject)

'Set the transmitter to the simple model
geoTransmitter.SetModel("Simple Transmitter Model")
Dim simpleTrans As IAgTransmitterModelSimple = TryCast(geoTransmitter.Model, IAgTransmitterModelSimple)

'Set the simple transmitter model's frequency to 3.2 GHz
simpleTrans.Frequency = 3.2

'Set the simple transmitter model's EIRP to 60 dBW
simpleTrans.Eirp = 60

'Set the receiver to the simple model
facilityReceiver.SetModel("Simple Receiver Model")
Dim simpleRcvr As IAgReceiverModelSimple = TryCast(facilityReceiver.Model, IAgReceiverModelSimple)

'Set the simple receiver model's G/T to 60 dB/K
simpleRcvr.GOverT = 60

'Create an access object for the access between the transmitter and recevier objects
Dim linkAccess As IAgStkAccess = xmtrAsStkObject.GetAccessToObject(rcvrAsStkObject)

'Compute access
linkAccess.ComputeAccess()

' Get the access intervals 
Dim accessIntervals As IAgIntervalCollection = linkAccess.ComputedAccessIntervalTimes

' Extract the access intervals and the range information for each access interval 
Dim dataPrvElements As Array = New Object() {"Time", "Eb/No", "BER"}

Dim dp As IAgDataPrvTimeVar = TryCast(linkAccess.DataProviders("Link Information"), IAgDataPrvTimeVar)

Dim index0 As Integer = 0
While index0 < accessIntervals.Count
	Dim startTime As Object = Nothing, stopTime As Object = Nothing
	accessIntervals.GetInterval(index0, startTime, stopTime)

	Dim result As IAgDrResult = dp.ExecElements(startTime, stopTime, 60, dataPrvElements)

	Dim timeValues As Array = result.DataSets(0).GetValues()
	Dim ebno As Array = result.DataSets(1).GetValues()
	Dim ber As Array = result.DataSets(2).GetValues()

	Dim index1 As Integer = 0
	While index1 < timeValues.GetLength(0)
		Dim time As String = DirectCast(timeValues.GetValue(index1), String)
		Dim ebnoVal As Double = DirectCast(ebno.GetValue(index1), Double)
		Dim berVal As Double = DirectCast(ber.GetValue(index1), Double)
		Console.WriteLine("{0}: Eb/No={1} BER={2}", time, ebnoVal, berVal)
		System.Threading.Interlocked.Increment(index1)
	End While

	Console.WriteLine()
	System.Threading.Interlocked.Increment(index0)
End While

© 2024 Analytical Graphics, Inc. All Rights Reserved.