# 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.ChannelLoss`ChannelLoss`

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

`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

`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

`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
(*f _{b}*). 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.

$$\begin{array}{l}{W}_{ft}(f)=\left(\frac{{A}_{ft}^{2}}{4{f}_{b}}\right){\text{sinc}}^{2}\left(\frac{f}{{f}_{b}}\right)\left[\frac{1}{1+{\left(f/{f}_{ft}\right)}^{4}}\right]\left[\frac{1}{1+{\left(f/{f}_{ft}\right)}^{8}}\right]\\ {\sigma}_{fx}={\left(2\Delta f{{\displaystyle \sum _{n}{W}_{ft}({f}_{n})10}}^{-MDFEX{T}_{loss}({f}_{n})/10}\right)}^{1/2}\\ {\sigma}_{nx}={\left(2\Delta f{{\displaystyle \sum _{n}{W}_{ft}({f}_{n})10}}^{-MDNEX{T}_{loss}({f}_{n})/10}\right)}^{1/2}\\ {\sigma}_{x}=\sqrt{{\sigma}_{fx}^{2}+{\sigma}_{nx}^{2}}\end{array}$$

## 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 a 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.

$${I}_{\text{FEXT}}(t)={k}_{\text{FEXT}}\frac{dI(t)}{dt}$$

where, *k*_{FEXT} is a scale factor that scales the
*I*_{FEXT}*(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.

$${H}_{\text{FEXT}}(f)=\mathcal{F}\left[{I}_{\text{FEXT}}(t)\right]$$

The magnitude of the scale factor *k*_{FEXT} is: $${k}_{\text{FEXT}}(f)=-\frac{IC{N}_{\text{FEXT}}}{\mathbb{I}\u2102{\mathbb{N}}_{\text{FEXT}}\left({H}_{\text{FEXT}}(f)\right)}$$,

where $$\mathbb{I}\u2102\mathbb{N}$$ is the integrated crosstalk noise operator.

The sign of *k*_{FEXT} 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
(*S*_{11} or
*S*_{11}).

$${H}_{\text{NEXT}}(f)={k}_{\text{NEXT}}\xb7{S}_{11}(f)$$

Then the scale factor *k*_{NEXT} is: $${k}_{\text{NEXT}}=-\frac{IC{N}_{\text{NEXT}}}{\mathbb{I}\u2102\mathbb{N}\left({S}_{11}(f)\right)}$$

And the time domain NEXT signal is derived from the inverse Fourier transform.

$${I}_{\text{NEXT}}(t)={\mathcal{F}}^{-1}\left[{k}_{\text{NEXT}}\xb7{S}_{11}(f)\right]$$

## 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**

## Open Example

You have a modified version of this example. Do you want to open this example with your edits?

## 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)