• alihao
    了解作者
  • matlab
    开发工具
  • 181KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 47
    下载次数
  • 2018-02-27 09:47
    上传日期
频域gsc, 频gsc, 域gsc, 你值得拥有
gsc.rar
  • noisy10.wav
    36.1KB
  • noisy15.wav
    36.1KB
  • FGSC.m
    2.2KB
  • clean.wav
    36.1KB
  • noisy20.wav
    36.1KB
  • Online_ATFGSC_Enhance.m
    3KB
  • shiyuchengxu.m
    807B
  • noisy5.wav
    36.1KB
  • noisy0.wav
    36.1KB
内容介绍
function enSig = Online_ATFGSC_Enhance(micSig, N_Beg, N_Len) warning off if nargin<1 disp(['mic signal is missing!']); return ; end [sigLen, micNum] = size(micSig); enSig = zeros(sigLen,1); if nargin<2 N_Beg = 0; end if nargin<3 N_Len = 3; end if micNum<2 disp(['the mic number can not be less than 1!']); return ; end wlen = 512; %wnd=hamming(wlen); synWin = sqrt(hamming(wlen)); numFrq = wlen/2+1; numFrm = floor(sigLen/wlen*2)-1; for m = 1:micNum %micSpec{m} = stft_trans(micSig(:,m)', wlen); %[numFrq, numFrm] = size(micSpec{1}); wnd(:,m) = hamming(wlen); R_Matr{m} = zeros(numFrq, micNum); end alpha = 0.9; miu = 0.3; W_Matr = zeros(numFrq, N_Len*(micNum-1)); %W_Matr = zeros(numFrq, N_Len*(micNum)); for frq = 1:numFrq R_Auto{frq} = 10^(-9)*eye( N_Len*(micNum-1)); R_Corr{frq} = zeros(1, N_Len*(micNum-1)); end for m = 1:micNum-1 ZM{m} = []; end for frm = 1:numFrm if mod(frm, 5000) == 1 t_time = frm*256/16000/60; disp(['the ', int2str(floor(t_time)),'th minutes']) end start_Index = (frm-1)*wlen/2+1; stop_Index = start_Index+wlen-1; oneFrameSig = micSig(start_Index:stop_Index,:); micSpec = fft(oneFrameSig.*wnd, wlen); micSpec(numFrq+1:end,:) =[]; for m = 1:micNum for mm = 1:micNum R_Matr{m}(:,mm) = alpha* R_Matr{m}(:,mm)+(1-alpha)*micSpec(:,m).*conj(micSpec(:,mm)); end end enSpec = zeros(numFrq, 1); for mm = 1:micNum ATF_Matr(:,mm)= R_Matr{1}(:,mm)./(R_Matr{mm}(:,mm)+10^(-9)); enSpec =enSpec+ ATF_Matr(:,mm).*micSpec(:,mm); if mm>1 %ZM{mm-1} = [ZM{mm-1}, micSpec{1}(:,frm) - ATF_Matr(:,mm).*micSpec{mm}(:,frm)]; ZM{mm-1} = [ZM{mm-1}, micSpec(:,mm)]; if frm>(N_Beg+N_Len) ZM{mm-1}(:,1) = []; end end end if frm>(N_Beg+N_Len) ZM_Ref = []; for mm = 1:micNum-1 ZM_Ref = [ZM_Ref, ZM{mm}(:,1:N_Len)]; end for frq = 1:numFrq R_Auto{frq} = alpha*R_Auto{frq} +(1-alpha)*ZM_Ref(frq,:)'*ZM_Ref(frq,:); R_Corr{frq} = alpha*R_Corr{frq} +(1-alpha)*ZM_Ref(frq,:)*enSpec(frq,1); W_Matr(frq,:) = R_Corr{frq}*inv(R_Auto{frq}); %%%%%%%%%%%%enchanement and dereverberation%%%%%%%%%%%%%%%%%%%% tt= W_Matr(frq,:)*ZM_Ref(frq,:)'; if abs(tt)<abs(enSpec(frq,1)) enSpec(frq,1) = tt; end %%%%%%%%%%%%%%%%%%%%%%%%%noise reduction%%%%%%%%%%%%%%%%%% % enSpec(frq,1)=enSpec(frq,1)-W_Matr(frq,:)*ZM_Ref(frq,:)'; end en_Spec = [enSpec; conj(enSpec(end-1:-1:2))]; enSig(start_Index:stop_Index,1) = enSig(start_Index:stop_Index,1) + synWin.*real(ifft(en_Spec)); end end %enSig = istft_trans(enSpec/(micNum), sigLen);
评论
    相关推荐
    • lcmv-窄带变宽带.rar
      The narrowband simulation is extended to wideband, LCMV beamforming is used, and references are included in the compression package
    • matlabcnhelp.rar
      matlab中文帮助很难找的,快速下载
    • MobilePolice.rar
      移动警察,车牌识别,车牌定位系统源代码,已经运用在移动车载稽查系统中。
    • SVM(matlab).rar
      支持向量机(SVM)实现的分类算法源码[matlab]
    • svm.zip
      用MATLAB编写的svm源程序,可以实现支持向量机,用于特征分类或提取
    • Classification-MatLab-Toolbox.rar
      模式识别matlab工具箱,包括SVM,ICA,PCA,NN等等模式识别算法,很有参考价值
    • VC++人脸定位实例.rar
      一个经典的人脸识别算法实例,提供人脸五官定位具体算法及两种实现流程.
    • QPSK_Simulink.rar
      QPSK的Matlab/Simulink的调制解调仿真系统,给出接收信号眼图及系统仿真误码率,包含载波恢复,匹配滤波,定时恢复等重要模块,帮助理解QPSK的系统
    • LPRBPDemo2009KV.rar
      车牌识别,神经网络算法,识别率高达95%,识别时间低于80ms。
    • MODULATION.RAR
      这个源程序代码包提供了通信系统中BPSK,QPSK,OQPSK,MSK,MSK2,GMSK,QAM,QAM16等调制解调方式 用matlab的实现,以及它们在AWGN和Rayleigh信道下的通信系统实现及误码率性能