exponenta event banner

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

В этом примере показано, как проектировать совпадающие сети для 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));

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

Создать объект цепи

Создайте объект канала и объект 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-параметров

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

Sparam = sparameters(ckt, freq);

График частотных откликов

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

figure; rfplot(s_params_circ_array); legend off

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

figure; rfplot(Sparam); legend off

Связанные темы