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).
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 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);
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);
You can extract the Impulse and Time Vectors from the object created by the SParameterChannel class.
impulseResponse = obj.ImpulseResponse; t = obj.t;
You can plot the impulse response in MATLAB.
plot(t,impulseResponse);
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.
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
.