亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? kalmanfilter.cpp

?? VC.NET KalmanFilter.rar
?? CPP
字號:
// KalmanFilter.cpp : Defines the class behaviors for the application.
//

#include "stdafx.h"
#include "KalmanFilter.h"
#include "KalmanFilterDlg.h"
#include "math.h"
#include "myStruct.h"
#include "Matrix.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


/////////////////////////////////////////////////////////////////////////////
// CKalmanFilterApp

BEGIN_MESSAGE_MAP(CKalmanFilterApp, CWinApp)
	//{{AFX_MSG_MAP(CKalmanFilterApp)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG
	ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CKalmanFilterApp construction

CKalmanFilterApp::CKalmanFilterApp()
{
	// TODO: add construction code here,
	// Place all significant initialization in InitInstance
}

/////////////////////////////////////////////////////////////////////////////
// The one and only CKalmanFilterApp object

CKalmanFilterApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CKalmanFilterApp initialization

BOOL CKalmanFilterApp::InitInstance()
{
	AfxEnableControlContainer();

	// Standard initialization
	// If you are not using these features and wish to reduce the size
	//  of your final executable, you should remove from the following
	//  the specific initialization routines you do not need.

#ifdef _AFXDLL
	Enable3dControls();			// Call this when using MFC in a shared DLL
#else
	Enable3dControlsStatic();	// Call this when linking to MFC statically
#endif

	CKalmanFilterDlg dlg;
	m_pMainWnd = &dlg;
	int nResponse = dlg.DoModal();
	if (nResponse == IDOK)
	{
		// TODO: Place code here to handle when the dialog is
		//  dismissed with OK
	}
	else if (nResponse == IDCANCEL)
	{
		// TODO: Place code here to handle when the dialog is
		//  dismissed with Cancel
	}

	// Since the dialog has been closed, return FALSE so that we exit the
	//  application, rather than start the application's message pump.
	return FALSE;
}


BOOL CKalmanFilter::InitKalman(Kalman &kalman,Matrix stateInit,Matrix covInit, Matrix transitionMatrix, 
							   Matrix measureMatrxi,Matrix processNoiseCov, Matrix measureNoiseCov,
							   Matrix controlMatrix)
{
	if (stateInit.RowCount()!=kalman.DP||measureNoiseCov.RowCount()!=kalman.MP)
	{
		return false;
	}
	if (!positive(processNoiseCov)||!positive(measureNoiseCov))
	{
		return false;
	}
	kalman.state_post=stateInit;
	kalman.error_cov_post=covInit;
	kalman.transition_matrix=transitionMatrix;
	kalman.measurement_matrix=measureMatrxi;
	kalman.process_noise_cov=processNoiseCov;
	kalman.measurement_noise_cov=measureNoiseCov;
	if (kalman.CP>0)
	{
		kalman.control_matrix=controlMatrix;
		return true;
	}
	else
	{
		return false;
	}
	

}

BOOL CKalmanFilter::InitKalman(Kalman &kalman,Matrix stateInit,Matrix covInit, Matrix transitionMatrix, 
							   Matrix measureMatrxi, Matrix processNoiseCov, Matrix measureNoiseCov)
							   
{
	if (stateInit.RowCount()!=kalman.DP||measureNoiseCov.RowCount()!=kalman.MP)
	{
		return false;
	}
	if (!positive(processNoiseCov)||!positive(measureNoiseCov))
	{
		return false;
	}
	kalman.state_post=stateInit;
	kalman.error_cov_post=covInit;
	kalman.transition_matrix=transitionMatrix;
	kalman.process_noise_cov=processNoiseCov;
	kalman.measurement_noise_cov=measureNoiseCov;
	kalman.measurement_matrix=measureMatrxi;
		
	return true;

}


