⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ggmme.m

📁 这个matlab程序用于实现广义高斯分布的参数估计
💻 M
字号:
function [mu, alpha, beta] = ggmme(x)
% GGMME Moment matching estimator for generalized Gaussian pdf
%
%       [mu, alpha, beta] = ggmme(x)
%
% Input:
%       x: Input data
%
% Output:
%	mu, alpha, beta: paramaters of generalized Gaussian pdf
%	   f(x) = K * exp(-(abs(x-mu)/alpha)^beta)
%
% Author: Minh N. Do, Dec. 1999

x = x(:);

% Estimate the mean
mu = mean(x);

m1 = mean(abs(x - mu));
m2 = mean((x - mu) .* (x - mu));

% beta = F^(-1)(m1^2 / m2);
% alpha = m1 * gamma(1/beta) / gamma(2/beta);

fbeta = inline('exp(2 * gammaln(2 ./ x) - gammaln(3 ./ x) - gammaln(1 ./ x))', 'x');
F = sprintf('fbeta(x) - %g', m1^2 / m2);

try
    beta = fzero(F, [.01, 5]);
catch
%    warning('m1^2 / m2 is out of the expected range');
    if (m1^2 / m2) > fbeta(5)
	beta = 5;
    else
	beta = 0.01;
    end    
end

alpha = m1 * exp(gammaln(1/beta) - gammaln(2/beta));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -