No Fax Payday Loan No Fax Payday Loan

Tutorial on Waveform Shaping and Signal Constellation in an Optical Link

3D Constellation

In this episode Shahriar uses a few components to beyond what there were originally intended for in order to setup an optical link! By using a BlinkM RGB LED, a Color Sensor, and two PIC USB Boards from Sparkfun Electronics, a stand-alone optical link is established. Various theories of operation, including multilevel data transmission, signal constellation and detailed circuit diagrams are also presented. The final result is an 8-PAM, 3-Wavelength optical link with a colorful three-dimensional constellation graph. The code for the transmitter IC, receiver IC and Matlab functions are available to download from here.

 

16 comments

  1. faheem says:

    Really great stuff / approach / effort from theory to experimentation…..want to join your lab. great videos anyways !!! please keep it up.

  2. Proto Subcortex says:

    Your site and videos rock man.

    ‘Nuff said.

  3. Evert says:

    Nice video.
    Shows simple the concept of multicolor fibers.
    Thanks for sharing.

  4. Roger says:

    I realize you’re not optimizing the channel here, just doing an excellent job of demonstrating concepts. However, since you asked for suggestions, here you go:

    You would be able to bypass the slow RC filter section by feeding each PWM channel into an Input Capture peripheral on the PIC. This will make it different looking on the scope, but much faster symbol rate with higher resolution symbols. Another PIC peripheral you might leverage is the Change Notification interrupt and roll your own capture timer (since the 4550 has limited input capture pins). You would greatly reduce noise induced by the intermediate RC filter allowing you to have higher resolution (maybe not the full 8 bits, but close). Your symbol rate would probably be at least an 3 orders of magnitude faster. In theory you only need one period of the color PWM to capture the timing. So symbol rate could be on the order of the LED PWM. If you choose another PIC with 3 input capture pins, this function becomes much easier.

    Another concept you could explore (if you haven’t already) is the method of standard asynchronous bit timing in a UART. Essentially, in the above example you show a simple “start” bit function by zeroing the colors. If you implement a more standard UART type timing, you could send the equivalent “byte” of data with 1 “start” symbol, 8 “data” symbols, 1 “parity” symbol, and one “stop” symbol. Each “byte” would then consist of a total of 8×8=64 bits of data, 1 parity bit for each 8 bit symbol, and an additional parity symbol for the “byte”. Using these parity bits you could explore the idea of data integrity and/or recovery.

    Another concept to explore could be synchronous bit timing. You could demonstrate the power of the symbols and synchronous timing by using one color as a “control” or “clock” symbol. This might allow for another big speed increase. The cost is 1/3 of your symbols, but your symbol rate may be able to increase to more than compensate.

    Great video, by the way. I appreciate what you do!

    Roger

  5. [...] the code for the transmitter IC, receiver IC and Matlab functions please visit the link below!  http://thesignalpath.com/blogs/2012/06/04/tutorial-on-waveform-shaping-and-signal-constellation-i… Home⁄ blinkm⁄ BlinkM in a Waveform Shaping [...]

  6. diloo says:

    Thank you for a great experiment! You Sir are an inspiration!

  7. cJones says:

    Love your videos, thanks for taking the time. I think it is great when you go into more detail on the theory but I understand that doesn’t interest everyone. I’ll enjoy going over the documents to fill in some so thanks for making everything available.

  8. [...] current setup, it will transmit 9-bits per second (8-bits of data and 1-bit for a check sum). Check it out here. Share [...]

  9. [...] applications, fiber optic cable transmits data using one color of light. There’s a way to get more bandwidth out of a fiber optic cable, as [Shahriar] found out while experimenting with an RGB [...]

  10. Chris says:

    Superb experimental work and very clearly explained. Very interesting! Thank you for taking the time you obviously spent in putting together this fascinating tutorial and then publishing it. It’s left me buzzing with ideas. I wish I had you as a lecturer at university when I did my electronics degree some (errr) very long time ago! :-)

  11. Vinod Cherian says:

    Have you tried to control the BlinkM through it’s I2C interface directly from MATLAB?

    See this for more info: http://www.mathworks.com/help/toolbox/instrument/i2c.html

  12. [...] applications, fiber optic cable transmits data using one color of light. There’s a way to get more bandwidth out of a fiber optic cable, as [Shahriar] found out while experimenting with an RGB [...]

  13. [...] applications, fiber optic cable transmits data using one color of light. There’s a way to get more bandwidth out of a fiber optic cable, as [Shahriar] found out while experimenting with an RGB [...]

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>