Modeling a High-Speed Backplane (Part 3: 4-Port S-Parameters to Differential TDR and TDT)

This example shows how to use RF Toolbox™ functions to calculate the TDR (Time-Domain Reflectometry) and TDT (Time-Domain Transmission) of a differential high-speed backplane channel.

Read the Single-Ended 4-Port S-Parameters and Convert Them to Differential 2-Port S-Parameters

Read a Touchstone® data file, default.s4pdefault.s4p, into an sparameterssparameters object. The parameters in this data file are the 50-ohm S-parameters of a single-ended 4-port passive circuit, measured at 1496 frequencies ranging from 50 MHz to 15 GHz. Then, get the single-ended 4-port S-parameters from the data object, and use the matrix conversion function s2sdds2sdd to convert them to differential 2-port S-parameters.

filename = 'default.s4p';
backplane = sparameters(filename);
data = backplane.Parameters;
freq = backplane.Frequencies;
z0 = backplane.Impedance;

Convert to 2-port differential S-parameters.

diffdata = s2sdd(data);
diffsparams = sparameters(diffdata,freq,2*z0);
sd11 = rfparam(diffsparams,1,1); % Differential S11
sd21 = rfparam(diffsparams,2,1); % Differential S21

Calculate and Plot the Differential Time-Domain Reflectometry

TDR is the reflected wave for a step signal. First, extract the rational function object for differential S11 using the rationalfitrationalfit function, then compute the TDR using the steprespstepresp method of the rfmodel.rationalrfmodel.rational object. Lastly, plot the calculated TDR.

wstate = warning('off', 'rf:rationalfit:ErrorToleranceNotMet');
sd11fit = rationalfit(freq, sd11);
ts = 5e-12; numsamples = 100000; trise = 5e-11; % Define a step signal
[tdrsignal, tdrtime] = stepresp(sd11fit,ts,numsamples,trise);
fig1 = figure;
ylabel('Differential TDR (V)'); xlabel('Time (ns)');
legend('Calculated TDR');

Calculate and Plot the Differential Time-Domain Transmission

TDT is the transmitted wave for a step signal. Use the rationalfit function to get the rational function object of differential S21, then use the stepresp method to compute TDT. Lastly, plot the calculated TDT.

delayfactor = 0.98; % Delay factor. Set delay factor to zero if your
                    % data does not have a well-defined principle delay
sd21fit = rationalfit(freq,sd21,'DelayFactor',delayfactor);
ts = 5e-12; numsamples = 10000; trise = 5e-11;
[tdtsignal, tdttime] = stepresp(sd21fit,ts,numsamples,trise);
fig2 = figure;
ylabel('Differential TDT (V)'); xlabel('Time (ns)');
legend('Calculated TDT');

Was this topic helpful?