Skip to main content

Berlage Wavelet

An implementation of the Berlage wavelet that I find useful for geophysical modeling.
See this paper for a summary of the wavelet. A matlab function for generating the wavelet is below.

Below Code Language = “matlab”

function w=berlage_wavelet(t,A,alpha,n,f0,phi0)
%
% USAGE: w=berlage_wavelet(t,A,alpha,n,f0,phi0)
%
% INPUT:
% t = time vector (a.u.)
% A = initial amplitude (a.u.)
% alpha = exponential decay factor (non-negative and real)
% n = time exponent (non-negative and real)
% f0 = dominant frequency (Hz)
% phi0 = initial phase angle (radians) [-pi/2,+pi/2]
% OUTPUT:
% w = the berlage wavelet of length(t)
%
% NOTES: The berlage wavelet is causal as well as continuously
% differentiable to at least order [n - 1].
%
% Written by Dylan Mikesell
% 17 June 2013

% check alpha
if (alpha= 0 ',alpha);
elseif isreal(alpha)~=1
error('MATLAB:berlage_wavelet',...
'alpha = %d + %diis imaginary \nMake alpha a real number ',real(alpha),imag(alpha));
end

% check n
if (n= 0 ',n);
elseif isreal(n)~=1
error('MATLAB:berlage_wavelet',...
'n = %d + %di is imaginary \nMake n a real number ',real(n),imag(n));
end

w=A*heaviside(t).*(t.^n).*exp(-alpha*t).*cos(2*pi*f0*t + phi0);

return