cascadesparams

Combine S-parameters to form cascade network

Description

example

s_params= cascadesparams(s1_params,s2_params,...,sk_params) cascades the scattering parameters (S-parameters) of K input networks described by the S-parameters. Each input network must be a 2N-port network described by a 2N-by-2M array of S-parameters. All networks must have the same reference impedance.

Note

The cascadesparams function uses ABCD parameters. Alternatively, one

could use sparameters and abcdparameters (or T-parameters) to cascade

sparameters together by hand (assuming identical frequencies)

hs= cascadesparams(hs1,hs2,...,hsk) cascades K S-parameter objects to create a cascade network. The function checks that the impedance and frequencies of each object is equal and that the parameters of each object contain 2N-by-2N-by-M array of S-parameters.

s_params= cascadesparams(s1_params,s2_params,...,sk_params,Kconn) creates the cascaded networks based on the number of cascaded connections between the networks specified by Kconn.

Examples

collapse all

Assemble a 2-port cascaded network from two sets of 2-port S-parameters. Create two sets of 2-port S-parameters.

ckt1 = read(rfckt.amplifier,'default.s2p');
ckt2 = read(rfckt.passive,'passive.s2p');
freq = [2e9 2.1e9];
analyze(ckt1,freq);
analyze(ckt2,freq);
sparams_2p_1 = ckt1.AnalyzedResult.S_Parameters;
sparams_2p_2 = ckt2.AnalyzedResult.S_Parameters;

Cascade the S-parameters.

sparams_cascaded_2p = cascadesparams(sparams_2p_1,sparams_2p_2)
sparams_cascaded_2p = 
sparams_cascaded_2p(:,:,1) =

  -0.4332 + 0.5779i   0.0081 - 0.0120i
   2.6434 + 1.2880i   0.5204 - 0.5918i


sparams_cascaded_2p(:,:,2) =

  -0.1271 + 0.3464i  -0.0004 - 0.0211i
   3.8700 - 0.6547i   0.4458 - 0.6250i

Assemble a 3-port cascaded network from a set of 3-port S-parameters and a set of 2-port S-parameters.

Create one set of 3-port S-parameters and one set of 2-port S-parameters.

ckt1 = read(rfckt.passive,'default.s3p');
ckt2 = read(rfckt.amplifier,'default.s2p');
freq = [2e9 2.1e9];
analyze(ckt1,freq);
analyze(ckt2,freq);
sparams_3p = ckt1.AnalyzedResult.S_Parameters;
sparams_2p = ckt2.AnalyzedResult.S_Parameters;

Cascade the two sets by connecting one port between them.

Kconn = 1;
sparams_cascaded_3p = cascadesparams(sparams_3p,sparams_2p,Kconn)
sparams_cascaded_3p = 
sparams_cascaded_3p(:,:,1) =

   0.1339 - 0.9561i   0.0325 + 0.2777i   0.0222 + 0.0092i
   0.3497 + 0.2449i   0.3130 - 0.9235i   0.0199 + 0.0255i
  -4.0617 + 5.0914i  -1.6296 + 4.7333i  -0.7133 - 0.7305i


sparams_cascaded_3p(:,:,2) =

  -0.3023 - 0.7303i   0.0635 + 0.4724i   0.0005 - 0.0220i
   0.1408 + 0.2705i  -0.1657 - 0.7749i   0.0198 - 0.0274i
   5.7709 + 2.2397i   4.1929 - 0.2165i  -0.5092 + 0.4251i

Assemble a 3-port cascaded network from a set of 3-port S-parameters and a set of 2-port S-parameters, connecting the second port of the 3-port network to the first port of the 2-port.

ckt1 = read(rfckt.passive,'default.s3p');
ckt2 = read(rfckt.amplifier,'default.s2p');
freq = [2e9 2.1e9];
analyze(ckt1,freq);
analyze(ckt2,freq);
sparams_3p = ckt1.AnalyzedResult.S_Parameters;
sparams_2p = ckt2.AnalyzedResult.S_Parameters;

Reorder the second and third ports of the 3-port network

