Codigo matlab deembeding 1 paso y 2 pasos para sistemas de dos puertos
%Método para hacer deembedding 1 paso y dos pasos para sistemas de dos puertos
%Se deben guardar todos los archivos s2p en la misma carpeta del programa
%hay que cambiar manualmente el raw y los nombres de los ficheros para
%guardar el archivo touchstone en el write.
close all
clear all
clc
format long
%Se llama la ubicación de los archivos s2p y se guardan en una variable
Add='Archivo';
short=strcat(Add,('short.s2p'));%short
open=strcat(Add,('open.s2p'));%open
raw=strcat(Add,('archivo s2p sin deembedding.s2p'));%archivo s2p sin deembedding
%se guardan los datos de los archivos llamados en una variable para que sean datos
add_short=read(rfdata.data,short);
add_open=read(rfdata.data,open);
add_raw=read(rfdata.data,raw);
%se define la frecuencia para armar las matrices de datos
Fc=add_short.Freq; %Frecuencia.
w=Fc.*(2*pi);
%Se contruyen las matrices de parámetros s
S_short=extract(add_short,'S_PARAMETERS');
S_open=extract(add_open,'S_PARAMETERS');
S_raw=extract(add_raw,'S_PARAMETERS');
%se convierten los oapámetros S requeridos a parámetros Y o Z
Zo=50;
Z_short=s2z(S_short,Zo);
Y_open=s2y(S_open,Zo);
Y_raw=s2y(S_raw,Zo);
%% Deembedding 1 paso - OPEN
Y_nmos_one=Y_raw-Y_open;
S_nmos_one=y2s(Y_nmos_one,Zo);
%% Guardar como touchstone 1 paso
txdata1 = rfdata.data;
txdata1.S_Parameters = S_nmos_one;
txdata1.Freq=Fc;
txdata1.Z0=Zo;
write(txdata1,'nombre con el que se desea guardar el archivo con deembeding_1_paso');
%% Deembedding 2 pasos OPEN-SHORT
pasos_s=size(Fc,1); %Numero de pasos
Y_nmos_two=zeros(size(S_short));
k=1;
while k<=pasos_s
Y_nmos_two(1,1,k)=inv(inv(Y_raw(1,1,k)-Y_open(1,1,k))-inv(inv(Z_short(1,1,k))-Y_open(1,1,k)));
Y_nmos_two(1,2,k)=inv(inv(Y_raw(1,2,k)-Y_open(1,2,k))-inv(inv(Z_short(1,2,k))-Y_open(1,2,k)));
Y_nmos_two(2,1,k)=inv(inv(Y_raw(2,1,k)-Y_open(2,1,k))-inv(inv(Z_short(2,1,k))-Y_open(2,1,k)));
Y_nmos_two(2,2,k)=inv(inv(Y_raw(2,2,k)-Y_open(2,2,k))-inv(inv(Z_short(2,2,k))-Y_open(2,2,k)));
k=k+1;
end
S_nmos_two=y2s(Y_nmos_two,Zo);
%% Guardar como touchstone 2 pasos
txdata1 = rfdata.data;
txdata1.S_Parameters = S_nmos_two;
txdata1.Freq=Fc;
txdata1.Z0=Zo;
write(txdata1,'nombre con el que se desea guardar el archivo con deembeding_2_pasos');
%% Gráficas de parámetros S deembedding
%se deben llamar los parámetros s2p guardados en la misma carpeta del
%programa que se desean graficar
Sraw=sparameters('archivo sin deembeding.s2p');
SNMOS1=sparameters('archivo 1 paso.s2p');
SNMOS2=sparameters('archivo dos pasos.s2p');
figure (1)
rfplot(Sraw,1,1)
hold on
rfplot(SNMOS1,1,1)
rfplot(SNMOS2,1,1)
hold off
figure (2)
rfplot(Sraw,2,1)
hold on
rfplot(SNMOS1,2,1)
rfplot(SNMOS2,2,1)
hold off
figure (3)
smith(Sraw,1,1)
hold on
smith(SNMOS1,1,1)
smith(SNMOS2,1,1)
hold off
figure (4)
smith(Sraw,2,1)
hold on
smith(SNMOS1,2,1)
smith(SNMOS2,2,1)
hold off
Comentarios
Publicar un comentario