Спроектируйте соответствие с сетями для пассивной многопортовой сети

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

Спроектируйте многопортовую пассивную сеть

Вычислите S-параметры антенной решетки закрашенной фигуры, спроектированной на уровне 39 ГГц. Загрузите sparams_patchArray.matfile. 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 и сконфигурируйте топологию 'Пи'. Этот 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. Например, чтобы построить эффективность первой сети соответствия для схемы с Шунтом тип топологии C-Series L-Shunt C эта команда.

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

Добавьте соответствие с сетевыми схемами в сеть с 16 портами

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

Создайте объект схемы и 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'

Пример объекта схемы с n-портом с 16 портами приведен.

Инициализируйте порты.

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

Похожие темы