For today you should:
1) Read Chapter 1 of Think DSP on NB, make comments, ask and answer questions.
2) Sign up for the class mailing list.
Today:
1) Intro
2) Signals, Waves, and Spectrums
3) The thinkdsp module
For next time:
1) Work on exercises from Chapter 1.
2) Get your software environment squared away (see below).
This class is an experiment with two goals:
1) It is part of the Think X project; the premise is that if you know how to program you can use that skill to learn everything else. Example: representing entities like signals as objects requires you to think about representations and operations. Example: working with libraries gives you the option of learning "top down"; that is, learn how to use the library before you know how it works.
2) We are also planning a major revision of Signals and Systems for next semester. Oscar, Siddhartan and I will co-teach. I will teach the first 4-5 weeks using some of the material we develop this semester.
Compared to Computational Bayesian Statistics, this class is at an earlier stage of the pipeline.
Pro: We will have fun, learn a lot, and you have a chance to contribute to something new.
Con: You will need to be more fault-tolerant and more adventurous.
How many of you:
1) Have taken SigSys? Are planning to take it in the spring?
2) Have taken DSP? Are planning to take it in the spring?
3) Know what the FFT (or DFT) algorithm does?
4) Have seen a frequency spectrum; that is, a plot of amplitude versus frequency?
5) Have seen a spectrogram?
Chap 1: Signals and Spectrums
Chap 2: Harmonics and aliasing
Chap 3: Non-periodic signals, spectrograms
Chap 4: Noise
Chap 5: ???
Chap 6: Discrete cosine transform and compression
Chap 7: FFT?
Chap 8: Autocorrelation?
Chap 9: Convolution?
Chap 10: Image processing?
The chapters with question marks have not been written yet! Some of them might have been written by the time we get there, but we will also have the option to work with other resources.
Compared to CompBayes, you will have a chance to take on a more substantial case study. One of the options for the case study will be to help me write the missing chapters.
More about resources and case study ideas next time.
1) I recommend that you work in Linux. If you do, it is more likely I can help you if you run into trouble. If you choose not to, you are swimming at your own risk (although there are likely to be other people who can help you).
2) I recommend using Python 2, although I am in the process of making all code for Think DSP work with Python 3. So if you want to use Python 3, you can help me with that process.
3) You will need NumPy, SciPy and some other packages. If you are not already using Anaconda, which is a Python distribution that provides these packages and many more, I recommend it.
4) The GitHub repository for this class is https://github.com/AllenDowney/ThinkDSP. You should fork it on GitHub and then clone it to your hard drive. If you are not familiar with Git and GitHub, you should work through my Git tutorial.
For next time, try to get set up so you can run the programs in the repo. For today, let's work in pairs.
We'll work through the examples in chap01.ipynb.
1) Experiment with low_pass, high_pass, and band_stop, and listen to the effect they have.
2) Use one of the other wav files in the repo, or download a new one from http://www.freesound.org (or something similar).
Extract a 0.5-2 second segment with constant frequency. Compute the spectrum. Remove some of the harmonics, invert the transform and play the wave.
3) Start working on Exercise 1.8: Simulating the effect of underwater sound transmission.
Weekly documentation of how you spent your time and what you have to show for it.
1) Reading: What did you read? Include assigned reading and additional resources that you found, or that I recommended. Write a brief commentary, which usually includes a summative description and a response.
Example: I was interested in practicing more Bayes's Theorem problems, so I read Downey's blog post, "All your Bayes are belong to us." It includes several interesting problems and solutions. I was able to solve most of the problems, and used the solutions to check my answers. I would recommend this article to other students in this class. It is bold and refreshing, and it includes references to a meme that was popular before I was born.
2) Exercises: Which exercises did you do? Write up your solution in whatever format is appropriate. Make it readable. For example, if it's useful to include code snippets with explanatory text, great. But don't paste in pages of code, or jam it all into an appendix.
3) Case study: What work did you do on your case study? Early on, this might overlap with the reading section. Later you should be reporting concrete progress.
4) Reflection: What are you learning? What connections can you make between the material in this class and other things you know, or are studying? What are your learning goals for the class, and are you on track to meet them?
You can use almost any format you like. A blog might be appropriate. But for my convenience and sanity, please turn in a hard copy.
And be on time. If you don't have much to say in a particular week, write that down and turn it in. We can deal with that. And if you really need to skip one, we can talk. But do not get in the habit of putting it off until you have something finished to talk about. It's a progress report, not a final report!
Coming soon.