Description
Read these instructions carefully: There are two stages for submitting the assignment.
1. You will be submitting a Checkpoint approximately one week after the assignment was published (see
due date above). The checkpoint includes submission of your Report and Code in progress (at least
1/3) (2 points) and taking the checkpoint quiz (3 possible points).
2. You will be uploading a Report (PDF) to Canvas along with a zip of your Code (15 possible points).
The grade will be based on how completely you addressed the problem as well as neatness and
important things like: have you labeled your graphs and included figure captions (7 points will be
given for the overall layout, correctness, and neatness of the report, and 8 additional points will be
given for specific things that the TA will look for in the report and the code.
• The report should be a maximum of 6 pages long with references included. Minimum font size 10pts
and margins of at least 1inch on A4 or standard letter size paper.
• Do not include your code in the report. Simply create a zip file of your main scripts and functions,
without figures or data sets included, and upload the zip file to Canvas.
• Your report should be formatted as follows:
– Title/author/abstract: Title, author/address lines, and short (100 words or less) abstract. This is
Problem Description: Finding Submarines
Your goal in this homework is to locate a submarine that is moving in the Puget Sound. We do not know
much about this submarine as it is a new technology that emits an unknown acoustic frequency that you
need to detect.
Broad spectrum recording of acoustics pressure data obtained over 24 hours in half-hour increments is
available to you. You can download the data using the Google drive links on Canvas; either of the data
files subdata.npy for Python users, subdata.mat for MATLAB users or subdata.csv in text format if the
previous two formats are insufficient.
The data file contains a matrix with 49 columns of data corresponding to the measurements of acoustic
pressure taken over 24 hours. These measurements are noisy (which is typically the case). The measurements
themselves are 3D and taken on a uniform grid of size 64 × 64 × 64. The provided (hwhelper) notebook will
visualize this data for you and define the physical scales of the problem. If the 3D plots are slow and you
cannot see the dynamic behavior of the data consider downloading the GIF file subdata.gif on Canvas.
Some comments and hints
Here are some useful comments and facts to guide you along the way.
1. First, observe that you are provided three-dimensional dynamic data, that is acoustic pressure measurements in 3D and as a function of time. This makes visualization difficult as the data set is effectively
four-dimensional (3D+time). If you would like to see temporal variations then I suggest looking at
slices of the data (eg isosurface command) as a function of time.
2. In class we only saw/ will see 1D and 2D Fourier transforms but here you may need a higher dimensional
Fourier transform. Not much changes in the N-D setting except that you need to use the fftn function.
fftshift remains valid and is still needed.
3. Recall Code Samples (FFT examples) and the discussion of the Gaussian function. We saw a useful
fact about noise and Fourier transform that will help you in this assignment and in many applications:
It is known that adding mean zero white noise to a signal (Gaussian noise) is equivalent to
adding mean zero white noise (Gaussian noise) to its Fourier series coefficients.
This fact enables one to devise a simple and effective “preliminary” noise filtering technique in situations
where multiple measurements are available that are subject to the same noise. This is the case in
imaging or acoustics applications like our submarine problem. Since the noise is random and mean
zero it should average to zero over many samples. Thus, averaging the measurements in the Fourier
domain is expected to reduce the noise.
The reduction will improve with an increasing number of aligned measurements, but in the case of our
submarine, we only have a few measurements so you would still need to do additional filtering.
Tasks
Below is a list of tasks to complete in this homework and discuss in your report.
1. Through averaging of the Fourier transform determine the dominant frequency (center frequency)
generated by the submarine. Verify your results through visualization.
2. Design and implement a Filter to extract this center frequency in order to denoise the data and
determine a more robust path of the submarine. Visualize the denoised measurement the 3D path of
the submarine and inspect the validity and effectiveness of the denoising.
3. Determine and plot the 𝑥, 𝑦 coordinates of the submarine path during the 24 hour period. This
information can be used to deploy a sub-tracking aircraft to keep an eye on your submarine in the
future.



