matlab去噪声方法,matlab滤除音频噪声

  matlab去噪声方法,matlab滤除音频噪声

  【信号去噪】基于Boll的改进谱减法语音去噪包含Matlab源代码_ Matlab仿真博客的技术博客_博客

  1导言

  编辑

  2部分代码函数output=spectralsubim(信号,风,公司,NIS,伽马,贝塔)

  nwin=长度(风);

  If (nwin==1)%确定窗口长度是否为1。如果为1,则表示没有开窗函数。

  W=风;%是,帧长度=风

  wnd=汉明(W);

  其他

  W=nwin%否,帧长度=窗口长度

  wnd=风;

  目标

  nfft=W;

  y=enframe(signal,W,Inc);

  Y=fft(y,nfft);

  YPhase=angle(Y(1:fix(end/2) 1,);嘈杂语音的百分比相位

  Y=abs(Y(1:fix(end/2) 1,))。^gamma;%功率谱

  numberOfFrames=size(Y,2);

  N=mean(Y(:1:NIS));%初始能谱平均值D(k)

  NRM=零(大小(N));%最大噪声残留

  noise counter=0;

  noise length=9;%噪声平滑因子

  YS=Y;%平均光谱值

  对于i=2:(numberOfFrames-1)

  YS(:i)=(Y(:i-1) Y(:i) Y(:I 1))/3;

  目标

  对于i=1:numberOfFrames

  [NoiseFlag,SpeechFlag,NoiseCounter,Dist]=vad_LogSpec(Y(:I)。^(1/gamma),n.^(1/gamma),noisecounter);基于光谱距离的% VAD检测

  如果SpeechFlag==0

  N=(NoiseLength*N Y(:I))/(noise length 1);%更新和平滑噪声

  NRM=马克斯(NRM,YS(:I)-N);%更新最大噪声残留。

  x(:i)=Beta*Y(:I);

  其他

  D=YS(:I)-N;%光谱减法

  I1i帧数%减少噪声残留

  对于j=1:长度(D)

  如果NRM(j)

  D(j)=min([D(j) YS(j,i-1)-N(j) YS(j,I 1)-N(j)]);

  目标

  目标

  目标

  x(:i)=max(D,0);

  目标

  目标

  output=overlapadd2(x.^(1/gamma),yphase,w,inc);3模拟结果

  编辑

  4参考文献[1]林禽,张道新,吴晓佩。基于改进谱减法的语音去噪新方法[J].计算机技术与发展,2007,17(7):4。

  博主:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等领域的Matlab仿真。相关的matlab代码问题可以私信交流。有些理论引用自网络文献。如有侵权,联系博主删除。

  编辑

  原创作品来自matlab研究助手,

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: