Этот пример показывает, как использовать 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\prime','Location','Best') title('Stability Parameters MU and MU\prime') xlabel('Frequency [GHz]') disp('Measured Frequencies where the amplifier is not unconditionally stable:') fprintf('\tFrequency = %.1e\n',AllFreq(mu<=1))
Measured Frequencies where the amplifier is not unconditionally stable: 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)); plot(pt2(1),pt2(2),'k.','MarkerSize',16); txtstr = sprintf('A=\\mid%s\\mid%s^\\circ',num2str(GammaMagA,4), ... num2str(GammaAngA*180/pi,4)); text(pt2(1),pt2(2)-.07,txtstr,'FontSize',8,'FontUnits','normalized', ... 'FontWeight','Bold') annotation('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('arrow',[0.2786 0.3286],[0.2778 0.3310]) annotation('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('arrow',[0.8179 0.5761],[0.4301 0.4887]); hold off
Местоположение тупика разомкнутой цепи в длинах волн от интерфейса загрузки усилителя является функцией по часовой стрелке углового различия между точкой "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 ГГц.