В этом примере показано, как использовать RF Toolbox, чтобы определить сети соответствия ввода и вывода, которые максимизируют степень, поставленную загрузке на 50 Ом и системе. Разработка сетей соответствия ввода и вывода является важной частью проекта усилителя. Этот пример сначала вычисляет отражательные факторы для одновременного сопряженного соответствия и затем определяет размещение тупика шунта в каждой сети соответствия на заданной частоте. Наконец, пример располагает каскадом соответствующие сети с усилителем и строит результаты.
rfckt.amplifier
ОбъектСоздайте rfckt.amplifier
объект представлять усилитель, описанный измеренными зависимыми частотой данными S-параметра в файле samplebjt2.s2p
. Затем extract
зависимые частотой данные S-параметра из rfckt.amplifier
объект.
amp = read(rfckt.amplifier,'samplebjt2.s2p'); [sparams,AllFreq] = extract(amp.AnalyzedResult,'S_Parameters');
Перед продолжением проекта определите измеренные частоты, на которых усилитель безусловно устойчив. Используйте stabilitymu
функция, чтобы вычислить mu
и muprime
на каждой частоте. Затем проверяйте что возвращенные значения на mu
больше того. Это критерии является необходимым и достаточным условием для безусловной устойчивости. Если усилитель весьма условно устойчив, распечатайте соответствующее значение частоты.
[mu,muprime] = stabilitymu(sparams); figure plot(AllFreq/1e9,mu,'--',AllFreq/1e9,muprime,'r') legend('MU',"MU'",'Location','Best') title("Stability Parameters MU and MU'") xlabel('Frequency [GHz]')
disp('Measured Frequencies where the amplifier is not unconditionally stable:')
Measured Frequencies where the amplifier is not unconditionally stable:
fprintf('\tFrequency = %.1e\n',AllFreq(mu<=1))
Frequency = 1.0e+09 Frequency = 1.1e+09
В данном примере усилитель безусловно устойчив на всех измеренных частотах кроме 1,0 ГГц и 1,1 ГГц.
Начните проектировать сети соответствия ввода и вывода путем преобразования отражательных коэффициентов для одновременного сопряженного соответствия в интерфейсах усилителя в соответствующий источник и загрузите проводимость. Этот пример использует следующую схему соответствия линии электропередачи без потерь:
Расчетные параметры для этой одной схемы соответствия тупика являются местоположением тупиков со ссылкой на интерфейсы усилителя и тупиковые длины. Процедура использует следующие принципы разработки:
Центр графика Смита представляет нормированный источник или иммитанс загрузки.
Перемещение вдоль линии электропередачи эквивалентно пересечению круга, строившего в начале координат графика Смита с радиусом, равным отражательной содействующей величине.
Один тупик линии электропередачи может быть вставлен в точке на линии электропередачи, когда ее проводимость (линия электропередачи) пересекает круг проводимости единицы. В этом местоположении тупик инвертирует реактивную проводимость линии электропередачи, приводящую к проводимости, которая равняется исходные завершения или загрузка.
Этот пример использует график ИЗА Смита, потому что легче добавить тупик параллельно с линией электропередачи с помощью этого типа графика Смита.
calculate
и постройте всю комплексную загрузку и исходные коэффициенты отражения для одновременного сопряженного соответствия во всех измеренных точках данных частоты, которые безусловно устойчивы. Эти отражательные коэффициенты измеряются в интерфейсах усилителя.
AllGammaL = calculate(amp,'GammaML','none'); AllGammaS = calculate(amp,'GammaMS','none'); hsm = smithplot([AllGammaL{:} AllGammaS{:}]); hsm.LegendLabels = {'#Gamma ML','#Gamma MS'};
Найдите коэффициент отражения загрузки, GammaL
, для выходной сети соответствия на частоте проекта 1,9 ГГц.
freq = AllFreq(AllFreq == 1.9e9); GammaL = AllGammaL{1}(AllFreq == 1.9e9)
GammaL = -0.0421 + 0.2931i
Нарисуйте круг, который сосредоточен в нормированной проводимости источник графика Смита и чей радиус равняется величине GammaL
. Точка на этом круге представляет отражательный коэффициент в конкретном местоположении на линии электропередачи. Отражательным коэффициентом для линии электропередачи в интерфейсе усилителя является GammaL
, в то время как центр графика представляет нормированную проводимость загрузки, y_L
. Пример использует circle
метод, чтобы нарисовать все соответствующие круги на графике Смита.
hsm = smithplot; circle(amp,freq,'Gamma',abs(GammaL),hsm); hsm.GridType = 'yz'; hold all plot(0,0,'k.','MarkerSize',16) plot(GammaL,'k.','MarkerSize',16) txtstr = sprintf('\\Gamma_{L}\\fontsize{8}\\bf=\\mid%s\\mid%s^\\circ', ... num2str(abs(GammaL),4),num2str((angle(GammaL)*180/pi),4)); text(real(GammaL),imag(GammaL)+.1,txtstr,'FontSize',10, ... 'FontUnits','normalized'); plot(0,0,'r',0,0,'k.','LineWidth',2,'MarkerSize',16); text(0.05,0,'y_L','FontSize',12,'FontUnits','normalized')
Чтобы определить тупиковую длину волны (реактивная проводимость) и ее местоположение относительно интерфейса согласования нагрузки усилителя, постройте нормированный круг проводимости единицы и постоянный круг величины и фигуру, где эти два круга пересекаются. Найдите точки пересечения в интерактивном режиме с помощью Data Cursor или аналитически с помощью функции помощника, find_circle_intersections_helper
. Этот пример использует функцию помощника. Круги пересекаются в двух точках. Пример использует трех-квадрантную точку, которая помечена "A". Круг проводимости единицы сосредоточен в (-.5,0) с радиусом.5. Постоянный круг величины сосредоточен в (0,0) с радиусом, равным величине GammaL
.
circle(amp,freq,'G',1,hsm); hsm.ColorOrder(2,:) = [1 0 0]; [~,pt2] = imped_match_find_circle_intersections_helper([0 0], ... abs(GammaL),[-.5 0],.5); GammaMagA = sqrt(pt2(1)^2 + pt2(2)^2); GammaAngA = atan2(pt2(2),pt2(1)); ax = hsm.Parent.CurrentAxes; hold (ax,"on"); plot(ax, pt2(1),pt2(2),'k.','MarkerSize',16); txtstr = sprintf('A=\\mid%s\\mid%s^\\circ',num2str(GammaMagA,4), ... num2str(GammaAngA*180/pi,4)); text(ax, pt2(1),pt2(2)-.07,txtstr,'FontSize',8,'FontUnits','normalized', ... 'FontWeight','Bold') container = hsm.Parent; annotation(container,'textbox','VerticalAlignment','middle',... 'String',{'Unity','Conductance','Circle'},... 'HorizontalAlignment','center','FontSize',8,... 'EdgeColor',[0.04314 0.5176 0.7804],... 'BackgroundColor',[1 1 1],'Position',[0.1403 0.1608 0.1472 0.1396]) annotation(container,'arrow',[0.2786 0.3286],[0.2778 0.3310]) annotation(container,'textbox','VerticalAlignment','middle',... 'String',{'Constant','Magnitude','Circle'},... 'HorizontalAlignment','center','FontSize',8,... 'EdgeColor',[0.04314 0.5176 0.7804],... 'BackgroundColor',[1 1 1],'Position',[0.8107 0.3355 0.1286 0.1454]) annotation(container,'arrow',[0.8179 0.5761],[0.4301 0.4887]);
Местоположение тупика разомкнутой цепи в длинах волн от интерфейса загрузки усилителя является функцией по часовой стрелке углового различия между точкой "A" и GammaL
. Когда точка "A" появляется в третьем квадранте и GammaL
падения второго квадранта, тупиковое положение в длинах волн вычисляется можно следующим образом:
StubPositionOut = ((2*pi + GammaAngA) - angle(GammaL))/(4*pi)
StubPositionOut = 0.2147
Тупиковое значение является суммой реактивной проводимости, которая требуется, чтобы перемещать нормированную проводимость загрузки (центр графика Смита) к точке "A" на постоянном круге величины. Открытая тупиковая линия электропередачи может использоваться, чтобы предоставить это значение реактивной проводимости. Его длина волны задана объемом углового вращения от точки проводимости разомкнутой цепи на графике Смита (точка "M" на следующей фигуре) к необходимой точке "N" реактивной проводимости на внешнем крае графика. Точка "N" - то, где постоянный круг реактивной проводимости со значением, равным реактивной проводимости точки "A", пересекает модульный круг. Кроме того, StubLengthOut
формула, используемая ниже, требует, чтобы "N" упал в третьем или четвертом квадранте.
GammaA = GammaMagA*exp(1j*GammaAngA); bA = imag((1 - GammaA)/(1 + GammaA)); StubLengthOut = -atan2(-2*bA/(1 + bA^2),(1 - bA^2)/(1 + bA^2))/(4*pi)
StubLengthOut = 0.0883
В предыдущих разделах пример вычислил необходимые длины и размещения, в длинах волн, для выходной сети связи соответствия. После того же подхода вычисляются длины линии для входной сети соответствия:
GammaS = AllGammaS{1}(AllFreq == 1.9e9)
GammaS = -0.0099 + 0.2501i
[pt1,pt2] = imped_match_find_circle_intersections_helper([0 0], ...
abs(GammaS),[-.5 0],.5);
GammaMagA = sqrt(pt2(1)^2 + pt2(2)^2);
GammaAngA = atan2(pt2(2),pt2(1));
GammaA = GammaMagA*exp(1j*GammaAngA);
bA = imag((1 - GammaA)/(1 + GammaA));
StubPositionIn = ((2*pi + GammaAngA) - angle(GammaS))/(4*pi)
StubPositionIn = 0.2267
StubLengthIn = -atan2(-2*bA/(1 + bA^2),(1 - bA^2)/(1 + bA^2))/(4*pi)
StubLengthIn = 0.0759
Чтобы проверить проект, соберите схему с помощью микрополосковых линий электропередачи на 50 Ом для соответствующих сетей. Во-первых, определите, является ли микрополосковая линия подходящим выбором путем анализа микрополосковой линии электропередачи по умолчанию на частоте проекта 1,9 ГГц.
stubTL4 = rfckt.microstrip; analyze(stubTL4,freq); Z0 = stubTL4.Z0;
Этот характеристический импеданс близко к желаемому импедансу на 50 Ом, таким образом, пример может возобновить проект с помощью этих микрополосковых линий.
Чтобы вычислить необходимые длины линии электропередачи в метрах для размещения тупиков, анализируйте микрополосковую линию, чтобы получить значение фазовой скорости.
phase_vel = stubTL4.PV;
Используйте значение фазовой скорости, которое определяет длину волны линии электропередачи и тупиковое местоположение, чтобы установить соответствующие длины линии электропередачи для двух микрополосковых линий электропередачи, TL2
и TL3
.
TL2 = rfckt.microstrip('LineLength',phase_vel/freq*StubPositionIn); TL3 = rfckt.microstrip('LineLength',phase_vel/freq*StubPositionOut);
Используйте фазовую скорость снова, чтобы задать тупиковую длину и тупиковый режим для каждого тупика.
stubTL1 = rfckt.microstrip('LineLength',phase_vel/freq*StubLengthIn, ... 'StubMode','shunt','Termination','open'); set(stubTL4,'LineLength',phase_vel/freq*StubLengthOut, ... 'StubMode','shunt','Termination','open')
Теперь расположите каскадом элементы схемы и анализируйте усилитель с и без соответствующих сетей по частотному диапазону 1,5 к 2,3 ГГц.
matched_amp = rfckt.cascade('Ckts',{stubTL1,TL2,amp,TL3,stubTL4});
analyze(matched_amp,1.5e9:1e7:2.3e9);
analyze(amp,1.5e9:1e7:2.3e9);
Чтобы проверить одновременное сопряженное соответствие во входе усилителя, постройте S11
параметры в дБ и для совпадающих и для несопоставленных схем.
clf plot(amp,'S11','dB') hold all hline = plot(matched_amp,'S11','dB'); hline.Color = 'r'; legend('S_{11} - Original Amplifier', 'S_{11} - Matched Amplifier') legend('Location','SouthEast') hold off
Чтобы проверить одновременное сопряженное соответствие при выходе усилителя, постройте S22
параметры в дБ и для совпадающих и для несопоставленных схем.
plot(amp,'S22','dB') hold all hline = plot(matched_amp,'S22','dB'); hline.Color = 'r'; legend('S_{22} - Original Amplifier', 'S_{22} - Matched Amplifier') legend('Location','SouthEast') hold off
Наконец, постройте усиление преобразователя (Gt
) и максимальное доступное усиление (Gmag
) в дБ для совпадающей схемы.
hlines = plot(matched_amp,'Gt','Gmag','dB'); hlines(2).Color = 'r';
Вы видите, что усиление преобразователя и максимальное доступное усиление очень друг близко к другу на уровне 1,9 ГГц.