- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语音中提取基音频率matlab程序
语音中提取基音频率matlab程序
%%corr.m
% correlation for pitch estimation
% flag =1 from left to right, otherwise, from right to left
% r=corr(s,L,flag)
%
%
%flag==1时
%
%
%
%|--i----|
%s:.....................................................
% .
% .
% .
% .
% .
% .
%s:.....................................................
% |_______d________|__________________L-d_____________|
%返回值是一个序列
%注意到在做自相关时,错位值从20开始
%考虑到在用这个自相关序列时可能是用于求周期,这个20时有利的
%语音的基音周期一般在20到140,因此小于20没有周期
%而错开20以上可以避免出现不是所求的峰值避免出错
%求到结果后放到rr序列中时,注意到下标为i时实际上已经是错开
%i+20-1,因此pitch.m在调用这个时需要有一句p=19+ind_pitch;
function r=corr(s,d,flag)
epsilon=1.0e-10; % to avoid divided by zero
L=length(s);
NM=120;
if flag==1 % From left to right
for i=20:min(L-d,NM)
temp=0.0;
temp1=0.0;
temp2=0.0;
for j=1:d
temp=temp+s(j)*s(j+i);
temp1=temp1+s(j+i)*s(j+i);
temp2=temp2+s(j)*s(j);
end
pw1=sqrt(temp1)+epsilon;
pw2=sqrt(temp2)+epsilon;
r(i-19)=temp/(pw1*pw2);
end
else % From right to left
for i=20:min(L-d,NM)
temp=0.0;
temp1=0.0;
temp2=0.0;
for j=L-d+1:L
temp=temp+s(j-i)*s(j);
temp1=temp1+s(j-i)*s(j-i);
temp2=temp2+s(j)*s(j);
end
pw1=sqrt(temp1)+epsilon;
pw2=sqrt(temp2)+epsilon;
r(i-19)=temp/(pw1*pw2);
end
end
%%maxx.m
% Find all the local maxima of a function which are greater than
% t times the global maximum
% max_index=maxx(s,t)
%输入一个序列和一个标量t
%首先求出序列s的最大值max_value
%然后如果序列中的一个点比相邻两个点都大
%而且还大于max_value的t倍
%就把这个点的位置存放在序列mi中
%在序列mi最后再补上序列的最后一个点
%考虑到第一个点和最后一个点有可能满足要求
%但这两个点都不能跟旁边的比较
%所以还是把这两个点保留了,放在mi序列的第一个和最后一个
%实际上就是以最大值点的t倍为界找出这个界以上的极值点的位置
function mi=maxx(s,t)
max_value=max(s);
oldstate=0;
L=length(s);
j=1;
mi=[1];
for i=1:L-1
if s(i)s(i+1)
newstate=-1;
end
if s(i)t*max_value
您可能关注的文档
最近下载
- 《解析几何》教案--吕林根,许子道.pdf
- 美国加州桥梁抗震caltrans seismic design criteria vlysis.pdf VIP
- 2025云南省临沧市市级单位公开遴选(选调)工作71人笔试参考题库附答案解析.docx VIP
- HSE保障措施优化及实施方案研究.docx VIP
- 2025甘肃省公路交通建设集团武仙公路收费运营人员招聘61人笔试模拟试题及答案解析.docx VIP
- 2025年秋新鲁科版英语四年级上册全册课件.pptx
- 颚式破碎机技术参数.docx VIP
- 2024河南资本集团“方舟”第三批招聘41人笔试参考题库附带答案详解.pdf
- 《时尚配饰设计》课件.ppt VIP
- 高边坡专家论证PPT汇报材料(中建).ppt VIP
文档评论(0)