% Algoritmo EM function [P,Pold,mu_,Pk_p,v_,Xgrid,selecaux,indexaux]=EMmasking4(x,Kestim); iter=100; step=50; stop=.1; K=Kestim; nbins=100; %x=sort(x); %uso los percentiles pmin y pmax para el histograma pmin = prctile(x,2); pmax = prctile(x,98); Xgrid=linspace(pmin,pmax,nbins); indexaux=find(x>pmin & x0)))+min(Xgrid); %inicializo Pk_p a los valores del histograma en mu_ normalizando para que %la suma sea 1. for i=1:K Pk_p(i,1)=Ni(max(find(Xgridstop | it<2 %for it=1:iter it=it+1; fx_p=zeros(length(selecaux),1); for k=1:K fx_kp(:,k)=1/(sqrt(2*pi*v_(k)))*exp(-(selecaux-mu_(k)).^2/(2*v_(k))); fx_p=fx_p+fx_kp(:,k)*Pk_p(k); end for k=1:K; Pk_xp(:,k)=(fx_kp(:,k)*Pk_p(k))./fx_p; Pk_p(k)=sum(Pk_xp(:,k))/length(selecaux); % Nueva prob. estados mu_(k)=sum(Pk_xp(:,k).*selecaux)/sum(Pk_xp(:,k)); % Nuevos par´ametros. v_(k)=sum(Pk_xp(:,k).*((selecaux-mu_(k))).^2)/sum(Pk_xp(:,k)); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Este bloque dibuja las dos graficas de los retardos % Tego que devolver: % K SI, es Kestim % Pk_p SI % mu_ SI % v_ SI % X , Ni salen de: [Ni,X]=hist(selecaux,Xgrid); % xx , fx no hacen falta % selecaux SI %figure(2);clf; %[xx,fx]=dibuja_GM(K,Pk_p,mu_,v_); %subplot(211);hold on; %bar(X,Ni/length(selecaux)*100/(max(selecaux)-min(selecaux))); %plot(xx,fx,'r','LineWidth',2); %hold off;drawnow %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Pindexold(it)=sum(log(fx_p)); Pindexold(it)=ni*(sum(log(fx_p))-log(length(selecaux)))/2; %introduzco la penalización +ni*log(N) siendo ni el número de parámetros %y N el número de muestras. %Pindex(it)=sum(log(fx_p))-ni*log(length(selecaux))/2; Pindex(it)=log10(10^(sum(log(fx_p)))-ni*log(length(selecaux))/2); delta=Pindex(it)-P; P=Pindex(it); Pold=Pindexold(it); end e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.


SEPARACIÓN CIEGA DE FUENTES EN MEZCLAS SINTÉTICAS DE VOZ

: Muñoz Cueva, Óscar
: Ingeniería Telecomunicación
Contenido del proyecto: