Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лекции по МРРиИ, Геппенер В.В. / Симончик_Лекции / Лекция15 / Version2 / MFCCExtract / StdAfx
.h// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#if !defined(AFX_STDAFX_H__D5182BE9_6A5B_4986_B617_F95B61230183__INCLUDED_)
#define AFX_STDAFX_H__D5182BE9_6A5B_4986_B617_F95B61230183__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Insert your headers here
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>
#include <math.h>
// TODO: reference additional headers your program requires here
#define EXTERN_DEFINE extern "C" __declspec(dllexport)
typedef char INT8;
typedef unsigned char UINT8;
typedef short INT16;
typedef unsigned short UINT16;
typedef int INT32;
typedef unsigned int UINT32;
typedef double DOUBLE;
typedef struct
{
DOUBLE Re,Im;
} TCPoint;
#define MAX_FFT_LENGTH 256
#define MAX_BLOCK_SIZE 256
#define MAX_BLOCKS_COUNT 300
#define PI 3.1415926535897932384626433832795
#define MFCC_SIZE 20
typedef struct
{
DOUBLE Coefficient[MAX_BLOCKS_COUNT][MFCC_SIZE];
UINT16 Len;
//DOUBLE Sample[MAX_BLOCKS_COUNT][MAX_BLOCK_SIZE];
//DOUBLE AbsSpecter[MAX_BLOCKS_COUNT][MAX_BLOCK_SIZE];
}TMFCC;
typedef struct
{
DOUBLE w[MFCC_SIZE+1][MAX_BLOCK_SIZE+2]; //весовые окна
UINT16 M[MFCC_SIZE+1]; //начальнаые частоты фильтров
UINT16 N[MFCC_SIZE+1]; //длины фильтров
} TFiltersSet;
class CBlock
{
public:
DOUBLE Sample[MAX_BLOCK_SIZE];
DOUBLE AbsSpecter[MAX_BLOCK_SIZE];
DOUBLE CeipCoeff[MFCC_SIZE];
UINT16 Size;
public:
void FFTransform(void);
void GetCeipCoeffs(TFiltersSet* FiltersSet);
};
class CMainVector
{
public:
UINT16 Len;
UINT16 BlocksSize;
CBlock Block[MAX_BLOCKS_COUNT];
TFiltersSet FiltersSet;
void Init(INT16* Buffer,UINT16 BufferLen, UINT16 BlockSize, UINT16 BlockStep);
void FFTransform(void);
void GetCeipCoeffs(void);
};
EXTERN_DEFINE void GetMFCC(INT16* Buffer,UINT16 BufferLen, UINT16 BlockSize, UINT16 BlockStep, TMFCC* MFCC);
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__D5182BE9_6A5B_4986_B617_F95B61230183__INCLUDED_)