Engee documentation

amplifier

Creates a two-port amplifier.

Library

EngeeRF

Syntax

Function call

  • amp = amplifier() — creates an amplifier object with default properties

  • amp = amplifier(Name=Value) — creates an amplifier object with properties specified by one or more arguments Name=Value. Unspecified properties retain their default values.

Arguments

Name-value input arguments

# Name — the name of the amplifier

+ "Amplifier" (by default) | line | character vector

Details

The name of the amplifier. All names must be valid variable names.

# Model — amplifier model

+ "cubic" (by default) | "sparam" | "ampm"

Details

The amplifier model specified by one of the following values:

  • "cubic" — cubic polynomial model. When setting this value, the amplifier object uses the properties Gain, Zin, Zout and NF to calculate the gain, matching, and noise.

  • "sparam" — the S-parameter model. When setting this value, the amplifier object uses the properties NetworkData and NoiseData to calculate the gain, matching, and noise. The S-parameter data is entered using arguments NetworkData or FileName.

  • "ampm" — the AM/PM model is AM/PM. When setting this value, the amplifier object uses the AM/AM–AM/PM data to characterize the amplifier. The AM/AM–AM/PM data is entered using the argument AMPMTable.

# Gain — consistent gain factor, dB

+ 0 (by default) | a real finite scalar

Details

The agreed gain in dB, set as a real scalar.

# NF — noise level, dB

+ 0 (by default) | a real non-negative finite scalar

Details

The noise factor in dB, set as a real non-negative scalar.

# OIP2 is the point where the power of the second—order output signal intersects with the power of the main signal, if we extrapolate their growth with increasing input power, dB

+ Inf (by default) | the real scalar

Details

The point where the power of the second-order output signal intersects with the power of the main signal, if we extrapolate their growth with increasing input power in dB, given as a real scalar.

# OIP3 is the point where the power of the third—order output signal intersects with the power of the main signal, if we extrapolate their growth with increasing input power, dB

+ Inf (by default) | the real scalar

Details

The point where the power of the third-order output signal intersects with the power of the main signal, if we extrapolate their growth with increasing input power in dB, given as a real scalar.

# Zin — input resistance, ohms

+ 50 (default) | a finite scalar with a positive real part

Details

Input resistance in ohms, set as a finite scalar. You can also use a complex value with a positive real part.

# Zout — output resistance, ohms

+ 50 (default) | a finite scalar with a positive real part

Details

The output resistance in ohms, set as a finite scalar. You can also use a complex value with a positive real part.

# FileName is the name of the two—port Touchstone file

+ "" (by default) | line | character vector

Details

The name of the two-port Touchstone file from which the properties are extracted NetworkData and NoiseData.

# NetworkData — network data

+ the object of network parameters

Details

The network data of the amplifier, set as an object of the parameters of the dual-port network. Network parameter objects have the following types:

The network parameters object determines the frequency-dependent gain and impedance matching of the amplifier; usually it is an object sparameters from the Touchstone two-port file. To set frequency-independent network data, set the property NetworkData meaning []. This dumps network data into a frequency-independent two-port network object defined by arguments Gain, Zin and Zout.

# NoiseData — amplifier noise data

+ noiseParameters object

Details

Amplifier noise data set as an object noiseParameters. An object noiseParameters It contains a frequency-dependent noise factor, downloaded from the Touchstone file or built on the command line. To set the frequency-independent noise factor, set for NoiseData meaning [].

# AMPMTable — input data table

+ [-25.0 5.0 -1.0; -10.0 20.0 -2.0; 0.0 27.0 5.0; 5.0 28.0 12.0] | M×3 real matrix

Details

An input data table defined as a real matrix of size on . Meaning must be a positive scalar. The first column of the matrix represents the input power, and the values in this column should increase monotonously. The second column of the matrix represents the power output in dBm in the AM/AM-AM/PM model, and the third column represents the phase change in degrees in this model. The values in the second and third columns refer to the absolute value of the input signal power shown in the first column.

To use the argument AMPMTable, set for the argument Model meaning ampm.

# NumPorts — number of ports

+ 2 (read-only) | an integer scalar

Details

This argument is read-only. The number of ports as an integer scalar.

# Terminals — terminal names

+ ("p1+", "p2+", "p1-", "p2-") (read-only) | vector of cells

Details

This argument is read-only. Terminal names in the form of a vector of cells.

Output arguments

# amp — the amp object

+ object

Details

The amplifier object.

Examples

Creating an amplifier with default properties

Details

Let’s create an amplifier and display its properties.

using EngeeRF

amp=amplifier()

println("Model: ", amp.Model)
println("Name: ", amp.Name)
println("Gain: ", amp.Gain)
println("NF: ", amp.NF)
println("OIP2: ", amp.OIP2)
println("OIP3: ", amp.OIP3)
println("Zin: ", amp.Zin)
println("Zout: ", amp.Zout)
println("FileName: ", amp.FileName)
println("NetworkData: ", amp.NetworkData)
println("AMPMTable: ", amp.AMPMTable)
println("NumPorts: ", amp.NumPorts)
println("Terminals: ", amp.Terminals)
Model: cubic
Name: Amplifier
Gain: 0.0
NF: 0.0
OIP2: Inf
OIP3: Inf
Zin: 50.0 + 0.0im
Zout: 50.0 + 0.0im
FileName:
NetworkData: sparameters(Impedance = 50.0, NumPorts = 2, Parameters = [0.0 0.0; 1.0 0.0], Frequencies = [1.0e9])
AMPMTable: [-25.0 5.0 -1.0; -10.0 20.0 -2.0; 0.0 27.0 5.0; 5.0 28.0 12.0]
NumPorts: 2
Terminals: ("p1+", "p2+", "p1-", "p2-")

Amplifier circuit

Details

Creating an amplifier object with a gain factor 4 dB. Let’s create another amplifier object with a third-order intersection output current (OIP3) — 13 dBm. Let’s build a two-port circuit using these amplifiers.

using EngeeRF

amp1 = amplifier(Gain=4, Name="amp1")
amp2 = amplifier(OIP3=13, Name="amp2")

hckt = circuit("new_circuit")
add(hckt,[1 2],amp1)
add(hckt,[2 3],amp2)

println(hckt)
circuit(ElementNames = ("amp1", "amp2"), Name = "new_circuit", Elements = Vector{EngeeRF.DomainRF.DomainObjectRF}, Nodes = [0, 1, 2, 3])