ylabel('Amplitude'); end
saveas(gcf,'q1.jpg'); 附录二: 均值
function fei=feipj() fei=zeros(55125,1); for i=1:40
a=['非' num2str(i)]; load(a) fei=fei+y; end
附录
声音模型的识别与建立
fei=fei/40; 短时平均能量
function energy=nengliang(y) s=fra(55,55,y) ;
s2=s.^2; %一帧内各样点的能量 energy=sum(s2,2) ; %求一帧能量
subplot(2,2,1) %定义画图数量和布局 plot(energy) %画N=55时的语音能量图 xlabel('帧数') %横坐标 ylabel('短时能量 E') %纵坐标 title('N=55') %曲线标识
s=fra(95,95,y) ; s2=s.^2;
energy=sum(s2,2) ; subplot(2,2,2)
plot(energy) %画N=95时的语音能量图 xlabel('帧数')
ylabel('短时能量 E') title('N=95')
s=fra(125,125,y) ; s2=s.^2;
energy=sum(s2,2);
subplot(2,2,3)
plot(energy) %画N=125时的语音能量图 xlabel('帧数')
ylabel('短时能量 E') title('N=125')
s=fra(165,165,y) ; s2=s.^2;
energy=sum(s2,2);
subplot(2,2,4)
plot(energy) %画N=165时的语音能量图 xlabel('帧数')
ylabel('短时能量 E') title('N=165')
function f=fra(len,inc,x)
fh=fix(((size(x,1)-len)/inc)+1); f=zeros(fh,len); i=1;n=1; while i<=fh j=1;
while j<=len
声音模型的识别与建立
f(i,j)=x(n); j=j+1;n=n+1; end
n=n-len+inc; i=i+1; end
短时平均过零率 function f=zcro(x)
f=zeros(size(x,1),1); %生成全零矩阵 for i=1:size(x,1)
z=x(i,:); %提取一行数据 for j=1:(length(z)-1); if z(j)*z(j+1)<0; f(i)=f(i)+1; end end end
function zcr=guoling(x)
s=fra(125,125,x);%分帧,帧移110 zcr=zcro(s);%求过零率 figure(1); subplot(2,1,1) plot(x); title('非'); xlabel('Time');
ylabel('Amplitude'); subplot(2,1,2) plot(zcr);
xlabel('帧数'); ylabel('过零次数');
title('原始信号的过零率'); 短时自相关函数
function A1=zixiangguan(s1) N=125;
A=[]; %加N=125的矩形窗 for k=1:125; sum=0;
for m=1:N-k+1;
sum=sum+s1(m)*s1(m+k-1); %计算自相关 end
A(k)=sum; end
for k=1:125