Проектируйте совпадающие сети для пассивной мультипортовой сети

В этом примере показано, как спроектировать соответствующие сети для 16-портовой пассивной сети на 39 ГГц для систем 5G mmWave. Соответствующие сети спроектированы независимо для каждого порта, и каждая сгенерированная соответствующая сеть предназначена для работы между двумя терминалами с 1 портом.

Проектирование мультипортовой пассивной сети

Вычислите S-параметры закрашенная фигура решетки, рассчитанной на 39 ГГц. Загрузите sparams_patchArray.файл mat. The 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 функция.

В этом примере используется топология Шунта 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. Например, чтобы построить график эффективности первой совпадающей сети для схемы с топологией Shunt C-Series L-Shunt C, введите эту команду.

rfplot(match_net(1),freq,cIndex(1));

Добавьте соответствующие сетевые схемы к 16-Port сети

Создайте объект схемы

Создайте объект схемы и объект n-порта для сети с 16 портами.

ckt         = circuit('patchArray');
array_net   = nport(Sparam_array);

В этом примере количество узлов схемы показано равным 17, так как узлы 1-16 будут использоваться для добавления совпадающих сетей.

cktnodes    = (1+numport):(numport+numport);

Добавьте объект n-порта к объекту схемы.

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-параметров

Сгенерируйте и постройте график S-параметров пассивной 16-портовой совпадающей сети.

Sparam = sparameters(ckt, freq);

Построение частотных характеристик

Постройте график частотной характеристики 16-портовой сети перед совпадением.

figure; rfplot(s_params_circ_array); legend off

Постройте график частотной характеристики 16-портовой сети после соответствия.

figure; rfplot(Sparam); legend off

Похожие темы