Has anyone already created an eye pattern modification (e.g. Eye pattern - Wikipedia) for scopesink.py?
For BPSK, it requires triggering on any rising or falling edge,
resetting the trigger after .75Tsymbol, making the horizontal axis match
the width of Tsymbol, and make the display persist so that the trace on
each sweep is overlayed on the traces from previous sweeps.
If it hasn’t been done already, I think I will try it.
I’ve got a modification to scopesink.py, gr_trigger_mode.h, and
gr_oscope_guts.cc to allow viewing of an eye pattern. I added an “eye”
trigger mode selection to the trigger menu, and an eye trigger mode that
triggers on either a rising or falling edge (rather than only on one or
the other). When the eye trigger mode is selected, the last 100 traces
are displayed so the eye pattern can be viewed. Rather than setting the
horizontal width by entering the number of samples per symbol, I just
added some finer granularity to the scale selections for viewing my
signal. I also added another state to the trigger detect in
gr_oscope_guts.cc which looks for a “pre-trigger” when the eye trigger
mode is selected. The LOOK_FOR_PRE_TRIGGER state looks for a rising or
falling edge followed by 3/4 symbol time without a rising or falling
edge. Only after this condition is met does it move to the
LOOK_FOR_TRIGGER state.
The idea for this was that I wanted to trigger only on the transition
within a manchester encoded symbol, and not on transitions between
manchester encoded symbols (such as the transition between consecutive
ones or zeros.) I’m thinking I might cut this pre-trigger state out of
the my final version, since to evaluate the openness of the eye, there
is really no difference between intra-symbol and inter-symbol edges.
However, it might be useful as long as the delay (right now hard-coded
to 3/4 my symbol time in samples) could be adjusted from the scope GUI
in terms of samples. Anyone have any thoughts/preferences on this?
Finally, after I finish tweaking this, what is the best way to submit
the changes for evaluation and possible incorporation into the next
release?