SlideShare a Scribd company logo
1 of 9
Download to read offline
1
 Abstract—Technology is very prevalent in today’s society.
As we progress, technology rapidly increases in complexity and
new standards of encryption are necessary in order to protect
data from hackers and illegitimate organizations. Our project
aims to provide an implementation of an encryption system using
steganography, the practice of hiding private information within
a non-secret image. Additionally, we provide a solution to
transmit the image between two devices using high-speed, fiber-
optic transmission. Our transmission system transmits binary
data using on-off keying across a fiber-optic cable. Using the
General Purpose Input/Output (GPIO) pins on two separate
LCDK units, we utilize GPIO interrupts to turn the LED laser on
and off at varying frequencies on the transmitting end, and
another GPIO interrupt to sample the output of the photodiode
circuit at 52 kHz on the receiving end.
I. INTRODUCTION
ODAY’S encryption systems focus largely on using
complex levels of encryption to provide increased security
and to lower the probability that a hacker will be able to gain
access to private information. Using steganography, we are
able provide an extra layer of protection by hiding encrypted
data within non-secret files. Although slightly counter-
intuitive, by hiding encrypted information within a non-secret
image, we lower the probability of a hacker discovering where
the encrypted information is in the first place. Today’s
encryption relies heavily on using a key for decoding hidden
information. Thus, “an option exists to use computer programs
that try every possible key until they find the correct one [1].”
Steganography has potential to solve many security flaws with
current encryption schemes by making it even more difficult
to decrypt. While normal encryption requires a key to encrypt
or decrypt a message, steganography not only requires a key
but also knowledge of where the key slot is in the first place.
Steganography methods reduce “the chance of a message
being detected… [and] if that message is also encrypted, if
discovered, it must also be cracked [2].”
Image files are an excellent location for hiding information
due to their large file size. By slightly altering pixel values in
an image to hide an encrypted message, a hacker will not be
able to readily identify that there is hidden information within
the image. Additionally, the hacker will also not be able easily
detect how to decode the pixel values to obtain the secret
information. Our project implements a simple, low-
computation-intensive steganography system capable of
encrypting a 100-page text document within a single 600x400
Advisor: Dr. Briggs, TA: Che-I Lien
pixel color-image by slightly altering pixel values across the
picture, yet maintaining the original images integrity. We
ensure that the end-user will not be able to detect differences
between the original and encrypted images via observation by
the human eye.
We are in the “Information Age.” In addition to encryption,
our era relies heavily on electronic communication. In order to
more efficiently communicate with one another, engineers are
constantly developing new transmission mediums, faster
devices (e.g. lasers & photodiodes), error correction encoding,
and transmission schemes. Before fiber-optic cables were
vastly utilized to handle internet traffic, users relied on
transmitting information via phone cables at incredibly limited
speeds, by today’s standards [3]. As our technology becomes
more powerful, it becomes more complicated. Faster
communication systems will be required to transmit larger
amounts of data. Currently, a single fiber-optic module can
transmit data at 100 Gb/s. The largest constraint when
developing fiber-optic transmission systems is the maximum
modulation speed of a laser. Soon, we will start seeing more
system designs transitioning away from binary (on-off keying)
to PAM-4 [4]. PAM-4 utilizes “4 distinct pulse amplitudes…
to convey information [4].” Fiber-optic technology has the
most promise for breaching the communication gap. We
implemented a solution for a low cost system using a laser,
photodiode, fiber-optic cable, and two OMAP-L138 Low-Cost
Development Kit (LCDK) units.
Finally, as our systems become faster and faster and utilize
more complex transmission schemes such as PAM-4, error
rates will increase. We provide a solution for an error
correction algorithm using convolutional encoding to transmit
redundancy bits and a Viterbi decoder at the receiving end to
decode the received bits.
II.MOTIVATION
Encryption continues to be a hot topic as several companies
regularly fall victim to hacking attacks due to security
vulnerabilities in their systems. Our motivation behind this
project was to investigate ways to increase the number of
layers of encryption and hide information more efficiently.
Separately, our interest in communication systems and circuits
also led us to pursue the idea of designing a fiber-optic
transmission system.
Steganography Encryption System, Fiber-optic
Transmission, and Error Correction Encoding
Steven Moran and Cheuk Yu
T
2
III. APPROACH
A.Standards
Our system implemented the following standards and each
is explained in detail under “Workflow of the Project”:
1) Operation of a photodiode [7]
2) Binary Synchronous Communication (BSC) [8]
3) Convolutional Encoding
4) Viterbi Decoding Algorithm
B.Workflow of the Project
1) Steganography System
We started by implementing our steganography
encryption system in MATLAB. Starting in MATLAB
allowed each of us to work simultaneously on both the
encoder and decoder for the steganography system. It also
gave us more control over our debug environment. Loading
image files onto the LCDK was the main limitation of the
speed of our system, but our system’s speed was
dramatically increased after a fix was provided to load the
image via USB Thumb Drive.
We collaborated by brainstorming an encryption strategy
prior to starting our coding development. First we ran our
text through a very simple encryption system which altered
all of the text characters slightly by changing them to non-
alphabetic ASCII characters. Next, we decided to only
change the least significant bit (LSB) of each pixel value in
order to minimize the visual difference between the original
and encrypted image. After observing no visual difference,
we ran tests to determine how many bits we could change
for each pixel value without changing the image too
significantly. We determined that we could change the 4
LSB’s for each 8-bit pixel value without there being a
significant change in how the image appeared. We
proceeded by efficiently implementing both the encoder and
decoder in MATLAB. After verifying our code’s
functionality, we each translated our code to C and
debugged it to work properly on the LCDK. We also took
memory issues into consideration and ensured that the
system would continue to work for large text file input by
switching to dynamic memory allocation for file sizes over
5000 characters.
2) Fiber-optic Transmission System
After implementing our Steganography system, we
switched to the next design goal of our project—
implementing a fiber-optic transmission system between
two LCDK units. Before implementing our actual
transmission system, we began by building our receiver and
transmitter circuits. Our goal was to be able to observe a
change on the receiving end of the system every time we
alternated the transmitting state. To do so, we used the
GPIO pins as the input and output to the transmission
system. We found the GPIO pins on the external connector
of the LCDK using the provided schematic documents [9].
Additionally, 3.3V and ground pins were also used as
references for the transmission circuit.
On the transmitting end, we hooked up an LED laser in
series with a 500Ω resistor to the GPIO8(12) output pin on
the LCDK, as shown in Fig. 1. We used the GPIO8(12) pin
to turn the diode on and off. We connected the LED to one
end of the fiber-optic cable and placed the photodiode on
the other end. Before constructing the receiving circuit, we
flickered the LED on and off, and we placed a voltmeter
across the photodiode in order to double-check that we are
able to observe a change on the output. After verifying a
small change in voltage across the photodiode, we began
constructing our photodiode circuit. Our first circuit placed
the photodiode in series with a 1 MΩ resistor, and we
connected the voltage across the 1 MΩ to GPIO8(10) pin on
the LCDK. We wrote a simple program to determine
whether we could detect the change on GPIO8(10). We
were not able to observe any difference on GPIO8(10) when
we turned the LED on and off. After some problem-solving,
we discovered that there was most likely a 1 KΩ pull-up
resistor connected to the GPIO8(10) when the pin was
configured as an input on the LCDK. Our circuit was not
strong enough to pull the voltage low, so we decided to use
a transistor implementation.
Fig. 1. Transmitter circuit diagram for the fiber-optic transmission system.
We began with a single transistor implementation, but we
experienced several issues as the photodiode did not
provide enough current to turn on the NPN transistor. Next,
we utilized a Darlington pair configuration of two NPN
transistors in order to amplify the current from the
photodiode and fully turn on the second transistor, as shown
in Fig. 2. We were able to successfully observe a change in
state on the receiving end of our transmission system;
however, we faced two issues when using the Darlington
pair. First, we inverted the signal by using this
configuration which is not too severe as this only required
us to invert the signal within our code. Secondly, the
Darlington pair output voltage would range from 0.4V to
3
3.3V, which shows that the pair is able to fully turn-off
when required and display 3.3V, but it was not able to fully
pull down the voltage to 0V before the second transistor
turned off. We tried two other circuit configurations using
transistors, one using 3 NPN transistors for as the
Darlington triplet and another using an actual Darlington
pair integrated circuit (IC) chip, but we did not have success
with either design. We reverted to our Darlington pair
configuration of 2 individual BJT’s and continued on with
the next step of our project.
Fig. 2. Receiver circuit diagram utilizing a Darlington pair configuration
for the fiber-optic transmission system.
Implementing a high-speed GPIO interrupt was a
significant challenge when building our fiber-optic system.
The provided face-detect code from previous EE113D
students on “RC Car Ball Avoidance” allowed for a 1 kHz
GPIO interrupt, but we wanted to be able to transmit data at
a much faster rate. We spent about 3 weeks doing research,
posting on TI E2E forums, and reading through code
examples before we discovered how to create a GPIO
interrupt [10][11][12][13][14]. We used the Timer interrupt
example code (timerCounter.c) inside the StarterWare
folder as a template [17]. We first tried to import the files
into our workspace, but we could not make it compile. By
comparing it with an already-built project, we figured out
that we needed to include different linkers and compiler
files. We were eventually able to run the example code in
our workspace and made the necessary modifications to
create a GPIO interrupt. Although the Timer interrupt
function uses TIMER2 of the LCDK, which is 150MHz, the
GPIO function took several more clock cycles and the best
we could achieve was 52 kHz, as shown in Fig. 3.
Fig. 3. Receiving Circuit Output utilizing a 52 kHz interrupt frequency.
Oscilloscope displays 26 kHz frequency due to alternating outputs.
However, transmitting at such high speed was not
practical. First, the receiving circuit took time to turn on an
off the transistors and as a result it could not generate a
square wave with sharp edges, as seen in Fig. 3. Fixing this
problem is pretty simply: we could use PNP transistors to
aid in pulling up the output voltage when no current is seen
at the input, or we could cascade a high-speed operational
amplifier comparator to the receiving circuit. The second
problem was the synchronization of the transmitter and the
receiver. Using two independent LCDKs and a half duplex
communication channel, it was difficult to ensure the
receiver actually received the bit of information after
transmission. To prevent any data loss, we simply slowed
down the transmitter’s interrupt speed so that the receiver
could receive several samples for each information bit
transmitted. After several trials, we were able to push the
transmission rate up to 6 kHz with little to no error. We also
wanted the receiver to be robust enough so that it could be
compatible with any transmission rate up to 6 kHz. To do
so, we first transmitted a known pattern ‘101010101’ as a
header before sending our information. Checking the
number of samples for each bit of the header detected the
average number of samples needed for one bit of
information. In addition, the header also indicated the start
of a transmission, and the receiver would not initialize until
the header had been received.
3) Convolutional Encoding & Viterbi Decoder
Although we achieved a 6 kHz transmission rate, we
wanted to further improve our transmission rate while
keeping the bit error rate (BER) to a minimum. We
successfully implemented a convolutional encoding system
with a Viterbi decoder on the receiving end. By
implementing a Viterbi decoder, the rate can be potentially
increased further while keeping the BER at a minimum. Our
convolutional encoding system has a code rate of 1/3 and
sends 2 bits of redundancy for every bit of information sent.
Future improvements of our code can lead to even faster
code and transmission rates. As implemented, our
4
transmission system is described by the following three
state equations:
𝑠3𝑛 = 𝑏 𝑛 (1)
𝑠3𝑛−1 = 𝑏 𝑛 + 𝑏 𝑛−2 (2)
𝑠3𝑛−2 = 𝑏 𝑛 + 𝑏 𝑛−1 + 𝑏 𝑛−2 (3)
As described by (1)-(3), for every bit of information, 3
bits are transmitted: s3n-2, s3n-1, & s3n. At the receiving end,
we implemented a Viterbi Decoder to decode the
transmitted convolutional code.
Fig. 4. Viterbi Trellis Diagram. Courtesy of Irham Maruf.
(http://irham93.blogspot.com/2013/06/trellis-diagram-state-diagram-dan-
tree.html)
There are many techniques used to realize a Viterbi
decoder, but a Viterbi Trellis Diagram (Fig. 4) is one of the
easiest to understand and follow. By using Viterbi’s
algorithm, we were able to decode the message while
minimizing the total error. A Viterbi trellis allowed us to
calculate the path with the smallest accumulated error
metric [6]. By implementing a convolutional encoding
system, we also potentially reduced issues with
synchronization.
C.Design Requirements
There are some important characteristics that the design
must meet in order to be successful:
1) Steganography System
The image cannot have a solid color background,
especially the lighter colors. Otherwise, the encoded image
appears to be different from the original image. An example
would be comparing Fig. 5 shown on this page and Fig. 9
on page 6. It is obvious that there is a shaded area (gray
color) on the bottom of the encoded “Hexagon” image. For
Fig. 9, you can barely see the difference.
Fig. 5. Image “Hexagon.”
2) Fiber-optic Transmission System
There is a synchronization issue of the two LCDK’s if a
long string of consecutive 1’s or 0’s is transmitted, since our
communication system is half duplex. In a long string of
consecutive 1’s or 0’s bits transmitted, the receiver might
receive an extra bit or miss a bit. To improve this system,
we need to change the transmission scheme to something
similar to Morse code in order to distinguish 1’s and 0’s and
ensure that less than 8 bits transmitted in a row are the same
value.
3) Convolutional Encoding & Viterbi Decoder
One extra bit must be added to the information bits for
the Convolutional Encoder and the Viterbi Decoder to work
because during our trials the last bit was always flips, as
shown in Table I on page 8. As explained on page 8, we can
add an additional ‘useless’ bit at the end so that only the
‘useless’ got flipped over the transmission. This error is due
to our Convolutional Encoder/Viterbi Decoder and not an
artifact of the transmission system.
D.Constraints
There are two types of constraints, global and local. Global
refers to the design as a whole, and local refers to portions of
the design.
1) Global Constraints
a) Cost
For a project, the most important constraint would
be its economic cost: how much will it cost to
manufacture the product? In our design, the most
costly part would be the fiber-optic cable. This cost is
based on two factors: distance and occurrence.
If the distance between the two users (transmitter
and receiver) is fairly closed, it would require a short
cable which is not expensive. Therefore, this
transmission is only optimal for local communication
systems, not global communication systems such as
between cities.
Occurrence is also another factor. If the transmission
is frequent, the users might want to put the cable into a
safe location, such as behind the walls or beneath the
5
floor. Typically such installations would cost more
than the cable itself.
b) Noise
Noise is usually a concern of a communication
system. Using a fiber-optic cable has already
minimized the noise from the channel compared to
other mediums. The only concern of fiber-optic cable
is that, the cable cannot be bent over the critical angle
such that the traveling light refracts out of the cable
instead of reflecting within the cable. In general, this
constraint only means that there should be no sharp
turns on the cable, which is easy to meet.
2) Local Constraints
a) Transmission Speed
The timer interrupt frequency is in the MHz range,
meaning that our upper bound frequency should be
around this bound. However, our design only went up
to 6.1 kHz. There were two reasons:
First, our GPIO interrupt only support up to 52 kHz,
as shown in Fig. 3. As explained before, the GPIO
function was not optimized and the highest we could
achieve was around the kHz range. To push the limit
up, we will have to rewrite the GPIO function in the
library.
Second, as we approached the 10+ kHz range, the
shape edges of the signal started to disappear, as
shown in Fig. 3. So after we fix the GPIO function, we
will need a better circuit to reduce the response time of
the transistor. As explained before, we could use PNP
transistors to aid in pulling up the output voltage when
no current is seen at the input, or we could cascade a
high-speed operational amplifier comparator to the
receiving circuit.
b) Steganography System’s Loading Speed
Another concern would be the loading speed of
images to the LCDK, since the communication
between the computer and the LCDK is really slow.
Thanks to Jerry’s USB program, we have significantly
reduced the loading time. For instance, loading and
saving an 800x1100 image would take 30 minutes
originally, but now it only takes around 3 to 5 minutes.
IV. RESULTS
A.Intended Design Objectives
To summarize our original project objectives, consider the
Intended Design Block Diagram as shown in Fig. 6.
Fig. 6. Intended Design Block Diagram.
B.Realized Design Objectives
While we were not able to complete the entire system as
shown as Fig. 6, we have developed two smaller functioning
systems, the Steganography System and the Communication
System, as shown in Figs. 7 and 8. Our final design is
described by the objectives below:
1a) Steganography Encoder
First, the Steganography Encoder took in the image from
a USB Thumb Drive, as well as the hidden message from a
text document on the computer. LCDK #1 then calculated
the number of characters of the message. If the message was
too long for the image, an error message would be returned
to the user. If more than 5000 characters were used,
dynamic memory was allocated to store the message. A 24-
bit header was created to indicate the number of characters.
The header and the message was converted into bits, and
encrypted by adding a hidden key that was only know by
the receiver. The bits then replaced the last 4 LSB’s of the
image’s pixels, until all information was encoded to the
image.
1b) Steganography Decoder
The Steganography Decoder took in the encoded image.
It first checked the first 2 pixels (the 24-bit header) and
extracted the character-count header from the last 4 LSB’s.
From there, LCDK Receiver knew the length of the hidden
6
message. It then extracted the correct amount of bits from
the image and decrypted the bits using the hidden key from
the Steganography Encoder. It finally stored the received
message into a text document on the computer.
2a) Convolutional Encoder
In order to reduce the error rate of transmission, we
decided to implement a convolutional encoding system with
a code rate of 1/3. We were able to successfully implement
both the Convolution Encoder and Viterbi decoder, and we
uploaded our MATLAB and C files to GitHub as a
reference to future EE113D students [15][16].
2b) Communication Channel
LCDK #1 acted as the transmitter of the communication
channel. To indicate the start of the transmission and allow
the receiver to lock onto the transmission frequency, the
transmission first started by sending out a fixed length of
alternating bits “101010…” by switching on and off
GPIO8(12) which controls the LED laser. Then, LCDK #1
looped through the message (information bits) and
transmitted it via on/off keying. The signal passed through a
10-meter long fiber-optic cable and reached the photodiode
in the Darlington pair circuit, as shown in Fig. 2. Note that
since GPIO8(10) on LCDK #2 was normally pulled-up, the
logic was reversed: high means 0’s and low means 1’s.
LCDK #2 was the receiver of the communication channel
and stored the transmitted signal.
2c) Viterbi Decoder
As mentioned previously, we successfully implemented a
convolutional encoder as well as Viterbi decoder using the
LCDK. Since our code rate was only 1/3, there is room for
improvement because we are sending two bits of
redundancy for every bit of information.
Figures 7 and 8 describe the overall block functionality of our
two independent systems.
Fig. 7. Resultant Image Steganography System.
Fig. 8. Resultant Communication System.
While we were able to fully implement the Steganography
System, our Communication System was still in the
development stage. Instead of having a header indicating for
the size of the transmission, the System only transmitted a
fixed-size message. More work would need to be done before
merging the two systems together. Synchronization issues
would also occur when transmitting long strings of 0’s or 1’s
(e.g. multiple consecutive white or black pixels in an image).
C.Steganography Results
We ran several trials using different images for our
Steganography System. Fig. 9 displays the set of “Flower”
images. You can barely see the corolla on the bottom side is
slightly darker in the encoded image. This is not obvious
unless you have the original image side by side.
Fig. 9. Image “Flower.”
In addition, using a set of larger images could further hide
the encoding of message. Consider the image “Mona Lisa” as
shown in Fig. 10. Encoding the same message is no longer
visible to the naked eye.
Fig. 10. Image “Mona Lisa.”
7
D.Transmission Results
Figures 11 and 12 display how we physically connected
both the transmitter and receiver circuits as shown by the
circuit diagrams in Fig. 1 and Fig. 2. After properly
connecting our circuits and verifying their functionality via the
usage of a voltmeter and oscilloscope, we were able to
successfully transmit data across our fiber-optic channel.
Fig. 11. Transmitter Circuit Connected to LCDK #1.
Fig. 12. Receiver Circuit hooked up to LCDK #2.
Figures 13 and 14 display the output of both the transmitter
and receiver circuits with a transmission rate of approximately
280 Hz. As you can see, both form very nice square waves as
expected since the GPIO pin pulls the pin high for one
interrupt cycle and low for the next interrupt cycle. Both
circuits respond relatively well.
Fig. 13. Transmitter circuit with transmission rate of 280 Hz.
Fig. 14. Receiver circuit with transmission rate of 280 Hz.
Next, we analyzed how both circuits respond to higher
frequencies. Figures 15 and 16 display the response of both
circuits for a much higher transmission rate of 6.1 kHz. Figure
10 shows that at higher frequencies, the receiving circuit has a
slow response time on the rising edge. This may be due the
fact that our receiver circuits relies on the LCDK’s internal
1KΩ pull-up resistor, as displayed in Fig. 2, to pull-up the
voltage when it does not see current on the input of the circuit.
Our receiver design only works to quickly pull down the
voltage when it senses a current from the photodiode. To
further improve our design, we may consider using PNP
transistors to aid in pulling up the output voltage when no
current is seen at the input. We could also cascade a high-
speed comparator to produce a receiver output similar to a
square wave.
8
Fig. 15. Transmitter circuit with transmission rate of 6.1 kHz.
Fig. 16. Receiver circuit with transmission rate of 6.1 kHz.
Obviously the most important thing for a communication
system is the Bit Error Rate (BER). Consider Table I:
TABLE I
BIT ERROR RATE FOR TRANSMISSION AT DIFFERENT FREQUENCIES
Frequency Bit Error Rate Comment
280 Hz 0.25% The last bit is wrong.
6.1 kHz 0.25% The last bit is wrong.
Note that our Communication System did not transmit the
information bit directly. Using the Convolutional Encoder and
the Viterbi Decoder, the codewords, or so-called states were
transmitted. The codewords were the same before and after the
communication channel, meaning the error came from the
either the Convolutional Encoder or the Viterbi Decoder. To
fix this issue of flipped last bit, we would need to add an extra
‘useless’ bit to the end of the information bits before encoding
so that all the information states could get processed correctly
after the Viterbi decoder.
E.Summary Table of Project Results
TABLE II
SUMMARY TABLE OF SUCCESSES AND NON-SUCCESSES
Type Detail
Success or Non-Success
(With Explanation)
Standard Operation of a
photodiode
Met
Standard Binary Synchronous
Communication
(BSC)
Met
Standard Convolutional
Encoding
Met
Standard Viterbi Decoding
Algorithm
Met
System Steganography
System
Completed
System Communication
System
Completed (able to communicate)
System Error Correction Nearly Completed (incorrect last bit)
System Maximum
Transmission Speed
6.1 kHz
Overall Merged all systems Not-Completed
F.Accomplishments
While we did not fully complete all of our design
objectives, we had two major accomplishments:
1) Timer Interrupt as PWM
We modified the TimerCounter StarterWare example to
create GPIO interrupt that ranges from 0 Hz to 52 kHz. While
52 kHz was not significantly faster than the maximum of the
original interrupt (48 kHz), the default interrupt only had
several fixed frequencies and thus might not be optimal for
creating specific PWM signals. This Timer Interrupt could
provide a PWM at the programmer’s desired frequency up to
52 kHz, and we uploaded our modified skeleton code to
GitHub as a reference to further EE113D students [17].
2) Transmission Speed
We were able to establish a transmission speed up to 6 kHz
bit rate, which was faster than any previous transmission
speed on a wired communication channel in EE113D. Even
though this is ground-breaking, we were not at the maximum
speed yet. The GPIO library could be rewritten to be more
efficient, allowing the transmission speed to reach TIMER2’s
limit at 150MHz.
G.Possible Improvements
For any product, there are always improvements available.
We have summarized the possible improvements for this
project as below:
1) Use a Better Transmission Scheme
As explained before, our transmission scheme has
synchronization issue for a long stream of 1’s or 0’s. We
should use a something similar to Morse code, for example,
a dot means 1’s and dash means 0’s. This might have
further slowed down the transmission speed, but this would
allow an error-free communication.
9
2) Rewrite the GPIO Interrupt Function
By reducing the clock cycle needed for the GPIO
interrupt, we might be able to increase the transmission
speed up to the MHz range. Combining this with the above
mentioned improvements, we could create a higher-speed
error-free communication system.
3) Merge the two Systems Together
Once we create an error-free communication system, we
can merge the Steganography System and Communication
System together.
4) Miscellaneous
Obviously, there are also some smaller improvements we
should investigate. We could add a ‘faster-reaction’
transmitting circuit and/or append one ‘useless’ bit to the
end of the information bits to improve our system’s
accuracy. Such improvements are not as significant as the
previous three improvements mentioned.
V.ACKNOWLEDGEMENT
The authors thank Dr. Briggs for providing support with
developing circuit implementations for the transmission
system. The authors also thank Che-I Lien for assisting with
setting up timerCounter.c code as well as providing code to
load image files via USB. Finally, the authors would like to
thank members of the TI E2E Community for providing
support via answering some of our forum posts.
REFERENCES
[1] K. Korhorn, “Steganography Uses and Effects on Society,” University
of Illinois, Champaign, IL, 2002.
[2] N. F. Johnson. (1995, Nov.), Steganography. George Mason University,
VA. [Online]. Available: http://www.jjtc.com/stegdoc/sec101.html
[3] Various Authors. (2008), American History: 60d. Living in the
Information Age. Independence Hall Association, PA. [Online].
Available: http://www.ushistory.org/us/60d.asp
[4] W. Way. (2015, May), PAM-4: A Key Solution for Next-Generation
Short-Haul Optical Fiber Links. [Online]. Available:
http://blog.neophotonics.com/pam-4-a-key-solution-for-next-generation-
short-haul-optical-fiber-links/
[5] E. Liu. (2004, Nov.). Convolutional Convolutional Coding & Coding &
Viterbi Viterbi Algorithm. Helsinki University of Technology, Finland.
[Online]. Available: http://www.comlab.hut.fi/opetus/333/2004_2005_
slides/Convolutional_Coding_Viterbi_Algorithm.pdf
[6] (1999). Performing Viterbi Algorithm. Spectrum Applications. [Online].
Available: http://home.netcom.com/~chip.f/viterbi/algrthms2.html
[7] (1999) Photodiode/Phototransistor Application Circuit. Sharp
Corporation. Reference Code: SMA99017. [Online]. Available:
http://denethor.wlu.ca/pc300/projects/sensors/photdiod.pdf
[8] (1967). General Information – Binary Synchronous Communications.
IBM Systems Development Division, NC. [Online]. Available:
http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/datacomm/A27-
3004-0_bisyncGenDescr.pdf
[9] (2015, May). OMAPL138 LCD Kit (Schematics, BOM , Layout, and
Gerber Files) v.A7a. Texas Instruments, TX. [Online]. Available:
http://www.ti.com/tool/tmdslcdk138#Technical%20Documents
[10] C. Lim. (2015, Mar.). UCLA EE113DB RC Car Ball Avoidance.
[Online]. Available: http://www.youtube.com/watch?v=b3-WVb9qBJY
[11] Face Detection Demonstration. Texas Instruments, TX. [Online].
Available:
http://processors.wiki.ti.com/index.php/L138/C6748_Development_Kit_
(LCDK)#Face_Detection_Demonstartion
[12] (2016, Feb.). TI E2E Forum: OMAP L138 LCDK GPIO. Texas
Instruments, TX. [Online]. Available:
http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/4880
72
[13] (2016, Feb.). TI E2E Forum: Rapidly poll GPIO Input. Texas
Instruments, TX. [Online]. Available:
https://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/4884
81
[14] (2016, Feb.). TI E2E Forum: OMAP-L138 GPIO Interrupt. Texas
Instruments, TX. [Online]. Available:
https://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/4891
44
[15] S. Moran. (2015, May). Convolutional Encoding & Viterbi Decoder.
MATLAB. [Online]. Available: http://github.com/smoran1/matlab-
scripts/tree/master/convolutional-encoding.
[16] S. Moran & C. Yu. (2016, Mar.). Convolutional Encoder & Viterbi
Decoder in C. [Online]. Available:
https://github.com/smoran1/EE113DB-Design-
Project/blob/master/convolution_viterbi.c
[17] S. Moran & C. Yu. (2016, Mar.). Transmit Timer example code in C.
[Online]. Available: https://github.com/smoran1/EE113DB-Design-
Project/blob/master/transmit_timer.c
[18] (2012, Mar.). StarterWare-OMAPL138. Texas Instruments, TX.
[Online]. Available: http://software-
dl.ti.com/dsps/dsps_public_sw/c6000/starterware/01_10/index_FDS.htm
l
Steven Moran (BS’16) was born in San Jose, CA and
attended University of California, Los Angeles (UCLA) from
2012 to 2016. He studied electrical engineering, focusing in
integrated circuits and ultimately earned his Bachelor’s degree
in spring of 2016. He will be attending the UCLA Graduate
School of Engineering beginning in fall of 2016 with a
Departmental Fellowship, working towards both a Master’s
degree and Ph.D in Circuits and Embedded Systems.
Beginning fall of 2016, he will be working as a Research
Assistant in the UCLA Center for Heterogeneous Integration
and Performance Scaling (CHIPS).
Cheuk Yu (BS’16) was born in Hong Kong in 1993. He
attended University of California, Los Angeles (UCLA) from
2012 to 2016. He will be graduating with a Bachelor’s degree
in electrical engineering in fall of 2016, focusing in integrated
circuits and signal processing.
From 2014, he has been a Student Researcher of the
Electron Losses and Fields Investigation (ELFIN) under the
Earth, Planetary, and Space Sciences department (EPSS) at
UCLA. His role includes printed-circuit board design and
testing. The group is building UCLA’s first fully-built satellite
to study space weather, and it is expected to be launched in
2017.

