Документация Engee

modulator

Создает двухпортовый модулятор.

Библиотека

EngeeRF

Синтаксис

Вызов функции

  • mod = modulator() — создает объект модулятора, свойства которого заданы по умолчанию.

  • mod = modulator(Name=Value) — создает объект модулятора со свойствами, заданными одним или несколькими аргументами типа Name=Value. Неуказанные свойства сохраняют свои значения по умолчанию.

Аргументы

Входные аргументы «имя-значение»

# Name — имя модулятора
"Modulator" (по умолчанию) | строка

Details

Имя модулятора. Все имена должны быть допустимыми именами переменных.

Типы данных

String

# Model — тип преобразования
"mod" (по умолчанию) | "demod"

Details

Тип преобразования, заданный одним из следующих значений:

  • "mod" — модулятор;

  • "demod" — демодулятор.

Типы данных

String

# Gain — согласованный коэффициент усиления, дБ
0 (по умолчанию) | неотрицательный скаляр

Details

Согласованный коэффициент усиления в дБ, заданный как неотрицательный скаляр.

Типы данных

Float64

# NF — коэффициент шума, дБ
0 (по умолчанию) | вещественный неотрицательный скаляр

Details

Коэффициент шума в дБ, заданный как вещественный неотрицательный скаляр.

Типы данных

Float64

# OIP2 — точка, в которой мощность интермодуляционных искажений второго порядка сравнялась бы с мощностью полезного сигнала при экстраполяции линейного роста, дБм
Inf (по умолчанию) | вещественный скаляр

Details

Точка, в которой мощность интермодуляционных искажений второго порядка сравнялась бы с мощностью полезного сигнала при экстраполяции линейного роста, в дБм, заданная как вещественный скаляр.

Типы данных

Float64

# OIP3 — точка пересечения, в которой мощность интермодуляционных искажений третьего порядка сравнялась бы с мощностью полезного сигнала при экстраполяции линейного роста, дБм
Inf (по умолчанию) | вещественный скаляр

Details

Точка пересечения, в которой мощность интермодуляционных искажений третьего порядка сравнялась бы с мощностью полезного сигнала при экстраполяции линейного роста, в дБм, заданная как вещественный скаляр.

Типы данных

Float64

# LO — частота опорного генератора, Гц
1e9 (по умолчанию) | вещественный положительный скаляр

Details

Частота опорного генератора в Гц, заданная как вещественный конечный положительный скаляр.

Типы данных

Float64

# ImageReject — подавление зеркального канала
true (по умолчанию) | false

Details

Включает или отключает подавление зеркального канала на входе модулятора. Установка значения false может повлиять на точность и скорость расчета при моделировании методом гармонического баланса.

Типы данных

Bool

# ChannelSelect — выбор канала (селекция канала)
true (по умолчанию) | false

Details

Включает или отключает селекцию (выбор) рабочего канала на входе модулятора. Установка значения false может повлиять на точность и скорость расчета при моделировании методом гармонического баланса.

Типы данных

Bool

# Zin — входное сопротивление, Ом
50 (по умолчанию) | конечный скаляр с положительной вещественной частью

Details

Входное сопротивление в Ом, заданное как конечный скаляр. Также можно использовать комплексное значение с положительной вещественной частью.

# Zout — выходное сопротивление, Ом
50 (по умолчанию) | конечный скаляр с положительной вещественной частью

Details

Выходное сопротивление в Ом, заданное как конечный скаляр. Также можно использовать комплексное значение с положительной вещественной частью.

# NumPorts — количество портов
2 (по умолчанию) | скаляр

Details

Количество портов, заданное как целочисленный скаляр.

Этот аргумент доступен только для чтения.
Типы данных

Int64

# Terminals — имена клемм
("p1+", "p2+", "p1−", "p2−") (по умолчанию) | кортеж строк

Details

Имена клемм, заданные как кортеж строк.

Этот аргумент доступен только для чтения.

Выходные аргументы

# mod — объект модулятора
объект

Details

Объект модулятора.

Примеры

Создание модулятора со свойствами по умолчанию

Details

Создадим модулятор и выведем его свойства.

using EngeeRF

mod = modulator()


println("Name: ", mod.Name)
println("Model: ", mod.Model)
println("Gain: ", mod.Gain)
println("NF: ", mod.NF)
println("OIP2: ", mod.OIP2)
println("OIP3: ", mod.OIP3)
println("Zin: ", mod.Zin)
println("Zout: ", mod.Zout)
println("LO: ", mod.LO)
println("ImageReject: ", mod.ImageReject)
println("ChannelSelect: ", mod.ChannelSelect)
println("NumPorts: ", mod.NumPorts)
println("Terminals: ", mod.Terminals)
Name: Modulator
Model: Mod
Gain: 0.0
NF: 0.0
OIP2: Inf
OIP3: Inf
Zin: 50.0 + 0.0im
Zout: 50.0 + 0.0im
LO: 1.0e9
ImageReject: true
ChannelSelect: true
NumPorts: 2
Terminals: ("p1+", "p2+", "p1-", "p2-")

Схема модулятора

Details

Создадим объект модулятора с коэффициентом усиления (Gain) 4 дБ и частотой опорного генератора (LO) 2 ГГц. Создадим другой объект модулятора с выходным током пересечения третьего порядка (OIP3) — 13 дБм. Построим двухпортовую схему с использованием этих модуляторов.

using EngeeRF

mod1 = modulator(Gain=4, LO=2e9, Name="mod1")
mod2 = modulator(OIP3=13, Name="mod2")

hckt = circuit("new_circuit")
add(hckt,[1 2],mod1)
add(hckt,[2 3],mod2)

println(hckt)
circuit(ElementNames = ("mod1", "mod2"), Name = "new_circuit", Elements = DataType[modulator, modulator], Nodes = [0, 1, 2, 3], NumPorts = 0)