sparams_3p_2 = snp2smp(sparams_3p,50,[1 3 2])
sparams_3p_2 = 
sparams_3p_2(:,:,1) =

  -0.0073 - 0.8086i   0.1114 + 0.3027i  -0.0318 + 0.4208i
  -0.0285 + 0.4285i   0.0503 - 0.8080i   0.0898 + 0.3177i
   0.0869 + 0.3238i  -0.0701 + 0.4278i   0.1431 - 0.7986i


sparams_3p_2(:,:,2) =

  -0.2560 - 0.7399i   0.2124 + 0.2502i   0.0895 + 0.4536i
   0.1031 + 0.4867i  -0.2078 - 0.7553i   0.1989 + 0.2725i
   0.2079 + 0.2988i   0.0508 + 0.5019i  -0.1163 - 0.7761i

Cascade the two sets by connecting one port between them

Kconn = 1;
sparams_cascaded_3p_2 = cascadesparams(sparams_3p_2,...
     sparams_2p,Kconn)
sparams_cascaded_3p_2 = 
sparams_cascaded_3p_2(:,:,1) =

   0.1391 - 0.9217i   0.3442 + 0.2475i   0.0180 + 0.0214i
   0.0487 + 0.3061i   0.2064 - 0.9111i   0.0190 + 0.0109i
  -1.7344 + 4.1655i  -4.2628 + 3.9827i  -0.6199 - 0.7368i


sparams_cascaded_3p_2(:,:,2) =

  -0.3058 - 0.7358i   0.1492 + 0.2216i   0.0164 - 0.0271i
   0.0714 + 0.5048i  -0.2584 - 0.7547i   0.0025 - 0.0230i
   4.6396 - 0.0736i   5.6709 + 3.0321i  -0.5803 + 0.4618i

Assemble a 3-port cascaded network from a set of 3-port S-parameters and two sets of 2-port S-parameters.

ckt1 = read(rfckt.passive,'default.s3p');
ckt2 = read(rfckt.amplifier,'default.s2p');
ckt3 = read(rfckt.passive,'passive.s2p');
freq = [2e9 2.1e9];
analyze(ckt1,freq);
analyze(ckt2,freq);
analyze(ckt3,freq);
sparams_3p = ckt1.AnalyzedResult.S_Parameters;
sparams_2p_1 = ckt2.AnalyzedResult.S_Parameters;
sparams_2p_2 = ckt3.AnalyzedResult.S_Parameters;

Connect one port between each set of adjacent networks.

Kconn = [1 1];
sparams_cascaded_3p_3 = cascadesparams(sparams_3p,...
     sparams_2p_1,sparams_2p_2,Kconn)
sparams_cascaded_3p_3 = 
sparams_cascaded_3p_3(:,:,1) =

   0.1144 - 0.8944i   0.0342 + 0.3273i   0.0046 + 0.0052i
   0.2861 + 0.3040i   0.2822 - 0.8643i   0.0020 + 0.0091i
  -1.6910 + 0.8202i  -1.0132 + 1.0296i   0.5275 - 0.6425i


sparams_cascaded_3p_3(:,:,2) =

  -0.2985 - 0.8130i   0.0429 + 0.4202i   0.0075 - 0.0062i
   0.2177 + 0.1692i  -0.1463 - 0.8590i   0.0149 - 0.0013i
   0.9210 + 2.5820i   1.2868 + 1.3420i   0.3627 - 0.5876i

Assemble a 3-port cascaded network from a set of 3-port S-parameters and two sets of 2-port S-parameters, connecting the 3-port network to both 2-port networks.

ckt1 = read(rfckt.passive,'default.s3p');
ckt2 = read(rfckt.amplifier,'default.s2p');
ckt3 = read(rfckt.passive,'passive.s2p');
freq = [2e9 2.1e9];
analyze(ckt1,freq);
analyze(ckt2,freq);
analyze(ckt3,freq);
sparams_3p = ckt1.AnalyzedResult.S_Parameters;
sparams_2p_1 = ckt2.AnalyzedResult.S_Parameters;
sparams_2p_2 = ckt3.AnalyzedResult.S_Parameters;

Cascade sparams_3p and sparams_2p_1 by connecting one port between them.

Kconn = 1;
sparams_cascaded_3p = cascadesparams(...
  sparams_3p, ...
  sparams_2p_1, ...
  Kconn)
