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

📄 newmath.h

📁 winsail v2.0是用于DOS下的图形界面空间系统
💻 H
字号:
#ifndef _NEWMATH_H_
#define _NEWMATH_H_


#define DF_FILTER_NULL      0
#define DF_FILTER_LOWPASS   1
#define DF_FILTER_HIGHPASS  2
#define DF_FILTER_BELDPASS  3
#define DF_FILTER_BELDSTOP  4

#define DF_WINDOW_RECTANGLE  0 //矩形窗
#define DF_WINDOW_BARTLETT   1 //三角形窗
#define DF_WINDOW_HANNING    2 //汉宁窗
#define DF_WINDOW_HAMMING    3 //海明窗
#define DF_WINDOW_BLACKMAN   4 //布莱克窗
#define DF_WINDOW_SINXX      5 //
#define DF_WINDOW_COS        6 //余弦边窗
#define DF_WINDOW_KAISER     7 //凯塞窗
#define DF_WINDOW_KAISER_EX  8 //修正的凯塞窗

struct FILTER_PARAMETER
{
	BOOL   bEmulation;
	BOOL   bFilter;

	int    nFilter;
	int    nWindow;
	int    nChannel;

	double dbSampleFreq;	
	int    nDelay;
	double dbFreqLow;
	double dbFreqHigh;
};

struct WAVE_ATTRIB
{
	BOOL bWave;
	int  nWave;
	
	double dbAmp;
	double dbFreq;
	double dbRatio;
	double dbPhase;
};

float GetMin(float *pfData,int nCount);
float GetMax(float *pfData,int nCount);
float GetAverage(float *pfData,int nCount);
float GetDelta(float *pfData,int nCount);
long  GetSum(BYTE *pByte,int nCount);

BOOL  GetSinWave(WORD *pwData, int nCount, WORD wAmp, double dbSignFreq,
    double dbPhase, WORD wDC, double dbSampleFreq, BOOL bAdd);
BOOL  GetSinWave(float *pfData, int nCount, double dbAmp, double dbSignFreq, double dbPhase, double dbDC, double dbSampleFreq, BOOL bAdd);
BOOL  GetRectangleWave(float* pfData,int nCount,double dbAmp,double dbSignFreq,double dbPhase,double dbDC,double dbRatio,double dbSampleFreq,BOOL bAdd);
BOOL  GetTriangleWave(float* pfData,int nCount,double dbAmp,double dbSignFreq,double dbPhase,double dbDC,double dbRatio,double dbSampleFreq,BOOL bAdd);
BOOL  GetPurseWave(float* pfData,int nCount,double dbAmp,double dbSignFreq,double dbPhase,double dbDC,double dbSampleFreq,BOOL bAdd);

//BOOL far EmulationSurge9225(WORD* pwData,int nCount,int nBase,int nOscillatory,int nDivideFreq,BOOL bInternalTrigger);
BOOL far EmulationSurge(WORD* pwData, int nCount, int nPrecision);

void  Dft_InternalDouble(float* pfReal,float *pfImage,int nCount);
void  Dft_InternalSingle(float* pfReal,float *pfImage,int nCount);
void  Fft_InternalDouble(float *pfReal,float *pfImage,int nCount);
void  Fft_InternalSingle(float *pfReal,float *pfImage,int nCount);
float WaveDistortion(float *pfReal,float *pfImage,int nCount,double dbWaveFreq,double dbSampleFreq);

double GetWindowCoefficient(int nLocation ,int nDelay,int nWindowStyle);
double GetLowPassCoefficient_Window(int nLocation ,int nDelay,double dbFc,double dbS,int nWindowStyle);
double GetHighPassCoefficient_Window(int nLocation ,int nDelay,double dbFc,double dbS,int nWindowStyle);
double GetBeldPassCoefficient_Window(int nLocation ,int nDelay,double dbFc1,double dbFc2,double dbS,int nWindowStyle);
double GetBeldStopCoefficient_Window(int nLocation ,int nDelay,double dbFc1,double dbFc2,double dbS,int nWindowStyle);
BOOL GetFilterCoefficient_Window(double* pdbCoefficient ,int nDelay,double dbFc1,double dbFc2,double dbS,int nWindowStyle,BOOL bFilterStyle);

void Fc_Filter_D21(double* pdbData,int nCount,double* pdbFilterCoefficient,int nDelay);
void Fc_Filter_D21(float* pfData,int nCount,double* pdbFilterCoefficient,int nDelay);
void Fc_Filter_D21(WORD* pwData,int nCount,double* pdbFilterCoefficient,int nDelay);




void far GetMin2Coordinate(float* pfDataX, float* pfDataY, int nCount, float* pfK, float* pfB, float* pfR2);

BOOL   ExploreFormature(double* pdbA, double* pdbY, int nCount, double* pdbX);
BOOL   CurveFittingFormature(float* pfX, float* pfY,int nCount,int nRank,double* pdbA);
BOOL   CurveFittingFormature(double* pdbX,double* pdbY,int nCount,int nRank,double* pdbA);
double GetCurveFittingFormatureValue(double* pdbNewA, int nRank,double dbValue);

void    GetSinPeriod(float *pfWave,int nCount,int nIndex,int *pnStart,int *pnEnd,int *pnMiddle,int nValidLen = 10);
float  GetAntiLineCoordinateXY(float x1, float y1, float x2, float y2, float fR);
float  GetLineCoordinateXY(float fX1,float fY1,float fX2,float fY2,float fValue);
void   TransrateWave(float* pfWave, int nCount, float fX1, float fY1, float fX2, float fY2);
float  Modify_AverageDC(WORD *pwData,int nCount,float fX1,float fY1,float fX2,float fY2);
float  Modify_AverageAC(WORD *pwData,int nCount,float fX1,float fY1,float fX2,float fY2);
float  Modify_AverageDC(float *pfData,int nCount,float fX1,float fY1,float fX2,float fY2);
float  Modify_AverageAC(float *pfData,int nCount,float fX1,float fY1,float fX2,float fY2);
void   FilterDC(WORD *pwData,int nCount);

#endif

⌨️ 快捷键说明

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