|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
//文件: 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;
|