www.pudn.com > phsscal.zip > winner.m, change:2003-11-20,size:546b


function y=winner(x,n) 
%this function complete speech enhance with winner filter . 
%x is a .wav file squency; 
%n is the number of a  frame speech; 
L=length(x); 
N=ceil(L/n); 
 
noise_psd=prepower(x,15,n,2); 
 
for k=1:n:N*(n-1), 
   for j=1:n, 
      if (k+j>L) 
      x(k+j)=0; 
      end; 
 
      x_window(j)=x(k+j-1); 
   end; 
   X=fft(x_window,n); 
   phase=angle(X); 
   X=sum2(X,2); 
   S=max((X-noise_psd),0); 
   G_k=S./X; 
   A=G_k.*(X.^0.5); 
   S=A.*exp(i*phase); 
   s(k:k+n-1)=ifft(S,n); 
end; 
 
y=s;