Main Content

Convert Scattering Parameter to Impulse Response for SerDes System

This example shows how to find an Impulse Response by combining a Scattering-Parameter (S-Parameter) model of a baseband communication channel along with a transmitter and receiver represented by their analog characteristic impedance values. You will see how to find an Impulse Response of this network using the class SParameterChannel in SerDes Toolbox™, which also uses some supporting functions from RF Toolbox™ such as rational (RF Toolbox) and impulse (RF Toolbox).

Configure Variables

The S-Parameter file representing the baseband channel should be a Touchstone 1.0 (.sNp) file. Typically these are extracted from a software EDA tool or laboratory VNA, each with a port reference impedance of 50-Ohms. The following properties are the main settings you would use to extract an impulse response of the concatenated Transmitter-Channel-Receiver network:

SParameterChannel Properties:

  • FileName - Filename of the S-Parameter to be imported.

  • PortOrder - Port order for the S-Parameter.

  • MaxNumberOfPoles - Maximum number of poles to use for a fit output by the rational function.

  • ErrorTolerance - Desired error tolerance in dB for a fit output by the rational function.

  • SampleInterval - Sample interval in units of seconds.

  • StopTime - Desired duration of the Impulse Response in units of seconds.

  • TxAmplitude - Stimulus amplitude of the Tx output rising waveform.

  • TxRiseTime - The 20-80% rise time of the Tx stimulus waveform.

  • TxRTFactor - The conversion factor from 20-80% or 10-90% to 0-100% risetime, default is 20-80%.

You can find additional parameters explained in the documentation to accomodate additional configuration such as custom analog TX and RX characteristics, or to utilize diagnostics for the fit output by the rational function. Note: defaults are provided for all settings if no entries are made when calling SParameterChannel.

Create the S-Parameter Channel Object:

Create an SParameterChannel object from a Touchstone S-Parameter data file. It is important to also ensure SampleInterval and StopTime are set appropriately for the Impulse Response calculation (in this case, 6.25e-12 seconds and 100e-9 seconds, respectively), as well as the stimulus represented by TxAmplitude and TxRiseTime- for the S-Parameter in this example, the stimulus used for modelling a w-line in an EDA tool was 1.0V with a 20-80% rise time of 40ps. Understanding S-Parameters is beyond the scope of this example, but it is important to remember the bandwidth of an S-Parameter must be sufficient to model a channel according to the Nyquist-Shannon sampling theorem.

obj = SParameterChannel('FileName','wl_stimulus_21dB_14GHz_1p0V_40ps_TxRx50r1pF.s4p',...
    'PortOrder', [1 2 3 4],...
    'MaxNumberOfPoles', 1000,...
    'ErrorTolerance', -40,...
    'SampleInterval', 6.25e-12,...
    'StopTime', 100e-09,...
    'TxAmplitude', 1.0,...
    'TxRiseTime', 40e-12,...
    'TxRTFactor', 0.6);

Compare Fit Results to Original Data

You can compare the original s-parameter data and fit differential-mode frequency response by plotting the magnitude and phase of the original transfer function and the resulting output of the rational function. This can be done using the plotRational method.

plotRational(obj);

Figure contains 2 axes. Axes 1 with title Rational Fitting with 118 poles contains 2 objects of type line. These objects represent Original data, Fit result. Axes 2 contains 2 objects of type line. These objects represent Original data, Fit result.

Extract the Impulse and Time Vectors:

You can extract the Impulse and Time Vectors from the object created by the SParameterChannel class.

impulseResponse = obj.ImpulseResponse;
t = obj.t;

Visualize a Plot of the Impulse Response:

You can plot the impulse response in MATLAB.

plot(t,impulseResponse);

Figure contains 2 axes. Axes 1 with title Rational Fitting with 118 poles contains 2 objects of type line. These objects represent Original data, Fit result. Axes 2 contains an object of type line.

Use Impulse Response for Channel Model in Serdes Designer

You can use the impulse response of the baseband channel model within SerDes Designer by selecting "Impulse response" for channel model and enter the base workspace variable impulseResponse that you created above.

Use Impulse Response for Channel Model in Serdes Designer

You can use the impulse response of the baseband channel model within Serdes Designer by selecting "Impulse response" for channel model and enter the base workspace variable impulseResponse.

See Also