serdes.ChannelLoss
Create simple lossy transmission line model
Description
The serdes.ChannelLoss
System object™ constructs a lossy transmission line model for use in the SerDes Designer app
and other exported Simulink® models in the SerDes Toolbox™. For more information, see Analog Channel Loss in SerDes System.
To construct the loss model from channel loss metric:
Create the
serdes.ChannelLoss
object and set its properties.Call the object with arguments, as if it were a function.
To learn more about how System objects work, see What Are System Objects?
Creation
Description
returns a
ChannelLoss
= serdes.ChannelLossChannelLoss
object that modifies an input waveform with a lossy printed
circuit board transmission line model according to the method outlined in [1].
sets properties using one or more name-value pairs. Enclose each property name in quotes.
Unspecified properties have default values.ChannelLoss
= serdes.ChannelLoss(Name
,Value
)
Example: ChannelLoss =
serdes.ChannelLoss('Loss',5,'TargetFrequency',14e9)
returns a
ChannelLoss
object that has a channel loss of 5 dB at 14
GHz.
Properties
Unless otherwise indicated, properties are nontunable, which means you cannot change their
values after calling the object. Objects lock when you call them, and the
release
function unlocks them.
If a property is tunable, you can change its value at any time.
For more information on changing property values, see System Design in MATLAB Using System Objects.
Loss
— Channel power loss at target frequency
8
(default) | real scalar
Channel loss at the target frequency, specified as a real scalar in dB.
Data Types: double
TargetFrequency
— Frequency of desired channel loss
1e10
(default) | positive real scalar
Frequency for the desired channel loss, specified as a positive real scalar in Hz.
Data Types: double
dt
— Sample interval
1e-12
(default) | positive real scalar
Sample interval in s, specified as a positive real scalar.
Data Types: double
Zc
— Differential characteristic impedance
100
(default) | positive real scalar
Differential characteristic impedance of the channel, specified as a positive real scalar in ohms.
Data Types: double
TxR
— Single-ended impedance of transmitter analog model
50
(default) | nonnegative real scalar
Single-ended impedance of the transmitter analog model, specified as a nonnegative real scalar in ohms.
Data Types: double
TxC
— Single-ended capacitance of transmitter analog model
1e-12
(default) | nonnegative real scalar
Single-ended capacitance of the transmitter analog model, specified as a nonnegative real scalar in farads.
Data Types: double
RxR
— Single-ended impedance of receiver analog model
50
(default) | nonnegative real scalar
Single-ended impedance of the receiver analog model, specified as a nonnegative real scalar in ohms.
Data Types: double
RxC
— Capacitance of receiver analog model
1e-12
(default) | nonnegative real scalar
Capacitance of the receiver analog model, specified as a nonnegative real scalar in farads.
Data Types: double
RiseTime
— 20%−80% rise time of stimulus input
1e-11
(default) | positive real scalar
20%−80% rise time of the stimulus input to transmitter analog model, specified as a positive real scalar in seconds.
Data Types: double
VoltageSwingIdeal
— Peak-to-peak voltage at input of transmitter analog model
1
(default) | positive real scalar
Peak-to-peak voltage at the input of transmitter analog model, specified as a positive real scalar in volts.
Data Types: double
EnableCrosstalk
— Include crosstalk in simulation
false
(default) | true
Set EnableCrosstalk
to true
to include
crosstalk in the simulation. By default, EnableCrosstalk
is set to
false
.
CrosstalkSpecification
— Specify magnitude of near and far end aggressors
CEI-28G-SR
(default) | CEI-25G-LR
| CEI-28G-VSR
| 100GBASE-CR4
| Custom
Specify the magnitude of the near and far end aggressors. You can choose to include
maximum allowed crosstalk for specifications such as 100GBASE-CR4
,
CEI-25G-LR
, CEI-28G-SR
,
CEI-28G-VSR
, or you can specify your own custom crosstalk
integrated crosstalk noise (ICN) level.
fb
— Baud rate for ICN calculation
14e9
(default) | positive real scalar
Baud rate used for integrated crosstalk noise (ICN) calculation, specified as a
positive real scalar in hertz. fb
is the inverse of the symbol
time.
Dependencies
This property is only available when EnableCrosstalk
is set
to true
.
Data Types: double
FEXTICN
— Desired integrated noise level of far end aggressor
15e-3
(default) | nonnegative real scalar
Desired integrated crosstalk noise (ICN) level of the far end aggressor, specified as a nonnegative real scalar in volts. ICN specifies the strength of the crosstalk.
Dependencies
This property is only available when EnableCrosstalk
is set
to true
and CrosstalkSpecification
is set to
Custom
.
Data Types: double
Aft
— Amplitude factor of far end crosstalk aggressor
1.200
(default) | positive real scalar
Amplitude factor of the far end crosstalk aggressor, specified as a positive real scalar in volts.
Dependencies
This property is only available when EnableCrosstalk
is set
to true
and CrosstalkSpecification
is set to
Custom
.
Data Types: double
Tft
— Rise time of far end crosstalk aggressor
9.6e-12
(default) | positive real scalar
Rise time of the far end crosstalk aggressor, specified as a positive real scalar in seconds.
Dependencies
This property is only available when EnableCrosstalk
is set
to true
and CrosstalkSpecification
is set to
Custom
.
Data Types: double
NEXTICN
— Desired integrated noise level of near end aggressor
10e-3
(default) | nonnegative real scalar
Desired integrated crosstalk noise (ICN) level of the near end aggressor, specified as a nonnegative real scalar in volts. ICN specifies the strength of the crosstalk.
Dependencies
This property is only available when EnableCrosstalk
is set
to true
and CrosstalkSpecification
is set to
Custom
.
Data Types: double
Ant
— Amplitude factor of near end crosstalk aggressor
1.200
(default) | positive real scalar
Rise time of the near end crosstalk aggressor, specified as a positive real scalar in seconds.
Dependencies
This property is only available when EnableCrosstalk
is set
to true
and CrosstalkSpecification
is set to
Custom
.
Data Types: double
Tnt
— Rise time of near end crosstalk aggressor
9.6e-12
(default) | positive real scalar
Rise time of the near end crosstalk aggressor, specified as a positive real scalar in seconds.
Dependencies
This property is only available when EnableCrosstalk
is set
to true
and CrosstalkSpecification
is set to
Custom
.
Data Types: double
Usage
Syntax
Input Arguments
x
— Input baseband signal
scalar | vector
Input baseband signal.
Output Arguments
y
— Estimated channel output
scalar | vector
Estimated channel output that includes the effect of a lossy printed circuit board transmission line model according to the method outlined in Analog Channel Loss in SerDes System.
Object Functions
To use an object function, specify the
System object as the first input argument. For
example, to release system resources of a System object named obj
, use
this syntax:
release(obj)
Examples
Processing Ideal Sinusoid Using ChannelLoss Model
This example shows how to process an ideal sinusoidal input waveform with the ChannelLoss model and check that it modifies the amplitude of the waveform in a reasonable way.
Define the system parameters. Use a symbol time of 100 ps with 8 samples per symbol. The amplitude of the input signal is 1 V. The channel loss is 3 dB.
SymbolTime = 100e-12; SamplesPerSymbol = 8; a0 = 1; Loss = 3;
Calculate the sample interval. Define a time vector that is 30 symbols long.
dt = SymbolTime/SamplesPerSymbol; t = (0:SamplesPerSymbol*30)*dt;
Create the sinusoidal input waveform.
F = 1/SymbolTime/2; %Fundamental frequency
inputWave = a0*sin(2*pi*F*t);
Create the channelModel
object at the specified loss for near ideal transmitter and receiver termination.
channelModel = serdes.ChannelLoss('Loss',Loss,'dt',dt,... 'TargetFrequency',F,'TxR',50,'TxC',1e-14,... 'RxR',50,'RxC',1e-14);
Process the input waveform using the channelModel
object.
outputWave = channelModel(inputWave);
Calculate the output amplitudes.
a1 = max(outputWave); %Output amplitude aideal = a0*10^(-abs(channelModel.Loss)/20); %Theoretical output amplitude
Generate the frequency response.
s21 = channelModel.s21; f = (0:length(s21)-1)*channelModel.dF;
Determine the loss at the target frequency of the frequency response.
f1 = find(f>channelModel.TargetFrequency,1,'first');
LossAtTarget = interp1(f(f1-1:f1),db(s21(f1-1:f1)),channelModel.TargetFrequency);
Plot the time and frequency response of the channel model.
tns = t*1e9; thline = [tns(1),tns(end)]; fghz = f*1e-9; figure subplot(211) plot(tns,outputWave,thline,aideal*[1 1],thline,a1*[1 1],'b--'), grid on xlabel('ns'),ylabel('Voltage') title('Time Response of Channel Model') legend('Output waveform',... sprintf('Ideal amplitude: %g mV',round(aideal*1e3)),... sprintf('Actual amplitude: %g mV',round(a1*1e3)),'Location','southwest') subplot(212) plot(fghz,db(s21),... channelModel.TargetFrequency*1e-9,LossAtTarget,'o') title('Frequency Response of Channel Model') legend('S_{21}(f)',sprintf('%g dB @ %g GHz',LossAtTarget,channelModel.TargetFrequency*1e-9)) grid on xlabel('GHz') ylabel('dB')
More About
Integrated Crosstalk Noise (ICN)
ICN is a frequency domain metric where the crosstalk is multiplied by a weighting function and then numerically integrated from 50 MHz to the baud rate (fb). If there are multiple aggressors, their power are summed together before combining with the weighting function.
The time domain signal does not excite all frequencies evenly. The power spectral density (PSD) of a baseband time domain excitation follows a sinc-squared type response. The weighting function mimics the excitation of the PSD and shapes the PSD by including the effects of the receiver bandwidth and the transmitter rise time.
The total ICN is calculated by root-sum-squaring the FEXT ICN and NEXT ICN values together.
Algorithms
Creating Transmission Line Model
To obtain a lossy printed circuit board (PCB) transmission line (T-line) model with a
given Loss at the TargetFrequency
, two T-lines of length 100 mm and 150
mm are created and loss evaluated at the Target Frequency. These two data points are used to
extrapolate to the transmission line length needed to achieve the requested loss. The
transmission line model is an analytic equation based on the method described in [1].
This transmission line, with the requested loss is then combined with the Tx and Rx single ended termination resistance and capacitance as illustrated below:
Creating Far End Crosstalk
The impact felt on a victim line from a far end crosstalk aggressor is proportional to the rate of change of the aggressor waveform [2]. So, you can estimate the shape of a FEXT time domain signal with the derivative of the through response lossy impulse response.
where, kFEXT is a scale factor that scales the IFEXT(t) so that it has user specified ICN value.
To calculate the ICN of the signal, transform the signal to frequency domain using Fourier transform.
The magnitude of the scale factor kFEXT is: ,
where is the integrated crosstalk noise operator.
The sign of kFEXT is negative since in typical transmission lines in inhomogeneous dielectrics, the inducting coupling is generally greater than capacitive coupling. As a result, the forward crosstalk pulse has the opposite magnitude from the magnitude of the aggressor signal.
Creating Near End Crosstalk
To calculate the near end crosstalk, note that the frequency domain NEXT response is similar in shape (not in magnitude) to the victim's return loss (S11 or S11).
Then the scale factor kNEXT is:
And the time domain NEXT signal is derived from the inverse Fourier transform.
References
[1] IEEE 802.3bj-2014. "IEEE Standard for Ethernet Amendment 2: Physical Layer Specifications and Management Parameters for 100 Gb/s Operation Over Backplanes and Copper Cables." https://standards.ieee.org/standard/802_3bj-2014.html.
[2] Stephen Hall and Howard Heck. Advanced Signal Integrity for High-Speed Digital Designs. Hoboken, NJ: Wiley Press, 2009.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
IBIS-AMI codegen is not supported in MAC.
Version History
Introduced in R2019a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)