amplifier
Creates a two-port amplifier.
| Library |
|
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 propertiesGain,Zin,ZoutandNFto calculate the gain, matching, and noise. -
"sparam"— the S-parameter model. When setting this value, the amplifier object uses the propertiesNetworkDataandNoiseDatato calculate the gain, matching, and noise. The S-parameter data is entered using argumentsNetworkDataorFileName. -
"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 argumentAMPMTable.
# 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:
-
abcdparameters; -
tparameters.
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.
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])