• 大小: 2KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-09-01
  • 语言: Matlab
  • 标签:

资源简介

基音周期的matlab程序 内容: 1、增加语音帧的长度 L>2M(基音帧); 2、利用必要的前处理技术:前置滤波器或削波处理;

资源截图

代码片段和文件信息

%function zhouqi=jiyinzhouqi(‘haha.wav‘)
%帧长和帧位移是重要的参数,位移是帧长的0~1/2
%zhouqi基音周期以毫秒为单位表示
[signalfs]=wavread(‘test2(228hz).wav‘);%用于得到声音文件的数据和采样率
shift=0.01;%每次移动10毫秒
shift=round(fs*shift);   %帧移
n1=fix(fs*0.01)+1;     %分析起点0.01ms帧长30ms
n2=fix(fs*0.03)+1;
shift_count=fix((length(signal)-n1)/shift);
value =zeros(1shift_count); %存放每次移位后的帧的基音周期
for ii=1:shift_count        %分析次数
   if n2     data=signal(n1:n2);   %加窗,提取一帧数据
     N=n2-n1+1;         %每一帧的长度
     R=zeros(1N);                
     for k=1:N-1          %求自相关序列
       for jj=1:N-k
         R(k)=R(k)+data(jj)*data(jj+k);
       end
     end
    value(ii)=find_maxn(R); %调用基音周期分析函数,求最大值所对应的位置,即基音周期
     n1=n1+shift;         %移动帧,计算下一帧的基音周期  
     n2=n2+shift;
   end
end
%figure(3)
%plo

评论

共有 条评论