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

Этот пример показывает, как спроектировать широкополосные совпадающие сети для малошумящего усилителя (LNA).

В RF приемника переднем конце LNA обычно обнаруживается сразу после антенны или после первого полосно-пропускающего фильтра, который следует за антенной. Его положение в цепи приемника гарантирует, что он имеет дело со слабыми сигналами, которые имеют значительное содержимое. В результате LNA должна не только обеспечить усиление таких сигналов, но и минимизировать свой собственный шумовой отпечаток на усиленном сигнале.

В этом примере вы спроектируете LNA, чтобы достичь целевых спецификаций по усилению и рисунку шума в заданной полосе пропускания, используя комкнутые элементы LC. Основанный на прямом поиске подход используется, чтобы получить оптимальные значения элемента во входной и выходной сети согласования.

Фигура 1: Согласование импеданса усилителя

Установите расчётные параметры

Технические спецификации проекта следующие.

  • Усилитель является усилителем LNA

  • Центральная частота = 250 МГц

  • Полоса пропускания = 100 МГц

  • Коэффициент усиления преобразователя, больший или равный 10 дБ

  • Шумовая фигура меньше или равна 2,0 дБ

  • Работа между завершениями 50-Ohm

Задайте расчётные параметры

Вы строите соответствующую сеть для LNA с пропускной способностью, поэтому задайте полосу пропускания соответствия, центральную частоту, усиление и шум рисунка целей.

BW = 100e6;            % Bandwidth of matching network (Hz)
fc = 250e6;            % Center frequency (Hz)
Gt_target = 10;        % Transducer gain target (dB)
NFtarget = 2;          % Max noise figure target (dB)

Задайте входной импеданс, опорный импеданс и импеданс нагрузки.

Zs = 50;               % Source impedance (Ohm)
Z0 = 50;               % Reference impedance (Ohm)
Zl = 50;               % Load impedance (Ohm)

Создайте объект усилителя и выполните анализ

Используйте read метод создания объекта усилителя с использованием данных из файла lnadata.s2p.

Unmatched_Amp = read(rfckt.amplifier,'lnadata.s2p'); 

Определите количество частотных точек для анализа и настройте вектор частоты.

Npts = 32;                           % No. of analysis frequency points
fLower = fc - (BW/2);                % Lower band edge               
fUpper = fc + (BW/2);                % Upper band edge              
freq = linspace(fLower,fUpper,Npts); % Frequency array for analysis
w = 2*pi*freq;                       % Frequency (radians/sec)

Используйте analyze метод для выполнения частотного диапазона анализа в частотных точках в вектор freq.

analyze(Unmatched_Amp,freq,Zl,Zs,Z0);   % Analyze unmatched amplifier

Исследуйте фигуру устойчивости, усиления степени и шума

ЛНА должна работать в стабильную область, чтобы исследовать стабильность, построить график Delta и K для транзистора. Используйте plot метод rfckt объект для построения графика Delta и K как функция частоты, чтобы увидеть, является ли транзистор стабильным.

figure
plot(Unmatched_Amp,'Delta','mag')
hold all
plot(Unmatched_Amp,'K')
title('Device stability parameters')
hold off
grid on

Figure contains an axes. The axes with title Device stability parameters contains 2 objects of type line. These objects represent Delta, K.

Как показывает график, K>1 и Δ<1 для всех частот в интересующей полосе. Это означает, что устройство безоговорочно стабильно. Также важно просмотреть усиление степени и поведение шумовых рисунков на одной и той же полосе пропускания. Вместе с информацией о устойчивости эти данные позволяют вам определить, могут ли быть достигнуты цели рисунка усиления и шума.

plot(Unmatched_Amp,'Ga','Gt','dB')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent G_{a}, G_{t}.

