Code covered by the BSD License
-
ACdsgn(Fs)
-
ArgStruct=parseArgs(args,ArgS...
Helper function for parsing varargin.
-
[Fsn, p, q, errors]=get_p_q2(...
-
[SP, f, bin_size, num_average...
% pressure_spectra: Calculates an accurate estimate of the pressure spectra
-
[SP, f, num_averages_out]=spe...
% spectra_estimate: Is a rough estimate of the pressure spectra
-
[SP2, mean_array2]=sub_mean(S...
% sub_mean: Removes the running average from a time record given a sampling rate and high pass cutoff frequency.
-
[SPa]=test_pressure_spectra(d...
% test_spectra_estimate: runs demos for the pressure spectra program.
-
[bin_size, num_averages_out, ...
% number_of_averages: Calculates the number of points not overlapped from the array size, bin size, and number of averages
-
[bz, az]=bessel_digital(Fs, F...
% bessel_digital: creates a digital low pass bessel filter of order n
-
[cfa, SP, f, f_cal]=mic_calib...
% mic_calib: Uses a flat top window to calibrate using A-weighted or Linear weighting
-
[ftwcf]=window_correction_fac...
% window_correction_factor: Computes the factor for calibrating a Fourier Transform given specific processing parameters
-
[m2]=geospace(a, b, n, flag)
% geospace: caculates a geometric sequence or psuedogeometric sequence from a to b with n elements
-
[prms]=rms_val(p, dim)
% rms_val: Calculates the rms value along a specific dimension
-
[varargout]=convert_double(va...
% This program converts the inputs into double precision arrays. Then
-
[w]=flat_top(N, type)
% Flat top windows are used for calibration, because the wide main lobe
-
[y, x, a]=match_height_and_sl...
% match_height_and_slopes2: creates a quartic with specifed height and slope at the end points.
-
[y2, num_settle_pts, settling...
% filter_settling_data: Creates data to append to a time record for settling a filter
-
[y2]=remove_filter_settling_d...
% remove_filter_settling_data: removes data added to time records to settle the filter
-
[yAC, errors]=ACweight_time_f...
% ACweight_time_filter: Applies an A or C weighting time filter to a sound recording
-
[y]=moving(x,m,fun)
MOVING will compute moving averages of order n (best taken as odd)
-
[y_out, b, a]=bessel_antialia...
% bessel_antialias: applies an antialiasing digital Bessel filter
-
[y_out, t_out, b, a]=bessel_d...
% bessel_down_sample: applies an antialiasing digital Bessel filter
-
[y_out, x_out, y_in]=resample...
% resample_interp3: resamples using interp1 with additional options
-
h=subaxis(varargin)
SUBAXIS Create axes in tiled positions. (just like subplot)
-
loc=LMSloc(X)
-
View all files
from
Calibrated Spectral Analysis
by Edward Zechmann
Simple Fourier Spectral Analysis of sound pressure time record.
|
| loc=LMSloc(X)
|
function loc=LMSloc(X)
%Syntax: loc=LMSloc(X)
%_____________________
%
% Calculates the Least Median of Squares (LMS) location parameter
% of the columns of a matrix X. If X is a vector, it returns the LMS
% location parameter of its components. If X is a scalar, it returns
% X.
%
% loc is the LMS estimated vector of locations.
% X is the matrix with the data sets.
%
% Reference:
% Rousseeuw PJ, Leroy AM (1987): Robust regression and outlier detection. Wiley.
%
%
% Alexandros Leontitsis
% Institute of Mathematics and Statistics
% University of Kent at Canterbury
% Canterbury
% Kent, CT2 7NF
% U.K.
%
% University e-mail: al10@ukc.ac.uk (until December 2002)
% Lifetime e-mail: leoaleq@yahoo.com
% Homepage: http://www.geocities.com/CapeCanaveral/Lab/1421
%
% Sep 3, 2001.
if nargin<1 | isempty(X)==1
error('Not enough input arguments.');
else
% X must be 2-dimensional
if ndims(X)>2
error('Invalid data set.');
end
% If X is a row vector make it a column vector
if size(X,1)==1
X=X';
end
% n is the length of the data set
n=size(X,1);
end
% For a single data point there is no need to proceed
if n==1
loc=X;
else
% Sort the data set to ascending order
X=sort(X);
% P. 169: the length of the "half" of the data points
h=floor(n/2)+1;
% P. 169: determine the shortest half and compute its midpoint
j=1:n-h+1;
range=X(j+h-1,:)-X(j,:);
% Calculate the location parameter for every column of X
for i=1:size(X,2);
f=find(range(:,i)==min(range(:,i)));
loc(i)=median((X(f+h-1,i)+X(f,i))/2);
end
end
|
|
Contact us at files@mathworks.com