在网上下的源码,缺少fxa函数,谁知道fxa去哪里下载?
function [p,u,E]=trainGMM(x,pin,ui,Ei,n,M)
% function [p,u,E]=trainGMM(x,pin,ui,Ei,n,M)
%
% Train GMM of order M with the EM algorithm, using training data y and
% initial conditions ini.
%
% x - training data
% pin - initial p
% ui - initial u
% Ei - initial E
% M - number of mixtures
% n - iterations
%
% p - model weights
% u - model means
% E - model variance matrices
[T,D]=size(x);
p=pin;
u=ui;
for i=1:M
E(:,:,i)=Ei(:,:,i);
o(i,:)=diag(Ei(:,:,i))';
end
for j=1:n
for t=1:T
c(t)=0;
for k=1:M
c(t)=c(t)+p(k)*fxa(u(k,:),E(:,:,k),inv(E(:,:,k)),x(t,:));
%1/((2*pi)^(D/2)*sqrt(det(E)));
end
end
for i=1:M
[j,i];
a1=0;
a2=zeros(1,D);
a3=zeros(1,D);
invE=inv(E(:,:,i));
for t=1:T
ap=p(i)*fxa(u(i,:),E(:,:,i),invE,x(t,:))/c(t);
a1=a1+ap;
a2=a2+ap*x(t,:);
a3=a3+ap*x(t,:).^2;
end
% update parameters
p(i)=a1/T;
u(i,:)=a2/a1;
o(i,:)=a3/a1-u(i,:).^2;
if (o(i,:)<0.01)
o(i,:)=0.01;
end
E(:,:,i)=diag(o(i,:));
end
end


雷达卡


京公网安备 11010802022788号