More Related Content

What's hot

A Joint Encryption/Watermarking Algorithm for Secure Image Transfer
A Joint Encryption/Watermarking Algorithm for Secure Image TransferA Joint Encryption/Watermarking Algorithm for Secure Image Transfer
A Joint Encryption/Watermarking Algorithm for Secure Image Transferijcnac
 
Increasing Throughput per Node for Content Delivery Networks
Increasing Throughput per Node for Content Delivery NetworksIncreasing Throughput per Node for Content Delivery Networks
Increasing Throughput per Node for Content Delivery NetworksDESMOND YUEN
 
Maintain load balancing in wireless sensor networks using virtual grid based ...
Maintain load balancing in wireless sensor networks using virtual grid based ...Maintain load balancing in wireless sensor networks using virtual grid based ...
Maintain load balancing in wireless sensor networks using virtual grid based ...zaidinvisible
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)ijceronline
 
New Media Services from a Mobile Chipset Vendor and Standardization Perspective
New Media Services from a Mobile Chipset Vendor and Standardization PerspectiveNew Media Services from a Mobile Chipset Vendor and Standardization Perspective
New Media Services from a Mobile Chipset Vendor and Standardization PerspectiveFörderverein Technische Fakultät
 
Jiri ece-01-03 adaptive temporal averaging and frame prediction based surveil...
Jiri ece-01-03 adaptive temporal averaging and frame prediction based surveil...Jiri ece-01-03 adaptive temporal averaging and frame prediction based surveil...
Jiri ece-01-03 adaptive temporal averaging and frame prediction based surveil...Ijripublishers Ijri
 
Self Attested Images for Secured Transactions using Superior SOM
Self Attested Images for Secured Transactions using Superior SOMSelf Attested Images for Secured Transactions using Superior SOM
Self Attested Images for Secured Transactions using Superior SOMIDES Editor
 
Experiences from a Field Test using ICN for Live Video Streaming
Experiences from a Field Test using ICN for Live Video StreamingExperiences from a Field Test using ICN for Live Video Streaming
Experiences from a Field Test using ICN for Live Video StreamingEricsson
 
Future tech trend for public safety proximity-based service
Future tech trend for public safety proximity-based serviceFuture tech trend for public safety proximity-based service
Future tech trend for public safety proximity-based serviceYi-Hsueh Tsai
 
How to Terminate the GLIF by Building a Campus Big Data Freeway System
How to Terminate the GLIF by Building a Campus Big Data Freeway SystemHow to Terminate the GLIF by Building a Campus Big Data Freeway System
How to Terminate the GLIF by Building a Campus Big Data Freeway SystemLarry Smarr
 
Optimal Preamble Design for Short Packet Circularly Pulse-Shaped OFDM Transmi...
Optimal Preamble Design for Short Packet Circularly Pulse-Shaped OFDM Transmi...Optimal Preamble Design for Short Packet Circularly Pulse-Shaped OFDM Transmi...
Optimal Preamble Design for Short Packet Circularly Pulse-Shaped OFDM Transmi...Yenming Huang
 