CKalmanFilter::CKalmanFilter(int MP,int DP,int CP)
{
	if (DP<=0||MP<=0)
	{
		AfxMessageBox("state and measurement vectors must have positive number of dimensions!");
		exit(0);
	}
	kalman.DP=DP;
	kalman.CP=CP;
	kalman.MP=MP;
	kalman.state_pre=kalman.state_pre.Zeros(kalman.DP,1);
	kalman.state_post=kalman.state_post.Zeros(kalman.DP,1);
	kalman.transition_matrix=kalman.transition_matrix.Zeros(kalman.DP,kalman.DP);
	kalman.process_noise_cov=kalman.process_noise_cov.Zeros(kalman.DP,kalman.DP);
	kalman.measurement_matrix=kalman.measurement_matrix.Zeros(kalman.MP,kalman.DP);
	kalman.measurement_noise_cov=kalman.measurement_noise_cov.Zeros(kalman.MP,kalman.MP);
	kalman.error_cov_pre=kalman.error_cov_pre.Zeros(kalman.DP,kalman.DP);
	kalman.error_cov_post=kalman.error_cov_post.Zeros(kalman.DP,kalman.DP);
	kalman.gain=kalman.gain.Zeros(kalman.DP,kalman.MP);
	if (kalman.CP>0)
	{
		kalman.control_matrix=kalman.control_matrix.Zeros(kalman.DP,kalman.CP);
	}
	kalman.temp1=kalman.temp1.Zeros(kalman.DP,kalman.DP);
	kalman.temp2=kalman.temp2.Zeros(kalman.MP,kalman.DP);
	kalman.temp3=kalman.temp3.Zeros(kalman.MP,kalman.MP);
	kalman.temp4=kalman.temp4.Zeros(kalman.MP,kalman.DP);
	kalman.temp5=kalman.temp5.Zeros(kalman.MP,1);
}

Matrix CKalmanFilter::KalmanPredict(Kalman &kalman,const Matrix control)
{
    Matrix result;

    /* update the state */

    /* x'(k) = x'(k) + B*u(k) */
	kalman.state_pre=(kalman.transition_matrix)*(kalman.state_post)+(kalman.control_matrix)*(control);
    /* update error covariance matrices */
    /* temp1 = A*P(k) */
    kalman.temp1=(kalman.transition_matrix)*(kalman.error_cov_post);
    /* P'(k) = temp1*At + Q */
	kalman.error_cov_pre=(kalman.temp1)*conj(kalman.transition_matrix)+(kalman.process_noise_cov);
    result = kalman.state_pre;

    return result;
}

Matrix CKalmanFilter::KalmanPredict(Kalman  &kalman)
{
    Matrix result;

    /* update the state */
    /* x'(k) = A*x(k) */
	kalman.state_pre=(kalman.transition_matrix)*(kalman.state_post);

    /* update error covariance matrices */
    /* temp1 = A*P(k) */
    kalman.temp1=(kalman.transition_matrix)*(kalman.error_cov_post);
    /* P'(k) = temp1*At + Q */
	kalman.error_cov_pre=(kalman.temp1)*conj_tran(kalman.transition_matrix)+(kalman.process_noise_cov);
    result = kalman.state_pre;

    return result;
}


Matrix CKalmanFilter::KalmanUpdate(Kalman &kalman, const Matrix measurement)
{
	Matrix result ;
	int meaRowCount=measurement.RowCount();
	int meaColCount=measurement.ColCount();
	Matrix meaTemp;
	meaTemp=meaTemp.Zeros(meaRowCount,1);
	for (int i=0;i<meaRowCount;i++)
	{
		meaTemp(i,0)=measurement(i,meaColCount-1);
	}
    /* temp2 = H*P'(k) */
	kalman.temp2=(kalman.measurement_matrix)*(kalman.error_cov_pre);
	TRACE("measureMatrix:%f,%f",kalman.measurement_matrix(0,0),kalman.measurement_matrix(0,1));
    /* temp3 = temp2*Ht + R */
	kalman.temp3=(kalman.temp2)*conj_tran(kalman.measurement_matrix)+(kalman.measurement_noise_cov);

    /* temp4 = inv(temp3)*temp2 = Kt(k) */
	kalman.temp4=inv(kalman.temp3)*(kalman.temp2);
    /* K(k) */
    kalman.gain=conj_tran(kalman.temp4);

    /* temp5 = z(k) - H*x'(k) */
	kalman.temp5=meaTemp-(kalman.measurement_matrix)*(kalman.state_pre);

    /* x(k) = x'(k) + K(k)*temp5 */
	kalman.state_post=(kalman.state_pre)+(kalman.gain)*(kalman.temp5);

    /* P(k) = P'(k) - K(k)*temp2 */
	kalman.error_cov_post=(kalman.error_cov_pre)-(kalman.gain)*(kalman.temp2);
	
    result = kalman.state_post;

    return result;
}


