1 / 2
文档名称:

谱减法的Matlab程序.doc

格式:doc   大小:48KB   页数:2页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

谱减法的Matlab程序.doc

上传人:xgs758698 2016/8/3 文件大小:48 KB

下载得到文件列表

谱减法的Matlab程序.doc

文档介绍

文档介绍:谱减法的 Matlab 程序: ----------------------------------------------------------------------------------------------------- clear; [xx,fs]=wavread('I:\aa\'); % 读语音信号[team,row]=size(xx); if row==2 x=(xx(:,1)+xx(:,2))/2; % 将多通道求平均值 yy=x; else x=xx; yy=x; end x=x-mean(x)+*rand(length(x),1); % 去直流分量并加噪 N=length(x); n=220; % 每一帧长 n1=160; % 每两帧重合的长度 frame=floor((N-n)/(n-n1)); % 帧数 for i=1:frame y1=x((i-1)*(n-n1)+1:(i-1)*(n-n1)+n).*hamming(n); % 每一帧对应的语音信号 fy=fft(y1,n); %求 fft nen(i,:)=abs(fy).^2; % 求能量 ang(i,:)=angle(fy); % 求角度 end yuzhi=sum(sum(nen(2:5,:)))/(4*n); % 求阈值,信号开始阶段的能量平均值 for i=1:frame nen(i,:)=nen(i,:)-yuzhi; % 减谱 nen(i,find(nen(i,:)<0))=0; % 将小于 0 的部分赋值为 0 end for i=1:frame nen(i,:)=sqrt(nen(i,:)); jie=nen(i,:).*exp(j*ang(i,:)); % 求频域函数 out(i,:)=real(ifft(jie))./hamming(n)'; % 求逆 fft end zong=out(1,:)'; %对 out 求导,以便于原信号比较 jiewei=n; for i=2:frame % 将一系列的帧组合还原 zong(jiewei-n1+1:jiewei)=(zong(jiewei-n