Experimental Data Analysis Lab

PHYS 391 - Fall 2017
Lab 5 - Fourier Transforms

Updated 26 September, 2017 13:12

Lab Goals

The goals of this lab are to explore some of the experimental issues of the Fourier Transform.

Lab Manifest

General Instructions

The lab handout, linked above, gives detailed instructions for this lab. This lab is much more qualitative than those you have done recently. In general, you don't have to measure anything, but rather the idea is to give you some experience with the FFT algorithm in real life. Your lab writeup needs to describe carefully the steps you took in this lab and give some descriptive explanations of what you observed and why.

Link for Code Assignment

Code Assignment

Here is an extra-credit assignment, worth up to 6 extra points on your overall grade.

We're interested in reading some data from an audio-ized recording of ionospheric hiss (which is really a recorded EM wave) into python or Matlab and then analyzing it using spectra tools. In particular, we want to explore how the frequency content of the recorded data changes as a function of time. Think of this as recording a long time series of sound pressure data, and then sliding a window along the time series while examining the spectrum.

  1. Download the an mp3 file of ionospheric 'hiss'
  2. Figure out how to import that file into Matlab or python
  3. Write a python or Matlab function that does the following (HERE IS A CODE 'STUB' to get you started)
    • gets passed your sound data vector, the sample rate, the length of the sliding
      window.
    • makes a 'spectrum object' with predefined method (I suggest welch), window (try
      'Tukey') and a pre-specified sliding window length (that you passed the routine).
    • step through your entire (ionospheric hiss) data set in some sensible fashion, and use
      the Matlab 'psd' command or the python equivalent to estimate the 'power spectral density' for each sliding
      window. Note that a call of psd such as 'psd(H512,my_ion_hiss(:,2),'Fs',20000)'
      makes a pre-defined plot that I don't find useful. Instead, use a call like
      'mypsd = psd(....)' and parse mypsd for the psd and associated (Fourier
      frequencies.
    • figure out some way to show the time evolution of the psd (check out, for example,
      the 'waterfall' plot. I strongly encourage you to consider sensible ranges of frequency for your 3D plot.
    • try this for a few different lengths of sliding windows, e.g., 256, 512, 1024. Discuss the tradeoff between frequency resolution and time resolution (of frequency content). Cite your newly-made plots in doing so.
  4. say what you can about the time evolution different periods of similar frequency content within the data. Discuss your spectral plot and make observations about this.
  5. submit your function and calling script, and your response to 4, above (as text) to me in a zip file. This is due at the same time as lab 5, during finals week.

Errata

For reference, the USB-6009 Data Sheet and Users Guide, and the Vernier SensorDAQ Data Sheet and Users Guide.