Этот график показывает коэффициент усиления степени на 100-MHz полосе пропускания. Это указывает, что коэффициент усиления преобразователя изменяется линейно между 5,5 дБ и приблизительно 3,1 дБ и достигает только 4,3 дБ в центре полосы значений. Это также предполагает наличие достаточного запаса между усилением преобразователя Gt и доступное усиление Ga для достижения нашей цели Gt 10 дБ.

plot(Unmatched_Amp,'Fmin','NF','dB')
axis([200 300 0 2])
legend('Location','NorthEast')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent F_{min}, NF.

Этот график показывает изменение шумового рисунка с частотой. Несопоставленный усилитель четко соответствует требованию целевого шумового рисунка. Однако это изменится после включения входных и выходных совпадающих сетей. Скорее всего, шумовой рисунок ЛНА превысила бы требование.

Проект входных и выходных совпадающих сетей

Область операции находится между 200 - 300 МГц. Поэтому выберите полосную топологию для совпадающих сетей, которая показана здесь.

Фигура 2. Соответствие топологии сети

Выбранная топология, как показано фигура, представляет собой полосно-пропускающую сеть с прямой связью прототипа параллельного типа с верхней связью [2], которая первоначально настраивается на геометрическую среднюю частоту относительно полосы операции.

N_input = 3;           % Order of input matching network
N_output = 3;          % Order of output matching network
wU = 2*pi*fUpper;      % Upper band edge
wL = 2*pi*fLower;      % Lower band edge
w0 = sqrt(wL*wU);      % Geometric mean

Для первоначального проекта всем индукторам присваивается одинаковое значение на основе индуктора первого ряда. Как упомянуто в [3], выберите значение прототипа, чтобы быть единицей и используйте стандартные импедансы и частотные преобразования, чтобы получить денормализованные значения [1]. Значение для конденсатора в параллельной ловушке задается с помощью этого значения индуктивности, чтобы сделать его резонансным на геометрической средней частоте. Обратите внимание, что существует много способов разработки начальной совпадающей сети. Этот пример показывает один возможный подход.

LvaluesIn = (Zs/(wU-wL))*ones(N_input,1);    % Series and shunt L's [H]
CvaluesIn = 1 / ( (w0^2)*LvaluesIn(2));      % Shunt C [F]

Сформируйте полную схему с совпадающими сетями и усилителем

Используйте либо rfckt.seriesrlc или rfckt.shuntrlc конструктор, чтобы создать каждую ветвь соответствующей сети. Затем сформируйте соответствующую сеть из этих отдельных ветвей путем создания rfckt.cascade объект. Сеть, соответствующий выход, для этого примера аналогична сети, соответствующему входу.

LC_InitialIn = [LvaluesIn;CvaluesIn];
LvaluesOut = LvaluesIn;
CvaluesOut = CvaluesIn;
LC_InitialOut = [LvaluesOut;CvaluesOut];

InputMatchingNW = rfckt.cascade('Ckts', ...
    {rfckt.seriesrlc('L',LvaluesIn(1)), ...
    rfckt.shuntrlc('C',CvaluesIn,'L',LvaluesIn(2)), ...
    rfckt.seriesrlc('L',LvaluesIn(3))});   
                                
OutputMatchingNW = rfckt.cascade('Ckts', ...
    {rfckt.seriesrlc('L',LvaluesOut(1)), ...
    rfckt.shuntrlc('C',CvaluesOut,'L',LvaluesOut(2)), ...
    rfckt.seriesrlc('L',LvaluesOut(3))});

Соберите сеть LNA, состоящую из совпадающих сетей и усилителя, создав rfckt.cascade объект, как показано в предыдущем разделе.

Matched_Amp = rfckt.cascade('Ckts', ...
    {InputMatchingNW,Unmatched_Amp,OutputMatchingNW});

Оптимизируйте входную и выходную совпадающую сеть

