rfbudget
Создает объект РЧ бюджета и выполняет анализ РЧ бюджета для цепочки из 2-х портовых элементов.
| Библиотека |
|
Синтаксис
Вызов функции
-
rfobj = rfbudget()— создает объект РЧ бюджета, свойства которого заданы по умолчанию.
-
rfobj = rfbudget(Elements,InputFrequency,AvailableInputPower,SignalBandwidth)— создает объект РЧ бюджета, выполняя расчет в соответствии с заданными аргументами. По умолчанию, если любой из входных аргументов изменен, то объект пересчитывает результаты.
-
rfobj = rfbudget(___,AutoUpdate)— создает объект РЧ бюджета, используя аргументAutoUpdate. Вы можете использовать этот синтаксис с любым из предыдущих синтаксисов.
-
rfobj = rfbudget(Name=Value)— устанавливает свойства, заданные одним или несколькими аргументами типа «имя-значение».
Аргументы
Входные аргументы «имя-значение»
Укажите пары аргументов в виде Name=Value, где Name — имя аргумента, а Value — соответствующее значение.
#
Elements —
элементы РЧ бюджета
EngeeRF.AbstractRF.AbstractObjectRF[] (по умолчанию) | РЧ объект | массив РЧ объектов
Details
Элементы РЧ бюджета, заданные как РЧ объект или массив РЧ объектов. Используйте массив объектов при выполнении анализа РЧ бюджета для цепочки РЧ элементов.
В таблице перечислены поддерживаемые РЧ объекты, которые можно использовать для проектирования РЧ цепочки.
| Тип элемента | РЧ объект |
|---|---|
Линейный элемент |
|
|
|
|
|
Нелинейный элемент |
|
Пример: анализ РЧ бюджета для схемы из усилителя и модулятора:
using EngeeRF
a = amplifier()
m = modulator()
b = rfbudget(Elements=[a m])
#
InputFrequency —
частота входного сигнала, Гц
Float64[] (по умолчанию) | неотрицательный скаляр | неотрицательный вектор-столбец
Details
Частота входного сигнала в Гц, заданная как неотрицательный скаляр или вектор-столбец размера на , где представляет собой количество частот. Если входная частота является вектором, то функция rfbudget анализирует каждую входную частоту отдельно.
| Типы данных |
|
#
AvailableInputPower —
мощность, подаваемая на вход каскада, дБм
NaN (по умолчанию) | скаляр
Details
Мощность на входе каскада в дБм, заданная как скаляр.
| Типы данных |
|
#
SignalBandwidth —
полоса пропускания сигнала на входе каскада, Гц
NaN (по умолчанию) | скаляр
Details
Полоса пропускания сигнала на входе каскада в Гц, заданная как скаляр.
| Типы данных |
|
#
AutoUpdate —
опция автоматического пересчета РЧ бюджета
true (по умолчанию) | false
Details
Опция автоматического пересчета анализа РЧ бюджета с учетом изменений, внесенных в существующую схему, заданная как true или false.
Установка аргумента AutoUpdate в значение false отключает автоматический пересчет бюджета при изменении параметров.
#
Solver —
метод вычисления
"Friis" (по умолчанию)
Details
Метод вычисления.
#
WaitBar —
опция отображения индикатора выполнения
true (по умолчанию) | false
Details
Опция отображения индикатора выполнения с кнопкой отмены во время анализа гармонического баланса, заданная как true или false.
Выходные аргументы
#
rfobj —
объект РЧ бюджета
объект
Details
Объект РЧ бюджета. Объект содержит следующие свойства:
-
Elements— функция устанавливает это свойство на основе аргументаElements. -
InputFrequency— функция устанавливает это свойство на основе аргументаInputFrequency. -
AvailableInputPower— функция устанавливает это свойство на основе аргументаAvailableInputPower. -
SignalBandwidth— функция устанавливает это свойство на основе аргументаSignalBandwidth. -
AutoUpdate— функция устанавливает это свойство на основе аргументаAutoUpdate. -
Solver— функция устанавливает это свойство на основе аргументаSolver.
-
WaitBar— функция устанавливает это свойство на основе аргументаWaitBar. -
OutputFrequency— выходные частоты в Гц, возвращаемые в виде:-
скаляра, когда и ;
-
вектора, когда или ;
-
матрицы, когда и ;
представляет собой количество частот на входе, а — количество ступеней в каскаде.
-
-
OutputPower— выходная мощность в дБм, возвращаемая в виде:-
скаляра, когда и ;
-
вектора, когда или ;
-
матрицы, когда и ;
представляет собой количество частот на входе, а — количество ступеней в каскаде.
-
-
TransducerGain— коэффициент усиления мощности преобразователя в дБ, возвращаемый в виде:-
скаляра, когда и ;
-
вектора, когда или ;
-
матрицы, когда и ;
представляет собой количество частот на входе, а — количество ступеней в каскаде.
-
-
NF— коэффициенты шума в дБ, возвращаемые в виде:-
скаляра, когда и ;
-
вектора, когда или ;
-
матрицы, когда и ;
представляет собой количество частот на входе, а — количество ступеней в каскаде.
-
-
IIP3— входная точка пересечения интермодуляционных искажений третьего порядка в дБм, возвращаемая в виде:-
скаляра, когда и ;
-
вектора, когда или ;
-
матрицы, когда и ;
представляет собой количество частот на входе, а — количество ступеней в каскаде.
-
-
OIP3— выходная точка пересечения интермодуляционных искажений третьего порядка в дБм, возвращаемая в виде:-
скаляра, когда и ;
-
вектора, когда или ;
-
матрицы, когда и ;
представляет собой количество частот на входе, а — количество ступеней в каскаде.
-
-
SNR— отношение сигнал/шум в дБ, возвращаемое в виде:-
скаляра, когда и ;
-
вектора, когда или ;
-
матрицы, когда и ;
представляет собой количество частот на входе, а — количество ступеней в каскаде.
-
Примеры
Создание объекта РЧ бюджета
Details
Создадим объект данных со свойствами, заданными по умолчанию, используя функцию rfbudget и выведем его свойства.
using EngeeRF
b = rfbudget()
println("Elements: ", b.Elements,
"\nInputFrequency: ", b.InputFrequency,
"\nAvailableInputPower: ", b.AvailableInputPower,
"\nSignalBandwidth: ", b.SignalBandwidth,
"\nAutoUpdate: ", b.AutoUpdate,
"\nOutputFrequency: ", b.OutputFrequency,
"\nOutputPower: ", b.OutputPower,
"\nTransducerGain: ", b.TransducerGain,
"\nNF: ", b.NF,
"\nIIP3: ", b.IIP3,
"\nOIP3: ", b.OIP3,
"\nSNR: ", b.SNR)
Elements: EngeeRF.AbstractRF.AbstractObjectRF[]
InputFrequency: Float64[]
AvailableInputPower: NaN
SignalBandwidth: NaN
AutoUpdate: true
OutputFrequency: Matrix{Float64}(undef, 0, 0)
OutputPower: Matrix{Float64}(undef, 0, 0)
TransducerGain: Matrix{Float64}(undef, 0, 0)
NF: Matrix{Float64}(undef, 0, 0)
IIP3: Matrix{Float64}(undef, 0, 0)
OIP3: Matrix{Float64}(undef, 0, 0)
SNR: Matrix{BigFloat}(undef, 0, 0)
Создадим объект двухпортовой последовательной RLC-цепи, добавим его в качестве элемента в объект РЧ бюджета с заданными свойствами.
using EngeeRF
b = rfbudget()
println("Elements: ", b.Elements,
"\nInputFrequency: ", b.InputFrequency,
"\nAvailableInputPower: ", b.AvailableInputPower,
"\nSignalBandwidth: ", b.SignalBandwidth,
"\nAutoUpdate: ", b.AutoUpdate,
"\nOutputFrequency: ", b.OutputFrequency,
"\nOutputPower: ", b.OutputPower,
"\nTransducerGain: ", b.TransducerGain,
"\nNF: ", b.NF,
"\nIIP3: ", b.IIP3,
"\nOIP3: ", b.OIP3,
"\nSNR: ", b.SNR)
Elements: EngeeRF.AbstractRF.AbstractObjectRF[seriesRLC(Terminals = ("p1+", "p2+", "p1-", "p2-"), Name = "SeriesRLC", Budget = nothing, Listener = nothing, Ports = ("p1", "p2"), Parent = nothing, ParentNodes = Int64[], ParentPath = "", NumPorts = 2, R = 50.0, L = 1.0e-6, C = 5.0e-12, Name = "SeriesRLC")]
InputFrequency: [1.0e9]
AvailableInputPower: -30.0
SignalBandwidth: 1.0e8
AutoUpdate: true
OutputFrequency: [1.0e9;;]
OutputPower: [-65.92198202974255;;]
TransducerGain: [-35.92198202974255;;]
NF: [3.010299956639812;;]
IIP3: [Inf;;]
OIP3: [Inf;;]
SNR: BigFloat[60.96488723758829232562408304577801251192706544629058321574484227786790837291292;;]
Советы
Файл Touchstone в объекте nport должен быть пассивным на всех указанных частотах.
Алгоритмы
ABCD-параметры используются при расчете S-параметров каскада для решателя Фрииса. Когда , преобразование в ABCD приводит к NaNs. Для таких случаев S-параметры модифицируются следующим образом:
-
, и .
-
Подключите большое сопротивление ( Ом) параллельно сети.
-
Подключите малое сопротивление ( Ом) последовательно к началу сети.
-
-
, и .
-
Подключите большое сопротивление ( Ом) параллельно сети.
-
Подключите малое сопротивление ( Ом) последовательно в конце сети.
-
-
, и .
-
Подключите большое сопротивление ( Ом) параллельно сети.
-
Подключите малое сопротивление ( Ом) последовательно к началу сети.
-
Подключите малое сопротивление ( Ом) последовательно в конце сети.
-
-
.
Подключите большое сопротивление ( Ом) параллельно сети.
Литература
-
Roychowdhury, J., D. Long, and P. Feldmann. Cyclostationary Noise Analysis of Large RF Circuits with Multitone Excitations. IEEE Journal of Solid-State Circuits 33, no. 3 (March 1998): 324–36. https://doi.org/10.1109/4.661198.