Разработка широкополосных сетей соответствия (часть 2: усилитель)

Этот пример показывает, как разработать широкополосные сети соответствия для низкого шумового усилителя (LNA). Во фронтэнде получателя РФ LNA обычно сразу найден после антенны или после первого полосового фильтра, который следует за антенной. Его положение в цепочке получателя гарантирует, что она имеет дело со слабыми сигналами, которые имеют значительное шумовое содержимое. В результате LNA должен не только предоставить усиление таким сигналам, но также и минимизировать его собственное шумовое место на усиленном сигнале. В этом примере вы разработаете LNA, чтобы достигнуть целевого усиления и шумовых спецификаций фигуры по заданной пропускной способности, с помощью смешанных элементов LC. Прямой основанный на поиске подход используется, чтобы достигнуть оптимальных значений элемента в сети соответствия ввода и вывода.

Рисунок 1: Импеданс, соответствующий усилителя

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

Спецификации проекта следующие

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

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

  • Пропускная способность = 100 МГц

  • Усиление преобразователя, больше, чем или равный 10 дБ

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

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

Задайте пропускную способность, центральную частоту, шумовую фигуру и импеданс

Вы создаете соответствующую сеть для 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'); % Create amplifier object

Задайте количество точек частоты, чтобы использовать для анализа и настроить вектор частоты.

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, чтобы выполнить анализ частотного диапазона в точках частоты в векторной частоте.

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

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

LNA должен действовать в стабильной области, таким образом, наш первый шаг должен построить 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

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

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

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

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

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

Разработайте сети соответствия ввода и вывода

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

Рисунок 2: Соответствие с сетевой топологией

Выбранная топология, как замечено в рисунке 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});

Оптимизируйте Input & Output Matching Network

Существует несколько вопросов для рассмотрения до оптимизации.

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

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

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

  • Метод оптимизации - прямой основанный на поиске метод, функция 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
    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

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

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

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

Lin_Optimized = LC_Optimized(1:3)
Cin_Optimized = LC_Optimized(4)
Lin_Optimized =

   1.0e-07 *

    0.5722
    0.9272
    0.3546


Cin_Optimized =

   6.8526e-12

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

Lout_Optimized = LC_Optimized(5:7)
Cout_Optimized = LC_Optimized(8)
Lout_Optimized =

   1.0e-06 *

    0.0517
    0.1275
    0.0581


Cout_Optimized =

   5.4408e-12

Ссылки

[1] Проектирование схем РФ, Теория и Приложения, Райнхольд Людвиг и П. Бречко, стр 229-239, Prentice Hall, 2000.

[2] Широкополосно передайте С непосредственной связью и Соответствие с сетями РФ, Томасом Р. Катбертом, стр 31-33, TRCPEP, 1999.

[3] Томас Р.Катберт, действительный метод частоты, оптимизируя широкополосные элементы эквалайзера, симпозиум IEEE® International по схемам и системам, 2000.

[4] Микроволновая Разработка, Дэвид М.Позэр, 2-й редактор, John Wiley and Sons, 1999.

Для просмотра документации необходимо авторизоваться на сайте