Перед оптимизацией необходимо рассмотреть несколько точки.

  • Объективная функция: объективная функция может быть построена по-разному в зависимости от проблемы под рукой. В данном примере целевая функция показана в файле ниже.

  • Выбор функции стоимости: функция стоимости является функцией, которую вы хотели бы минимизировать (максимизировать), чтобы достичь почти оптимальной эффективности. Для выбора функции затрат может быть несколько способов. Для этого примера у вас есть два требования, чтобы удовлетворить одновременно, то есть коэффициент усиления и рисунка шума. Чтобы создать функцию затрат, вы сначала найдете различие между самой текущей оптимизированной сетью и целевым значением для каждого требования на каждой частоте. Функция стоимости является L2-norm вектора значений ошибки усиления и шумового рисунка.

  • Переменные оптимизации: В этом случае это вектор значений, для конкретных элементов, чтобы оптимизировать в совпадающей сети.

  • Метод оптимизации: Метод прямого поиска, функция MATLAB ® fminsearch, используется в этом примере для выполнения оптимизации.

  • Количество итераций/вычислений функции: Установите максимальное число. итераций и вычислений функции для выполнения, чтобы сравниться между скоростью и качеством соответствия.

  • Значение допуска: Задайте изменение значения целевой функции, при котором процесс оптимизации должен завершиться.

Целевая функция, используемая в процессе оптимизации fminsearch показан здесь.

type('broadband_match_amplifier_objective_function.m')
function output = broadband_match_amplifier_objective_function(AMP,LC_Optim,freq,Gt_target,NF,Zl,Zs,Z0)
%BROADBAND_MATCH_AMPLIFIER_OBJECTIVE_FUNCTION Is the objective function.
% OUTPUT =  BROADBAND_MATCH_AMPLIFIER_OBJECTIVE_FUNCTION(AMP,LC_OPTIM,FREQ,GT_TARGET,NF,Zl,Zs,Z0) 
% returns the current value of the objective function stored in OUTPUT
% evaluated after updating the element values in the object, AMP. The
% inductor and capacitor values are stored in the variable LC_OPTIM.
%
% BROADBAND_MATCH_AMPLIFIER_OBJECTIVE_FUNCTION is an objective function of RF Toolbox demo:
% Designing Broadband Matching Networks (Part II: Amplifier)
 
%   Copyright 2008 The MathWorks, Inc.

% Ensure positive element values
if any(LC_Optim<=0)                                                          
    output = inf;
    return;
end
% Update matching network elements - The object AMP has several properties
% among which the cell array 'ckts' consists of all circuit objects from
% source to load.  Since RFCKT.CASCADE was used twice, first to form the
% matching network itself and a second time to form the LNA, we have to
% step through two sets of cell arrays to access the elements
for loop1 = 1:3
    AMP.ckts{1}.ckts{loop1}.L  = LC_Optim(loop1);
    AMP.ckts{3}.ckts{loop1}.L  = LC_Optim(loop1+4);
end
AMP.ckts{1}.ckts{2}.C    = LC_Optim(4);
AMP.ckts{3}.ckts{2}.C    = LC_Optim(8);

% Perform analysis on tuned matching network
Npts           = length(freq);                                        
analyze(AMP,freq,Zl,Zs,Z0);

% Calculate target parameters of the Amplifier
target_param   = calculate(AMP,'Gt','NF','dB');
Gt             = target_param{1}(1:Npts,1);
NF_amp         = target_param{2}(1:Npts,1);

% Calculate Target Gain and noise figure error
errGt          = (Gt - Gt_target);          
errNF          = (NF_amp - NF);

% Check to see if gain and noise figure target are achieved by specifying
% bounds for variation.
deltaG         = 0.40;               
deltaNF        = -0.05;
errGt(abs(errGt)<=deltaG) = 0;
errNF(errNF<deltaNF) = 0;

% Cost function
err_vec        = [errGt;errNF];
output         = norm((err_vec),2);               

