Main Content

Use S-parameters with Port Reduction

This example shows how to use RF Toolbox™ to import N-port S-parameters representing high-speed backplane channels, and converts 16-port S-parameters to 4-port S-parameters to model the channels and the crosstalk between the channels.

Figure 1: 16-Port differential backplane

Read Single-Ended 16-Port S-Parameters

Read a Touchstone® data file into an sparameters object. The data in this file are the 50-ohm S-parameters of a 16-port differential backplane designed for a 2-Gbps high-speed signal, shown in Figure 1, measured at 1496 frequencies ranging from 50 MHz to 15 GHz.

filename = 'default.s16p';
backplane = sparameters(filename)
backplane = 
  sparameters with properties:

      Impedance: 50
       NumPorts: 16
     Parameters: [16x16x1496 double]
    Frequencies: [1496x1 double]

freq = backplane.Frequencies;

Convert 16-Port S-Parameters to 4-Port S-Parameters to Model Differential Channel

Use the snp2smp function to convert 16-port S-parameters to 4-port S-parameters that represent the first differential channel. The port index of this differential channel, N2M, specifies how the ports of the 16-port S-parameters map to the ports of the 4-port S-parameters, is [1 16 2 15]. (The port indices of the second, third and fourth channels are [3 14 4 13], [5 12 6 11] and [7 10 8 9], respectively). The other 12 ports, [3 4 5 6 7 8 9 10 11 12 13 14], are terminated with the characteristic Impedance specified by the sparameters object. Then, create an sparameters object with 4-port S-parameters for the first differential channel.

                 (Port 1)         (Port 16)
        Port 1  > ----->|         |<----- <   Port 2
                        |   DUT   |
        Port 3  > ----->|         |<----- <   Port 4
                 (Port 2)         (Port 15)
n2m = [1 16 2 15];
z0 = backplane.Impedance;
first4portdata = snp2smp(backplane.Parameters,z0,n2m,z0);
first4portsparams = sparameters(first4portdata,freq,z0)
first4portsparams = 
  sparameters with properties:

      Impedance: 50
       NumPorts: 4
     Parameters: [4x4x1496 double]
    Frequencies: [1496x1 double]

Plot S21 and S43 of the first differential channel.

figure
rfplot(first4portsparams,2,1)
hold on
rfplot(first4portsparams,4,3,'-r')

Figure contains an axes object. The axes object with xlabel Frequency (GHz), ylabel Magnitude (dB) contains 2 objects of type line. These objects represent dB(S_{21}), dB(S_{43}).

% % If you want to write the 4-port S-parameters of the differential
% % channel into a |.s4p| file, then uncomment the line below.
%
% rfwrite(first4portsparams,'firstchannel.s4p')

Convert 16-Port S-Parameters to 4-Port S-Parameters to Model Crosstalk Between Two Differential Channels

Use the snp2smp function to convert 16-port S-parameters to 4-port S-parameters that represent the crosstalk between port [3 4] and port [16 15]. As shown in Figure 1, these ports are on different channels. The other 12 ports, [1 2 5 6 7 8 9 10 11 12 13 14], are terminated with the characteristic Impedance specified by the sparameters object. Then, create an sparameters object with 4-port S-parameters for the crosstalk.

                 (Port 3)         (Port 16)
        Port 1  > ----->|         |<----- <   Port 2
                        |   DUT   |
        Port 3  > ----->|         |<----- <   Port 4
                 (Port 4)         (Port 15)
n2m = [3 16 4 15];
crosstalk4portdata = snp2smp(backplane.Parameters,z0,n2m,z0);
crosstalk4portsparams = sparameters(crosstalk4portdata,freq,z0)
crosstalk4portsparams = 
  sparameters with properties:

      Impedance: 50
       NumPorts: 4
     Parameters: [4x4x1496 double]
    Frequencies: [1496x1 double]

Plot S21, S43, S12 and S34 to show the crosstalk between these two channels.

figure
rfplot(crosstalk4portsparams,2,1)
hold on
rfplot(crosstalk4portsparams,4,3,'-r')
rfplot(crosstalk4portsparams,1,2,'-k')
rfplot(crosstalk4portsparams,3,4,'-g')

Figure contains an axes object. The axes object with xlabel Frequency (GHz), ylabel Magnitude (dB) contains 4 objects of type line. These objects represent dB(S_{21}), dB(S_{43}), dB(S_{12}), dB(S_{34}).

% % If you want to write the 4-port S-parameters of the crosstalk into an
% % .s4p file, then uncomment the line below.
%
% rfwrite(crosstalk4portsparams,'crosstalk.s4p')

Related Topics