MATLAB: Convert S-Parameters zu Z

s-parameterss2zsparametersz-parameterszparameters

Hello everybody,
I tried to read the S parameters from a circuit with the source code below and to convert them to Z parameters. Unfortunately, I get the following error message:
  • Error using CheckNetworkData (line 39)S_PARAMS must be numeric.
Can someone help me there?
Thanks in advance.
Sven
%Schaltkreis anlegen
freq = linspace(40e3,9e9,100000);
ckt_DUT = circuit('LC_Wire');
add(ckt_DUT,[1 2],inductor(1.25e-9))
add(ckt_DUT,[2 3],capacitor(1e-12))
add(ckt_DUT,[2 4],inductor(1.25e-9))
setports(ckt_DUT,[1 3],[4 3]);
%C_Open (siehe Script Seite 19) anlegen
ckt_C_open = circuit('Copen');
add(ckt_C_open,[1 3],capacitor(100e-15));
add(ckt_C_open,[1 2],resistor(1e9));
add(ckt_C_open,[2 3],capacitor(100e-15));
setports(ckt_C_open,[1 3],[2 3]);
%L_Short (siehe Script Seite 19) anlegen
ckt_L_short = circuit('Lshort');
add(ckt_L_short,[1 2],inductor(1e-9));
add(ckt_L_short,[2 3],inductor(1e-9));
add(ckt_L_short,[4 5],resistor(1e-15));
setports(ckt_L_short,[1 4],[3 5]);
%S-Parameter von DUT_Messung berechnen und zu Z umwandeln
S_ckt_DUT = sparameters(ckt_DUT,freq);
Z_ckt_DUT = s2z(S_ckt_DUT);

Best Answer

Hi Seven ,
You are getting an error because you are passing a struct variable into the s2z() function. (Try to insert a breakpoint and see the command window for the data type.)
You must pass only the s-parameter values, which is available in the Parameters field of your S_ckt_DUT struct.
Z_ckt_DUT = s2z(S_ckt_DUT.Parameters) % Replace the last line with this