⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apexp.c

📁 文件系统在DSP5509上的实现
💻 C
字号:

#include "VoiceProcess.h"



extern DATA   fft[];
Uint16 jishuqi;
int ApexMov[15];


///////////////////////////////////////////////////////////////////
//   输入数据 fft[]
//   输出数据 jishuqi
//
//////////////////////////////////////////////////////////////////

void ApexP(void)
{ 
  Uint16 i,k=0,F;
  int Val1=0,Val2=0;
  jishuqi=0;
  for(i=0;i<15;i++)
  {
   ApexMov[i]=0;
  }
  for(i=15;i<200;i++)
  {
    if((fft[i]>fft[i-1])&&(fft[i]>fft[i-2])&&(fft[i]>fft[i-3])&&(fft[i]>fft[i-4])&&
       (fft[i]>fft[i-5])&&(fft[i]>fft[i-6])&&(fft[i]>fft[i-7])&&(fft[i]>fft[i-8])&&
       (fft[i]>fft[i+1])&&(fft[i]>fft[i+2])&&(fft[i]>fft[i+3])&&(fft[i]>fft[i+4])&&
       (fft[i]>fft[i+5])&&(fft[i]>fft[i+6])&&(fft[i]>fft[i+7])&&(fft[i]>fft[i+8])&&
       (fft[i]>80))
    {
      ApexMov[k]=i;
     
      i+=10;
      k++; 
      if(k>14)k=14;
    }
     
  }
  
  F=24;i=1;
 /* if(ApexMov[0]>F)            //20为中心频率
    Val2=ApexMov[0]-F;
  else 
    Val2=F-ApexMov[0];
    
  if(Val2<8){
      jishuqi++;
      F=ApexMov[0];
   }   
  */ 
  while (ApexMov[i]!=0)
  {
       Val1=ApexMov[i]-ApexMov[i-1];
       if(Val1>F)
         Val2=Val1-F;  
       else 
         Val2=F-Val1;
     
      if((Val2<3))
      {
         jishuqi++;          //两个峰之间的距离合适,计数值加一。
         if(jishuqi==1)
           F=Val1; 
      }
      
      i++;
   }


}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -