You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.4 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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