Programming Fourier Transforms MATLAB Programming Task
Matlab programming task on Fourier Transforms
E80 Matlab Assignment 4
FFT – The Fast Fourier Transform
For this assignment, you will use the FFT (Fast Fourier Transform) to calculate the major frequency
components of the migratory motion of a particular species of fish. Fig. 1 illustrates the migratory
motion of 3 individual fish (yellow, red, blue). For each fish, there are two clusters of fish position
observations, and the fish migrate back and forth between these two cluster areas.
Figure 1: Fish positions logged over a 3 month period using a Vemco acoustic tracking system.
Each color (red, blue, yellow) corresponds to a different individual fish. The fish habitat is located
in Big Fisherman Cove, Catalina Island, CA where stationary acoustic receivers were placed along
the seafloor to log signals broadcasted from acoustic transmitters attached to the fish.
File Download
1. To complete the remainder of the assignment, you will need the file fishData.mat. Please
download the file and put it somewhere accessible to Matlab, (e.g. in the MATLAB directory
often found under the Documents directory in the file structure).
Making Waves
2. Create a new script file called waves.m. Use the script to write the following code:
3. Create a time sequence vector called times that start at 0, increment in step sizes of 0.01
seconds, and whose last element is 8.99 seconds.
4. Check that the vector is the correct length of 900 using the size function, and set N = 900.
Make sure you understand why it should be 900.
5. Create a cosine wave signal called wave1 that has an amplitude of 10, and a frequency of
0.5*2π rad/s. The signal is sampled version of a continuous signal, where the sampling
period is 0.01 seconds and the signal spans a time length of 8.99 seconds. Hint: use the
times vector you created in step 3.
6. Create a second cosine wave signal called wave2 that has an amplitude of 2, and a
frequency of 2.0*2π rad/s. The signal should also have a sampling period of 0.01 seconds
and spans a time length of 8.99 seconds.
7. Plot both signals as a function of time in black on a single figure.
8. Create a third signal called sumWaves that is the sum of both waves. Plot this third signal
on the same figure, but in red. It should be clear that this third wave has visible components
of wave1 and wave2. Save an image of the plot and add to your submission sheet. Be sure
all axes are labelled.
Windowing
9. If we want to take the FFT of sumWaves, we should window it to make sure it is close to
periodic. Use the hann function to create a signal h that is the shape of hann function and
of length N.
10. Create a vector sumWaves_Windowed that is created by multiplying each element of h
with sumWaves. Plot sumWaves_Windowed, save it as an image, and add the image to the
submission sheet.
A Discrete Fourier Representation
In this section, you will create a Fourier representation of the signal sumWaves_Windowed.
11. Recall the following equations allow you to calculate the coefficients X[k] of the sinusoid
building blocks of a discrete time signal x[n].
Use these equations to calculate the coefficients X[k] for the signal sumWaves_Windowed,
and store them in a vector called X. It helps to first determine the values of N and x in the
equation.
12. Plot the coefficients X[k] as a function of k using the stem function. E.g. stem(X). Save this
image and insert it into your submission sheet. Be sure all axes are labelled.
13. Change the x axis so that the stems are plotted as a function of real time frequency.
Specifically, each stem for coefficient X[k] should be plotted as a function of its frequency
k*f0, where f0 is the fundamental frequency of the Fourier representation associated with
the basis function. E.g the kth basis function has frequency of k*f0.
An important point to understand is that the sampling frequency and number of samples
determine f0. In this case the sampling frequency fs = 1/0.01s = 100 Hz. The fundamental
frequency is f0 = fs /N = 100/900 Hz = 0.111 Hz.
To change our x axis, create a vector called frequencies that is the same length as the
coefficients vector X, but increments by f0. E.g.
frequencies = [0:N-1]*f0;
14. Compare the two main peaks of the stem plot with the amplitude and frequencies of the
two sinusoids of which sumWaves was built. Do they match? If not, ask for help.
15. Repeat steps 9 through 12, but use the fft function. Compare your plots from step 11 (i.e.
the stem plot created with the equation in step 9 with the stem plot created using fft). Do
they match?
16. Save an image of one of your two stem plots as a function of frequency. Attach to your
submission sheet.
Fourier representation of a Data set
In this section, you will use the fft function to determine the major frequency components of a
signal representing the migratory motion of fish.
14. Load the data from the file fishData.mat.
15. Plot the x data as a function of t. Hold on. Plot the y data as a function of t. Observe any
periodic behavior, noting the x axis has units of days, i.e. t is provided in units of days. Save
and add this figure to your submission sheet.
16. Apply the fft function to the x data. Use the stem function and plot the fft coefficients as a
function of frequency as in step 11. Do the fish traverse back and forth between the two
locations once a day (e.g. in response to the sun rising/setting) or twice a day (e.g. in
response to the tides). Add your answer to the submission sheet.
E80 Matlab Submission 4
FFT – The Fast Fourier Transform
1. A plot of your waves signals as a function of time. Include both the plots from
part 8 and 10.
2. A stem plot of your X[k] values as a function of k
3. A stem plot of your X[k] values as a function of frequency.
4. A plot of x (from the fishData.m file) as a function of time.
5. Do the fish migrate once or twice a day?
Top-quality papers guaranteed
100% original papers
We sell only unique pieces of writing completed according to your demands.
Confidential service
We use security encryption to keep your personal data protected.
Money-back guarantee
We can give your money back if something goes wrong with your order.
Enjoy the free features we offer to everyone
-
Title page
Get a free title page formatted according to the specifics of your particular style.
-
Custom formatting
Request us to use APA, MLA, Harvard, Chicago, or any other style for your essay.
-
Bibliography page
Don’t pay extra for a list of references that perfectly fits your academic needs.
-
24/7 support assistance
Ask us a question anytime you need to—we don’t charge extra for supporting you!
Calculate how much your essay costs
What we are popular for
- English 101
- History
- Business Studies
- Management
- Literature
- Composition
- Psychology
- Philosophy
- Marketing
- Economics