% Animate
Gmax           = (Gt_target + deltaG).*ones(1,Npts);
Gmin           = (Gt_target - deltaG).*ones(1,Npts);
plot(AMP,'Gt','NF','dB');
hold on
plot(freq.*1e-6,Gmax,'r-*')
plot(freq.*1e-6,Gmin,'r-*')
legend('G_t','NF','Gain bounds','Location','East');
axis([freq(1)*1e-6 freq(end)*1e-6 0 Gt_target+2]);
hold off
drawnow;

Переменные оптимизации являются всеми элементами (индукторами и конденсаторами) входной и выходной сетей согласования.

nIter = 125; % Max No of Iterations
options = optimset('Display','iter','TolFun',1e-2,'MaxIter',nIter);   % Set options structure
LC_Optimized = [LvaluesIn;CvaluesIn;LvaluesOut;CvaluesOut];
LC_Optimized = fminsearch(@(LC_Optimized) broadband_match_amplifier_objective_function(Matched_Amp,...
                             LC_Optimized,freq,Gt_target,NFtarget,Zl,Zs,Z0),LC_Optimized,options);
 
 Iteration   Func-count     min f(x)         Procedure
     0            1          30.4869         
     1            9          28.3549         initial simplex
     2           11          25.5302         expand
     3           12          25.5302         reflect
     4           13          25.5302         reflect
     5           14          25.5302         reflect
     6           16          22.8228         expand
     7           17          22.8228         reflect
     8           19          19.0289         expand
     9           20          19.0289         reflect
    10           21          19.0289         reflect
    11           22          19.0289         reflect
    12           24          14.8785         expand
    13           25          14.8785         reflect
    14           27           10.721         expand
    15           28           10.721         reflect
    16           29           10.721         reflect
    17           31          9.84796         expand
    18           32          9.84796         reflect
    19           33          9.84796         reflect
    20           34          9.84796         reflect
    21           35          9.84796         reflect
    22           37          9.84796         contract outside
    23           39          9.84796         contract outside
    24           41          9.84796         contract inside
    25           43          9.64666         reflect
    26           45          9.64666         contract inside
    27           46          9.64666         reflect
    28           48          9.64666         contract inside
    29           49          9.64666         reflect
    30           51          9.64666         contract inside
    31           53           7.9372         expand
    32           55           7.9372         contract outside
    33           56           7.9372         reflect
    34           57           7.9372         reflect
    35           58           7.9372         reflect
    36           59           7.9372         reflect
    37           60           7.9372         reflect
    38           62          5.98211         expand
    39           63          5.98211         reflect
    40           64          5.98211         reflect
    41           65          5.98211         reflect
    42           66          5.98211         reflect
    43           68          4.31973         expand
    44           70          4.31973         contract inside
    45           71          4.31973         reflect
    46           72          4.31973         reflect
    47           73          4.31973         reflect
    48           74          4.31973         reflect
    49           75          4.31973         reflect
    50           77          2.83135         expand
    51           79          1.17624         expand
    52           80          1.17624         reflect
    53           81          1.17624         reflect
    54           82          1.17624         reflect
    55           84         0.691645         reflect
    56           85         0.691645         reflect
    57           86         0.691645         reflect
    58           88         0.691645         contract inside
    59           90         0.691645         contract outside
    60           91         0.691645         reflect
    61           93         0.691645         contract inside
    62           95         0.691645         contract inside
    63           96         0.691645         reflect
    64           97         0.691645         reflect
    65           98         0.691645         reflect
    66          100         0.691645         contract inside
    67          102         0.691645         contract outside
    68          103         0.691645         reflect
    69          105         0.691645         contract inside
    70          107         0.497434         reflect
    71          109         0.497434         contract inside
    72          111         0.497434         contract inside
    73          112         0.497434         reflect
    74          114         0.497434         contract inside
    75          116         0.497434         contract inside
    76          118         0.444957         reflect
    77          120         0.402851         expand
    78          122                0         reflect
    79          123                0         reflect
    80          125                0         contract inside
    81          127                0         contract inside
    82          128                0         reflect
    83          129                0         reflect
    84          130                0         reflect
    85          131                0         reflect
    86          132                0         reflect
    87          133                0         reflect
    88          134                0         reflect
    89          135                0         reflect
    90          137                0         contract inside

