////////////////////////////////////////////////////////////////////////////// //文件: SegY格式文件操作 //主要功能: // //程序编写: //日期:2005-12-07 // // ///////////////////////////////////////////////////////////////////////////// #pragma once #include ".\MxnRow.h" namespace NMxn { class AFX_EXT_CLASS CMxnMath { CMxnRow* pRow; public: CMxnMath(CMxnRow* row); virtual ~CMxnMath(void); void Play(int type); //对道进行规一化处理,返回平均值 double Uniform(); //产生均值为零、方差为0.5*0.5的正态分布白噪音序列 void Kfabg5(int n, double *y); //n为平滑点的个数,y为原值,yy为平滑后的值 void Point5Time3(int n, double *y, double *yy);//五点三次平滑 /////卡尔曼滤波///////////////////////////////////////////////////////////////// //a存放原矩阵,返回时存放其逆矩阵,n为矩阵的阶数 int Dcinv(double* a, int n);//全选主元高斯-约当消去法求n阶实矩阵的逆矩阵 int klman(int n,int m,int k, //卡尔曼滤波 double *f,double *q,double *r,double *h, double *y,double *x,double *p,double *g); //////α-β-γ滤波///////////////////////////////////////////////////// void SmoothAbr(int n, double *x, double t, double a, double b, double c, double *y);//α-β-γ滤波 /////快速沃什变换/////////////////////////////////////////////////////////// //p存放输入序列,n为输入序列的长度,n = pow(2, k), x存放结果 void Walsh(double *p, int n, int k, double *x); }; }//namespace using namespace NMxn;