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

📄 check.cpp

📁 本程序用于检测音频文件中是否具有DTMF信号
💻 CPP
字号:
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include "dsp.h"

/*---------------------------------------------------------------------------*
 * 门限判决函数 check1
   门限1:DTMF信号强度门限
 *  要求:行、列频率能量最大值之和占据8个频点总能量的百分比是否大于ENERGY_THRESHOLD
 *(默认0.9)。不是则认为不是DTMF信号                                      *
 *---------------------------------------------------------------------------*/
int  check1(double a[],int x,int y)
 {   
	 #define THRESHOLD_SUM	0.9	
	 int i;
	 double max_sum=0;
	 double total_sum=0;
	 for(i=0;i<8;i++)
	 {
		 total_sum+=a[i];
	 }
     max_sum=a[x]+a[y];
	 if (max_sum/total_sum<=THRESHOLD_SUM)
	 {
	//	printf("check1 unqualified data\n");
		return Unqualified;
	 }
     return Qqualified;
 }

/*---------------------------------------------------------------------------*
 * 门限判决函数 check2
   门限2:行、列峰值门限
 *  要求:行、列能量最大值/行列能量次大值> PEAK_VALUE_THRESHOLD(默认14.2)。
 *  不是则认为不是DTMF信号,本函数为了简便,判断了所有其他三个值而没有寻找次大值*                                    *
 *---------------------------------------------------------------------------*/
int  check2(double a[],int x,int y)
 {   
	 #define THRESHOLD_ROW	14.2
     #define THRESHOLD_LINE	14.2
	 int i;
	 //行门限判决
	 for(i=0;i<4;i++)	
	 if((x!=i)&&(a[x]/a[i])<THRESHOLD_ROW)	
	 {//printf("check2 unqualified data\n");
		 return Unqualified;
	 }
	  //列门限判决
	 for(;i<8;i++)	
	 if((y!=i)&&(a[y]/a[i])<THRESHOLD_LINE)
		 {//printf("check2 unqualified data\n");
		 return Unqualified;
	 }
	 
     return Qqualified;
 }


/*---------------------------------------------------------------------------*
 * 门限判决函数 compare
   门限3:稳定信号门限
    实际的DTMF信号应持续超过一定长度的时间。
   所以应在连续检测到两次或两次以上同一信号时再认为信号存在
*                                    *
 *---------------------------------------------------------------------------*/
int  compare(int a,int b,int x,int y)
{
	if ((a==x)&&(b==y))
		return 0;
	else return 1;
}

⌨️ 快捷键说明

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