Eye Diagram Density Plot

Actively maintained. An eye diagram plotting tool. Raster plots eye diagram density, has arguments for auto labeling, and histograms.
Updated 30 Aug 2022


Better eye diagram generation code in MATLAB. Used a lot in my DPhil Thesis.

View Eye Diagram Density Plot on File Exchange

How much better?

A before and after is provided here:

left is a typical MATLAB eyediagram() eye diagram, right is the new function

Unlike MATLAB's built in eyediagram() function, the more data you provide eyediagram_dense() the prettier it looks, case in point (for a different communications system with a higher error rate):

an even prettier eye diagram

What does your code do? eyediagram_dense creates a raster image of an eye diagram, capturing signal density at each point on the image. This function creates a diagram, alongside returning all the important information captured within it as a MATLAB struct.

eyediagram_dense() also has the ability to detect zero crossings, and automatically label the x axis accordingly.

I mainly work with On-Off Keying, so for the y axis the system is able to detect two levels. In a future update I will be able to detect PAM.

With optional arguments, histograms can be placed along the x and y axis, for zero crossing distributions (a way to test if you have double-Dirac) and to sanity check your bit levels.

What is coming next? My goals for this repo are as follows:

Goal Description
Q factor estimation From the eye diagram we can estimate Q factors, which are important quantities to know for any communications system.
BER estimation From calculated Q factors we can estimate the BER. This is handy if we don't have all afternoon to resolve a 10^-12 BER.
Eye Opening Metrics Use standard textbook metrics and return to the user.
Jitter Quantify the jitter and return it to the user.
Colormaps Add colormaps for custom eye diagram output
More... I'm sure I've missed lots, but more eye diagram related features will be included

Cite As

William Matthews (2024). Eye Diagram Density Plot (https://github.com/WillMatthews/EyeDiagram/releases/tag/v0.0.2), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2019b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes

See release notes for this release on GitHub: https://github.com/WillMatthews/EyeDiagram/releases/tag/v0.0.2


To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.