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

Entradas más populares de este blog

Ejercicio 1 en lpp

Ejercicio 1 Java

Ejercicio 2 Java