Main Content

Write S2P Touchstone Files

This example shows how to write the data in a circuit object created in the MATLAB® workspace into an industry-standard data file, Touchstone®. You can use these files in third-party tools.

To write a touchstone file, in this example an RLGC transmission line object is created and analyzed in the frequency domain. This analyzed results are written into a Touchstone file and the data is compared with the original result.

Create RF Circuit Object to Represent an RLCG Transmission Line

Create a txlineRLCGLine object to represent a RLCG transmission line. This example uses Name-Value pairs to implement the parameters in the RLCG transmission line shown in figure 1 [1].

RLCG_Transmission_Line.png

Figure 1: RLCG transmission line.

ckt1 = txlineRLCGLine('R',100,'L',80e-9,'C',200e-12,'G',1.6);

Clone Circuit Object

Use the clone function to make a copy of the transmission line object.

ckt2 = clone(ckt1)
ckt2 = 
  txlineRLCGLine: RLCGLine element

           Name: 'RLCGLine'
      Frequency: 1.0000e+09
              R: 100
              L: 8.0000e-08
              C: 2.0000e-10
              G: 1.6000
       IntpType: 'Linear'
     LineLength: 0.0100
    Termination: 'NotApplicable'
       StubMode: 'NotAStub'

Cascade Two Circuit Objects

Use the circuit object to cascade the two transmission lines.

ckt = circuit([ckt1,ckt2]);

Analyze and Plot S-Parameter Data

Use the sparameters object to analyze the cascadeed transmission line in the frequency domain.

freq = linspace(0,10e9);
ckt_sparameters = sparameters(ckt,freq);

Use the smithplot method to plot the object's S11 on a Smith chart®.

figure
smithplot(ckt_sparameters,[1,1],'LegendLabels','S11 Original')

Figure contains an axes object. The hidden axes object contains an object of type line. This object represents S11 Original.

Write Data to S2P File

Use the rfwrite function to write the data to a file.

workingdir = tempname;
mkdir(workingdir);
filename = fullfile(workingdir,'myrlcg.s2p');
if exist(filename,'file')
    delete(filename)
end
rfwrite(ckt_sparameters,filename);

Compare Data

Read the data from the file myrlcg.s2p into a new sparameters object and plot input reflection coefficient, S11 on a Smith chart. Visually compare the 'S11 original' and 'S11 from S2P' to confirm that the data matches.

compare_ckt = sparameters(filename);
figure
smithplot(compare_ckt,[1,1],'LegendLabels','S11 from S2P')

Figure contains an axes object. The hidden axes object contains an object of type line. This object represents S11 from S2P.

[1] M. Steer, "Transmission Lines," in Microwave and RF Design: Transmission Lines. vol. 2, 3rd ed. Raleigh, North Carolina, US: North Carolina State University, 2019, ch. 2, sec. 2, pp.58.

Related Topics