Click HOME to return to the class homepage Click SYLLABUS to go to the Class Syllabus Click GOALS to go to the course goals page Click SCHEDULE to go to a class schedule page Click HOMEWORK to go to the class homework section Click REVIEW to go the the class review page Click TEXTBOOK to go to the class textbook page Click LINKS to go to the class links page


Physical Oceanography
Homework Set 10
Due 29 November 2000

Late homework will cost 15 points per week or part of a week it is late.

  1. Describe a method for predicting tides at a site 100 km offshore of Australia on the continental shelf of the Timor Sea, in an area where a tide gauge was operated for a three-month period in the summer of 1975.
  2. You work for a engineering company that is designing a platform that will operate for a ten-year period in the Timor Sea. You are asked: What is the significant wave height and maximum wave height to be expected while the platform is in operation? What information will you need to answer the question, and where will you find the information?
  3. A 8.1 m/s trade wind generates a fully developed sea. Assume the Pierson-Moskowitz spectrum describes the spectrum of these waves.
    • What is the period of waves at the peak of the spectrum?
    • What is the significant wave height of this trade-wind sea?
    • What is the variance of surface displacement?

  4. A small coastal town in Scotland wishes to install a wave-powered electrical generating station to provide power to the town. They know the significant wave height offshore in deep water averages 2 meters, and the typical wave period is 6 seconds. If 10% of the wave energy coming ashore along 10 meters of the shore is converted to electricity, how much power is available to the town? Assume no wave energy is lost in the coastal zone and all power coming toward the shore from deep water reaches the power station. Assume further that the wave energy is not refracted as it propagates toward the shore.
  5. The site for the wave-powered electric generating station in Scotland needs to be carefully considered. List two of the most important environmental conditions that might influence the selection of a site, and state why they are important.

Laboratory Assignment 10 Oceanography 608

The goal of this laboratory session is to learn more about ocean-wave spectra. You will use as an example the spectrum of sea-surface elevation: a wave-height spectrum. You can calculate the spectrum using the data in the file OCNG-608 Lab 10 using the application Matlab on the Mac computer.

Matlab is a higher-level programming language from The MathWorks, Inc. for fast, efficient manipulation of matrices and plotting of data. It includes a special Signal-Processing Toolbox for calculating, among many other functions, the spectrum of a time series. The use of higher-level languages such as Matlab is far more efficient than trying to calculate results using Fortran, C, or other lower-level programming languages.

The lab was checked using Matlab version 4.2c.1 with the Signal Processing Toolbox. Your results may be slightly different if you are using an different version of Matlab.