mohsin dalvi artificial neural networks questions
mohsin dalvi   artificial neural networks questionsmohsin dalvi   artificial neural networks questions
mohsin dalvi artificial neural networks questionsAkash Maurya
 
IJSRED-V1I1P2
IJSRED-V1I1P2IJSRED-V1I1P2
IJSRED-V1I1P2IJSRED
 
Securing Privacy of User’s Data on Cloud Using Back Propagation Neural Networks
Securing Privacy of User’s Data on Cloud Using Back Propagation Neural NetworksSecuring Privacy of User’s Data on Cloud Using Back Propagation Neural Networks
Securing Privacy of User’s Data on Cloud Using Back Propagation Neural Networkstheijes
 
public truthfulness assessment for shared active cloud data storage with grou...
public truthfulness assessment for shared active cloud data storage with grou...public truthfulness assessment for shared active cloud data storage with grou...
public truthfulness assessment for shared active cloud data storage with grou...Ijripublishers Ijri
 
Energy-Efficient Protocol for Deterministic and Probabilistic Coverage In Sen...
Energy-Efficient Protocol for Deterministic and Probabilistic Coverage In Sen...Energy-Efficient Protocol for Deterministic and Probabilistic Coverage In Sen...
Energy-Efficient Protocol for Deterministic and Probabilistic Coverage In Sen...ambitlick
 

What's hot (19)

A Joint Encryption/Watermarking Algorithm for Secure Image Transfer
A Joint Encryption/Watermarking Algorithm for Secure Image TransferA Joint Encryption/Watermarking Algorithm for Secure Image Transfer
A Joint Encryption/Watermarking Algorithm for Secure Image Transfer
 
Increasing Throughput per Node for Content Delivery Networks
Increasing Throughput per Node for Content Delivery NetworksIncreasing Throughput per Node for Content Delivery Networks
Increasing Throughput per Node for Content Delivery Networks
 
Maintain load balancing in wireless sensor networks using virtual grid based ...
Maintain load balancing in wireless sensor networks using virtual grid based ...Maintain load balancing in wireless sensor networks using virtual grid based ...
Maintain load balancing in wireless sensor networks using virtual grid based ...
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
New Media Services from a Mobile Chipset Vendor and Standardization Perspective
New Media Services from a Mobile Chipset Vendor and Standardization PerspectiveNew Media Services from a Mobile Chipset Vendor and Standardization Perspective
New Media Services from a Mobile Chipset Vendor and Standardization Perspective
 
Jiri ece-01-03 adaptive temporal averaging and frame prediction based surveil...
Jiri ece-01-03 adaptive temporal averaging and frame prediction based surveil...Jiri ece-01-03 adaptive temporal averaging and frame prediction based surveil...
Jiri ece-01-03 adaptive temporal averaging and frame prediction based surveil...
 
Improvement of multi-channel_lo_ra_networks_based_on_distributed_joint_queueing
Improvement of multi-channel_lo_ra_networks_based_on_distributed_joint_queueingImprovement of multi-channel_lo_ra_networks_based_on_distributed_joint_queueing
Improvement of multi-channel_lo_ra_networks_based_on_distributed_joint_queueing
 
Self Attested Images for Secured Transactions using Superior SOM
Self Attested Images for Secured Transactions using Superior SOMSelf Attested Images for Secured Transactions using Superior SOM
Self Attested Images for Secured Transactions using Superior SOM
 
LEATCH:
LEATCH: LEATCH:
LEATCH:
 
Experiences from a Field Test using ICN for Live Video Streaming
Experiences from a Field Test using ICN for Live Video StreamingExperiences from a Field Test using ICN for Live Video Streaming
Experiences from a Field Test using ICN for Live Video Streaming
 
Future tech trend for public safety proximity-based service
Future tech trend for public safety proximity-based serviceFuture tech trend for public safety proximity-based service
Future tech trend for public safety proximity-based service
 
How to Terminate the GLIF by Building a Campus Big Data Freeway System
How to Terminate the GLIF by Building a Campus Big Data Freeway SystemHow to Terminate the GLIF by Building a Campus Big Data Freeway System
How to Terminate the GLIF by Building a Campus Big Data Freeway System
 
Optimal Preamble Design for Short Packet Circularly Pulse-Shaped OFDM Transmi...
Optimal Preamble Design for Short Packet Circularly Pulse-Shaped OFDM Transmi...Optimal Preamble Design for Short Packet Circularly Pulse-Shaped OFDM Transmi...
Optimal Preamble Design for Short Packet Circularly Pulse-Shaped OFDM Transmi...
 
mohsin dalvi artificial neural networks questions
mohsin dalvi   artificial neural networks questionsmohsin dalvi   artificial neural networks questions
mohsin dalvi artificial neural networks questions
 
IJSRED-V1I1P2
IJSRED-V1I1P2IJSRED-V1I1P2
IJSRED-V1I1P2
 
196 202
196 202196 202
196 202
 
Securing Privacy of User’s Data on Cloud Using Back Propagation Neural Networks
Securing Privacy of User’s Data on Cloud Using Back Propagation Neural NetworksSecuring Privacy of User’s Data on Cloud Using Back Propagation Neural Networks
Securing Privacy of User’s Data on Cloud Using Back Propagation Neural Networks
 
public truthfulness assessment for shared active cloud data storage with grou...
public truthfulness assessment for shared active cloud data storage with grou...public truthfulness assessment for shared active cloud data storage with grou...
public truthfulness assessment for shared active cloud data storage with grou...
 
Energy-Efficient Protocol for Deterministic and Probabilistic Coverage In Sen...
Energy-Efficient Protocol for Deterministic and Probabilistic Coverage In Sen...Energy-Efficient Protocol for Deterministic and Probabilistic Coverage In Sen...
Energy-Efficient Protocol for Deterministic and Probabilistic Coverage In Sen...
 

