二端口参数相互转换代码-Matlab
适合2*2矩阵计算,多个矩阵计算待更新…
%% Spara tranfer Zpara S参数转换为Z参数
function [Z]=s_tran_z(Z0,S)
Z(1,1)=Z0*((1+S(1,1))*(1-S(2,2))+S(1,2)*S(2,1))/((1-S(1,1))*(1-S(2,2))-S(1,2)*S(2,1));
Z(1,2)=Z0*2*S(1,2)/((1-S(1,1))*(1-S(2,2))-S(1,2)*S(2,1));
Z(2,1)=Z0*2*S(2,1)/((1-S(1,1))*(1-S(2,2))-S(1,2)*S(2,1));
Z(2,2)=Z0*((1-S(1,1))*(1+S(2,2))+S(1,2)*S(2,1))/((1-S(1,1))*(1-S(2,2))-S(1,2)*S(2,1));
Z; % 不加;号将会显示Z矩阵值
end
%% Zpara tranfer Spara Z参数转换为S参数
function [S]=z_tran_s(Z0,Z)
Z_com=(Z(1,1)+Z0)*(Z(2,2)+Z0)-Z(1,2)*Z(2,1);
S(1,1)=((Z(1,1)-Z0)*(Z(2,2)+Z0)-Z(1,2)*Z(2,1))/Z_com;
S(1,2)=2*Z(1,2)*Z0/Z_com;
S(2,1)=2*Z(2,1)*Z0/Z_com;
S(2,2)=((Z(1,1)+Z0)*(Z(2,2)-Z0)-Z(1,2)*Z(2,1))/Z_com;
S;
end
%% Spara transfer Ypara S参数转换为Y参数
function [Y]=s_tran_y(Z0,S)
Y0=1/Z0;
S_com=((1+S(1,1))*(1+S(2,2))-S(1,2)*S(2,1));
Y(1,1)=Y0*((1-S(1,1))*(1+S(2,2))+S(1,2)*S(2,1))/S_com;
Y(1,2)=-2*S(1,2)/S_com;
Y(2,1)=-2*S(2,1)/S_com;
Y(2,2)=Y0*((1+S(1,1))*(1-S(2,2))+S(1,2)*S(2,1))/S_com;
Y;
end
%% -----输入S,Y,Z参数-----
S = [0.9954 - 0.0101i 0.0046 + 0.0059i ; 0.0046 + 0.0059i 0.9954 - 0.0127i]
%% main 主函数
Z0=50;
[Z]=s_tran_z(Z0,S);
[S]=z_tran_s(Z0,Z);
[Y]=s_tran_y(Z0,S);
% -------------------
二端口参数的相互转换表
表格来自:射频集成电路与系统[M]李智群,王志功编著.北京:科学出版社,2008,PP:25-26.