To calculate the spectrum:

  1. Download wavefile.mat. It is in binhex format. Unstuff the file, open the unstuffed file using Matlab. The file is a MAT binary file that is machine independent. "MAT-files can be transported between machines because they contain a machine signature in the file header. Matlab checks the signature when it loads a file and, if a signature indicates that a file is foreign, performs the necessary conversion."-Matlab User's Guide. I also put a binary file wave.mat on the server for PC users, or those who cannot unstuff a binhex file; download the file directly to your hard drive, not to a browser page.

    Change the name of the dataset by typing "sealevel=wavefile;" Be sure to put the semicolon at the end of the command.

  2. Type "whos". This should return "sealevel 2047 by 2", indicating the workspace contains the matrix sealevel, which has two columns. The first column is the time in seconds when sea-surface height was measured by a wave recorder, the second is the height in centimeters at that time.
  3. Typing "sealevel(1:10,1)" prints out the first ten values of time.

    Q1: What is the time interval between samples?

    Q2: What is the Nyquist frequency of the time series?

  4. Typing "plot(sealevel(1:400,2))" plots the first 400 values of wave height.
  5. Q3: What is the approximate value of the significant-wave height? Remember, height is the peak-to-trough distance.

  6. Typing "spec512=psd(sealevel(1:2048,2),512);" breaks the time series into 512-point blocks, calculates the periodogram of each block, averages the periodogram over 2048/512 = 4 blocks, and stores the result in spec512. The spectral values are normalized by the frequency resolution of the spectrum to produce a spectrum with units of cm2/Hz. This normalization produces a spectrum that is independent of the spectral resolution, allowing comparison of spectra made with different resolutions. Don't forget the semicolon, leaving it out prints the results to the screen. If you left it out, and Matlab starts filling the screen with numbers, typing "command and period" at the same time interrupts the calculation.
  7. Typing "loglog(spec512(1:128,1));" produces a log-log plot of the spectrum, but without proper scaling of the frequency axis.

  8. Now let's calculate the significant wave height using both the time series and the spectrum.

    Typing "std(sealevel(1:2028,2))" produces the standard deviation of sea-surface elevation.

    Q4: What is the standard deviation of sea-surface elevation? What is the variance of sea-surface elevation? What is the significant wave height?

    Type "delf=nyquist/256" but substitute the value of the Nyquist frequency that you calculated in Question 2 for nyquist. (Don't type the word nyquist.). This defines the frequency interval between points in the spectrum.

    Typing "delf*sum(spec512)/sqrt(2)" returns two numbers, the first is the variance of wave height. (The second is the sum of the confidence intervals, and it does not concern us here.) The variance calculated from the spectrum should equal the variance of sea-surface elevation. It does not exactly equal the variance of sea surface elevation because Matlab applies a Hanning window to the data, giving some data more weight than other data. This produces a better spectrum, but slightly changes the normalization.

    Q5: What is the variance of sea surface elevation calculated from the spectrum? Is it the same as the variance calculated from the array sealevel?

  9. We can produce more useful plots with a little more work: First let's produce a nice log-log plot:

    Calculate a frequency scale:

    Type "freq=0:delf:nyquist;" (but use your value of the Nyquist frequency for nyquist) to calculate an array of 256 frequencies in Hertz from 0 to the Nyquist frequency.

    Now produce the plot:

    Typing "loglog(freq(2:257),spec512(1:256,1));" produces a log-log plot. The frequency starts at 2 to avoid plotting zero frequency on a log-log plot.

    If the log scale has several decades per tick, try typing "axis([0.01 1 0.001 100000])" to make a more useful plot.

    We can also produce a linear plot:

    Typing "plot(freq(2:128),spec512(1:127,1));" produces a linear plot that ignores the very small values at the higher frequencies.

    Q6: What is the frequency at the peak of the spectrum?

    Q7: What is the period of waves with this frequency?

  10. The waves you have worked with were produced by a very uniform trade wind of 8.1 m/s blowing over a distance of thousands of kilometers.

    Q8: How does the variance of wave height calculated above compare with that calculated using the Pierson-Moskowitz form of the spectrum for the same wind speed?

    Q9: How does the frequency at the peak in the spectrum you calculated compare with the frequency of the peak in the Pierson-Moskowitz spectrum?

These exercises have introduced you to some simplified concepts of spectra, hiding most of the mathematics. You may wish to read all of Chapter 11 of Oppenheim & Schafer plus the Matlab handbooks to learn more about the details of the calculations. Feel free to copy the data file so you can practice working with spectra. Try modifying the commands above to produce spectra with more and with less resolution and compare the spectra.

I have put some information about the Matlab Signal Processing and copies of some pages from Chapter 11 of Oppenheim and Schafer in the red binder next to the power Mac.


Oppenheim, A.V. & Schafer, R.W. 1975 Digital Signal Processing. Prentice Hall: 585 pp.

Revised on: 5 September, 2004

Click HOME to return to the Class Homepage Click SYLLABUS to go to the Class Syllabus Click GOALS to go to the Class Goals page Click SCHEDULE to go to a Class Schedule page Click HOMEWORK to go to a Class Homework section Click REVIEWto go to a Class Review page Click TEXTBOOKS to go to a Class Textbook page Click LINKS to go to a Class Links page
Copyright and contact information for OCNG 608