📄 apexp.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 + -