EE313 Linear Systems and Signals - Mini Project 1 - Fall 2026
Mini-project #1 implements digital audio effects
of vibrato, tremolo, and delay.
Vibrato is a type of frequency modulation, and tremolo is a type of amplitude modulation
applied to a particular audio signal.
Here are Matlab and sound files that will help you complete the project,
which you can download the above files in a single zip file
miniproj1code.zip:
On your laptop, create a directory/folder in your MATLAB directory called miniproj1 and
place the above files there.
Then, add the directory/folder to your MATLAB path:
addpath("LOCATION");
The LOCATION might be something like
C:\Users\Brian\Documents\MATLAB\miniproj1
That way, MATLAB can find the new Matlab functions plot_freqDomainAnalysis and plot_timeDomainAnalysis.
MATLAB function plot_freqDomainAnalysis
% FUNCTION plot_freqDomainAnalysis(s,fs,sType)
% PURPOSE:
% This function plots the frequency represntation and spectrogram of a
% given signal.
%
% INPUTS:
% 1) s, a vector of size (N x 1), where N is the number of elements
% s represents the signal to analyze%
% 2) fs, a scalar
% fs is the sampling frequency that signal s was generated with
% 3) sType, a string that describes the signal s
% OPTIONAL INPUT TO FUNCTION
% OUTPUTS:
% none (generates 2 plots)
%
% EXAMPLE CALLS TO FUNCTION...
% 1) plot_freqDomainAnalysis(s,fs)
% 2) plot_freqDomainAnalysis(s,fs,"Vibrato")
MATLAB function plot_timeDomainAnalysis
% FUNCTION plot_timeDomainAnalysis(s,fs,sType)
% PURPOSE:
% This function plots the time-domain representation of a given signal.
%
% INPUTS:
% 1) s, a vector of size (N x 1), where N is the number of elements
% s represents the signal to analyze
% REQUIRED INPUT TO FUNCTION
% 2) fs, a scalar
% fs is the sampling frequency that signal s was generated with
% REQUIRED INPUT TO FUNCTION
% 3) sType, a string that describes the signal s
% OPTIONAL INPUT TO FUNCTION
% OUTPUTS:
% none (generates 1 plot)
%
% EXAMPLE CALLS TO FUNCTION...
% 1) plot_timeDomainAnalysis(s,fs)
% 2) plot_timeDomainAnalysis(s,fs,"Vibrato")
Tips and Tricks
Zooming into plots In the command window, you zoom into plots by first selecting which figure number and then change the range of the y-axis. Here's an example of zooming into a spectrogram plot from 0 to 1 kHz:
figure(4);
ylim( [0 1] );
Each figure in the Matlab figure management window has a number associated with it.
Mystery Signals. Each mystery signal is a recording of an instrument playing a note (principal frequency). The mystery signal will also contain harmonics of the note being played, which you'll see in the frequency domain plots.
The mystery signals are not necessarily at full scale in amplitude between -1 and 1. You can check this by playing the audio signal from Matlab and compare it against the synthesized signal. Another way is to compute the minimum and maximum values for each mystery signal:
max(mysterySignal)
min(mysterySignal)
Tremolo. For the tremolo effect applied to the mystery signal, each frequency component in the mystery signal will be shifted up and down by the tremolo frequency. Consider the frequencies of 392 Hz and 402 Hz in the mystery tremolo signal and a tremolo frequency of 5 Hz. After the tremolo effect is applied, the 392 Hz frequency will shift to 387 Hz and 397 Hz with the same phase and the 402 Hz frequency will shift to 407 Hz and 392 Hz with the same phase. So, after applying tremolo to the mystery signal, the resulting signal frequency component at 397 Hz will consist of the mystery signal frequency components at 392 Hz (which shifted up) and 402 Hz (which shifted down). The phases of the two frequency components can cause constructive or destructive interference.
Delay. For the echo mystery signal, you can visually evaluate the spectrogram to estimate how many delays are present. It's possible that a delayed signal appears with lower amplitude that the initial signal. Also, please plot the echo mystery signal in the time domain.
References. Please add the mini-project assignment and link as a reference.
Homework and Mini-Project Guidelines
Please write a self-contained narrative report for the mini-project report.
Assume that the reader (grader) does not have access to the mini-project assignment.
The audience for the report is the other students in the class.
Please do not use generative AI tools to write the narrative or generate code used in the report.kkkkkkkkkkjjjjj:w
Here are some things you should follow for all assignments.
Amount of work to show:
- An explanation should be given for every single answer.
Answers written without explanation will lose two-thirds of the
points allotted for that part.
- Only "standard" formulas (like Euler's formula, trigonometric formulas, etc.)
can be used without a reference.
If you're using something non-standard, then please put a reference
to the formula number in the book, or whatever source you got it from.
Just using the final result of a similar problem done in the class,
and omitting the intermediate steps, is not okay.
You have to show show your work.
- There shouldn't be big jumps in logic from one step to the next.
- For everything, expect to show at least one intermediate step between
the first line and the answer.
Even if it seems unnecessary to you, please err on the side of caution.
Things that seem obvious to you when you're writing the solution are not
quite so obvious for someone reading it.
- If you're in any doubt about how much work to show, please ask the
instructor or the teaching assistant.
MATLAB source code guidelines:
- Put a comment before the solution of each part, telling the question number
of the solution.
- If you're using complicated logic, leave a comment telling what that block
of code is supposed to do.
- Use variable names that related to their meaning/use.
- Avoid using two different variables for the same thing.
- Try to avoid using "magic numbers" in the code.
If you're using a number, write a comment telling me how you derived it.
- Make sure that your code will compile & run in a clean workspace; i.e.,
one without any variables present.
Use a clear all; at least once before submitting it.
- No marks will be deducted based on the efficiency of the code unless the
problem asks you to write efficient code.
Technical points:
- Merge all the files together into one PDF file.
- Please adjust the contrast, exposure etc., to get a good scan quality so that the TA
can easily read what you write.
Take extra care to get a good scan for parts written in pencil.
- For the MATLAB code you write for an assignment, please copy the code into Word or
include a screenshot showing the code.
Do not submit handwritten code.
Other things:
- All plots must have axis labels, with units.
- Final answers must be boxed, or underlined or otherwise differentiated from the rest of the solution.
- All final answers must have units, if they exist.
- Read the questions carefully.
- Try to answer all parts of a question together.
If the solution to some parts of a question is written elsewhere, then leave a note telling
the reader where to find it.
Organization of a mini-project report:
Please write a self-contained narrative report.
The audience is someone who has taken the equivalent of this class.
The report should provide references to the textbook and other sources as needed.
Please refer to the hints above, which apply to homework assignments and mini-project
reports, as well as the following additional guidelines for the mini-project:
- Introduction - introduce the purpose of this mini-project and provide an overview of what their report will discuss. 5 points.
- Modulation - 40 points
- Vibrato Discussion and Analysis
- Tremolo Discussion and Analysis
- Time Shifts - 40 points
- Echo Discussion and Analysis
- Conclusion - discuss any insights or knowledge gained as a result of completing the mini-project. 10 points.
- References - 5 points
- Usage of additional MATLAB Toolboxes (if any)
The written report will be graded on responses to the analysis questions, clarity, and formatting.
This mini-project report is something that you could bring with you on interviews
to show as an example of your work.
Here are example mini-project #1 reports written by the instructors:
Last updated 09/22/26.
Send comments to
bevans@ece.utexas.edu.