《语音信号基音周期检测的matlab程序》由会员分享,可在线阅读,更多相关《语音信号基音周期检测的matlab程序(2页珍藏版)》请在人人文库网上搜索。
1、function nmax=find_maxn(r)%寻找峰值最大的n值及基音周期%r,自相关序列%maxn,为峰值最大的nzer=find(r=0); %找第一个零点如果存在jiaocha=0; %找第一近零点ii=1;while (jiaocha0 & r(ii+1)0 %检查是否存在零点if zer(1)aver/5);value(index)=0; %去除大野点的影响len=len-length(index);for jj=1:3:len/3 %中值平滑,滑动窗口宽度3,精度为中值1/4(剔除野点)average=(value(jj)+value(jj+1)+value(jj+2)/3;for kk=1:3if abs(value(jj-1+kk)-average)average/4value(jj-1+kk)=0; %将野点置零,同时数组长度减一len=len-1;endendendfigure(2)stem(value);axis(0 length(value) 0 max(value)Tp=sum(value)/len/fs %求基音周期(Tp。