自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (10)
  • 收藏
  • 关注

原创 基于经典kalman滤波的全局最优观测融合滤波理论及其应用

我上一篇博客时变系统多传感器信息融合kalman滤波器中介绍了一种基于状态的全局滤波算法,仿真证明该算法确实能够提高状态的估计精度,这篇博客主要介绍一种基于观测的全局最优滤波器,两种滤波器的滤波过程可以看如下框图:简单看一下上面的框图就能大概了解一下基于观测的融合滤波器的原理,这里我们分析一波两种算法的优缺点:1.从理论上来讲,两种融合算法都是全局最优的,所以状态估计精度大致相同;2.从原...

2019-04-18 17:47:36 1698 1

原创 加权最小二乘法

最小二乘法是对参数估计的一种算法,其优点是不需要系统的先验知识,所以是一种系统辨识很重要的算法。下面对其进行简单的介绍:一般最小二乘法这里假设状态x为n*1维的列向量,而测量值为状态x的线性组合,假设进行了L次观测,则局部观测模型有:利用所有的观测信息合成观测模型则有:其中有:根据上述模型,给出最小二乘的极小化性能指标:对最小化性能指标J求偏导,可得:...

2019-04-18 14:33:04 29081 8

原创 时变系统多传感器信息融合kalman滤波器

前面的博客中讲得都是针对一种传感器的测量值有状态空间模型对系统状态值进行估计,本次博客讨论多传感器下对系统状态值估计的方法,即多传感器的数据融合。多传感器的状态融合又分成两种:1.集中式kalman滤波;2.分布式卡尔曼滤波。集中式kalman滤波是通过将多个观测方程集中为一个观测方程,然后进行标准kalman滤波,该方法可以得到全局的最优估计,但是缺点也是很明显,多个观测方程集中为一个观测方程,...

2019-04-14 13:55:57 3594 5

原创 带相关噪声时变系统最优Kalman滤波和最优白噪声估值器

我前面博客中所有kalman滤波算法都是针对状态空间模型中,系统噪声和测量噪声互不相关,当现实生活中可能会出现系统噪声和测量噪声相关的情况出现,还用标准kalman滤波迭代式子就会出现估计误差较大的情况,不太适用,所以这里讨论当相关噪声系统情况下,kalman滤波的改进算法。考虑线性离散时变随机控制系统: ...

2019-04-11 22:10:01 1555

原创 稳态卡尔曼滤波

做过组合导航的可能都会深有体会,组合导航过程中大部分的时间都耗费卡尔曼滤波迭代式就滤波增益K上了,因为在求K的时候需要计算矩阵的逆,特别是当观测y(t)维数较大时,计算量较大,花费的时间更多。从工程的应用上来讲,这是不适用的,所以我们考虑kalman滤波增益阵是否趋于常阵,这样将其固化在矩阵里面就能大大减小在线计算的负担,这一节我们就是来讲怎么计算常阵K。定理:对于定常系统,且设Q&gt...

2019-04-10 16:30:16 4143

原创 白噪声估值器及其在信号处理中的应用

在上一篇博客中,我讲到信息融合涉及的领域中包含了系统白噪声的估计问题,即根据系统测量值来估计系统的观测误差和系统误差的大小。下面针对上述白噪声估计算法进行讲解。定理1:针对如下状态空间模型: ...

2019-04-09 16:59:28 1075

原创 卡尔曼平滑器

当看完邓老师的《信息融合滤波理论及其应用》之后,你就会发现信息融合的研究方向就是如下两个方面:1.系统状态的滤波、平滑、估计;2.系统噪声和观测噪声的估计。系统状态的滤波就是根据1,2,.....,t时刻的观测值估计当前t时刻的状态值;系统状态的平滑就是利用1,2,.....t,......t+k时刻的观测值估计当前t时刻的状态值;系统状态的预测就是利用1,2,........t时刻的观测值预测第...

2019-04-08 21:23:33 7929 1

原创 卡尔曼滤波的推导过程详解

在学习卡尔曼滤波的时候看了很多博客讲这方面的知识,感觉都讲得表面的东西,无法了解它五个公式真正代表的过程,这篇博客我想以我的理解讲讲卡尔曼滤波。首先我先写出卡尔曼滤波的具体过程,首先针对如下状态空间模型(因为卡尔曼滤波都是针对状态空间模型进行滤波的): ...

2019-04-06 23:12:10 13506 4

原创 动态链接库的制作方法

