资源简介
基音周期的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
- 上一篇:基于遗传算法的TSP问题求解
- 下一篇:MATLAB怎样从新浪财经获取股票交易数据
评论
共有 条评论