the spectral subtraction method.rar

  • liu8387
    了解作者
  • matlab
    开发工具
  • 695KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 5
    下载次数
  • 2020-08-05 16:39
    上传日期
麦克风阵列的谱减法,用于麦克风阵列的声增强
the spectral subtraction method.rar
  • Microphone array beamforming based on the spectral subtraction method
  • DAIMA
  • dataread5.m
    1.2KB
  • 5ch8k40cm01.dat
    960KB
  • beamform.m
    2.5KB
  • Microphone array beamforming based on the spectral subtraction method.rar
    337.3KB
内容介绍
close all; a1=0;a2=0;a3=0;a4=0;a5=0; nn1=zeros(5,1:26000); N=32;w=zeros(1,32);DD=zeros(1,32);var=0.99997;x=zeros(1,32); e=zeros(4,1:26000);Usf=0.0008; [n1,n2,n3,n4,n5]=dataread5('C:\MATLAB6p5\work\beamform\5ch8k40cm01.dat',80000); % 5ch8k1m4fu3cmcircle.dat',80000);21760);5ch8k1m4fu3cmcircle.dat'定义五个通道含噪声 sp=wavread('C:\MATLAB6p5\work\beamform\speech_dft.wav');%纯语音 for i=1:26000 speech(i)=sp(i*3); end %===初始化 %================================================= nn1(1,1:26000)=n1(1:26000)/50;nn1(2,1:26000)=n2(1:26000)/50; %自适应 nn1(3,1:26000)=n3(1:26000)/50;nn1(4,1:26000)=n4(1:26000)/50; nn1(5,1:26000)=n5(1:26000)/50; xx(1:26000)=nn1(5,1:26000)+speech; for aa=1:4 dd(1:26000)=nn1(aa,1:26000); for k=1:26000 if k<=32 x(1:k)=dd(k:-1:1); else x(1:32)=dd(k:-1:k-32+1); end y=w*x'; e(aa,k)=xx(k)-y; %e(aa,k)自适应输出 var=0.01*xx(k)^2+0.99*var; if k<=32 w(1:k)=w(1:k)+Usf*e(aa,k)*dd(k:-1:1)/var; else w(1:32)=w(1:32)+Usf*e(aa,k)*dd(k:-1:k-32+1)/var; end end end %spectral subtraction hanning=zeros(1,256);soutput=zeros(4,26000);szeros=zeros(1,26000); szeros=zeros(1,26000);Sout0=zeros(1,256); j=sqrt(-1);a=3,b=0.01; Snoise=zeros(1,256); phase=zeros(1,256); for n=1:256 hanning(n)=(1/2)*(1-cos((2*pi)*(n-1)/255)); end for i=1:8 %======================================= noise1=e(1,i*256-255:i*256).*hanning; Noise1=abs(fft(noise1)); Noise(i,1:256)=Noise1; if i>1 Noise(i,1:256)=Noise(i,1:256)-Noise(1,1:256); end end S0=zeros(4,1:26000); as=4; for k=1:4 as for i=1:200 snoise=e(k,(i-1)*128+1:(i-1)*128+256).*hanning; %重叠目的:抵消窗效应 phase=angle(fft(snoise)); Snoise=abs(fft(snoise)); for m=1:8 for n=1:256 if(Snoise(n)^2-Noise(m,n)^2)<0 Sout0(n)=0; else Sout0(n)=(Snoise(n)^2-Noise(m,n)^2)^0.5; end S0(k,n)=Sout0(n)*(cos(phase(n))+j*sin(phase(n))); end Snoise=Sout0; end sout0=ifft(S0(k,1:256)); szeros(((i-1)*128+1):((i-1)*128+256))=real(sout0); soutput(k,1:26000)=soutput(k,1:26000)+szeros; szeros=zeros(1,26000); end end output=zeros(1,26000); for i=1:4 output=soutput(i,1:26000)+output; end subplot(4,1,1) plot(xx) subplot(4,1,2) plot(e(1,1:26000)) subplot(4,1,3) plot(soutput(1,1:26000)) subplot(4,1,4) plot(output (1:26000)) end end end end
评论
    相关推荐
    • speech-enhancement.rar
      学习语音增强一篇很好的博士论文,希望对大家有帮助
    • paper2.rar
      基于小波阈值去噪的麦克风阵列语音增强方法
    • 视频会议系统.rar
      一套商用的视频会议程序(cool)。
    • 视频捕获-mpeg4压缩-网络传送源码(VC 6.0).rar
      视频捕获-mpeg4压缩-网络传送源码(VC 6.0).rar
    • VOIP_SRC_ALL.rar
      搞VOIP的一些原代码,包括MGCP,SIP,RTP/TRCP,SRTP(加密RTP)...等源码,参考价值无限!!这可是我所有的收藏阿,我都献给大家了:=)
    • mpeg.zip
      MPEG-2和MP3编解码
    • live.2008.01.04.tar.rar
      网络直播源代码,支持RTSP、RTP,支持的格式包括MPEG-1/2/4,MP3,H264等,功能强大,流媒体开发必须。
    • handvu-beta3.tar.gz
      结合摄像头使用,用于手部位置跟踪,精准度非常高,另可以识别六种手势。其手位跟踪模块可作为手势识别软件的一个组成部分,内含非常详细的说明文档。编译该代码,需要 OpenCV 0.97 或更高版本的支持。在Windows下的编译顺序为cubicles工程、handvu工程,之后根据视频数据来源要求编译其他代码。建议使用 Visual Studio 2003 ,如果需要编译 DirectX 相关模块,则请安装 DirectX SDK 9.0 或更高版本。
    • encore50src.zip
      mpeg4/divx编码程序,多谢qing_lee
    • 语音识别.rar
      老师布置的一个project,里面有题目和源程序,能够识别十个数字。