最近项目中需要将自己代码做成动态库的形式交给人,没办法硬着头皮学了一下,感觉网上好多这方面的资料都讲的一知半解,很难理解,在此讲一下我的方法,希望能有点帮助。步骤1:首先新建一个工程,选择Win32控制程序,我用的是2017,其他版本类似:步骤2:选择下一步,应用程序类型选择DLL,附加选项选择导出符号,点击完成。随后你会出现如下界面:这个工程你只需要更改test....

2018-10-17 21:19:36 633

原创 导航过程各坐标系之间转换

做导航最烦人的就是坐标系之间的转换,每次都要去推相应的公式,所以特地写点干货,解决你坐标系转换问题。1.经纬高转地心                                                                              (1)式1中,为纬度,为经度,e为地球的椭圆率。2.地心转经纬高                      ...

2018-10-13 17:06:16 33286 23

原创 矩阵特征值和特征向量的求取

最近项目中有一个模块需要求矩阵的最大特征值和特征值对应的特征向量,无奈,又重新将以前学习的这方面的知识重新温习了一遍,感觉还是当时学的不够深,所以谢谢感悟,顺便对知识点进行一个总结。首先特征值和特征向量的求解根据项目的需求或者是矩阵的具体形式,主要可以分成如下三种形式:自己只需要获得矩阵的最大特征值和特征值所对应的特征向量 需要求取矩阵的所有特征值 需要求取特征值和特征向量的矩阵为实对...

2018-10-11 22:39:53 56276 2

原创 宽字符处理

以前处理的都是字符型数据,宽字符处理按照原来的方法做就出现问题。现在将宽字符的输入输出代码给出,供大家参考。#include<iostream>#include<vector>using namespace std;int main(){ locale&loc = locale::global(locale(locale(), "", LC_CTYP...

2018-09-14 10:06:51 494

原创 c++连续输入未知整数解决方法

最近帮师兄做笔试题,对于连续输入未知数目整数的时候,以前我一直用While(cin>>temp),但是这样做的话需要输入完之后在加上ctrl+z,才能结束输入,但是在做笔试的时候测试数据不可能这样做,导致会出现问题,后来终于找到一个方法解决这个问题,现在写下来防止以后遇到这个问题,也希望能帮助大家。#include<iostream>#include<vect...

2018-09-14 10:00:07 3352 1

原创 卡尔曼滤波矩阵求逆方法比较

