Code covered by the BSD License  

Highlights from
Toolbox signal

image thumbnail
from Toolbox signal by Gabriel Peyre
Signal processing related functions.

compute_laplacian_distribution( name, m, sigma, alpha )
function h = compute_laplacian_distribution( name, m, sigma, alpha )

% compute_laplacian_distribution - compute a laplacian distribution
%
% h = compute_laplacian_distribution( name, m, sigma, alpha );
%
%   name can be :
%       'genlaplacian' : exp(-|x|^alpha / sigma)
%       'laplacian' : exp(-|x| / sigma)
%       'genlaplacian0' : only positive entries
%       'laplacian0' : only positive entries
%
%   Copyright (c) Gabriel Peyr 2006

if nargin<3
    alpha = 1;
end

s = length(sigma);
a = length(alpha);
if name(end)=='0'
    % non symmetric
    t = linspace(0,1,m)';
else
    t = linspace(-1,1,m)';
end
sigma = reshape(sigma(:),1,s);
alpha = reshape(alpha(:),1,1,a);
t = repmat( t, [1,s,a] );
sigma = repmat( sigma, [m,1,a] );
alpha = repmat( alpha, [m,s,1] );
h = exp( -abs(t./sigma).^alpha );

% normalize in order to sum to 1
s = sum(h,1); 
I = find(s<eps); s(I) = eps;
s = repmat(s,[m,1,1]);
h = h ./ s;

Contact us at files@mathworks.com