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 Commenti

eyeDiagramSI is not a built-in MATLAB function?
I think yes, eyeDiagramSI function come from like SerDes Toolbox, or Signal Integrity Toolbox.

Accedi per commentare.

Risposte (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 Commenti

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?
You encounter same issue with me?

Accedi per commentare.

Pragati
Pragati circa 3 ore fa
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.

Prodotti

Release

R2024b

Richiesto:

il 30 Mar 2025

Risposto:

circa 16 ore fa

Community Treasure Hunt

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

Start Hunting!

Translated by