Matrix CKalmanFilter::GetInitState(Matrix measurement,double timeStep)
{
	Matrix stateInit;
	stateInit=stateInit.Zeros(2,1);
	stateInit(0,0)=measurement(0,0);
	stateInit(1,0)=(measurement(0,1)-measurement(0,0))/timeStep;
	return stateInit;
}


Matrix CKalmanFilter::GetInitCov(Matrix measurementNoise,double timeStep)
{
	Matrix covInit;
	covInit=covInit.Zeros(2,2);
	covInit(0,0)=measurementNoise(0,0);
	covInit(0,1)=(measurementNoise(0,0))/timeStep;
	covInit(1,0)=(measurementNoise(0,0))/timeStep;
	covInit(1,1)=(measurementNoise(0,0))/timeStep/timeStep*2;
	return covInit;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产美女搞黄色| 亚洲色欲色欲www在线观看| 亚洲精品在线免费观看视频| 91精品麻豆日日躁夜夜躁| 911精品国产一区二区在线| 制服丝袜亚洲网站| 久久亚洲捆绑美女| 国产精品久久久久aaaa樱花 | 国产99久久精品| 色94色欧美sute亚洲线路二| 欧美在线一区二区| 日韩欧美你懂的| 国产精品久久久久久久久久久免费看 | 91美女视频网站| 欧美日韩一区久久| 欧美一区二区三区成人| 日韩一区二区电影| 国产日韩视频一区二区三区| 中文字幕日本乱码精品影院| 天堂成人免费av电影一区| 国产精品一区二区91| 色偷偷88欧美精品久久久| 91福利精品视频| 精品久久免费看| 精品精品欲导航| 欧洲人成人精品| 国产精品传媒视频| 欧美日韩黄视频| 欧美日韩一区二区三区免费看| 视频一区免费在线观看| 青青国产91久久久久久| 蜜桃av一区二区三区电影| 婷婷久久综合九色综合绿巨人 | 奇米精品一区二区三区在线观看 | 欧美三级一区二区| 一区二区三区久久| 亚洲a一区二区| 一本大道久久a久久综合婷婷| 亚洲少妇30p| 青青草一区二区三区| 亚洲日本一区二区三区| 在线综合+亚洲+欧美中文字幕| 久久综合久久99| 日韩一区二区中文字幕| 国产一区二区三区免费播放| 欧美视频在线播放| 久久久精品蜜桃| 美女任你摸久久| 精品视频在线视频| 欧美一区二区三区电影| 亚洲人成在线观看一区二区| 色呦呦一区二区三区| 在线观看免费成人| 成人免费在线观看入口| 一本一本久久a久久精品综合麻豆| 精品国产1区二区| 亚欧色一区w666天堂| 欧美激情在线观看视频免费| 综合久久给合久久狠狠狠97色| 欧美综合一区二区三区| 精品处破学生在线二十三| 一区二区高清视频在线观看| 欧美变态凌虐bdsm| 色噜噜狠狠色综合中国| 亚洲男人天堂一区| 国产精品午夜在线观看| 91麻豆免费视频| 日韩欧美国产不卡| 蜜臀av一区二区| 精品剧情在线观看| 精彩视频一区二区三区| 精品一区二区三区香蕉蜜桃| 成人妖精视频yjsp地址| 欧美日韩视频专区在线播放| 99久久国产综合色|国产精品| 久久蜜桃av一区精品变态类天堂 | 亚洲欧美视频在线观看| 欧美日韩久久久久久| 秋霞电影一区二区| 久久影音资源网| 91免费国产在线观看| 国产精品激情偷乱一区二区∴| 欧美一级久久久| 国产精品主播直播| 久久久亚洲午夜电影| 制服丝袜一区二区三区| 欧美午夜一区二区三区免费大片| 色香蕉久久蜜桃| 国产日韩视频一区二区三区| 中文字幕一区日韩精品欧美| 亚洲精品中文字幕在线观看| 日韩视频在线观看一区二区| 制服视频三区第一页精品| www.欧美亚洲| 久久99精品久久只有精品| 性做久久久久久久免费看| 亚洲欧美日韩久久| 国产乱码精品一区二区三 | 欧美猛男超大videosgay| 色综合久久综合网欧美综合网| 色偷偷久久人人79超碰人人澡| 欧美在线制服丝袜| 日韩一区二区三区四区| 26uuu精品一区二区在线观看| www国产亚洲精品久久麻豆| 欧美一级高清大全免费观看| 色呦呦网站一区| 亚洲444eee在线观看| 精品播放一区二区| 国产精品国产精品国产专区不蜜| 欧美猛男男办公室激情| 国产天堂亚洲国产碰碰| 成人av免费在线播放| 懂色av中文字幕一区二区三区| 一区二区成人在线视频| 国产精品久久看| 91丝袜国产在线播放| 综合电影一区二区三区| 亚洲欧美激情一区二区| 91福利区一区二区三区| 7777精品伊人久久久大香线蕉的 | 26uuu亚洲综合色欧美| 亚洲综合偷拍欧美一区色| 91精品黄色片免费大全| 国产精品自拍网站| 成人av电影在线| 亚洲国产视频一区二区| 国产精品美女久久久久av爽李琼| 老司机免费视频一区二区| 亚洲精品在线电影| 久久国产精品色婷婷| 亚洲男女毛片无遮挡| 亚洲二区在线观看| 亚洲欧美怡红院| 91精品国产麻豆| 91网页版在线| 欧美不卡视频一区| 欧美成人乱码一区二区三区| 国产91丝袜在线播放| 久久久一区二区三区捆绑**| 欧美一级艳片视频免费观看| k8久久久一区二区三区| 久久精品国产77777蜜臀| 日韩精品中文字幕在线一区| 国产精品久久久久久久第一福利| 日本一区免费视频| 亚洲成人动漫精品| 91麻豆精品国产91久久久久久久久 | 国产一区在线看| 日韩免费看的电影| 欧美精品一区二区在线观看| 久久嫩草精品久久久精品一| 国产精品乡下勾搭老头1| 国产在线精品一区二区| 国产精品久久久久久久久免费樱桃 | 国产片一区二区三区| www久久久久| 国产精品无遮挡| 在线视频国内自拍亚洲视频| 久久精品国产77777蜜臀| 色天天综合久久久久综合片| 亚洲乱码国产乱码精品精小说 | 亚洲综合丝袜美腿| 欧美日韩免费不卡视频一区二区三区 | 亚洲精品一区二区三区香蕉| 午夜天堂影视香蕉久久| 精品国产髙清在线看国产毛片| 国产在线观看一区二区| 亚洲欧洲色图综合| 欧美日韩日日骚| 国产·精品毛片| 亚洲成人动漫在线免费观看| 精品国产一区二区三区忘忧草 | 日韩一级片网站| 高清日韩电视剧大全免费| 日韩电影免费在线| 久久综合久久综合九色| 91豆麻精品91久久久久久| 国产一区二区在线视频| 亚洲最新在线观看| 91精品在线观看入口| 成人av在线播放网站| 久久国产精品99久久久久久老狼| 亚洲精品综合在线| 亚洲国产激情av| 久久久久久久久久久久久女国产乱| 欧美三片在线视频观看| 97国产一区二区| 狠狠色丁香久久婷婷综| 男女男精品视频网| 亚洲一区二区偷拍精品| 国产欧美精品一区二区色综合| 欧美va天堂va视频va在线| 日韩欧美亚洲一区二区| 日韩一区二区三区av| 欧美色图第一页| 欧美探花视频资源| 69堂精品视频| 日韩一级二级三级| 欧美v亚洲v综合ⅴ国产v|