How to derive Eye Diagram Metrics in Matlab

12 views (last 30 days)
Marc Kopf
Marc Kopf on 22 Mar 2023
Commented: Marc Kopf on 29 Mar 2023
I recently changed from Matlab R2021a to R2023a and recognized that I cannot use comm.EyeDiagram() anymore because it has been removed. The recommended replacement eyediagram() only plots the symbols but does not offer the same analysis features such as jitter analysis, eye width, height, etc.. These features can only be found in the simulink block.
How can I obtain these metrics, now?

Answers (2)

Naren
Naren on 28 Mar 2023
Hello Marc,
In MATLAB R2023a, the function comm.EyeDiagram() has been replaced with the function eyediagram(), which is mainly used for visualizing the signal. However, you can use the new function comm.JitterAnalyzer() to analyse the jitter in your signal and obtain metrics such as eye width and height.
To use comm.JitterAnalyzer(), you can pass the signal data as input and set the appropriate parameters, such as the symbol rate, the reference level, and the jitter tolerance. The function will then analyse the jitter in your signal and output the relevant metrics. Eye height and width can be calculated using the jitter analyzer.
Here is a example code for your reference.
% Generate random signal
data = randi([0,1],1000,1);
% Create modulator and demodulator objects
mod = comm.BPSKModulator;
demod = comm.BPSKDemodulator;
% Modulate and add noise
modulated = mod(data);
noisy = awgn(modulated,10);
% Analyze jitter
analyzer = comm.JitterAnalyzer('SymbolRate',1,'ReferenceLevel',0,'JitterTolerance',0.2);
jitterMetrics = analyzer(noisy);
% Display results
disp(jitterMetrics.EyeWidth)
disp(jitterMetrics.EyeHeight)
Hope this resolves your issue.
  3 Comments
Naren
Naren on 28 Mar 2023
Hello Marc,
Make sure you have communication toolbox installed and if the problem continues to persist try adding the path of communication toolbox in the 'set path' option available in enviornment tab in MATLAB or try re-installing the toolbox.
Marc Kopf
Marc Kopf on 28 Mar 2023
Hello Naren,
The issue still persists, I did the following:
  • Check of communications toolbox installation: Yes (Version 8.0)
  • Check of "comm" paths inbound: In "Set Path" seemingly all subfolders are listed, but I could not find a file in the toolbox path C:\Program Files\MATLAB\R2023a\toolbox\comm\ containing the strings "jitter", "jit", or "analyzer" (except comm_analyzeLogicFromSimulink.m)
  • Check of communications toolbox being included in the path: Functions like eyediagram() or commsrc.conbinedjitter are properly executed
  • Reinstallation of the toolbox: Problem still persists
Can you tell me at which path comm.JitterAnalyzer() is supposed to be located (by default) and propose further steps to solve the issue?

Sign in to comment.


Ganapathi Subramanian
Ganapathi Subramanian on 29 Mar 2023
Hello Marc,
It is my understanding that you are working on eye diagram and you want to know about how to access certain features in latest version of Matlab.
The SerDes Toolbox can provide eye measurements and features at the MATLAB side, but that happens through Statistical Analysis and Jitter Analysis.
For more information regarding ‘SerDes Toolbox, refer this link
  1 Comment
Marc Kopf
Marc Kopf on 29 Mar 2023
Hello Ganapathi,
Thank you for the hint, I am aware of the SerDes Toolbox. Unfortunately the toolbox comes with some drawbacks, namely that pattern generation and channel are within an enclosed engine while I need access to the whole system, from channel down to generation and receiver.
Regarding the extraction of eye diagram metrics, this is only aviable for models generated by the engine. What I need are eye diagram metrics for time domain signals (not from statistical simulations), which I can extract in MATLAB code, exactly as stated in Naren's example, i.e. jitterMetrics.EyeWidth, jitterMetrics.EyeHeight and others as listed in the "Measurements" section of the removed comm.EyeDiagram documentation site

Sign in to comment.

Products


Release

R2023a

Community Treasure Hunt

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

Start Hunting!