⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 match_net.m

📁 spread spectrum communication will be helpful to you!
💻 M
字号:
%  Getting close to the finish !  Now need to develop ABCD (chain) to s param transoformation 
%  since the matching networks were (sucessfully) described using ABCD two port description.
%  Assume same Zo on both ports
clear
clc

syms a b c d z11 z12 z21 z22 s11 s12 s21 s22 Zo s

% first, abcd -> z
z11 = a/(c);  z12 = (a*d-b*c)/(c); z21=1/(c); z22 = d/(c);  % dimensionally ok and "confirmed"
% note that C=0 (no shunt) is a bummer .... 
% Then, z -> s parameters ... 
D      = ((z11/Zo+1)*(z22/Zo+1)-z12*z21/(Zo^2));
sp(1,1) = simple(((z11/Zo-1)*(z22/Zo+1)-z12*z21/(Zo^2))/D);
sp(2,2) = simple(((z11/Zo+1)*(z22/Zo-1)-z12*z21/(Zo^2))/D);
sp(1,2) = simple(2*z12/(D*Zo));
sp(2,1) = simple(2*z21/(D*Zo));

% using the aboove, convert LC matching net to s param
% First, create ABCD as before in s_plu_match_2.m 
syms  x y Z Y s   L1 L2 C1 C2 Co Rl w
Z(1,1) = 1; Z(1,2) = x; Z(2,1) = 0; Z(2,2)=1;    % series impedance
Y(1,1) = 1; Y(1,2) = 0; Y(2,1) = y; Y(2,2)=1;    % shunt admittance

% build a network using abcd chain parameters, same topology *happens* to be used on transistor input and output 
 Z(1,2) = L2*s;            % series L2
 Y(2,1) = C2*s;            % shunt C2
 N      = Z*Y;             % combine (series 1st)
 Z(1,2) = L1*s + 1/(C1*s); % series lC
 N_abcd  = N*Z;            % series L2, shunt C2, followed by series L1 C1
 
 disp('Here is the general S parameter description of the INPUT matching network: ')
 N_s     = subs(sp,{a b c d Zo},{N_abcd(1,1), N_abcd(1,2), N_abcd(2,1),N_abcd(2,2),50})
                         
 Y(2,1)  = Co*s;          % for output match, need to add a shunt cap 
 Nout_abcd  = simple(Y*N_abcd);
 
 disp('Here is the general S parameter description of the OUTPUT matching network: ')
 Nout_s  = subs(sp,{a b c d Zo},{Nout_abcd(1,1), Nout_abcd(1,2), Nout_abcd(2,1),Nout_abcd(2,2), 50});
 
 
 % determine polynonials
  [numi,deni] = numden(N_s);
  numi = collect(numi,s);
  deni = collect(deni,s);
  [numo,deno]=numden(Nout_s);
  numo = collect(numo,s);
  deno = collect(deno,s);
  
   load amp_data;            % Now pick up LC NUMERICAL values for matching network
   a=1e6;                    % Simulink Model was scaled by 1 MHz for computation reasons.
   for i=1:2
       for k=1:2
           % input matching network 
           L1=(L1i+Loi)*a; L2=L2i*a; C1=C1i*a; C2=C2i*a; % scale components
           ni(i,k).p= sym2poly(subs(numi(i,k)));  
           di(i,k).p= sym2poly(subs(deni(i,k))); 
         
           % output matching network
           L1=(L1o)*a; L2=L2o*a; C1=C1o*a; C2=C2o*a; % scale components
           Co = Coo*a;
           no(i,k).p= sym2poly(subs(numo(i,k)));  
           do(i,k).p= sym2poly(subs(deno(i,k))); 
       end
   end;
   % We now (ostensibly) have s parameter matching networks in the s-domain
   % with numerical coefficients for the powers of s. 
   % Confused yet ? Sorry, too many s's !  
   save match_net ni di no do
   % The final confirmation will be to use these matching networks in a
   % Simulink model, along with the Transistor model that was checked in
   % sp_ex1.m 
   disp('Doing this algebra by long hand would be very very painful !  ')
   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -