$30
You are hunting for a submarine in the Puget Sound using noisy acoustic data. It is a new submarine technology that emits an unknown acoustic frequency that you need to detect. Using a broad spectrum recoding of acoustics, data is obtained over a 24-hour period in half-hour increments. Unfortunately, the submarine is moving, so its location and path need to be determined.
Try to locate the submarine and find its trajectory using the acoustic signature. Also identify the acoustic admissions of this new class of submarine
You are being asked to perform the following:
1. Through averaging of the spectrum, determine the frequency signature (center frequency) generated by the submarine.
2. Filter the data around the center frequency determined above in order to denoise the data and determine the path of the submarine. Use plot3 to plot the path of the submarine once you have it.
3. Where should you send your P-8 Poseidon subtracking aircraft? Give the x and y coordinates in a table to follow the submarine.
Good luck, and I hope you track the submarine!
The following MATLAB code will help you get started in analyzing the data. It also tells you the spatial and spectral resolution of your acoustic equipment. (NOTE: the reason for the close all command before isosurface is that isosurface doesn’t seem to clear the previous image before plotting a new one.)
1
% Clean workspace
2
clear all; close all; clc
3
4
load subdata.mat % Imports the data as the 262144x49 (space by time) matrix called subdata
5
6
L = 10; % spatial domain
7
n = 64; % Fourier modes
8
x2 = linspace(-L,L,n+1); x = x2(1:n); y =x; z = x;
9
k = (2*pi/(2*L))*[0:(n/2 - 1) -n/2:-1]; ks = fftshift(k);
10
11
[X,Y,Z]=meshgrid(x,y,z);
12
[Kx,Ky,Kz]=meshgrid(ks,ks,ks);
13
14
for j=1:49
15
Un(:,:,:)=reshape(subdata(:,j),n,n,n);
16
M = max(abs(Un),[],'all');
17
close all, isosurface(X,Y,Z,abs(Un)/M,0.7)
18
axis([-20 20 -20 20 -20 20]), grid on, drawnow
19
pause(1)
20
end
1