ECE 431 Digital Signal Processing, Lec. 1, Fall 2007
Last Modified: Tue 15 Oct 2019, 01:45 PM, CDT
Instructor Office Hours: Click here.
TA:
Badri Narayan Bhaskar
Office hours: Tues. 10:30 am -12:30 pm & Thurs. 3 pm - 5 pm
in B632 EH.
Discussion: W 5-6:30 in 2540 EH
Syllabus
Complete Course Notes
D. Slepian,
``On
bandwidth,''
Proc. IEEE, vol. 64, no. 3, pp. 292-300, Mar. 1976. (774 kB)
J. H. McClellan and
T. W. Parks,
``A
personal history of the Parks-McClellan algorithm,''
IEEE Signal Process. Mag., vol. 22, no. 2,
pp. 82-86, Mar. 2005. (575 kB)
Homework Solutions: Look for Course Reserves under the Academic
tab in My UW.
Transform Tables (updated Dec. 20, 2007)
Class Schedule for Fall 2007
9/5 Wednesday. Discussed course structure (click on "Syllabus"
above). HW will be collected on Fridays (none assigned yet).
Discussed reasons for "going digital", e.g., allows compression
and error correction. Covered p. 1 of Chapter 1 of course notes.
Also ad-libbed about the Vandermonde matrix and Lagrange interpolation
(that is, the l_i(t)).
9/7 Covered Section 1.2 of Ch 1: Review of Fourier series, the DTFT, and
the continuous-time Fourier transform.
Assigned HW#1 Ch 1: 2, 3, 4, 7, 8, 9, 14 DUE FRI 9/14.
Matlab files for Problem 8: probCh1_8script.m, probCh1_8X.m.
9/10 Stated Parseval's theorem for continuous-time Fourier transforms.
Stated and derived the Poisson Summation Formula. Drew several
graphs to illustrate how sampling the time function corresponds
to adding up shifts of the corresponding Fourier transform.
9/12 Restated the Poisson Summation Formula. Stated and derived the
Sampling Theorem, introducing the terms cutoff frequency
and Nyquist rate. Derived the sinc reconstruction formula and
discussed aliasing. Considered the special case fs=2fc.
9/14 Discussed filtering interpretation of sinc reconstruction
(impulse sampling) and generalized to ordinary pulses p(t)and
the zero-order hold in particular. Ran Matlab demos of sampling
theorem reconstruction and the zero-order hold.
Assigned HW#2 Ch 1: 6, 13, 15 and Ch 2: 1, 2, 3, 4 DUE FRI 9/21.
9/17 Covered Section 1.5 on Bandlimited Waveforms and Systems. Covered
Intro. of Ch. 2. Covered definition of DFT and formula for IDFT.
Covered Section 2.1.2 Computation of the DFT in Matlab using fft
and fftshift. Also talked a bit about avoiding loops in Matlab via
products of column and row vectors; discussed the use of repmat.
Added extra problem to HW#2.
9/19 Discussed Sections 2.1.1 Summing a Periodic Sequence over a Period.
2.1.3 Evaluation of Fourier-Series Coefficients. 2.1.4 The Geometric
Series (including limiting case as N -> infinity). 2.1.5 Derivation of
the IDFT. Started 2.2 Circular Convolution.
9/21 Finished Sections 2.2, 2.2.1, 2.3 Linear Convolution Using Circular
Convolution, 2.4 Application to Inputs of Unspecified Length.
Assigned HW#3 handout DUE FRI 9/28.
9/24 Ran Matlab demo showing that you should pre-allocate arrays and
avoid loops in Matlab. Showed that the Matlab function conv is
slower than doing convolution by circular convolution of zero-padded
sequences via FFTs. Showed that when evaluating the convolution
of a finite sequence with an infinite sequence, if only finitely
many outputs are needed, the the problem can be reduced to the
convolution of two finite sequences.
Lecture Notes for 9/24, Matlab script in Lecture Notes.
9/26 Section 2.5 Windowing Techniques. Ran demo wXscript. Talked about
different windows' strengths and weaknesses. Derived the mainlobe
and sidelobe widths and sidelobe level of the rectangular window.
9/28 Ran demo on effect of smoothing. Ran demo on the overlap-add method
of convolving one block at a time. Discussed Bartlett window. Started
Hann window.
Assigned HW#4 Ch 2: 5, 6, 8 DUE FRI 10/5.
10/1 Discussed zero-padding and the computation of the DTFT using
the FFT. See notes here. Notes also list and discuss my Matlab
functions dtft and dtftfft (click on function names to download
M-files). Discussed motivation behind the Hann window.
Here are two Matlab demos that show how to approximate the
continuous-time Fourier transform using the FFT:
For x(t)=cos(2*pi*10*t) use ftfftcos.m, and
for x(t)=exp(-abs(t)) use ftfftexpabs.m.
10/3 Discussed the use of the finite-sum DTFT to approximate the
continuous-time Fourier transform of exp(j*2*pi*f_0*t).
Finished discussion of window techniques. Started discussion
of z transform.
10/5 Stated an Exam Review problem. Talked more about the ROC as
being part of the z transform. Derived a simple inverse z transform
formula. See latest notes.
See also Exam 1 Summary & Review Questions. Solutions.
10/8 Covered z-transform properties: linearity, delay/advance, convolution.
Started Discrete-Time Systems: Linearity, Time Invariance. Worked
Examples 5.4 and 5.5. Showed that every discrete-time LTI system
can be represented by convolution.
10/10 Answered questions.
10/12 Exam 1 -- in class.
Assigned HW#5 See back of exam. DUE FRI 10/19.
10/15 Went over Exam 1. Defined bounded sequence and BIBO stability.
10/17 Showed that an LTI system is BIBO stable if and only if its impulse
response is absolutely summable. Showed that an LTI system is causal
if and only if its impulse response is zero for negative time.
Started discussion of transfer functions H(z). Show that an LTI
system is stable if and only if the ROC of its transfer function
contains the unit circle.
10/19 Showed that the z transform of a causal waveform has a region
of convergence that contains the exterior of a circle. Gave
an example of a waveform whose region of convergence is the empty
set. Started discussion of difference equations. Showed that
without sufficient assumptions, a difference equation can have
multiple solutions.
Assigned HW#6 Ch 6: 1, 2, 3, 4, 5, 6, 7, 8 DUE FRI 10/26.
10/22 From now on, difference equations are understood to model causal
systems. This means that when a causal input is applied, the
initial conditions are set to zero. A special case of a causal
input is the unit impulse. Showed that if a general input is
convolved with the impulse response, the result satisfies the
difference equation. To compute solutions in Matlab, use the
filter function. When taking z transforms of difference equations
to find the transfer function, the transfer function will be
B(z)/A(z) and the region of convergence will contain |z|>R0
where R0 is the maximum of the absolute values of the roots of A(z).
10/24 Discussed the bilinear transformation for converting a rational
Laplace transform into a rational z transform. Went over some
basic properties of Laplace transforms of real-valued impulse
responses.
Assigned HW#7 Ch 7: 2, 3, 5, 6 DUE FRI 11/2.
10/26 Introduced Butterworth filters.
10/29 Discussed how to evaluate H(exp(j*2*pi*f)) in Matlab with polyval
and fliplr when H(z)=B(z)/A(z) is a quotient of polynomials in z.
Also showed how to get coefficient vectors a and b from roots of
A(z) and B(z) using poly. Discussed script at end of Section 7.3.
Here is the script: butterworthscript.m
10/31 Discussed example of filtering the 5-harmonic approximation of a square
wave to eliminate the 3rd and 5th harmonics. Method 1: Use infinite-
duration continuous-time data and an ideal continuous-time LPF.
Method 2: Use infinite-duration signal sampled at faster than the
Nyquist rate and apply an ideal discrete-time LPF to infinitely many
samples. Method 3: Use only finitely many samples and apply to
an IIR filter described by a difference equation. Filter designed
by transforming a continuous-time Butterworth filter using the
bilinear transform. Started discussing the Chebyshev Type-I filter.
11/2 Covered the design of Chebyshev-I filters.
Assigned HW#8 Ch 7: 7, 8, 9, AND ...
Generate the square wave signal with harmonics up to 5 (you may use
your earlier HW script for this) on the time inverval [0,10].
Using only lowpass filters (you may need more than one) obtained by
modifying the Matlab script butterworthscript.m, process samples of
the square wave to remove all harmonics except the 3rd. TURN IN:
Use subplot to provide the true 3rd harmonic (top plot) and your
output waveform (bottom plot). Explain how you use your different
lowpass filters. Write out the parameters fp, Ap, fs, As for each
filter you use. DUE FRI 11/2.
11/5 Covered Chebyshev-II filters. Covered partial fraction expansion of
z transforms.
11/7 Introduced Generalized Linear Phase.
11/9 More on Generalized Linear Phase. Suggested Exam 2 Review problems.
11/12 Answered questions about earlier material and the Review questions.
11/14 Answered questions.
11/16 Exam 2 -- in class.
Assigned HW#9 on partial fractions/filtering (download) DUE FRI 11/30.
11/19 Ran Matlab demo of filter types to demonstrate symmetry.
Worked differentiator example and ran Matlab demo.
11/21 Returned and went over Exam 2. Pointed out that since a differentiator
is a kind of high-pass filter, a type-III FIR filter is not appropriate.
Also recalled that a finite Fourier series is always continuous,
even if it is converging to a function with a jump discontinuity.
Showed that differentiating an FM signal yields essentially a
DSB-LC AM signal that can be demodulated with an envelope detector.
Ran demo of low-pass filtering y(t)=x(t)cos(2*pi*f0*t), where
x(t)=m(t)cos(2*pi*f0*t).
11/23 THANKSGIVING RECESS -- NO CLASS
11/26 Introduced the continuous-time Hilbert transforms and showed that
form bandlimited signals, the transform can be generated using
discrete-time signal processing. For practical GLP implementation,
use a type-IV filter. Also showed how the Hilbert transform is
used to produce single-sideband signals for communication systems.
11/28 Introduced the Parks-McClellan Algorithm (see reference at top of
this web page). The idea is to write the filter approximation
problem as a polynomial approximation problem and then apply
the Remez (or Remes) Exchange Algorithm. Explained a bit about
the uniform polynomial approximation problem.
11/30 Finished explanation of uniform polynomial approximation. Began
discussion of how quantizing the coefficients of a difference
equation affects the positions of the poles of the corresponding
z transform.
Assigned HW#10 Problems 14, 15, 18, 19 from the 12/1/07 version
of Chapter 8. Also turn in multiband filter design problem (see my
e-mail of 12/1/07). To get started, you may modify the Matlab script
multibandscript.m and use the function plotfilterspecs.m DUE FRI 12/07.
12/3 Discussed HW #10, ran multibandDemo.m to explain how to specify
band edges, amplitudes, and attenuations. Ran demo illustrating
how pole positions change with quantization of difference equation
coefficients. Introduced block diagrams and provided an alternative
realization that allows for direct control of poles for second-order
filters.
12/5 Finished alternative realization for 2nd-order filters. Introduced
cascade and parallel realizations for N-th order filters using
first and second-order subsystems. Ran demo of z-transform poles
of a butterworth filter before and after quantization of its difference
equation coefficients. Distributed teaching evaluations.
12/7 Worked several examples of determining the transfer function from a
block diagram. Introduced the direct form I realization. Distributed
TA teaching evaluations.
Assigned HW#11 (download 1-page pdf file) DUE FRI 12/14.
12/10 Introduced the direct form II realization. Showed how to find the
transpose of a realization. Started discussion of decimation,
interpolation, and sampling rate conversion. See Wikipedia description
of decimation in the Roman army.
12/12 Covered upsampling and interpolation. Covered most of downsampling and
decimation.
12/14 Finished decimation. Covered sampling rate conversion.
12/21 FRIDAY 2:45-4:45 pm FINAL EXAM in 2535 EH
Web Page Contact: John (dot) Gubner (at) wisc (dot) edu