Similar to Steven_Cheuk_Final_Report

Secure Image Transmission for Cloud Storage System Using Hybrid Scheme
Secure Image Transmission for Cloud Storage System Using Hybrid SchemeSecure Image Transmission for Cloud Storage System Using Hybrid Scheme
Secure Image Transmission for Cloud Storage System Using Hybrid SchemeIJERD Editor
 
Fibonacci Video Encryption
Fibonacci Video EncryptionFibonacci Video Encryption
Fibonacci Video EncryptionJun Steed Huang
 
Iaetsd implementation of chaotic algorithm for secure image
Iaetsd implementation of chaotic algorithm for secure imageIaetsd implementation of chaotic algorithm for secure image
Iaetsd implementation of chaotic algorithm for secure imageIaetsd Iaetsd
 
Video Encryption and Decryption with Authentication using Artificial Neural N...
Video Encryption and Decryption with Authentication using Artificial Neural N...Video Encryption and Decryption with Authentication using Artificial Neural N...
Video Encryption and Decryption with Authentication using Artificial Neural N...IOSR Journals
 
Video Encryption and Decryption with Authentication using Artificial Neural N...
Video Encryption and Decryption with Authentication using Artificial Neural N...Video Encryption and Decryption with Authentication using Artificial Neural N...
Video Encryption and Decryption with Authentication using Artificial Neural N...IOSR Journals
 
IRJET- Efficient Data Hiding with LZW Compression and Ecc Encryption for Secu...
IRJET- Efficient Data Hiding with LZW Compression and Ecc Encryption for Secu...IRJET- Efficient Data Hiding with LZW Compression and Ecc Encryption for Secu...
IRJET- Efficient Data Hiding with LZW Compression and Ecc Encryption for Secu...IRJET Journal
 
A smart front end real-time detection and tracking
A smart front end real-time detection and trackingA smart front end real-time detection and tracking
A smart front end real-time detection and trackingLihguong Jang
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
Encrypting and Decrypting Message via Image Slicing
Encrypting and Decrypting Message via Image SlicingEncrypting and Decrypting Message via Image Slicing
Encrypting and Decrypting Message via Image SlicingIRJET Journal
 
FOREST FIRE DETECTION SYSTEM USING XBEE
FOREST FIRE DETECTION SYSTEM USING XBEEFOREST FIRE DETECTION SYSTEM USING XBEE
FOREST FIRE DETECTION SYSTEM USING XBEETalvinder Singh
 
JAVA 2013 IEEE NETWORKSECURITY PROJECT Extracting Spread-Spectrum Hidden Data...
JAVA 2013 IEEE NETWORKSECURITY PROJECT Extracting Spread-Spectrum Hidden Data...JAVA 2013 IEEE NETWORKSECURITY PROJECT Extracting Spread-Spectrum Hidden Data...
JAVA 2013 IEEE NETWORKSECURITY PROJECT Extracting Spread-Spectrum Hidden Data...IEEEGLOBALSOFTTECHNOLOGIES
 
IRJET- Autonomous Underwater Vehicle: Electronics and Software Implementation...
IRJET- Autonomous Underwater Vehicle: Electronics and Software Implementation...IRJET- Autonomous Underwater Vehicle: Electronics and Software Implementation...
IRJET- Autonomous Underwater Vehicle: Electronics and Software Implementation...IRJET Journal
 
ACTIVITY SPOTTER DURING MEDICAL TREATMENT USING VISUAL CRYPTOGRAPHY TECHNIQUE
ACTIVITY SPOTTER DURING MEDICAL TREATMENT USING VISUAL CRYPTOGRAPHY TECHNIQUEACTIVITY SPOTTER DURING MEDICAL TREATMENT USING VISUAL CRYPTOGRAPHY TECHNIQUE
ACTIVITY SPOTTER DURING MEDICAL TREATMENT USING VISUAL CRYPTOGRAPHY TECHNIQUEIRJET Journal
 
Biomedical image transmission based on Modified feistal algorithm
Biomedical image transmission based on Modified feistal algorithmBiomedical image transmission based on Modified feistal algorithm
Biomedical image transmission based on Modified feistal algorithmijcsit
 
MESSAGE TRANSFER USING STEGANOGRAPHY
MESSAGE TRANSFER USING STEGANOGRAPHYMESSAGE TRANSFER USING STEGANOGRAPHY
MESSAGE TRANSFER USING STEGANOGRAPHYIRJET Journal
 
SECURE OMP BASED PATTERN RECOGNITION THAT SUPPORTS IMAGE COMPRESSION
SECURE OMP BASED PATTERN RECOGNITION THAT SUPPORTS IMAGE COMPRESSIONSECURE OMP BASED PATTERN RECOGNITION THAT SUPPORTS IMAGE COMPRESSION
SECURE OMP BASED PATTERN RECOGNITION THAT SUPPORTS IMAGE COMPRESSIONsipij
 

Similar to Steven_Cheuk_Final_Report (20)

Secure Image Transmission for Cloud Storage System Using Hybrid Scheme
Secure Image Transmission for Cloud Storage System Using Hybrid SchemeSecure Image Transmission for Cloud Storage System Using Hybrid Scheme
Secure Image Transmission for Cloud Storage System Using Hybrid Scheme
 
It3116411644
It3116411644It3116411644
It3116411644
 
Fibonacci Video Encryption
Fibonacci Video EncryptionFibonacci Video Encryption
Fibonacci Video Encryption
 
Iaetsd implementation of chaotic algorithm for secure image
Iaetsd implementation of chaotic algorithm for secure imageIaetsd implementation of chaotic algorithm for secure image
Iaetsd implementation of chaotic algorithm for secure image
 
Video Encryption and Decryption with Authentication using Artificial Neural N...
Video Encryption and Decryption with Authentication using Artificial Neural N...Video Encryption and Decryption with Authentication using Artificial Neural N...
Video Encryption and Decryption with Authentication using Artificial Neural N...
 
Video Encryption and Decryption with Authentication using Artificial Neural N...
Video Encryption and Decryption with Authentication using Artificial Neural N...Video Encryption and Decryption with Authentication using Artificial Neural N...
Video Encryption and Decryption with Authentication using Artificial Neural N...
 
IRJET- Efficient Data Hiding with LZW Compression and Ecc Encryption for Secu...
IRJET- Efficient Data Hiding with LZW Compression and Ecc Encryption for Secu...IRJET- Efficient Data Hiding with LZW Compression and Ecc Encryption for Secu...
IRJET- Efficient Data Hiding with LZW Compression and Ecc Encryption for Secu...
 
A smart front end real-time detection and tracking
A smart front end real-time detection and trackingA smart front end real-time detection and tracking
A smart front end real-time detection and tracking
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)
 
Encrypting and Decrypting Message via Image Slicing
Encrypting and Decrypting Message via Image SlicingEncrypting and Decrypting Message via Image Slicing
Encrypting and Decrypting Message via Image Slicing
 
FOREST FIRE DETECTION SYSTEM USING XBEE
FOREST FIRE DETECTION SYSTEM USING XBEEFOREST FIRE DETECTION SYSTEM USING XBEE
FOREST FIRE DETECTION SYSTEM USING XBEE
 
V9I1202028.pdf
V9I1202028.pdfV9I1202028.pdf
V9I1202028.pdf
 
JAVA 2013 IEEE NETWORKSECURITY PROJECT Extracting Spread-Spectrum Hidden Data...
JAVA 2013 IEEE NETWORKSECURITY PROJECT Extracting Spread-Spectrum Hidden Data...JAVA 2013 IEEE NETWORKSECURITY PROJECT Extracting Spread-Spectrum Hidden Data...
JAVA 2013 IEEE NETWORKSECURITY PROJECT Extracting Spread-Spectrum Hidden Data...
 
Extracting spread spectrum hidden
Extracting spread spectrum hiddenExtracting spread spectrum hidden
Extracting spread spectrum hidden
 
IRJET- Autonomous Underwater Vehicle: Electronics and Software Implementation...
IRJET- Autonomous Underwater Vehicle: Electronics and Software Implementation...IRJET- Autonomous Underwater Vehicle: Electronics and Software Implementation...
IRJET- Autonomous Underwater Vehicle: Electronics and Software Implementation...
 
ACTIVITY SPOTTER DURING MEDICAL TREATMENT USING VISUAL CRYPTOGRAPHY TECHNIQUE
ACTIVITY SPOTTER DURING MEDICAL TREATMENT USING VISUAL CRYPTOGRAPHY TECHNIQUEACTIVITY SPOTTER DURING MEDICAL TREATMENT USING VISUAL CRYPTOGRAPHY TECHNIQUE
ACTIVITY SPOTTER DURING MEDICAL TREATMENT USING VISUAL CRYPTOGRAPHY TECHNIQUE
 
LSB & DWT BASED DIGITAL WATERMARKING SYSTEM FOR VIDEO AUTHENTICATION.
LSB & DWT BASED DIGITAL WATERMARKING SYSTEM FOR VIDEO AUTHENTICATION.LSB & DWT BASED DIGITAL WATERMARKING SYSTEM FOR VIDEO AUTHENTICATION.
LSB & DWT BASED DIGITAL WATERMARKING SYSTEM FOR VIDEO AUTHENTICATION.
 
Biomedical image transmission based on Modified feistal algorithm
Biomedical image transmission based on Modified feistal algorithmBiomedical image transmission based on Modified feistal algorithm
Biomedical image transmission based on Modified feistal algorithm
 
MESSAGE TRANSFER USING STEGANOGRAPHY
MESSAGE TRANSFER USING STEGANOGRAPHYMESSAGE TRANSFER USING STEGANOGRAPHY
MESSAGE TRANSFER USING STEGANOGRAPHY
 
