Dave's Lecture Demos
Over the past few years I've built up a collection of little VB demo
programs that I use in lectures. Due to popular demand, I've
now
made these available on this web-site for people to download and play
around with.
Please bear in mind that all of these programs are Work
In Progress.
They're not structured very well, they've evolved rather than been
planned, and there are a few problems with them. If you think
you've found a
bug,
or have an idea for a new feature, please let me know, and I'll add it
to the list here: Known Bugs and Ideas
(also, please check here first to make sure your bug is not already
known.)
Please note - these programs are not in the public domain.
They
are available only for use by my students, or anyone else I've given
permission to use them. If
anyone from outside York has come across this website, found these
programs and would like to use them, then please get in touch with me
at
dajp1@ohm.york.ac.uk and ask.
The answer will almost certainly be yes as long as you don't
want to use
them commercially.
If
you want to know how something works in a program, or find a bug,
please let me know and I'll try to help. Due to shortage of
time
and resources, I can't guarantee to respond, but I will try.
Most of these programs will also time-out in a few months, and refuse
to run. This is my way of making sure that everyone has an
up-to-date copy, so I get a chance to find out about, and fix the bugs.
If you find one that tells you it's timed out (or about to
time out) when you try
and
run it, please let me know and I'll update it. (Perhaps you
could add some ideas for other demos
and comments in the email?)
Dave's Analogue
Modulation Demo Simple
little demo
to show the waveforms and spectra of a range
of common analogue
modulation schemes: AM, FM and PM. Not used much these days
as
most of this course is now concerned with digital modulation schemes.
(Click screenshot for a larger version.) There's
also an even simpler one (Dave's
Other Analogue Modulation Demo) that does real-time
modulation of user defined
inputs (see right).
Dave's
Baseband
Modulation Demo This
is the most complex one here and there are still a few things
I'm
not happy with (in particular the energy per symbol is not constant
between the modulation schemes, so it can't be used to estimate bit
error rates as a function of Es/N0), however
I think it's stable enough now to release. (Click
screenshot for a larger version.)
Dave's
Bridging Demo Illustrates a
simplified version of the spanning-tree protocol to eliminate loops in
bridged networks. (Click
screenshot for a larger version.)
Dave's
Channel Demo
Another one in an early stage of development. Illustrates the
effect
of reflections in wireless/copper communications channels, allowing any
channel to be set up, plotting the eye diagrams and spectrum responses
and calculating the delay spread and coherence bandwidths.
Dave's
Complex Numbers Demo
Probably the simplest one here. Demonstrates complex numbers,
the
Argand diagram, Euler's result, and how to make real oscillations by
combining two complex oscillators.
Dave's CRC Demo
Demonstrates how cyclic redundancy checks are calculated in hardware,
showing the flip-flops and XOR gates that do the long division as the
bits arrive.
Dave's Dice Demo This
one's here as a
.zip file,
since
you'll need all the pictures of dice as well as the program.
This one was written to help teach basic statistics, and illustrates
the difference between mean, median and mode, the theorems
about the addition of random variables, and the central limit theorem.
It also has the distinction of being the first one I wrote.
Dave's
Doppler Demo This is another one in a very
early stage
of development, and the use is not very intuitive. You need
to right-click on the
sources (square buttons) to move them, and left click on them to turn
them on. The top graph is the individual contributions from
each
component, the centre graph is the sum, and the bottom graph is the
Doppler spectrum, which doesn't work very well yet.
Dave's
Error Detection Demo
Illustrates the
effectiveness of parity, checksums and cyclic redundancy check
approaches to detecting bit errors in packets. Note that the
"Internet" setting doesn't implement the full 16-bit version of the
standard Internet checksum, but only an 8-bit version calculated the
same way. It's easier to see on the screen what's happening
that
way.
Dave's
Flow Control Demo
Illustrates
stop-and-wait and sliding window flow control, as well as go-back-N and
selective repeat error control schemes. This is one
with
several known bugs - but due to several requests I'm putting it up here
anyway. If it does something strange, please don't get
confused -
send me an email and ask. It's possible that it's the
program
that's getting things wrong. Also see Dave's Windows Demo,
which
does a similar job (although without the router and the time-traces)
but in a possibly less-confusing way.
Dave's
IP Quiz Demo Provides practice with working with
IPv4 addresses and bit masks by asking a series of randomly-generated
questions.
Dave's
Layers Demo
Demonstrates
the ideas of layered
networks, headers, connections and reliable protocols. Note
that
sometimes the time-out period is set too short, so re-transmissions
happen when the packet has not been lost, but that happens in
real life anyway, so maybe that's not a bug.
Dave's
Multiple Access DemoIllustrates
ring, star and bus topology networks running ALOHA, CSMA,
CSMA/CD, CSMA/CA, Token Passing and Polling multiple access schemes.
There are a few known bugs in this one, mostly to do with the
calculation of the utilisation and efficiency; also any node waiting
for the channel to become available in a reliable CSMA
protocol
doesn't wait for the ACK to go past before starting to transmit, which
is a bit stupid really. Use with care (and
please let me know if you find it doing something odd).
Dave's
Markov Chain Demo Simple little application that animates the
Markov chains that I talk about in the lectures.
Dave's
Passband Modulation Demo This
one doesn't receive (yet), it just does the transmitter. Not
finished, but I think it gets most things right, and might help to
illustrate how to generate FSK and MSK. Try putting it into
"Modulation" mode, then pressing "Pause", then grab and drag the blue
circle that appears.
Next up for this one is the inclusion of the OFDM modes.
There's
a first stab at this in here now... it's not quite working yet, but
should be ready for next year.
Dave's
Propagation Demo So far,
this one demonstrates the difference between phase and group velocity,
how to make circular polarisation from two linear
polarisations, attenuation of waves, and Rayleigh and Ricean
fading (though the latter two require a bit of refinement).
My long term aim is to get it to do
reflection
and refraction as well - but that'll have to wait for now.
Dave's
Queueing Demo
Demonstrates
the operation of a series of simple queue types, from simple M/M/1
queues to more advanced multiple-server queues with
non-Poisson arrival and service times. Also useful
for
illustrating the Erlang distributions.
Dave's
Refraction Demo
Finally something I
can use to demonstrate the idea of the 4/3 Earth Radius, and why it's
useful, and how to do problems with obstacles. Please note
(as it
says) the diagram is not to scale - it's impossible to make a
sensible diagram in which the antennas are big enough to be visible on
the same scale as you can see the Earth's curvature.
Dave's
Routeing Demo
This one probably won't make much sense unless you've seen it in the
lecture. However, if you want to play around with the
Bellman-Ford algorithm once you've learned about it, this should do the
trick. Click on a network to select the source of packets,
then
on a second one to select the destination and send the packet.
Alternatively, click on a source router then a destination
router
to send a routeing update packet.
Dave's
Superhet Demo
Another
one at an early stage, and still a few bugs here. The
amplitudes
are calculated on the basis of a 50-ohm transmission line.
The
little checkboxes in the top-right of the signal displays disable the
automatic vertical scale feature - useful if noise is causing the
scales to change frequently.
Dave's
Switching Demo Simple
little demo to demonstrate the
difference between message, circuit and packet
switching, and in what
circumstances each gives the best
performance.
Dave's
Sudoku Solver
What's this
got to do with
communications lecturing you might ask? Nothing at
all.
It's just that I got fascinated by these things, and I wanted something
that could show me how to solve them. This program tells you
what
it's
doing every stage of the way. It's not very good yet - there
are
a lot of techniques it doesn't know about, and it has to guess more
often than it should. But it will solve any puzzle you throw
at
it if you press the "Auto" button.
Dave's
Windows Demo
Sliding windows, the slow-start protocol, fast retransmit and fast
recovery, delayed acknowledgements and selective acknowledgements, and
how they all work together. Well, that was the idea.
This
is unique in that this one was put up here before I'd ever used
it in a lecture. I've tried
to
follow RFC 2581 where appropriate.
Hope you find them useful, and if you think you've found a
bug, please let me
know.
Thanks.