Mini Project 1: Estimate Parameters of a Sinusoid

Prof. B.-P. Paris
ECE 201

Spring 2015
Problem Statement
Deliverables
Material
Schedule
Grading

Problem Statement

In class, we have discussed in detail how you can determine the amplitude, frequency, and phase from the plot of a sinusoidal signal. The objective of this mini project is to automate this process. Specifically, you are to devise a procedure (really, a MATLAB function) that processes samples of a sinusoidal signal and determines the amplitude, frequency, and phase of that signal.

Deliverables

This is a group project; groups are assigned by the instructor. Each group must deliver the following two work products:

  1. A MATLAB function (must be named analyzeSinusoid) that accepts a sampled signal and a sampling rate as inputs and produces estimates of amplitude, frequency, and phase as outputs. An example function is provided (see below).
  2. A report in the form of a Powerpoint presentation. The report must not exceed six slides and should document how you solved the problem. An example report is provided (see below).

Material

To help you get started with this project, I am providing you with the following material:

Assuming that you have saved the test data and the two MATLAB functions in your MATLAB working directory, you can use them as follows. As you develop your own solution, simply replace the example analyzeSinusoid.m file with your own.

load test1;                                    % loads test data; can also load test2 or test3  
[amp, freq, phi] = analyzeSinusoid(sig, fs)    % sig and fs were loaded above  
true_amp, true_freq, true_phase                % compare to true parameters  
score = evalFunc(sig, fs, amp, freq, phi)      % check your score  
minScore                                       % this is the minimum possible score

Schedule

The mini project will proceed according to the following schedule:

  1. Monday, January 28: Project assigned and groups announced.
  2. Wednesday, February 4: Draft project report to be presented to another group.

    You must prepare a Powerpoint report that describes how you plan to solve this problem. You will present this plan to another group in class.

    A copy of your groups report must be e-mailed to the instructor by the start of class - include your group number on the subject line.

  3. Monday, February 9: Written (typed), constructive feedback must be provided to the group that presented to your group.

    Send a copy to the instructor by e-mail; make sure it is obvious which group you’re commenting on.

  4. Wednesday, February 11: Deadline for submitting initial version of MATLAB code.

    I will provide detailed submission instructions separately.

  5. Friday, February 20 (at 11:59pm): Deadline to submit M-files.
  6. Sunday, February 22 (at 11:59pm): Final versions of your report and your MATLAB code must be submitted through Blackboard - one submission per group.

Grading

Your group’s score will depend on the following criteria:

  1. Report: the quality of your group’s report will count 40% towards your grade. I will evaluate accuracy, correctness, presentation of the report, as well as the originality of your solution.
  2. MATLAB code: The grade for your MATLAB code will depend on the quality of your estimates. This is measured by the scoring function described above. This component counts 40% towards your grade.

    Bonus points will be awarded to the three best (lowest scoring) solutions and the solution that runs fastest.

  3. Feedback to other group: the quality of the feedback you provide to the group that presented to you counts 20% towards your grade.