SECURE OMP BASED PATTERN RECOGNITION THAT SUPPORTS IMAGE COMPRESSION
SECURE OMP BASED PATTERN RECOGNITION THAT SUPPORTS IMAGE COMPRESSIONSECURE OMP BASED PATTERN RECOGNITION THAT SUPPORTS IMAGE COMPRESSION
SECURE OMP BASED PATTERN RECOGNITION THAT SUPPORTS IMAGE COMPRESSION
 

Steven_Cheuk_Final_Report

  • 1. 1  Abstract—Technology is very prevalent in today’s society. As we progress, technology rapidly increases in complexity and new standards of encryption are necessary in order to protect data from hackers and illegitimate organizations. Our project aims to provide an implementation of an encryption system using steganography, the practice of hiding private information within a non-secret image. Additionally, we provide a solution to transmit the image between two devices using high-speed, fiber- optic transmission. Our transmission system transmits binary data using on-off keying across a fiber-optic cable. Using the General Purpose Input/Output (GPIO) pins on two separate LCDK units, we utilize GPIO interrupts to turn the LED laser on and off at varying frequencies on the transmitting end, and another GPIO interrupt to sample the output of the photodiode circuit at 52 kHz on the receiving end. I. INTRODUCTION ODAY’S encryption systems focus largely on using complex levels of encryption to provide increased security and to lower the probability that a hacker will be able to gain access to private information. Using steganography, we are able provide an extra layer of protection by hiding encrypted data within non-secret files. Although slightly counter- intuitive, by hiding encrypted information within a non-secret image, we lower the probability of a hacker discovering where the encrypted information is in the first place. Today’s encryption relies heavily on using a key for decoding hidden information. Thus, “an option exists to use computer programs that try every possible key until they find the correct one [1].” Steganography has potential to solve many security flaws with current encryption schemes by making it even more difficult to decrypt. While normal encryption requires a key to encrypt or decrypt a message, steganography not only requires a key but also knowledge of where the key slot is in the first place. Steganography methods reduce “the chance of a message being detected… [and] if that message is also encrypted, if discovered, it must also be cracked [2].” Image files are an excellent location for hiding information due to their large file size. By slightly altering pixel values in an image to hide an encrypted message, a hacker will not be able to readily identify that there is hidden information within the image. Additionally, the hacker will also not be able easily detect how to decode the pixel values to obtain the secret information. Our project implements a simple, low- computation-intensive steganography system capable of encrypting a 100-page text document within a single 600x400 Advisor: Dr. Briggs, TA: Che-I Lien pixel color-image by slightly altering pixel values across the picture, yet maintaining the original images integrity. We ensure that the end-user will not be able to detect differences between the original and encrypted images via observation by the human eye. We are in the “Information Age.” In addition to encryption, our era relies heavily on electronic communication. In order to more efficiently communicate with one another, engineers are constantly developing new transmission mediums, faster devices (e.g. lasers & photodiodes), error correction encoding, and transmission schemes. Before fiber-optic cables were vastly utilized to handle internet traffic, users relied on transmitting information via phone cables at incredibly limited speeds, by today’s standards [3]. As our technology becomes more powerful, it becomes more complicated. Faster communication systems will be required to transmit larger amounts of data. Currently, a single fiber-optic module can transmit data at 100 Gb/s. The largest constraint when developing fiber-optic transmission systems is the maximum modulation speed of a laser. Soon, we will start seeing more system designs transitioning away from binary (on-off keying) to PAM-4 [4]. PAM-4 utilizes “4 distinct pulse amplitudes… to convey information [4].” Fiber-optic technology has the most promise for breaching the communication gap. We implemented a solution for a low cost system using a laser, photodiode, fiber-optic cable, and two OMAP-L138 Low-Cost Development Kit (LCDK) units. Finally, as our systems become faster and faster and utilize more complex transmission schemes such as PAM-4, error rates will increase. We provide a solution for an error correction algorithm using convolutional encoding to transmit redundancy bits and a Viterbi decoder at the receiving end to decode the received bits. II.MOTIVATION Encryption continues to be a hot topic as several companies regularly fall victim to hacking attacks due to security vulnerabilities in their systems. Our motivation behind this project was to investigate ways to increase the number of layers of encryption and hide information more efficiently. Separately, our interest in communication systems and circuits also led us to pursue the idea of designing a fiber-optic transmission system. Steganography Encryption System, Fiber-optic Transmission, and Error Correction Encoding Steven Moran and Cheuk Yu T
  • 2. 2 III. APPROACH A.Standards Our system implemented the following standards and each is explained in detail under “Workflow of the Project”: 1) Operation of a photodiode [7] 2) Binary Synchronous Communication (BSC) [8] 3) Convolutional Encoding 4) Viterbi Decoding Algorithm B.Workflow of the Project 1) Steganography System We started by implementing our steganography encryption system in MATLAB. Starting in MATLAB allowed each of us to work simultaneously on both the encoder and decoder for the steganography system. It also gave us more control over our debug environment. Loading image files onto the LCDK was the main limitation of the speed of our system, but our system’s speed was dramatically increased after a fix was provided to load the image via USB Thumb Drive. We collaborated by brainstorming an encryption strategy prior to starting our coding development. First we ran our text through a very simple encryption system which altered all of the text characters slightly by changing them to non- alphabetic ASCII characters. Next, we decided to only change the least significant bit (LSB) of each pixel value in order to minimize the visual difference between the original and encrypted image. After observing no visual difference, we ran tests to determine how many bits we could change for each pixel value without changing the image too significantly. We determined that we could change the 4 LSB’s for each 8-bit pixel value without there being a significant change in how the image appeared. We proceeded by efficiently implementing both the encoder and decoder in MATLAB. After verifying our code’s functionality, we each translated our code to C and debugged it to work properly on the LCDK. We also took memory issues into consideration and ensured that the system would continue to work for large text file input by switching to dynamic memory allocation for file sizes over 5000 characters. 2) Fiber-optic Transmission System After implementing our Steganography system, we switched to the next design goal of our project— implementing a fiber-optic transmission system between two LCDK units. Before implementing our actual transmission system, we began by building our receiver and transmitter circuits. Our goal was to be able to observe a change on the receiving end of the system every time we alternated the transmitting state. To do so, we used the GPIO pins as the input and output to the transmission system. We found the GPIO pins on the external connector of the LCDK using the provided schematic documents [9]. Additionally, 3.3V and ground pins were also used as references for the transmission circuit. On the transmitting end, we hooked up an LED laser in series with a 500Ω resistor to the GPIO8(12) output pin on the LCDK, as shown in Fig. 1. We used the GPIO8(12) pin to turn the diode on and off. We connected the LED to one end of the fiber-optic cable and placed the photodiode on the other end. Before constructing the receiving circuit, we flickered the LED on and off, and we placed a voltmeter across the photodiode in order to double-check that we are able to observe a change on the output. After verifying a small change in voltage across the photodiode, we began constructing our photodiode circuit. Our first circuit placed the photodiode in series with a 1 MΩ resistor, and we connected the voltage across the 1 MΩ to GPIO8(10) pin on the LCDK. We wrote a simple program to determine whether we could detect the change on GPIO8(10). We were not able to observe any difference on GPIO8(10) when we turned the LED on and off. After some problem-solving, we discovered that there was most likely a 1 KΩ pull-up resistor connected to the GPIO8(10) when the pin was configured as an input on the LCDK. Our circuit was not strong enough to pull the voltage low, so we decided to use a transistor implementation. Fig. 1. Transmitter circuit diagram for the fiber-optic transmission system. We began with a single transistor implementation, but we experienced several issues as the photodiode did not provide enough current to turn on the NPN transistor. Next, we utilized a Darlington pair configuration of two NPN transistors in order to amplify the current from the photodiode and fully turn on the second transistor, as shown in Fig. 2. We were able to successfully observe a change in state on the receiving end of our transmission system; however, we faced two issues when using the Darlington pair. First, we inverted the signal by using this configuration which is not too severe as this only required us to invert the signal within our code. Secondly, the Darlington pair output voltage would range from 0.4V to
  • 3. 3 3.3V, which shows that the pair is able to fully turn-off when required and display 3.3V, but it was not able to fully pull down the voltage to 0V before the second transistor turned off. We tried two other circuit configurations using transistors, one using 3 NPN transistors for as the Darlington triplet and another using an actual Darlington pair integrated circuit (IC) chip, but we did not have success with either design. We reverted to our Darlington pair configuration of 2 individual BJT’s and continued on with the next step of our project. Fig. 2. Receiver circuit diagram utilizing a Darlington pair configuration for the fiber-optic transmission system. Implementing a high-speed GPIO interrupt was a significant challenge when building our fiber-optic system. The provided face-detect code from previous EE113D students on “RC Car Ball Avoidance” allowed for a 1 kHz GPIO interrupt, but we wanted to be able to transmit data at a much faster rate. We spent about 3 weeks doing research, posting on TI E2E forums, and reading through code examples before we discovered how to create a GPIO interrupt [10][11][12][13][14]. We used the Timer interrupt example code (timerCounter.c) inside the StarterWare folder as a template [17]. We first tried to import the files into our workspace, but we could not make it compile. By comparing it with an already-built project, we figured out that we needed to include different linkers and compiler files. We were eventually able to run the example code in our workspace and made the necessary modifications to create a GPIO interrupt. Although the Timer interrupt function uses TIMER2 of the LCDK, which is 150MHz, the GPIO function took several more clock cycles and the best we could achieve was 52 kHz, as shown in Fig. 3. Fig. 3. Receiving Circuit Output utilizing a 52 kHz interrupt frequency. Oscilloscope displays 26 kHz frequency due to alternating outputs. However, transmitting at such high speed was not practical. First, the receiving circuit took time to turn on an off the transistors and as a result it could not generate a square wave with sharp edges, as seen in Fig. 3. Fixing this problem is pretty simply: we could use PNP transistors to aid in pulling up the output voltage when no current is seen at the input, or we could cascade a high-speed operational amplifier comparator to the receiving circuit. The second problem was the synchronization of the transmitter and the receiver. Using two independent LCDKs and a half duplex communication channel, it was difficult to ensure the receiver actually received the bit of information after transmission. To prevent any data loss, we simply slowed down the transmitter’s interrupt speed so that the receiver could receive several samples for each information bit transmitted. After several trials, we were able to push the transmission rate up to 6 kHz with little to no error. We also wanted the receiver to be robust enough so that it could be compatible with any transmission rate up to 6 kHz. To do so, we first transmitted a known pattern ‘101010101’ as a header before sending our information. Checking the number of samples for each bit of the header detected the average number of samples needed for one bit of information. In addition, the header also indicated the start of a transmission, and the receiver would not initialize until the header had been received. 3) Convolutional Encoding & Viterbi Decoder Although we achieved a 6 kHz transmission rate, we wanted to further improve our transmission rate while keeping the bit error rate (BER) to a minimum. We successfully implemented a convolutional encoding system with a Viterbi decoder on the receiving end. By implementing a Viterbi decoder, the rate can be potentially increased further while keeping the BER at a minimum. Our convolutional encoding system has a code rate of 1/3 and sends 2 bits of redundancy for every bit of information sent. Future improvements of our code can lead to even faster code and transmission rates. As implemented, our
  • 4. 4 transmission system is described by the following three state equations: 𝑠3𝑛 = 𝑏 𝑛 (1) 𝑠3𝑛−1 = 𝑏 𝑛 + 𝑏 𝑛−2 (2) 𝑠3𝑛−2 = 𝑏 𝑛 + 𝑏 𝑛−1 + 𝑏 𝑛−2 (3) As described by (1)-(3), for every bit of information, 3 bits are transmitted: s3n-2, s3n-1, & s3n. At the receiving end, we implemented a Viterbi Decoder to decode the transmitted convolutional code. Fig. 4. Viterbi Trellis Diagram. Courtesy of Irham Maruf. (http://irham93.blogspot.com/2013/06/trellis-diagram-state-diagram-dan- tree.html) There are many techniques used to realize a Viterbi decoder, but a Viterbi Trellis Diagram (Fig. 4) is one of the easiest to understand and follow. By using Viterbi’s algorithm, we were able to decode the message while minimizing the total error. A Viterbi trellis allowed us to calculate the path with the smallest accumulated error metric [6]. By implementing a convolutional encoding system, we also potentially reduced issues with synchronization. C.Design Requirements There are some important characteristics that the design must meet in order to be successful: 1) Steganography System The image cannot have a solid color background, especially the lighter colors. Otherwise, the encoded image appears to be different from the original image. An example would be comparing Fig. 5 shown on this page and Fig. 9 on page 6. It is obvious that there is a shaded area (gray color) on the bottom of the encoded “Hexagon” image. For Fig. 9, you can barely see the difference. Fig. 5. Image “Hexagon.” 2) Fiber-optic Transmission System There is a synchronization issue of the two LCDK’s if a long string of consecutive 1’s or 0’s is transmitted, since our communication system is half duplex. In a long string of consecutive 1’s or 0’s bits transmitted, the receiver might receive an extra bit or miss a bit. To improve this system, we need to change the transmission scheme to something similar to Morse code in order to distinguish 1’s and 0’s and ensure that less than 8 bits transmitted in a row are the same value. 3) Convolutional Encoding & Viterbi Decoder One extra bit must be added to the information bits for the Convolutional Encoder and the Viterbi Decoder to work because during our trials the last bit was always flips, as shown in Table I on page 8. As explained on page 8, we can add an additional ‘useless’ bit at the end so that only the ‘useless’ got flipped over the transmission. This error is due to our Convolutional Encoder/Viterbi Decoder and not an artifact of the transmission system. D.Constraints There are two types of constraints, global and local. Global refers to the design as a whole, and local refers to portions of the design. 1) Global Constraints a) Cost For a project, the most important constraint would be its economic cost: how much will it cost to manufacture the product? In our design, the most costly part would be the fiber-optic cable. This cost is based on two factors: distance and occurrence. If the distance between the two users (transmitter and receiver) is fairly closed, it would require a short cable which is not expensive. Therefore, this transmission is only optimal for local communication systems, not global communication systems such as between cities. Occurrence is also another factor. If the transmission is frequent, the users might want to put the cable into a safe location, such as behind the walls or beneath the
  • 5. 5 floor. Typically such installations would cost more than the cable itself. b) Noise Noise is usually a concern of a communication system. Using a fiber-optic cable has already minimized the noise from the channel compared to other mediums. The only concern of fiber-optic cable is that, the cable cannot be bent over the critical angle such that the traveling light refracts out of the cable instead of reflecting within the cable. In general, this constraint only means that there should be no sharp turns on the cable, which is easy to meet. 2) Local Constraints a) Transmission Speed The timer interrupt frequency is in the MHz range, meaning that our upper bound frequency should be around this bound. However, our design only went up to 6.1 kHz. There were two reasons: First, our GPIO interrupt only support up to 52 kHz, as shown in Fig. 3. As explained before, the GPIO function was not optimized and the highest we could achieve was around the kHz range. To push the limit up, we will have to rewrite the GPIO function in the library. Second, as we approached the 10+ kHz range, the shape edges of the signal started to disappear, as shown in Fig. 3. So after we fix the GPIO function, we will need a better circuit to reduce the response time of the transistor. As explained before, we could use PNP transistors to aid in pulling up the output voltage when no current is seen at the input, or we could cascade a high-speed operational amplifier comparator to the receiving circuit. b) Steganography System’s Loading Speed Another concern would be the loading speed of images to the LCDK, since the communication between the computer and the LCDK is really slow. Thanks to Jerry’s USB program, we have significantly reduced the loading time. For instance, loading and saving an 800x1100 image would take 30 minutes originally, but now it only takes around 3 to 5 minutes. IV. RESULTS A.Intended Design Objectives To summarize our original project objectives, consider the Intended Design Block Diagram as shown in Fig. 6. Fig. 6. Intended Design Block Diagram. B.Realized Design Objectives While we were not able to complete the entire system as shown as Fig. 6, we have developed two smaller functioning systems, the Steganography System and the Communication System, as shown in Figs. 7 and 8. Our final design is described by the objectives below: 1a) Steganography Encoder First, the Steganography Encoder took in the image from a USB Thumb Drive, as well as the hidden message from a text document on the computer. LCDK #1 then calculated the number of characters of the message. If the message was too long for the image, an error message would be returned to the user. If more than 5000 characters were used, dynamic memory was allocated to store the message. A 24- bit header was created to indicate the number of characters. The header and the message was converted into bits, and encrypted by adding a hidden key that was only know by the receiver. The bits then replaced the last 4 LSB’s of the image’s pixels, until all information was encoded to the image. 1b) Steganography Decoder The Steganography Decoder took in the encoded image. It first checked the first 2 pixels (the 24-bit header) and extracted the character-count header from the last 4 LSB’s. From there, LCDK Receiver knew the length of the hidden
  • 6. 6 message. It then extracted the correct amount of bits from the image and decrypted the bits using the hidden key from the Steganography Encoder. It finally stored the received message into a text document on the computer. 2a) Convolutional Encoder In order to reduce the error rate of transmission, we decided to implement a convolutional encoding system with a code rate of 1/3. We were able to successfully implement both the Convolution Encoder and Viterbi decoder, and we uploaded our MATLAB and C files to GitHub as a reference to future EE113D students [15][16]. 2b) Communication Channel LCDK #1 acted as the transmitter of the communication channel. To indicate the start of the transmission and allow the receiver to lock onto the transmission frequency, the transmission first started by sending out a fixed length of alternating bits “101010…” by switching on and off GPIO8(12) which controls the LED laser. Then, LCDK #1 looped through the message (information bits) and transmitted it via on/off keying. The signal passed through a 10-meter long fiber-optic cable and reached the photodiode in the Darlington pair circuit, as shown in Fig. 2. Note that since GPIO8(10) on LCDK #2 was normally pulled-up, the logic was reversed: high means 0’s and low means 1’s. LCDK #2 was the receiver of the communication channel and stored the transmitted signal. 2c) Viterbi Decoder As mentioned previously, we successfully implemented a convolutional encoder as well as Viterbi decoder using the LCDK. Since our code rate was only 1/3, there is room for improvement because we are sending two bits of redundancy for every bit of information. Figures 7 and 8 describe the overall block functionality of our two independent systems. Fig. 7. Resultant Image Steganography System. Fig. 8. Resultant Communication System. While we were able to fully implement the Steganography System, our Communication System was still in the development stage. Instead of having a header indicating for the size of the transmission, the System only transmitted a fixed-size message. More work would need to be done before merging the two systems together. Synchronization issues would also occur when transmitting long strings of 0’s or 1’s (e.g. multiple consecutive white or black pixels in an image). C.Steganography Results We ran several trials using different images for our Steganography System. Fig. 9 displays the set of “Flower” images. You can barely see the corolla on the bottom side is slightly darker in the encoded image. This is not obvious unless you have the original image side by side. Fig. 9. Image “Flower.” In addition, using a set of larger images could further hide the encoding of message. Consider the image “Mona Lisa” as shown in Fig. 10. Encoding the same message is no longer visible to the naked eye. Fig. 10. Image “Mona Lisa.”
  • 7. 7 D.Transmission Results Figures 11 and 12 display how we physically connected both the transmitter and receiver circuits as shown by the circuit diagrams in Fig. 1 and Fig. 2. After properly connecting our circuits and verifying their functionality via the usage of a voltmeter and oscilloscope, we were able to successfully transmit data across our fiber-optic channel. Fig. 11. Transmitter Circuit Connected to LCDK #1. Fig. 12. Receiver Circuit hooked up to LCDK #2. Figures 13 and 14 display the output of both the transmitter and receiver circuits with a transmission rate of approximately 280 Hz. As you can see, both form very nice square waves as expected since the GPIO pin pulls the pin high for one interrupt cycle and low for the next interrupt cycle. Both circuits respond relatively well. Fig. 13. Transmitter circuit with transmission rate of 280 Hz. Fig. 14. Receiver circuit with transmission rate of 280 Hz. Next, we analyzed how both circuits respond to higher frequencies. Figures 15 and 16 display the response of both circuits for a much higher transmission rate of 6.1 kHz. Figure 10 shows that at higher frequencies, the receiving circuit has a slow response time on the rising edge. This may be due the fact that our receiver circuits relies on the LCDK’s internal 1KΩ pull-up resistor, as displayed in Fig. 2, to pull-up the voltage when it does not see current on the input of the circuit. Our receiver design only works to quickly pull down the voltage when it senses a current from the photodiode. To further improve our design, we may consider using PNP transistors to aid in pulling up the output voltage when no current is seen at the input. We could also cascade a high- speed comparator to produce a receiver output similar to a square wave.
  • 8. 8 Fig. 15. Transmitter circuit with transmission rate of 6.1 kHz. Fig. 16. Receiver circuit with transmission rate of 6.1 kHz. Obviously the most important thing for a communication system is the Bit Error Rate (BER). Consider Table I: TABLE I BIT ERROR RATE FOR TRANSMISSION AT DIFFERENT FREQUENCIES Frequency Bit Error Rate Comment 280 Hz 0.25% The last bit is wrong. 6.1 kHz 0.25% The last bit is wrong. Note that our Communication System did not transmit the information bit directly. Using the Convolutional Encoder and the Viterbi Decoder, the codewords, or so-called states were transmitted. The codewords were the same before and after the communication channel, meaning the error came from the either the Convolutional Encoder or the Viterbi Decoder. To fix this issue of flipped last bit, we would need to add an extra ‘useless’ bit to the end of the information bits before encoding so that all the information states could get processed correctly after the Viterbi decoder. E.Summary Table of Project Results TABLE II SUMMARY TABLE OF SUCCESSES AND NON-SUCCESSES Type Detail Success or Non-Success (With Explanation) Standard Operation of a photodiode Met Standard Binary Synchronous Communication (BSC) Met Standard Convolutional Encoding Met Standard Viterbi Decoding Algorithm Met System Steganography System Completed System Communication System Completed (able to communicate) System Error Correction Nearly Completed (incorrect last bit) System Maximum Transmission Speed 6.1 kHz Overall Merged all systems Not-Completed F.Accomplishments While we did not fully complete all of our design objectives, we had two major accomplishments: 1) Timer Interrupt as PWM We modified the TimerCounter StarterWare example to create GPIO interrupt that ranges from 0 Hz to 52 kHz. While 52 kHz was not significantly faster than the maximum of the original interrupt (48 kHz), the default interrupt only had several fixed frequencies and thus might not be optimal for creating specific PWM signals. This Timer Interrupt could provide a PWM at the programmer’s desired frequency up to 52 kHz, and we uploaded our modified skeleton code to GitHub as a reference to further EE113D students [17]. 2) Transmission Speed We were able to establish a transmission speed up to 6 kHz bit rate, which was faster than any previous transmission speed on a wired communication channel in EE113D. Even though this is ground-breaking, we were not at the maximum speed yet. The GPIO library could be rewritten to be more efficient, allowing the transmission speed to reach TIMER2’s limit at 150MHz. G.Possible Improvements For any product, there are always improvements available. We have summarized the possible improvements for this project as below: 1) Use a Better Transmission Scheme As explained before, our transmission scheme has synchronization issue for a long stream of 1’s or 0’s. We should use a something similar to Morse code, for example, a dot means 1’s and dash means 0’s. This might have further slowed down the transmission speed, but this would allow an error-free communication.
  • 9. 9 2) Rewrite the GPIO Interrupt Function By reducing the clock cycle needed for the GPIO interrupt, we might be able to increase the transmission speed up to the MHz range. Combining this with the above mentioned improvements, we could create a higher-speed error-free communication system. 3) Merge the two Systems Together Once we create an error-free communication system, we can merge the Steganography System and Communication System together. 4) Miscellaneous Obviously, there are also some smaller improvements we should investigate. We could add a ‘faster-reaction’ transmitting circuit and/or append one ‘useless’ bit to the end of the information bits to improve our system’s accuracy. Such improvements are not as significant as the previous three improvements mentioned. V.ACKNOWLEDGEMENT The authors thank Dr. Briggs for providing support with developing circuit implementations for the transmission system. The authors also thank Che-I Lien for assisting with setting up timerCounter.c code as well as providing code to load image files via USB. Finally, the authors would like to thank members of the TI E2E Community for providing support via answering some of our forum posts. REFERENCES [1] K. Korhorn, “Steganography Uses and Effects on Society,” University of Illinois, Champaign, IL, 2002. [2] N. F. Johnson. (1995, Nov.), Steganography. George Mason University, VA. [Online]. Available: http://www.jjtc.com/stegdoc/sec101.html [3] Various Authors. (2008), American History: 60d. Living in the Information Age. Independence Hall Association, PA. [Online]. Available: http://www.ushistory.org/us/60d.asp [4] W. Way. (2015, May), PAM-4: A Key Solution for Next-Generation Short-Haul Optical Fiber Links. [Online]. Available: http://blog.neophotonics.com/pam-4-a-key-solution-for-next-generation- short-haul-optical-fiber-links/ [5] E. Liu. (2004, Nov.). Convolutional Convolutional Coding & Coding & Viterbi Viterbi Algorithm. Helsinki University of Technology, Finland. [Online]. Available: http://www.comlab.hut.fi/opetus/333/2004_2005_ slides/Convolutional_Coding_Viterbi_Algorithm.pdf [6] (1999). Performing Viterbi Algorithm. Spectrum Applications. [Online]. Available: http://home.netcom.com/~chip.f/viterbi/algrthms2.html [7] (1999) Photodiode/Phototransistor Application Circuit. Sharp Corporation. Reference Code: SMA99017. [Online]. Available: http://denethor.wlu.ca/pc300/projects/sensors/photdiod.pdf [8] (1967). General Information – Binary Synchronous Communications. IBM Systems Development Division, NC. [Online]. Available: http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/datacomm/A27- 3004-0_bisyncGenDescr.pdf [9] (2015, May). OMAPL138 LCD Kit (Schematics, BOM , Layout, and Gerber Files) v.A7a. Texas Instruments, TX. [Online]. Available: http://www.ti.com/tool/tmdslcdk138#Technical%20Documents [10] C. Lim. (2015, Mar.). UCLA EE113DB RC Car Ball Avoidance. [Online]. Available: http://www.youtube.com/watch?v=b3-WVb9qBJY [11] Face Detection Demonstration. Texas Instruments, TX. [Online]. Available: http://processors.wiki.ti.com/index.php/L138/C6748_Development_Kit_ (LCDK)#Face_Detection_Demonstartion [12] (2016, Feb.). TI E2E Forum: OMAP L138 LCDK GPIO. Texas Instruments, TX. [Online]. Available: http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/4880 72 [13] (2016, Feb.). TI E2E Forum: Rapidly poll GPIO Input. Texas Instruments, TX. [Online]. Available: https://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/4884 81 [14] (2016, Feb.). TI E2E Forum: OMAP-L138 GPIO Interrupt. Texas Instruments, TX. [Online]. Available: https://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/4891 44 [15] S. Moran. (2015, May). Convolutional Encoding & Viterbi Decoder. MATLAB. [Online]. Available: http://github.com/smoran1/matlab- scripts/tree/master/convolutional-encoding. [16] S. Moran & C. Yu. (2016, Mar.). Convolutional Encoder & Viterbi Decoder in C. [Online]. Available: https://github.com/smoran1/EE113DB-Design- Project/blob/master/convolution_viterbi.c [17] S. Moran & C. Yu. (2016, Mar.). Transmit Timer example code in C. [Online]. Available: https://github.com/smoran1/EE113DB-Design- Project/blob/master/transmit_timer.c [18] (2012, Mar.). StarterWare-OMAPL138. Texas Instruments, TX. [Online]. Available: http://software- dl.ti.com/dsps/dsps_public_sw/c6000/starterware/01_10/index_FDS.htm l Steven Moran (BS’16) was born in San Jose, CA and attended University of California, Los Angeles (UCLA) from 2012 to 2016. He studied electrical engineering, focusing in integrated circuits and ultimately earned his Bachelor’s degree in spring of 2016. He will be attending the UCLA Graduate School of Engineering beginning in fall of 2016 with a Departmental Fellowship, working towards both a Master’s degree and Ph.D in Circuits and Embedded Systems. Beginning fall of 2016, he will be working as a Research Assistant in the UCLA Center for Heterogeneous Integration and Performance Scaling (CHIPS). Cheuk Yu (BS’16) was born in Hong Kong in 1993. He attended University of California, Los Angeles (UCLA) from 2012 to 2016. He will be graduating with a Bachelor’s degree in electrical engineering in fall of 2016, focusing in integrated circuits and signal processing. From 2014, he has been a Student Researcher of the Electron Losses and Fields Investigation (ELFIN) under the Earth, Planetary, and Space Sciences department (EPSS) at UCLA. His role includes printed-circuit board design and testing. The group is building UCLA’s first fully-built satellite to study space weather, and it is expected to be launched in 2017.