A basic question: How to using eyeDiagramSI function?

How to using eyeDiagramSI function to plot a eyedigram for 10Gbps@PRBS15 singal of BIN format?
Refer to below code, seems not working.
samplesPerSymbol = 16;
symbolTime = 100e-12;
sampleInterval = symbolTime / samplesPerSymbol;
modulation = 2;
eyeDiagram = eyeDiagramSI;
eyeDiagram.SampleInterval = sampleInterval;
eyeDiagram.SymbolTime = symbolTime;
eyeDiagram.Modulation = modulation;

2 comentarios

eyeDiagramSI is not a built-in MATLAB function?
石平
石平 el 30 de Mzo. de 2025
I think yes, eyeDiagramSI function come from like SerDes Toolbox, or Signal Integrity Toolbox.

Iniciar sesión para comentar.

Respuestas (2)

I understand that you are trying to plot an eye diagram for a 10 Gbps PRBS15 signal using the `eyeDiagramSI` function in MATLAB, you need to ensure that you have the required toolboxes and that your setup is correct.
Required Toolbox: Signal Integrity Toolbox
  • The `eyeDiagramSI` function is part of this toolbox.
Steps to Plot the Eye Diagram
  1. Ensure Toolboxes are Installed: Verify that the Signal Integrity Toolbox is installed. You can check this in MATLAB using the `ver` command.
  2. Set Up the Eye Diagram: Define the parameters for your signal. Ensure that the parameters match your signal's characteristics.
  3. Use the `eyeDiagramSI` System Object: Create and configure the `eyeDiagramSI` object with the appropriate properties.
Here is a corrected version of the code:
% Define parameters
samplesPerSymbol = 16; % Number of samples per symbol
symbolTime = 100e-12; % Symbol time for 10 Gbps
sampleInterval = symbolTime / samplesPerSymbol; % Sample interval
modulation = 2; % Binary modulation
% Create the eye diagram object
eyeDiagram = eyeDiagramSI('SampleInterval', sampleInterval, ...
'SymbolTime', symbolTime, ...
'Modulation', modulation);
% Generate a PRBS15 signal (example)
prbs15Signal = prbs(15, 'Order', samplesPerSymbol * 1000); % Adjust length as needed
% Plot the eye diagram
step(eyeDiagram, prbs15Signal);
Additional Notes
If you encounter issues, make sure to check for errors in the MATLAB command window and ensure all necessary toolboxes are installed and licensed.
I hope this helps!

3 comentarios

石平
石平 el 7 de Abr. de 2025
Thanks for your kindly comment,
and about prbs15 pattern, I captured waveform from keysight oscilloscope and saved as BIN file.
Using eyeDiagramSI function, it cannot recovery a eye diagram, do you have some similar experience for that?
世杰
世杰 el 7 de Jul. de 2025
the same
石平
石平 el 7 de Jul. de 2025
You encounter same issue with me?

Iniciar sesión para comentar.

Pragati
Pragati hace alrededor de 4 horas
The issue is likely not with eyeDiagramSI itself, but with the format of the signal being provided to it.
The eyeDiagramSI object expects a time-domain waveform sampled at multiple samples per symbol. From the figures shown, it appears that the input may consist of the PRBS symbol values directly (BIN/NRZ data) rather than an oversampled waveform. In that case, the eye diagram will collapse into horizontal bands because there are few or no transition samples available to overlay.
For a 10 Gbps PRBS15 NRZ signal,
symbolTime = 100e-12; % 10 Gbps
samplesPerSymbol = 16;
sampleInterval = symbolTime/samplesPerSymbol;
the waveform provided to eyeDiagramSI should contain 16 samples per symbol. If your PRBS sequence is stored as binary values (0/1), a simple oversampled NRZ waveform can be generated using:
waveform = repelem(2*prbs15-1, samplesPerSymbol);
where prbs15 is the PRBS bit sequence.
Then create and populate the eye diagram object:
eyeDiagram = eyeDiagramSI;
eyeDiagram.SampleInterval = sampleInterval;
eyeDiagram.SymbolTime = symbolTime;
eyeDiagram.Modulation = 2;
eyeDiagram(waveform);
If the waveform is already sampled at 16 samples/symbol, then it would be useful to verify that:
  • SampleInterval matches the actual sample spacing of the waveform.
  • SymbolTime matches the transmitted symbol period.
  • The signal passed to eyeDiagramSI is the waveform itself rather than the raw bit sequence.
  • The waveform contains transition samples (for example, after pulse shaping, interpolation, channel loss, jitter, or other system effects).
One observation from the eye diagram shown is that it contains two dense horizontal rails with very few transition trajectories between them. This is often an indication that the data being plotted contains symbol values only, rather than a continuous waveform sampled across the symbol period.
Could you share the code used to generate prbs15 and the exact signal passed to eyeDiagramSI? That would help determine whether the issue is related to waveform generation, oversampling, or eye diagram configuration.

Categorías

Productos

Versión

R2024b

Etiquetas

Preguntada:

el 30 de Mzo. de 2025

Respondida:

hace alrededor de 17 horas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by