class.m

来自「这是一个用于语音信号处理的工具箱」· M 代码 · 共 59 行

M
59
字号
function [Vtype]=class(energy, zcr)

nframe=length(energy);
emean=mean(energy);
zmean=mean(zcr);

for i=1:nframe,
	if energy(i) > 0.3*emean & zcr(i) < zmean
		Vtype(i)=1;
	elseif zcr(i) > 0.3*zmean & energy(i) < emean
		Vtype(i)=0.5;
	else
		Vtype(i)=0;
	end
end

esum=0;
zsum=0;
count=0;
for i=1:nframe,
	if Vtype(i) == 1
		esum=esum+energy(i);
		zsum=zsum+zcr(i);
		count=count+1;
	end
end
vemean=esum/count;
vzmean=zsum/count;


esum=0;
zsum=0;
count=0;
for i=1:nframe,
	if Vtype(i) == 0.5
		esum=esum+energy(i);
		zsum=zsum+zcr(i);
		count=count+1;
	end
end
uvemean=esum/count;
uvzmean=zsum/count;

for i=1:nframe,
	if Vtype(i) == 0
		dist(1)=sqrt((energy(i)-energy(1))^2+(zcr(i)-zcr(i))^2);
		dist(2)=sqrt((energy(i)-vemean)^2+(zcr(i)-vzmean)^2);
		dist(3)=sqrt((energy(i)-uvemean)^2+(zcr(i)-uvzmean)^2);
		[Y,IN]=min(dist);
		if IN == 1
			Vtype(i) = 0;
		elseif IN == 2
			Vtype(i) = 1;
		elseif IN == 3
			Vtype(i) = 0.5;
		end
	end	
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?