Columbia Courseworks (Discussion Board)
Matlab diaries and Pd patches
The following scripts and functions relate to the demonstrations I give
in class. They are all contained in the matlab
subdirectories of the web site.
Note: The matlab functions defined in the textbook can be downloaded from
Digital Signal Processing textbook website.
More information about PureData/Pd (including free downloads) can be found at
- 2013-09-04: Timescale modification, exponential sequences, 3D visualization of complex numbers.
Also: whiten, the signal whitening and filter estimation routine, solafs the timescale modification program, and stemz, the function to plot complex sequences in 3-D.
- 2013-09-11: The Pd demos that illustrate a DT system "running" are MA.pd (for the moving average) and Accum.pd for the accumulator. These simulations rely on ncounter.pd (to manage the incrementing counter for n), Z-1.pd (the one-step delay), and summer.pd (the summation node). I had to pull some odd tricks to make this work the way I wanted to, but you might find the implementations helpful.
- 2013-09-16: Running a system; convolution; using a recorded impulse response to simulate reverberation (sound examples are in the matlab directory).
- 2013-09-18: The Pd demo of the output of resonances was modes.pd, which used the tone generator of funcgen~.pd (which also needs audiosel~.pd).
- 2013-09-18: Solving difference equations algorithmically; cross-correlation visualization (here is corrviz.m).
- 2013-09-23: buildsq.m: Animation to show square wave being built up out of successive terms of Fourier series. Try "buildsq(10)" to start; larger arguments make the fade-in slower.
- 2013-09-25: Convolution in the DTFT domain.
- 2013-10-02: See the example of Evaluating the Z transform numerically that compares a literal evaluation of the Z transform definition with the results of the closed-form expression, highlighting the role of the region of convergence.
- 2013-10-07: Visualization of the z-transform-magnitude surface.
- 2013-10-09: Illustrating how the effect of a given system on a mixture of two sinusoids is predicted by the frequency response.
- 2013-10-14: Here's an excellent interactive pole-zero editor from Jim McClellan at Georgia Tech. You can drag poles and zeros around the z-plane, and immediately see how the magnitude and phase response, as well as the impulse response, change. Here's a local copy of the documentation.
- 2013-10-14: Here's the script I used to generate movies illustrating the geometric interpretation of pole-zero diagrams (relies on Malcolm Slaney's MakeQTMovie.m), and here's the phasegroupdelay function to visualize the difference between delaying the envelope (group delay) and delaying the carrier (phase delay)
- 2013-10-14: Hand-designed filter to remove 0.4 rad/samp sinusoid while preserving 0.1 rad/samp sine.
- 2013-10-16: Simple bandpass filter example.
- 2013-10-30: Allpass filters and the sound of group delay. (Here is vizZTsurf.m, based on the ZT surface visualization above.)
- 2013-11-11: Analog Butterworth filter design.
Animation to illustrate Gibbs phenomenon which uses convanim.m. The resulting movie is
FIR filter design by windowing ideal IR.
- 2013-11-25: Animation to illustrate the Remez exchange algorithm which uses remezviz2, lagrangepoly, shiftpoly, and chebpolyval.
- 2013-11-27: FFT and STFT examples (the interactive spectrogram uses funcslider.m, the denoising uses stft.m and istft.m).
- 2013-12-04: Aliasing and resampling.
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.
Last updated: Wed Dec 04 09:34:48 AM EST 2013