Beruflich Dokumente
Kultur Dokumente
A.Y. 2014-15
General examination rules
The examination of the course of Systems and Techniques for Digital Signal Processing consists
of a written test, a PC-based home exercise and a final oral exam.
The written test (60% of the final grade) includes 3-4 questions (typically 2 open theoretical
questions and 2 exercises). The test lasts 2 hours.
The home exercise (30% of the final grade) should be developed in Matlab or a similar
software tool (such as Octave or Scilab). Results have to be summarized in a report of no
more than 8 pages (excluding the title page and possible Annexes). The report has to be
strictly focused on the results of the exercise with a clear explanation of the design choices
and the related motivations. No general theoretical aspects has to be included in the
report. The grade of this part of the exam is based on both the completeness of the
exercise and the clarity of the report. The source code should be properly commented.
The oral exam (10% of the final grade) aims at clarifying some points of the written test
and/or of the home exercise. In some cases, one or two extra questions are also possible.
The oral exam will be usually scheduled about one week after the written test. Changes with
respect to the dates reported in ESSE3 are possible. Students are always invited to check the sheet
with the test results to have more precise information about the oral schedule associated to a
specific examination session.
Normally (see exceptions for winter session 2014-2015 below), students are required to take the
oral exam in the same examination session of the written test. Students that do not show up at
the oral exam without a proper justification will be regarded as absent and will lose the grade
of both written test and home exercise even if positive.
EXCEPTIONS FOR WINTER SESSION 2014-2015. In consideration of the novelty of the course and
of the limited time between the end of the classes and the examination dates, the submission and
oral exam rules for all students taking the exam in January-February 2015 will be relaxed as
follows:
The report and the project can be submitted even after the date of the written test.
If the home exercise is submitted too late to be discussed in the January session, the oral
exam will be scheduled in the February session.
If the home exercise is submitted too late to be discussed in the February session, an
extraordinary oral examination session will be scheduled in March or April, whenever
possible.
Exercise list
Exercise 1 Spectral data analysis (max. 2 people)
An encoder installed on a wheel generates a stream of pulses of amplitude 0-5 V, duration equal
to 100 s and frequency ranging from 0 Hz (0 at RPM) to 4 kHz (at 4000 RPM), depending on the
rotational speed of the wheel. Because of the vibrations, the period of the generated train of
pulses exhibits a random phase noise in the order 5 s (peak-to-peak). In addition, the signal is
affected by a non-stationary noise with zero mean and standard (deviation proportional to speed)
ranging from 1 mV (min) to 20 mV (max).
1. Model the signal as if it were time-continuous (the sampling period should be much
smaller than signal period) and show that it behaves as expected.
2. Design a data acquisition stage (in terms of anti-aliasing filter, sampling rate, number of
bits for A/D conversion, window length and type) able to provide a good spectral
estimation of the signal in the worst-case scenario (i.e. when the signal frequency is
maximum).
3. Implement a spectral estimator.
4. Compare the performances (in terms of leakage, spectral resolution etc) of at least three
alternatives.
Justify your decisions and comment your results in the report.
for k=0,,L-1. The input to your Matlab function should be a vector h containing the values of the
impulse response, the filter Type (1,2,3,4), and the number of samples L. You may assume that L is
greater than the length of the filter. The Matlab function should provide vectors A and such that
plot(,A), gives a plot of A(). An example Matlab header could be: function [A,w] =
firamp(h,type,L)
Verify that your Matlab function works correctly for each of the 4 filter types, by using it to plot
A() for the following filters.
1. Test for Type I using the following impulse response: h1 = (o/)*sinc((o/)*(n-(N-1)/2));
N = 29; n = 0:N-1; o = 0.34;
2. Test for Type II using and h2 = (o/)*sinc((o/)*(n-(N-1)/2)); N = 28; n = 0:N-1;
o = 0.34;
3. Test for Type IV using a differentiator with h4 = (-1).^(n-(N-2)/2)./(pi*(n-(N-1)/2).^2); N =
16; n = 0:N-1;
4. Test for Type III using a lowpass differentiator obtained by convolving the impulse
response of a Type II lowpass filter and Type IV differentiator, i.e. h3=conv(h2,h4).
Comment your results in the report.
Assuming that the unknown system is described by the following difference equation:
() = 1 ( 1) + 2 ( 2) + () + 1 ( 1) + 2 ( 2)
where the values of coefficients a1, a2, b1 and b2 can be chosen arbitrarily (provided that the
system is stable), you have to
1. Test the system and plot its input and frequency response;
2. Implement a noise generator able to stimulate the system and plot the output of the
system;
3. Implement a LMS function to adaptively adjust the coefficients of an FIR filter minimizing
E{e2(n)} (refer to some literature for a better understanding of LMS adaptive filter design).
The function is supposed to have as inputs:
the input stimulus sequence;
the corresponding desired output d;
the length N of the adaptive FIR filter;
a step size parameter controlling the rate of convergence of the algorithm to the
optimal solution.
(compulsory for 2 people only) The routine above could be also used iteratively in order to
increase the value of N till when the mean square error E{e2(n)} does not change
significantly.
4. Implement the adaptive FIR filter module with the filter coefficients given by the algorithm
above.
5. Compare the output of both systems stimulated by a different signal (e.g. a sinewave).
6. (compulsory for 2 people only) Plot the histograms, mean values and variances of the
output errors in both cases (noise and sinusoidal stimulation).
Comment your results in the report.
Exercise 12 FIR filter design, overlap & save and overlap & add
1. Design a staircase filter using the Kaiser window approach. The specifications are:
Band-1: 0 0.3, Ideal gain = 1, 1 = 0.01;
Band-2: 0.4 0.7, Ideal gain = 0.5, 2 = 0.005;
Band-3: 0.8 , Ideal gain = 0, 3 = 0.001;
2. Generate a signal composed by the wanted sinewave in Band-1, a smaller sinusoidal
interferer in Band-2 and white noise. Choose the noise power as well as sine-wave
frequencies and amplitudes as you want.
3. Implement the FIR filter using the overlap & save algorithm. To this aim, write your own
function, with the following input arguments:
input sequence;
block size L.
4. Implement the FIR filter using the overlap & add algorithm. To this aim, write your own
function, with the same input arguments as before.
5. Check the correct operation of the filters by comparing your results with those obtained
with a Matlab function.
6. Compare the computation times of both algorithms for some values of L.
Comment your results in the report.
4. Assume to stimulate the filter with a sinusoidal signal with amplitude equal to 2. Avoid
overflow using the most suitable scaling technique you know. Compute numerically the
SNR values in both case a and case b, with and without scaling.
Comment your results in the report.
The detection algorithm can be a DFT implementation using the FFT algorithm or a filter bank
implementation. Design the following MATLAB modules:
1. a tone generation function that accepts an array containing dialing digits and produces a
signal containing appropriate tones (as shown in the figure) of 0.5-s duration for each digit
at 8 kHz sampling rate;
2. a dial-tone generator generating samples of (350 + 440) Hz frequency at 8 kHz sampling
interval for a specified amount of duration;
3. a decoding function that accepts a DTMF signal and produces an array containing the
dialing digits.
Generate several dialing list arrays containing a mix of digits and dial tones. Experiment with the
tone generation and detection modules and comment your observations in the report. Optionally
you can use MATLABs sound generation capabilities to listen to the tones and to observe the
frequency components of the generated tones.