# 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
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，里面有题目和源程序，能够识别十个数字。