How to derive Eye Diagram Metrics in Matlab

33 次查看(过去 30 天)
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?

回答(2 个)

Naren
Naren 2023-3-28
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 个评论
Naren
Naren 2023-3-28
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 2023-3-28
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?

请先登录,再进行评论。


Ganapathi Subramanian
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 个评论
Marc Kopf
Marc Kopf 2023-3-29
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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Measurements and Feature Extraction 的更多信息

产品


版本

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by