SED navigation bar go to SED home page go to SED projects page go to NIST home page SED Home Page SED Contacts SED Projects SED Products and Publications Search SED Pages

Special-Purpose Software: MATLAB Functions for Estimation of Peaks from Time Series

Introduction This page describes MATLAB functions for the estimation of peak values from time series of such quantities as wind pressures and wind-induced internal forces in structural members. While the maximum and minimum values of a time series are readily evaluated, these observed peaks can exhibit wide variability from one realization to another due to the highly fluctuating nature of wind pressures (i.e., significant differences might be expected in the peak values of pressure time series obtained from several different tests under nominally identical conditions in the same wind tunnel). Therefore it is generally preferable to use a more stable estimator for the expected peaks.

These functions estimate peaks by evaluating probability distributions for the peaks through extension of classical results for Gaussian processes, using the approach described in the following paper:

    Sadek, F. and Simiu, E. (2002). "Peak non-Gaussian wind effects for database-assisted low-rise building design." J. Eng. Mech., 128(5), 530-539. (PDF format)
These functions were adapted by Joseph A. Main from a previous function written by Fahim Sadek. Two primary functions are provided along with three supplementary functions that are required by the primary functions. These peak estimation functions are used within the Database-Assisted Design software packages for rigid, gable-roofed buildings and for flexible, high-rise buildings, also available for download through this website.
Download The following primary MATLAB functions are available for download:
  • maxminest.m - computes expected maximum and minimum values of time series (with standard deviations, if requested)
  • maxminqnt.m - computes quantiles of maximum and minimum values of time series
The following supplementary MATLAB functions are called by both functions above and are also available for download:
  • stdgaminv.m - computes the inverse of the standard gamma distribution function
  • stdnormcdf.m - computes the standard normal distribution function
  • stdnorminv.m - computes the inverse of the standard normal distribution function
The directory in which these files are downloaded should be added to the MATLAB search path so that the functions can be executed at the MATLAB command prompt.
maxminest The function maxminest can be called within MATLAB in the following alternative forms:
Syntax [max_est, min_est] = maxminest(X)
[max_est, min_est] = maxminest(X, dur_ratio)
[max_est, min_est, max_std, min_std] = maxminest(...)
Description The function maxminest returns expected maximum and minimum values of the input time series. Standard deviations can also be returned if requested.

The first input argument, "X", contains time series from which peaks are to be estimated, and it can be either a vector or a matrix. If "X" is a matrix, then each row is a separate time series, and the output arguments "max_est" and "min_est" are column vectors giving the expected maximum and minimum values, respectively, of each row in "X".

The optional second input argument, "dur_ratio", specifies the ratio of the duration for which peaks are required to the duration of the time series. For example, if a time series with duration of 30 min is available but it is required to estimate the peaks of a time series of the same process with duration of 60 min, then a value of 2 would be specified for the second input argument. If the second input argument is omitted or is empty, then the default value of 1 is used for "dur_ratio".

If maxminest is called with four output arguments, then standard deviations of the maximum and minimum are returned in addition to the expected values. Standard deviations are returned in the output arguments "max_std" and "min_std", which are column vectors with the same size as "max_est" and "min_est".

maxminqnt The function maxminqnt is called within MATLAB as follows:
Syntax [max_qnt, min_qnt] = maxminest(X, dur_ratio, CDF_qnt)
Description The function maxminqnt computes quantiles (i.e., values corresponding to specified probabilities of non-exceedance) of the maximum and minimum values of the input time series.

This function requires three input arguments. The first two input arguments, "X" and "dur_ratio", are the same as described above for the function maxminest. If the second input argument is empty, then the default value of 1 is used.

The third input argument, "CDF_qnt", is a vector containing values of the cumulative distribution function (between zero and one) for which quantiles of the maxima are to be returned in the output argument "max_qnt". For the minima, quantiles corresponding to a cumulative distribution of 1-CDF_qnt are returned in the output argument "min_qnt". Therefore, if a value of 0.75, for example, is specified for "CDF_qnt", then the resulting value of "max_qnt" has a 25% probability of being exceeded in the positive direction, while the resulting value of "min_qnt" has a 25% probability of being exceeded in the negative direction. If the vector "CDF_qnt" has more than one element, then the output arguments "max_qnt" and "min_qnt" will be matrices, with their columns corresponding to the elements of "CDF_qnt" and their rows corresponding to the rows of "X".

SED Home |  Extreme Winds Home |  Previous |  Next ]

Privacy Policy/Security Notice
Disclaimer | FOIA

NIST is an agency of the U.S. Commerce Department.

Date created: 01/26/2005
Last updated: 03/10/2011
Please email comments on this WWW page to SED_webmaster@nist.gov