sparams_cascaded_3p = 
sparams_cascaded_3p(:,:,1) =

   0.1339 - 0.9561i   0.0325 + 0.2777i   0.0222 + 0.0092i
   0.3497 + 0.2449i   0.3130 - 0.9235i   0.0199 + 0.0255i
  -4.0617 + 5.0914i  -1.6296 + 4.7333i  -0.7133 - 0.7305i


sparams_cascaded_3p(:,:,2) =

  -0.3023 - 0.7303i   0.0635 + 0.4724i   0.0005 - 0.0220i
   0.1408 + 0.2705i  -0.1657 - 0.7749i   0.0198 - 0.0274i
   5.7709 + 2.2397i   4.1929 - 0.2165i  -0.5092 + 0.4251i

Reorder the second and third ports of the 3-port network.

sparams_cascaded_3p_3 = snp2smp(...
  sparams_cascaded_3p, ...
  50, ...
  [1 3 2])
sparams_cascaded_3p_3 = 
sparams_cascaded_3p_3(:,:,1) =

   0.1339 - 0.9561i   0.0222 + 0.0092i   0.0325 + 0.2777i
  -4.0617 + 5.0914i  -0.7133 - 0.7305i  -1.6296 + 4.7333i
   0.3497 + 0.2449i   0.0199 + 0.0255i   0.3130 - 0.9235i


sparams_cascaded_3p_3(:,:,2) =

  -0.3023 - 0.7303i   0.0005 - 0.0220i   0.0635 + 0.4724i
   5.7709 + 2.2397i  -0.5092 + 0.4251i   4.1929 - 0.2165i
   0.1408 + 0.2705i   0.0198 - 0.0274i  -0.1657 - 0.7749i

Cascade sparams_3p and sparams_2p_2 by connecting one port between them.

sparams_cascaded_3p_4 = cascadesparams(...
  sparams_cascaded_3p_3, ...
  sparams_2p_2, ...
  Kconn)
sparams_cascaded_3p_4 = 
sparams_cascaded_3p_4(:,:,1) =

   0.1724 - 0.9106i   0.0240 + 0.0134i   0.0104 + 0.0971i
  -3.7923 + 6.1234i  -0.7168 - 0.6498i  -0.5855 + 1.6475i
   0.1214 + 0.0866i   0.0069 + 0.0090i   0.6289 - 0.6145i


sparams_cascaded_3p_4(:,:,2) =

  -0.3014 - 0.6620i   0.0072 - 0.0255i  -0.0162 + 0.1620i
   6.3709 + 2.2809i  -0.5349 + 0.3637i   1.4106 + 0.2587i
   0.0254 + 0.1011i   0.0087 - 0.0075i   0.5477 - 0.6253i

S = sparameters('passive.s2p');
T = tparameters(S);
freq = S.Frequencies;
    for i = 1:length(freq)
        Tcasc(:,:,i) = T.Parameters(:,:,i)*T.Parameters(:,:,i);
    end
Tcasc = tparameters(Tcasc,freq);
Scasc = sparameters(Tcasc);
rfplot(Scasc)

Input Arguments

collapse all

S-parameters data, specified as a complex 2N-by-2M array.

S-parameter object, specified as a sparameters object.

Number of cascade connections, specified as a positive scalar or vector.

  • If Kconn is a scalar, cascadesparams makes the same number of connections between each pair of consecutive networks.

  • If Kconn is a vector, the ith element of Kconn specifies the number of connections between the ith and the i+1th networks.

More About

collapse all

Port Ordering

The function assumes that the port ordering of the network is given by

Based on this ordering, the function connects ports N + 1 through 2N of the first network to ports 1 through N of the second network. Therefore, when you use this syntax:

  • Each network has an even number of ports

  • Every network in the cascade has the same number of ports.

To use this function for S-parameters with different port arrangements, use the snp2smp function to reorder the port indices before cascading the networks.

Kconn

cascadesparams always connects the last Kconn(i) ports of the ith network and the first Kconn(i) ports of the i+1th network. The ports of the entire cascaded network represent the unconnected ports of each individual network, taken in order from the first network to the nth network.

Also, when you specify Kconn:

  • Each network can have either an even or odd number of ports.

  • Every network in the cascade can have a different number of ports.

Introduced in R2008a