Figure contains an axes. The axes contains 4 objects of type line. These objects represent G_t, NF, Gain bounds.

    91          139                0         contract outside
 
Optimization terminated:
 the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-04 
 and F(X) satisfies the convergence criteria using OPTIONS.TolFun of 1.000000e-02 

Обновление соответствующей сети и повторный анализ LNA

Когда стандартная программа оптимизации останавливается, значения оптимизированного элемента сохраняются в LC_Optimized. Следующий код обновляет входную и выходную сети, соответствующие этим значениям.

for loop1 = 1:3
    Matched_Amp.ckts{1}.ckts{loop1}.L = LC_Optimized(loop1);
    Matched_Amp.ckts{3}.ckts{loop1}.L = LC_Optimized(loop1 + 4);
end
Matched_Amp.ckts{1}.ckts{2}.C = LC_Optimized(4);
Matched_Amp.ckts{3}.ckts{2}.C = LC_Optimized(8);
analyze(Matched_Amp,freq,Zl,Zs,Z0); % Analyze LNA

Проверьте проект

Результаты оптимизации можно просмотреть путем построения графика усиления преобразователя и рисунка шума через полосу пропускания и сравнения его с несопоставленным усилителем.

plot(Matched_Amp,'Gt')
hold all
plot(Unmatched_Amp,'Gt')
plot(Matched_Amp,'NF')
plot(Unmatched_Amp,'NF')
legend('G_t  - Matched','G_t  - Unmatched','NF - Matched',...
       'NF - Unmatched','Location','East')
axis([freq(1)*1e-6 freq(end)*1e-6 0 12])
hold off

Figure contains an axes. The axes contains 4 objects of type line. These objects represent G_t - Matched, G_t - Unmatched, NF - Matched, NF - Unmatched.

Графики показов, целевое требование как для усиления, так и для фигуры шума были выполнены. Чтобы понять эффект оптимизации только по усилению преобразователя, используйте первый выбор для функции стоимости (которая включает только член усиления) в целевой функции, показанной выше.

Отобразите оптимизированные значения элементов

Оптимизированные значения индуктивности и конденсатора для входа совпадающей сети показаны ниже.

Lin_Optimized = LC_Optimized(1:3)
Lin_Optimized = 3×1
10-7 ×

    0.5722
    0.9272
    0.3546

Cin_Optimized = LC_Optimized(4)
Cin_Optimized = 6.8526e-12

Точно так же вот оптимизированные значения индуктивности и конденсатора для выхода совпадающей сети

Lout_Optimized = LC_Optimized(5:7)
Lout_Optimized = 3×1
10-6 ×

    0.0517
    0.1275
    0.0581

Cout_Optimized = LC_Optimized(8)
Cout_Optimized = 5.4408e-12

Ссылки

[1] Людвиг, Рейнгольд и Джин Богданов. Проект схемы RF: теория и применения. Верхняя Седл-Ривер, Нью-Джерси: Prentice Hall, 2009.

[2] Cuthbert, Thomas R. Broadband Direct-Coupled и Matching RF Networks. Greenwood, Ark.: T.R. Cuthbert, 1999.

[3] Cuthbert, T.R. «A Real Frequency Technique Optimizing Broadband Equalizer Elements». В 2000 году Международный симпозиум IEEE по схемам и системам. Новые технологии для XXI века. Производство (IEEE Cat No.00CH36353), 5: 401-4. Женева, Швейцария: Presses Polytech. Univ. Romandes, 2000. https://doi.org/10.1109/ISCAS.2000.857453.

[4] Позар, Дэвид М. Микроволновая техника. 4-й эд. Хобокен, Нью-Джерси: Уайли, 2012.

Похожие темы