Stevens
REU 2007
Jacob Alperin-Sheriff
Week 1
- 5/20/2007: Drove to Stevens. Arrived at the Stevens Institute of Technology, rooming in
Jonas/Technology Hall. Met roommate John Lee.
- 5/21/2007: First meeting with Professor Yao, met other
students participating in the REU. Department Chair Tewksbury gives
an inspirational and thought-provoking speech reminding us how far
technology has come in recent times, and how cellphones have so much stuff
on them and that thanks to them, people can track you. Initial discussion
of projects, the signal radio and the prostate cancer (I'm in the signal
radio group), but I don't get to discuss my project. Lunch at Karma,
hung out for a little while with other REU students, wandered around
Hoboken. Also worked more on my factorization algorithm; the curve created
by successive applications of pvals(a,n,k) is logarithmic and may be used
to find factors more quickly
Note: pvals(a,n,k) finds
values of p (where pq=n) based on the knowledge that
p2+(-1-k-lg(k)+(a-n)/k))p
+ n > 0
- 5/22/2007: Met with Professor Yao to discuss my project.
It looks like I will be writing a software backend for a wireless signal
radio network.
- 5/23/2007: Read through the Flex-Radio code
- 5/24/2007: Continued reading through the Flex-Radio code.
Looked up Chebyshev approximations;
Chebyshev approximations:
A Chebyshev polynomial Tn(z) of the
first kind is defined as the following contour integral enclosing the origin,
traversed
counterclockwise:

Using these polynomials, define
cj = 
cj = 
Then

This formula gives a very close approximation
to the minimax polynomial, which is important for the purposes of
modulation/demodulation.
- 5/25/07-Pizza party; further discussed the
Software-defined radio with Professor Yao. Began reading articles
describing the basic layout of the SDR software.
Week 2
Learned
that my project would involve adapting the Software Defined Radio to support dynamic
communication. The goal is to have it change frequencies if the current
frequency is noisy, that is, already occupied by someone else. Currently,
this is not done automatically, but hopefully at the end of these 10 weeks Ill
be able to get it to do so. I fixed the given source code a little so that it
compiles and runs. The bugs present are likely not really serious bugs, per se,
but just situations that arise when the radio hardware isnt working correctly
with the software.
I
also continued going through and commenting the given code provided by
Flex-Radio. I believe I have found the variable that controls the data-rate.
However, Ill need to actually get the radio integrated with the software to be
sure.
Background
Reading:
Modern
Digital Signal Processing by Roberto Cristi
Software
Radio by Jeffrey Reed
Goals for Week 3
-Continue
reading through and commenting the given code
-Get
the radio to work with software so I can actually see what is really going on
-Do
some testing with the radio to better understand the code
-Continue
with the background reading
-Read
up on noisy channel conditions
-Use the radio to get a feel
for what noisy channel conditions are like
Week 3
- Finally got the radio
hardware to work with the software to receive signals. Although I could not get
it to actually transmit radio stations like it was supposed to, it was getting
significantly stronger signals at the correct frequencies, that is, the
frequencies that the radio stations actually transmit at were showing much higher
amplitudes.
- Began reading up on
methods of converting digital data to an analog signal with algorithms instead
of with electronic digital-to-analog converters.
Frequency Shift Keying
I decided
to use frequency shift keying to transmit the data, as that was the method used
by Nishant Kumar
, a
very grammatically challenged former masters student at Stevens, in his
modification to the Software Defined Radio several years ago. Although it was
tough to figure out what he was saying from his awful grammar and lack of
detail, I picked up enough to Wikipedia it.
The
way it works is that the frequency changes to signify a 1, and stays the same
to signify a 0

- Read up on other
algorithms converting digital data to analog signals for transmission purposes.
- Implement a
stand-alone test program for frequency shift keying and its variations and
possibly for some other DAC algorithms.
- Begin implementing
this algorithm into the Software Defined Radio
- I finally got the sound to work on the Software Defined
Radio. This allowed me to actually listen to various radio stations and
see how the words/music translated into sounds.
- I also obtained a microphone and was able to better
determine what would give a nice-looking signal with little distortion
that I could then modulate to send data over as seen above.
- It unsurprisingly turns out that a simple tone is what
the best signal would be. This tone can be raised/lowered small amounts to
encode data.
- As part of my being able to modify the signal, I
finally began modifying the program to accomplish things. My first
modification to the program involved adding a button to the
software-defined radio (labeled Jacob). When pressed, the intensity of the
signal is lowered by a random amount, different for each period.
Before

After

- I also tried to transmit from one computer to the other.
However, for some reason DC power from an adapter is different than DC
power from one of those special power things (which, if were an electrical
engineer, I'm sure Id know the name of; in that case, it would probably
also make my project much, much easier to do.
- Modify the software-defined data to encode data to be
transmitted by modulating a tone.
- Continue reading up on new methods of encoding data in
a signal.
Week 5
This week I began programming the
software defined radio to detect noisy channel conditions. The basis of the
detection algorithm is standard deviation. I was hoping that if
the channel deviates more than a certain number of standard deviations (2.5
seems to be good), then that tells us that the channel is noisy. It works
pretty well in most cases. However, if theres only a gentle curve up from the
signal, it doesnt detect that the channel is noisy even though it seems to be.
The checking for the noisy channel is done on the average signal after a few
seconds, to minimize the distortions which inevitably occur in radio signals. Below are some pictures of the signal
and the detections.