Advice/Requirements for homework assignments
Here are some general hints, advice and requirements for the homework assignments in the Spectral Analysis course. Not complying with the rules will give reduced points for the homework.
The list below will be updated with additional advice, if we deem it necessary.
- Please hand in everything printed on paper.
- You should write in English.
- Make sure that the lines in the plots can be clearly read. When it is necessary to separate the lines, use different linestyles (dash-dotted, dashed, dotted, etc) or print in color.
- Do not hand in an excessive number of plots. Rather select the interesting plots and motivate your choices.
- Please attach your Matlab code. This is highly useful for "error tracking".
- Clearly mark all axes with the correct units (e.g., "frequency (Hz)" or "angular frequency (radians / sampling interval)").
- When plotting a frequency axis, use Hz or normalized frequency between [-0.5, 0.5) or [-pi, pi) (or [0, 2pi)). Do not plot against the index of the DFT coefficients, unless specifically told to do so. For real-valued signals, the spectrum of the negative frequencies does not have to be included.
- Make sure to plot the spectra using fine frequency grids, so that all details of the spectra are visible.
- It is common to remove the mean value of a signal before analyzing it. In this way, a large peak at 0 frequency is avoided. Such a peak will "steal" a degree of freedom for the parametric methods, and for the non-parametric methods, smearing and leakage from that peak can mask finer details of the spectrum.
- When plotting spectra, it is advisable to use a logarithmic (in matlab, plot with semilogy) or a dB-scale (10*log10(...)) for the y-axis.
- Preferrably use Gaussian white noise (randn in matlab) as the driving noise for AR(MA) processes.
- Note that many useful Matlab functions are available via the homepage of the course book: http://www.ece.osu.edu/~randy/SAtext/. Make sure you read the help for these functions (e.g., pay attention to the functions requiring a window as input). You could also have a look at the Matlab code for the computer labs.
- Regarding the selection of model orders in some of the assignments: The model order selection algorithms described in the new version of the book and implemented in the function armaorder are not a part of the course. You are welcome to read about them and use them if you wish. However, the idea of the assignments involving model order selection is rather that you should determine appropriate model orders empirically (and, of course, motivate your choices). If you decide to use armaorder, then the parameter mo (vector of model orders) should contain the number of estimated parameters, for the corresponding values of sig2. That is, if sig2 was computed from an ARMA(4,2)-model, then mo should be 4+2=6.
- Note that, when finding the LS estimates of the amplitudes in e.g. HW assignment 4, the matrix B in (4.3.8) must have full rank. If you have not removed the mean of the analyzed signal, you will probably find a peak at frequency 0, and because of the spectral symmetry of real-valued signals, this means that you will get two frequency estimates at 0 (more specifically one at zero and the other one at 2pi). When creating the B-matrix, one of these 0-frequencies must be disregarded, or the B-matrix will not have full rank (since two columns will then be identical).
- Poles outside the unit circle present no problem in spectral analysis, since PSD = H(z)H^*(1/z^*). I.e., if the poles of H(z) are inside the unit circle, the poles of H^*(1/z^*) will be the mirrored poles of H(z) and thus outside the unit circle!
- Always try to theoretically motivate your answers, e.g., if a method does not give proper results, explain why, do not just simply state that it does not work.