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

rfinterp1

Интерполирует данные параметров сети на новых частотах.

Библиотека

EngeeRF

Синтаксис

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

  • objnew = rfinterp1(objold, newfreq) — интерполирует данные параметров сети из objold на заданных частотах newfreq, сохраняя результаты в objnew. Функция rfinterp1 использует функцию interp1 для интерполяции каждого отдельного параметра (i, j) аргумента objold на новые частоты.

    Если какое-либо значение указанной частоты выходит за пределы диапазона, заданного свойством objold.Frequencies, функция rfinterp1 вставляет NaN в objnew для этих значений частот.
  • objnew = rfinterp1(___, "extrap") — также интерполирует данные сети, но если любое из значений частоты, указанных в newfreq, превышает конечную частоту объекта параметров сети objold.Frequencies(end), то функция экстраполирует линейно, используя конечное значение данных параметров сети objold.Parameters(:,:,end). Если любое из значений частоты, указанных в newfreq, ниже первой частоты объекта параметров сети objold.Frequencies(1), то функция экстраполирует линейно между conj(objold.Parameters(:,:,1)) и objold.Parameters(:,:,1). Это гарантирует, что данные параметров сети нового объекта objnew.Parameters будут приближаться к вещественным значениям при приближении newfreq к 0.

Аргументы

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

# objold — данные для интерполяции
объект параметра сети

Details

Данные для интерполяции, указанные как объект параметров РЧ сети. Объект objold должен быть одним из следующих типов объектов параметров сети: S-параметры, t-параметры, Y-параметры, Z-параметры, h-параметры, g-параметры или ABCD-параметры.

# newfreq — частоты интерполяции
вектор положительных чисел

Details

Частоты интерполяции, заданные как вектор положительных чисел, упорядоченных от наименьшего к наибольшему.

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

# objnew — интерполированные данные
объект параметра сети

Details

Интерполированные данные, возвращаемые объект параметров РЧ сети того же типа, что и objold.

Примеры

Интерполяция объекта гибридных h-параметров

Details

Создадим объект h-параметров hnet и выполним интерполяцию на частотах freq. Выведем интерполированные данные hnet2.

using EngeeRF
hnet = hparameters(cat([1 2; 3 4] .+ [1 2; 3 4] .* im, [2 3; 4 5], dims = 3),[1.8e9 2.6e9],)
freq = (1.2:0.2:3.0) .* 1e9

hnet2 = rfinterp1(hnet,freq)

println("NumPorts - ", hnet2.NumPorts)
println("Parameters - ", round.(hnet2.Parameters, digits=3))
println("Frequencies - ",hnet2.Frequencies)
NumPorts - 2
Parameters - ComplexF64[NaN + NaN*im NaN + NaN*im; NaN + NaN*im NaN + NaN*im;;; NaN + NaN*im NaN + NaN*im; NaN + NaN*im NaN + NaN*im;;; NaN + NaN*im NaN + NaN*im; NaN + NaN*im NaN + NaN*im;;; 1.0 + 1.0im 2.0 + 2.0im; 3.0 + 3.0im 4.0 + 4.0im;;; 1.25 + 0.75im 2.25 + 1.5im; 3.25 + 2.25im 4.25 + 3.0im;;; 1.5 + 0.5im 2.5 + 1.0im; 3.5 + 1.5im 4.5 + 2.0im;;; 1.75 + 0.25im 2.75 + 0.5im; 3.75 + 0.75im 4.75 + 1.0im;;; 2.0 + 0.0im 3.0 + 0.0im; 4.0 + 0.0im 5.0 + 0.0im;;; NaN + NaN*im NaN + NaN*im; NaN + NaN*im NaN + NaN*im;;; NaN + NaN*im NaN + NaN*im; NaN + NaN*im NaN + NaN*im]
Frequencies - 1.2e9:2.0e8:3.0e9

Выполним интерполяцию с настройкой "extrap".

hnet2 = rfinterp1(hnet,freq, "extrap")

println("NumPorts - ", hnet2.NumPorts)
println("Parameters - ", round.(hnet2.Parameters, digits=3))
println("Frequencies - ",hnet2.Frequencies)
NumPorts - 2
Parameters - ComplexF64[1.0 + 0.667im 2.0 + 1.333im; 3.0 + 2.0im 4.0 + 2.667im;;; 1.0 + 0.778im 2.0 + 1.556im; 3.0 + 2.333im 4.0 + 3.111im;;; 1.0 + 0.889im 2.0 + 1.778im; 3.0 + 2.667im 4.0 + 3.556im;;; 1.0 + 1.0im 2.0 + 2.0im; 3.0 + 3.0im 4.0 + 4.0im;;; 1.25 + 0.75im 2.25 + 1.5im; 3.25 + 2.25im 4.25 + 3.0im;;; 1.5 + 0.5im 2.5 + 1.0im; 3.5 + 1.5im 4.5 + 2.0im;;; 1.75 + 0.25im 2.75 + 0.5im; 3.75 + 0.75im 4.75 + 1.0im;;; 2.0 + 0.0im 3.0 + 0.0im; 4.0 + 0.0im 5.0 + 0.0im;;; 2.0 + 0.0im 3.0 + 0.0im; 4.0 + 0.0im 5.0 + 0.0im;;; 2.0 + 0.0im 3.0 + 0.0im; 4.0 + 0.0im 5.0 + 0.0im]
Frequencies - 1.2e9:2.0e8:3.0e9