LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Integrating eye diagram into my vi.

Hi there,

I am new to LabVIEW but am using it for a project. I am doing an experiment with an optical fibre link, using DAQs to transmit a random bit sequence across the channel. I will be sending this info with LEDs and Lasers. As part of my software I need to implement an eye diagram at the receiving end.

I have had a look at 2 good options involving intensity graphs provided by Forum contributors; Evan and altenbach. I see that the intensity graph is indeed the way i need to tackle this problem.However I am finding these difficult to inntegrate with my software and I am running out of time to accomplish this and therefore cannot spend hours wasting time and playing with it.

I attach here a copy of my "still under construction" program. Currently I attempted to implement the eye diagram with a XY graph but this is not suitable.

Please could someone explain/show how to make use of the intensity graph solutions relevant to my need [i.e replacing the useless attempt i have made]

I would appreciate any comments at all.

Many Thanks,

sPieLMaN
spanksi@hotmail.com


0 Kudos
Message 1 of 3
(3,279 Views)
Hi,
  assuming your triggering at the same point in the signal, you should be able to use an XY graph to make an eye diagram.
 
There's quite a lot going on with your code - can you cut it down to a simulated signal so we know where we're trying to acheive the manipulation given some (semi) real data?
 
Usually for an eye diagram, you would put out a 3 bit pattern (000, 001, 010 etc) so you get two transition edges in your eye diagram taken in with a high enough speed card to catch when and how fast the transitions are occurring. You therefore need good triggering for this so you can make sure you're capturing at the same point in the data each time otherwise the overlaps mean nothing.
You say you're transmitting a random bit sequence, and there's no triggering of the acquisition in your code so you can overlay the transitions correctly on the graph. Are you seeing nothing useable on the xy graph, or is the xygraph not close enough to what you want?
 
For an intensity chart, you're going to have to fill in the remaining data, i.e. at present you have x and y data related to a specific line if you joined up all the points. You need to translate the value you've taken as a x,y position and plot that point as a 1+ onto the 2D array you'll pass to the intensity graph. I say 1+ because I'm assuming you want colours, and the more points you overlay over them selves, that would represent a different colour, so take the fact that there may be a point there already, read it's value, add one to it and plot it back.
 
I've attached an example, so you can work out where the y array from your DAQ will go with an intensity graph. You will need to sort out your triggering though so you get the same reference start point each time. The only part of my example you really need to worry about is the for loop that's taking the data in and translating a single point to an index in a zero filled array.
 
Setup the starting parameters on the main vi, (the "intensity graph as eye graph.vi") and hit the go button. Hit the stop button to stop after that. To see an "eye" let it run for a little while, then hit the invert button.
 
(for others interested in eye diagrams see here : http://zone.ni.com/devzone/cda/tut/p/id/3299)
 
Hope that helps
 
Sacha Emery
National Instruments (UK)

Message Edited by SachaE on 03-09-2007 01:14 PM

// it takes almost no time to rate an answer Smiley Wink
0 Kudos
Message 2 of 3
(3,247 Views)
Hi SachaE,

Thankyou for your previous help. It has got me further than anything else, so far, but I am still unable to integrate the eye diagram with the waveform that I am supposed to be displaying.

I have modified my program so that the DAQ functions are removed, and therefore anyone can run it. Assumedly I some how need to convert the stream of EXT extended precision floats into an array format? and then output that to the intensity graph. This is fair enough in theory but I have had many attempts at this and the eyediagram seems to display nothing.

I think i understand the principles when generating the sine wave locally, but the problem in this case is, ideally i need to output traces from the waveform being read as they are, rather than generate a new signal from read parameters or any other variation. I do not need to add extra jitter or any other effect locally. These will be generated by the transmitting part of this program.

I am attaching here a copy of the modified program. Essentially i would need to implement this eye diagram in the case structure on the right hand side. I am uncertain of how to convert the data (X,Y pairs i assume) into a form for outputting to the intensity graph. If possible like this, it will be fairly simple for me to make use of it with the DAQ.

I would really appreciate your help, once again! As it stands, you appear the most informative person I can turn to!!!

I hope you can help. And I hope you will!

Many many thanks,

Simon [distressed Honours student]
0 Kudos
Message 3 of 3
(3,166 Views)