rfinterp1
Интерполирует данные параметров сети на новых частотах.
| Библиотека |
|
Синтаксис
Вызов функции
-
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