逆功率谱FFT

时间:2015-07-25 20:46:00

标签: matlab

我想运行与语音增强有关的代码 基于深度神经网络,我们的步骤是 1帧信号*汉明窗口 2对数功率谱框 3 - 深度学习 4反向输出信号 所以我的问题是反转不能返回真正的答案 我想s = out(:) 我的代码

  function [ out ] = dfft( s )


  N=300;
   M=20;
   L=length(s);

  NumFram=floor(L/(N-M))-1;
    frames=zeros(NumFram,N);
  for i=1:N

      frames(1,i)=s(i);

   end
   j=1;


  for j=2:NumFram
  n=1;

  for i= (j-1) * (N-M) : (j-1) * (N-M) + N

  frames(j,n)=s(i);
    n=n+1;


 end
 end

 frames(:,N+1)=[];


 HamiW=zeros(1,N);
 HamW=hamming(N);

for i=1:N
HamiW(1,i)=HamW(i);
end


Y=zeros(NumFram,N);

Y=frames*diag(HamiW);

 FFT=zeros(NumFram,N);


 for i=1:NumFram

    FFT(i,:)=fft(Y(i,:));
      for j=1:N
        phase(i,j)=atan(imag(FFT(i,j))/real(FFT(i,j)));
        logfft(i,j)=FFT(i,j)*conj(FFT(i,j));
         Z=sqrt(logfft(i,j));
         S(i,j)= complex(Z*cos(phase(i,j)),Z*sin(phase(i,j)));


 end
out(i,:)=ifft(S(i,:));

end





end

0 个答案:

没有答案