最近因为项目原因需要用到卡尔曼滤波,但是仿真时间和采样时间发生冲突,导致项目无法进行下去,而仿真程序大部分时间耗在了卡尔曼滤波公式的求逆上,求逆公式如下:                    (1)所以我需要寻求一种快速的求逆方法。在仿真程序中我采用的是LU分解求解矩阵逆,具体的方法参考矩阵论里面的知识,求逆代码如下:Matrix Matrix::inv() { //将矩阵进行LU分解...

2018-07-10 22:20:24 2801

原创 基于相关方法对噪声方差阵Q和R的估计

状态空间模型是现代控制理论的基础,但是在建立状态空间矩阵的时候系统噪声方差阵Q和测量噪声方差阵R很难通过模型得到,所以需要一种算法利用已知的输出数据y(t)来估计上述两个变量。首先摆出状态空间模型:                                (1)首先由(1)迭代可知:                    (2)                                ...

2018-07-08 14:22:38 2980 1

原创 多维MA模型参数的Gevers-Wouter算法

 在介绍上述算法之前,首先介绍MA模型到底是什么,这个算法到底有什么用???MA模型:                (1)这是系统建模的另一种方式,传统的对系统建模无非是传递函数和状态空间模型,而MA模型是时间序列法进行分析的较好的一种建模方式。然后是Gevers-Wouter算法有什么用??在我们建立模型的时候经常会遇到一个问题,我们知道系统满足这个模型,但是怎么把模型里面的参数给估计出来,而...

2018-07-06 11:56:22 588

原创 矩阵分析及其应用

我在网上看过一个帖子,帖子说一个人电话面试,面试官让他写个程序,解决一个数开根号的问题。这个人马上利用牛顿法写了一个程序,结果面试官竟然没看懂,并且说为什么不用二分法??我心里一惊,这面试官街上捡来的吧??著名的牛顿法都不知道,二分法和牛顿法的时间复杂度能比吗?? 这里我仅仅想通过牛顿法引出这一节我想讲的知识。以我的理解,牛顿法和高等数学中的泰勒展开式由异曲同工之妙,两者相差不大,说实在话,我

2018-02-01 21:52:55 6376 1

原创 范数理论及其应用

在提到范数这一概念的时候,我想说说范数出现的原因,特别是大数据热的飞起的今天。首先我们引出如下定理:   由上定理可知,我们需要对序列中的每个元素都检查其是否收敛与某个数,该问题属于遍历性问题。对于遍历性问题而言,数量小的还好办,数据量大的话计算机就无能为力了。所以我们希望将遍历性问题转化为非遍历性问题。还是拿上面定理举例。 这就引出了范数的概念,我理解的范数就

2018-01-30 22:16:28 4091

原创 矩阵论知识点

最近考试不断,今天终于告一段落了。矩阵论我花了将近两个礼拜复习,多少有点感悟,所以赶紧写下来,不然估计到时候又还给老师了,也希望自己的见解对你们也有帮助!!总的来说矩阵论就讲了如下6个知识点:(1)线性空间与线性变换(2)范数理论及其应用(3)矩阵分析及其应用(4)矩阵分解(5)特征值的估计(6)广义逆矩阵1.线性空间与线性变换1.1线性空间首先我们需要知道

2018-01-21 23:00:16 32704 7

原创 算法导论-最短路径

最短路径这两天看算法导论看到了最小路径这部分内容,现在看起来越来越费劲,真心觉得图这种数据结构真的太难,主要是书上有太多的证明,看起来难受,都不知道能不能坚持看下去,闲话少说,今天聊聊最短路径方面的知识。要算最小路径,必不可少要掌握图里面的一下知识。图关于图有好多知识,我主要讲讲图的两种储存方式。邻接矩阵邻接链表邻接矩阵就是以矩阵来表示图结构中节点与节点

2017-12-12 10:10:46 1467

原创 遗传算法

遗传算法最近在自然计算当中学到了遗传算法,学完之后自己用matlab写了相应的程序,有一些感悟吧,写下了方便忘了后看看。遗传算法就是模拟人类种群繁衍的过程,来寻找最优解的过程,下面介绍一下利用遗传算法解决一个具体例子的整个过程。题目:有人可能会说,这个题目还不简单,穷举就可以了。但是我想说的是穷举的话,假设把最优解保留到小数点5位,不算多吧,x1迭代需要1510000次

2017-11-20 21:29:18 5606 1

原创 排序算法

排序算法排序算法有好多,比如冒泡排序、插入排序、归并排序、堆排序、快速排序、希尔排序、桶排序等等,下面我对各种排序的原理和优缺点进行介绍。冒泡排序冒泡排序是排序算法中最简单的,其原理是每次遍历所有没有排好序的元素一遍,找到最大值(最小值),将无序的第一个元素和最大值交换,原理如下:分析冒泡排序的时间复杂度:

2017-11-10 11:43:18 294

原创 不相交集合的数据结构-并查集

并查集

2017-11-04 21:33:14 680

原创 数据的归一化

数据归一化问题第一次接触到数据归一化问题是在做飞卡的时候,我当时就在想,为什么要对数据进行归一化处理,这样做有什么好处,后来网上查了资料才明白了一点点:(1)归一化后可以将各个数据的量纲对应起来,换句话说就是两个变量之间不是一个量级的,不能直接做处理,归一化后就可以作处理了。(2)会使模型数据的收敛速度变快(3)会使模型的精度变高。综上所述,归一化操作还是很有必要的。归一化

2017-10-24 15:42:04 2742

原创 算法导论-van Emde Boas树

van Emde Boas树van Emde Boas树中文名不知道,所以暂且叫它v树吧。v树是一种数据结构,和二叉树、红黑树类似。一种数据结构被创建出来,肯定有其特别的优点,v树的优点就是实现数据的基本操作的最差的时间复杂度为O(lglgn),在算法导论前面知识可以知道,红黑树的性能是最好的,基本操作最坏的时间复杂度为O(lg(n)),所以v树的性能相对于红黑树要好很多,如果真的这样

2017-10-23 22:15:15 6610 2

原创 龙格库塔法求微分方程

龙格库塔法龙格库塔法对于一个工科学生来说估计并不陌生,因为我们做项目的时候或多或少会接触到微分方程,解微分方程的数值解是就需要用到龙格库塔方程了。我第一次接触到该方法是对四轴姿态角进行四元数解算的时候,当时用的是一阶龙格库塔,当时的理解就是这不就是泰勒展开式取一阶嘛,然后觉得二阶龙格库塔应该就是取二阶了,依次类推,所以当时没有深入的了解,现在因为遇到这方面的问题所以重新把他学了一遍。准

2017-10-17 16:30:30 17432

原创 fopen多次打开同一个文件

最近在弄一个项目,需要读取tex文件,但是函数每调用一次,打开一次文件,调用完之后就会发现再调用就打不开这个文件,数据根本读不出来,后来采取一个最笨的办法,每次调用函数都重新用fopen打开一次文件,最后实在疯了,在网上找了一下资料,明白了其中原理。当我们用一个指针去打开一个文件时,是通过这个指针的移动来读取里面的数据的,如果你又用这个指针的话,你就必须要初始化一下指针,将指针放到初始位置。就是每

2017-10-11 17:19:17 16155 3

原创 算法导论--斐波那契堆

斐波那契堆斐波那契堆也是数据储存结构的一种,这种数据结构之所以产生,主要有两个优点:1.对于数据合并操作具有很高的效率;2.对于其他一般数据操作平均时间复杂度较好(注意这里是平均复杂度,不是最坏情形)。具体时间复杂度如下表:上表可以看出,从理论上讲斐波那契堆的性能不错,但是从实际角度出发,除了某些需要管理大量数据的应用外,对于大多数应用,斐波那契堆的常数因子和编程的复杂性相对于二叉

2017-10-08 19:06:52 4712

原创 算法导论-B树

B树(1)B树的出现 首先我想先聊聊为什么要设计B树这种数据结构??对于查找数据的结构有链表,二叉搜索树、红黑树,这三种数据结构就查找而言,红黑树的效率最高,其时间复杂度为O(log(n)),似乎已经很好了,那还要B数干嘛??这里就需要明白B数在什么情况下产生的??B数是为磁盘或其他直接存储设备而设计的一种平衡搜索树,存储的数据量是很大的,假如我们用红黑树进行储存的话,由于n是一个非常

2017-09-30 18:55:56 561

原创 c++构建正态分布的随机数

最近编程的时候遇到一个问题,需要用c++来产生一个满足正态分布的的随机数,用c++产生一个均匀分布的随机数很容易,但是满足正态分布还是有点懵逼的。然后就在网上搜一些资料,发现有三种方法可以产生正态分布的随机数。但是看别人从理论上的推导,感觉还是没有说清楚,我想写写关于我自己对于这三种方法的理解!!方法一: 利用分布函数的反函数来求取在讲这个方法前,我要先证明一个定理:就是任何分布函数的概率

2017-09-20 20:56:27 7251 1

原创 兔子路径规划

兔子从A地到B地,当中每1公里有一个休息站,兔子体力每次最多可以连续行走两公里,也就是说兔子

2017-09-18 20:48:31 742

原创 竟争分析_MTF算法

1.自组织表在介绍竟争分析前,我首先介绍一下自组织表,竟争分析就是在自组织表基础下进行分析的。对于一个有n个元素的列表,从中查找一个元素,查找所要的时间与该元素的位置有关??我们就需要设计一个算法,对列表进行优化,使查找所需要的时间复杂度最小。对于一个操作序列,列表优化有两种:(1)在线优化:我们不知道下一个查找的元素,对序列进行优化。(2)离线优化:我们已经预知了所有查找的元

2017-09-15 20:45:59 1233

原创 KMP算法查找相同字符串

问题:现在有两个字符串A和B,问你在A中是否有B,有几个??        其实刚开始遇到这个问题的时候,我觉得挺简单的呀!依次循环过去查找不就可以了,当然这样做肯定能实现,而且程序编写简单粗暴,两个循环就解决了。但是这种方法的时间复杂度是O(M*N),M是字符串A的大小,N是字符串B的大小,这样时间复杂度就太高了,我们需要一个时间复杂度低的算法,这样KMP算法就孕育而生了,算法的时间复杂度为O(...

2017-09-13 21:46:37 1215

原创 并查集之卡片问题

卡片问题:N个孩子,每个人力量为Xi,第一个孩子为1,第二个孩子为2,从一个盒子中随机抽取M张卡片,每张卡片有一对数字,表示同一组孩子们的位置,加入一张卡片有[1,4],另一张卡片上有[4,3],则有位置[1,3,4]的孩子属于同一组,每组实力以改组所有孩子之和,实力最强的组获胜,求获胜队伍的权利值。对于这个问题,我首先想到的是图里面的知识,这不就是在不连通的图中找到各个连通的子图嘛,

2017-09-09 18:14:05 702

原创 蚂蚁路径问题

问题描述 木棍上随机放着n只蚂蚁,蚂蚁朝向随机,蚂蚁相撞后各自往回爬,设木棍长度为k,蚂蚁爬行速度为s,请根据所有蚂蚁的初始位置求出全部蚂蚁爬出木棍所用时间的最长和最短时间??当我第一眼看到这个题目的时候,我想到的是动态规划类型的题目吧,然后尝试用动态规划的来求解该问题,想了好久,发现行不通,因为我始终找不到最优子序列(可能我能力不行吧,感觉动态规划可以),如果我们将选择一个蚂蚁将木棍爬行的距

2017-09-06 20:16:16 1864

原创 惯性导航-加速度计

今天介绍一下惯性导航传感器加速度计,加速度计是测量物体加速度的传感器,通过对加速度a的测量,积分后可以得到物体运动的速度v,二次积分后可以得到物体的位移s,故可以为飞行器进行导航。常用加速度计可以分为两类:一类是线性加速度计,一类是摆式加速度计。线性加速度计的测量原理和高中物理实验测量加速度相似,通过打点的方式,测量两点之间的距离计算出加速度。摆式加速度计是通过测量物体所受惯性力ma,而后得到

2017-08-22 16:16:52 5751

原创 捷联惯性导航-导航基础

由于导师研究导航这一块,自己也开始看起导航方面的书籍,目前应用比较广的导航方式有三种:地面导航、惯性导航、卫星导航。本科毕设做的四轴,对惯性导航比较熟悉,就挑了惯性导航先入手,慢慢来吧!学习惯性导航强烈推荐空军工程大学朱家海老师的视频,国内讲课能达到这样的老师很少了,至少这是我听过比较好的课。话不多说,先讲导航的一些基本知识,其他的慢慢来。什么是惯性导航??我的理解是在惯性空间下进行导航。

2017-08-20 19:56:08 5288 6

原创 0-1背包问题

0-1背包问题一个正在抢劫商店的小偷发现了n个商品,第i个商品价值pi,重wi磅。这个小偷希望拿走价值尽量高的商品,但他的背包最多能容纳W磅重的商品,W是一个整数。他应该拿走哪些商品??(这个问题是0-1背包问题,因为小偷要么拿走一件商品,要么留下,不能拿走商品一部分,或者把一个商品拿多次)。0-1背包问题主要问题就是怎么找到最优子结构以及递推式子,我们不妨设f[i,v]为前i个商品,拿走

2017-08-07 20:25:28 277

原创 动态规划-钢条切割问题

动态规划主要用于求解最优化问题,方法与分治法类似,也是将原问题分解成多个子问题,通过递归的方法求解子问题。不同之处就是动态规划会通过增加程序空间复杂度的方式来将时间复杂度为指数级降低为多项式,通俗的讲就是动态规划会利用数组记录下子问题的结果,当再需要计算该子问题时直接调用该结果即可,就不用再去计算,从而大大降低了程序的时间复杂度。通常按照如下4个步骤来设计一个动态规划算法:1.刻画一个最优

2017-08-02 20:12:28 459

原创 红黑树的插入和删除

上一章讲述了红黑树得相关性质,我们了解到红黑树确实是平衡二叉树,在时间复杂度为O(lg(n)),比二叉搜索树性能更好,性能变好的前提是算法更加复杂了,下面讲述红黑树的插入和删除操作,希望对大家有所帮助。红黑树的插入          红黑树的插入操作和二叉搜索树大致相同,不同点是在将节点x插入红黑树后,此时的红黑树可能会违反红黑树的相关性质,我们需要对其进行调整,调整的方法有两种:变色和旋

2017-08-02 20:04:38 405

矩阵求逆测试

程序中比较了LU分解和快算求逆算法的耗时的比较,对于需要这方面工作的同学有学习的必要,最大的优点是我写的一个矩阵类,非常好用。

2018-07-10

数值计算c代码

该程序中包含了计算方法书中的牛顿迭代法,二分法,简单迭代法求解方程的近似解,同时还有迭代法求线性方程组的解,乘幂法求矩阵的最大特征值,雅可比法求对称矩阵的特征值,每段代码都有注释,亲测可用。

2018-03-23

MFC串口小助手

MFC做一个串口的C代码,对于需要自己写上位机的同学很有帮助,简单易懂。

2017-12-02

遗传算法-matlab代码

该程序详细的描述了遗传算法的整个过程,对于遗传算法的学习具有很好的理解

2017-11-20

示波器工具

通过示波器看系统的输出波形,从而对系统PID参数进行调节

2017-10-17

分治法实现矩阵相乘

分治法实现矩阵相乘

2017-03-13

小型计算器的实现

通过本程序学习堆栈,可以深刻的了解计算器的实现算法。本程序在vs2010环境下调试成功。

2016-10-06

十进制与其他进制之间的转化

程序在vs2010环境下调试成功,可以成功实现十进制与其他进制之间的转化。

2016-10-06

学生信息管理系统(c++)

在vs2010下运行,可以通过这段代码学习c++,对于c++初学者很有帮助。

2016-10-02

c++数独解法

代码在vs2010下运行成功,对数独有兴趣的可以下载尝试一下。

2016-10-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除