В этом примере показано, как проектировать совпадающие сети для 16-портовой пассивной сети с частотой 39 ГГц для систем 5G mmWave. Согласующие сети разработаны независимо для каждого порта, и каждая сформированная согласующая сеть предназначена для функционирования между двумя 1-портовыми окончаниями.
Вычислите S-параметры патч-антенной решетки, рассчитанной на 39 ГГц. Загрузить sparams_patchArray.файл мата. s_params_circ_array функция получена из поддерживающего файла designmultiport.mlx.
Fcenter = 39e9;
load('sparams_patchArray.mat')
Sparam_array = s_params_circ_array;
show(patchArray)
view([90 0])
Определите индекс, соответствующий центральной частоте.
freq = Sparam_array.Frequencies; fIndex = find(freq == Fcenter);
Создайте соответствующие сети для каждого соответствующего порта независимо, с загруженным Q, равным 20, и настройте топологию на «Pi». Этот Q-фактор выравнивается с полосой пропускания половины мощности коммутационной антенной решетки, которая составляет приблизительно 2 ГГц.
Определите количество портов в сети и импеданс окончания.
numport = s_params_circ_array.NumPorts; ZT = 50; loadedQ = 20; topology = 'Pi'; for i = 1 : numport % reflection coefficient/Sii gam_array = s_params_circ_array.Parameters(i,i,fIndex); % Load impedance Zout = gamma2z(gam_array); % Matching networks generation match_net(i) = matchingnetwork('SourceImpedance', ZT, ... 'LoadImpedance', Zout, 'CenterFrequency', Fcenter, ... 'LoadedQ', loadedQ, 'Components', topology); end
Источник соединен с компонентом, расположенным слева от согласующей сетевой цепи, а нагрузка соединена с компонентом, соединенным справа от согласующей сетевой цепи. Для генерируемых согласующих сетей источник завершается с помощью ZT (50 Ом), а импеданс нагрузки - это импеданс, наблюдаемый в i-ом порту, заданном Zout.
Выберите топологию из шестнадцати matchingnetwork объекты. Для получения обзора доступных каналов см. circuitDescriptions функция.
В этом примере используется топология Shunt C-Series L-Shunt C. Если эта топология недоступна в сети, используйте наиболее подходящий сетевой канал.
selectedCircuits = repmat(circuit,1,numport); cIndex = zeros(1,numport);
Просмотрите список сгенерированных цепей.
for i = 1:numel(match_net) c = circuitDescriptions(match_net(i)); % Perform a text search to choose the circuit with Shunt C-Series L-Shunt C topology Index = strcmp(c.component1Type,"Shunt C") & ... strcmp(c.component2Type,"Series L") & ... strcmp(c.component3Type,"Shunt C"); if any(Index) % ShuntC-SeriesL-ShuntC topology cIndex(i) = find(Index, 1, 'first'); selectedCircuits(i) = match_net(i).Circuit(cIndex(i)); else % Best available matchingnetwork selectedCircuits(i) = match_net(i).Circuit(1); end selectedCircuits(i).Name = "N"+i; end
Для просмотра производительности выбранной соответствующей сетевой цепи используйте rfplot. Например, для построения графика производительности первой согласующей сети для схемы с топологией L-Shunt C серии C введите эту команду.
rfplot(match_net(1),freq,cIndex(1));

Создайте объект канала и объект n-порта для 16-портовой сети.
ckt = circuit('patchArray');
array_net = nport(Sparam_array);В этом примере количество узлов схемы показано как 17, так как узлы 1-16 будут использоваться для добавления согласующих сетей.
cktnodes = (1+numport):(numport+numport);
Добавьте объект n-port к объекту цепи.
add(ckt, cktnodes, array_net);
Просмотр родительских узлов 16-портовой сети.
disp(array_net)
nport: N-port element
NetworkData: [1×1 sparameters]
Name: 'Sparams'
NumPorts: 16
Terminals: {1×32 cell}
ParentNodes: [17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
ParentPath: 'patchArray'
Представлена иллюстрация объекта-канала с 16-портовым n-портом.

Инициализируйте порты.
ports = cell(1,numport);
Добавьте каждый соответствующий сетевой канал к соответствующему порту по одному. Также генерируются номера портов для соответствующего согласующегося сетевого канала.
for i=1:length(selectedCircuits) add(ckt, [i, 0, i+numport, 0], selectedCircuits(i), ... {'p1+', 'p1-', 'p2+', 'p2-'}); ports{i} = [i, 0]; end % ports = arrayfun(@(x) [x 0],1:10,'UniformOutput',false);
Используйте setports для определения портов для каждой из цепей.
setports(ckt,ports{:});Представлена иллюстрация объекта цепи с n-портами и согласующимися сетевыми цепями.

Создайте и постройте график S-параметров пассивной 16-портовой согласующей сети.
Sparam = sparameters(ckt, freq);
Постройте график частотной характеристики 16-портовой сети перед согласованием.
figure; rfplot(s_params_circ_array); legend off
Постройте график частотной характеристики 16-портовой сети после согласования.
figure; rfplot(Sparam); legend off