首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于基音跟踪的基音同步加窗方法

基于基音跟踪的基音同步加窗方法
EN

Stack Overflow用户
提问于 2014-02-22 09:40:27
回答 1查看 1.3K关注 0票数 1

如注释链接所示,提取了Talkin稳健的音箱(函数名为"fxrapt")基音跟踪算法。

http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/doc/voicebox/fxrapt.html

然而,我需要通过检测每个基音周期内的最大振幅来找出LP误差信号中的基音脉冲。对于每一个螺距脉冲,一个两个音高周期的汉明窗口长。如果T(i-1),T(i),T(i+1)表示连续三个螺距脉冲的位置。如何为从T(i-1)到T(i+1)的音高脉冲设计分析窗口,如下面的链接图所示?

我正在为它寻找MATLAB代码。如果有人能帮我,我会很感激的。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-22 13:11:55

步骤:

  • 应用音高轨道来找出每一个帧的周期,不要在你的音轨中使用过高,你需要同步和线性地做它。
  • 在每次找到周期=P时,搜索范围1到P*2之间的信号的最大绝对振幅。

这两个步骤可以这样完成:

代码语言:javascript
复制
while ( (k+Step-1) <= Nsamples )

    frame = x(k:k+steps-1);

    P=PITCHTRACK_FUNCTION_HERE

    [v, l] = max(abs(frame(1:P*2)));

   if count == 1

      marks(count) = l;

   else

     marks(count) = l+k-1;

  count = count +1;

  k=k+Step;

end
  • 你现在有了所有的标志,指的是你的整个信号,然后绕着矢量标记走到一个两个音高周期长的汉明窗口! test=zeros(length(x),1);p=2:length(Mark)-2 last=marks(p-1);next=marks(p+1);test(last:next)=test(last:next) + x(last:next) .* hamming(长度(x最后:next));

PS:

X=你的信号

N个样本=长度(X)

K=从1开始

步骤= 256或512或1024或2048

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21952495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档