# EE445S Real-Time Digital Signal Processing Laboratory - Midterm #2

Prof. Brian L. Evans

Midterm #2 will be an open book, open notes exam scheduled to last the entire period. About 70% of Midterm #2 will come from lecture, and the remainder will come from lab. The problem(s) relating to the lab may require you to write TMS320C6000 C code.

Here are several example midterm #2 exams:

- Spring 2014 without solutions and with solutions
- Fall 2013 without solutions
- Spring 2013 without solutions
- Fall 2012 without solutions
- Spring 2012 without solutions and with solutions

Several past midterm #2 exams (mostly with solutions) are available in the course reader.

Coverage of midterm #2 includes the material presented in lecture and lab since the first midterm. Much of the material covered since the first midterm builds on material from before the first midterm.

For Midterm #2, you will be responsible for the material in

1. Lectures 7-10, 12-17 and 26. Lecture 26 is review for midterm #2. Although lecture 9 was not presented in class, the material in it is very important and you will be responsible for the material.
2. In-class discussions
3. Johnson, Sethares, and Klein, Software Receiver Design, sections 6.5-6.7, sections 7.1-7.2, chapters 8-9, sections 10.1-10.4, chapter 11, sections 12.1-12.3, sections 13.1-13.3, sections 16.1-16.5, and appendices A, D, E, and F
4. Welch, Wright and Morrow, Real-Time Digital Signal Processing, chapters 10 and 16-18, and appendices A-D
5. Laboratory assignments 4-7
6. All handouts in the course reader, esp. Raised Cosine Pulse, Modulation Summary, Noise-Shaped Feedback Coding, Direct Sequence Spreading, Symbol Synchronization, and Communication Performance of PAM vs. QAM
7. Homework assignments 4-7 and their solution sets (in addition, homework assignments 0-3 and their solution sets will also be helpful)

For Midterm #2, you will be responsible for the following topics:

1. Interpolation: pulse shapes, oversampling, and design tradeoffs (Lecture 7)
2. Quantization: system properties, SNR vs. bits of resolution, noise floor, power spectra, and design tradeoffs for A/D converters (lecture 8)
3. Data conversion: dithering, oversampling, and noise shaping (lecture 10) example problems
4. Pseudo noise sequences and their applications (lab 4)
5. Matched Filtering (lecture 13) including pulse shaping, matched filtering, channel equalization and noise analysis
6. Digital PAM, including error analysis, power requirements, transmission, and reception (lecture 14)
7. Digital QAM, including error analysis, power requirements, transmission, and receptions (lectures 15 and 16)
8. Fast Fourier Transform (FFT) including linear convolution, circular convolution, and implementation complexity (lecture 17)

Topics from lectures 11, 18-25 and 27 that were not covered in class will not be covered on midterm #2:

- Lecture 11. Data conversion (part 2), including dithering, oversampling, and noise shaping
- Lecture 18. Asymmetric Digital Subscriber Line (ADSL) Modems including multicarrier modulation, cyclic prefix, baseband channel models, channel equalization, transceiver training, and transmission bandwidth
- Lecture 20. Wireless orthogonal frequency division multiplexed (OFDM) systems including multicarrier modulation, cyclic prefix, equalization, transmission bandwidth, and wireless channel models
- Lecture 20 supplement. WiMAX wireless data communications standard (guest lecture by Prof. Jeffrey G. Andrews), which is based on OFDM
- Lecture 21. Spread spectrum systems, including uses of spreading, correlation, pseudo-noise sequences, and power control in spread spectrum systems
- Lecture 22. Modern Digital Signal Processors
- Lecture 23. Native Signal Processing
- Lecture 24. Texas Instruments ExpressDSP Algorithm (Software Development) Standard
- Lecture 25. System-level Design
- Lecture 27. Synchronization in ADSL Modems

Nonetheless, the content in these lecture slides may be helpful in preparing for an interview for a company that makes programmable DSPs or heavily uses programmable DSPs in its products.

In preparing for midterm #2, I would recommend working through the problems on the midterm #2 tests in the course reader, starting with the most recent midterm #2. I would also recommend thoroughly understanding the solution sets for homework assignments 0-8.

For the Fall 2003 midterm #2, you can ignore the first problem, as we haven't covered the topic of analog phase modulation.

Here are calculations on midterm #2 that I have seen a few students have difficulty getting right:

1. Complex number calculations. Let z = r exp(j w):
   - z + z* = 2 r cos(w)
     One can compute the real component via (z + z*)/2.
   - z z* = r^2 = |z|^2
     This is a power calculation, and gives a real number.
   - z^2 = r^2 exp(j 2 w)
     This gives a complex number.
2. Polynomial factoring and expansion
   - The solutions of a x^2 + b x + c = 0 with respect to x are given by the quadratic formula:
     r0 = (-b + sqrt(b^2 - 4 a c)) / (2 a)
     r1 = (-b - sqrt(b^2 - 4 a c)) / (2 a)
   - The solutions of a + b x^(-1) + c x^(-2) = 0 with respect to x can be found by multiplying both sides of the equation with x^2 and using the quadratic formula
   - The expansion of (x - r0)(x - r1) is x^2 - (r0 + r1) x + r0 r1.
3. Based on our discussion of all-pass filters in lecture 6, one way to stabilize a discrete-time IIR filter is to reflect its poles that are outside the unit circle to be inside the unit circle. That is, for each pole p = r exp(j w) for which r > 1, change the pole to be pnew = (1/r) exp(j w). The magnitude response is preserved, but the phase response will change. (Note that poles on the unit circle remain unchanged, which means that filters with a repeated pole on the unit circle would remain unstable.) In the context of designing all-pass filters, poles are obtained by reflecting the zero locations inside the unit circle.
4. Decision regions for a constellation tell the receiver how to apply thresholds to a sampled output of the matched filter to decide which symbol (constellation point) was most likely sent. The decisions regions must cover the entire real line for PAM, and the entire plane for QAM.
5. On several midterm #2 exams, I had asked in the last part of problem 2.1 what the reads/s and writes/s were for pulse shaping by direct form and by filter bank.

   In order for an FIR filter of length N to compute one output sample, it has to

   - Read N filter coefficients
   - Read the current input value and the previous N-1 input values.
   - Write the current input value into a circular buffer
   - Write the new pointer to either the newest or oldest sample in the circular buffer
   - Write the result of the filtering operation on the output
   That gives 2N reads and 3 writes each time the filter executes.

   For the direct form, the FIR filter (pulse shaping filter) is of length L*Ng and runs at the sampling rate fs:

   - Reads/s: 2*L*Ng*fs
   - Writes/s: 3*fs
   For the filter bank, there are L polyphase FIR filters, and each polyphase filter has Ng coefficients. Each filter runs at the symbol rate fsym. The circular buffer of the current and previous Ng-1 input symbol amplitudes is shared among the polyphase filters, so there are only two writes at the symbol rate. Each filter has to write out its output at the symbol rate.
   - Reads/s: 2*L*Ng*fsym
   - Writes/s: 2*fsym + L*fsym
   The other operations are due to the upsampling in the direct form, and the commutator in the polyphase filter bank. The upsampler reads at the symbol rate and writes at the sampling rate. The commutator reads at the sampling rate and writes at the sampling rate.

Updated 10/13/14.