一阶低通滤波算法

  一阶滤波,又叫一阶惯性滤波,或一阶低通滤波。是使用软件编程实现普通硬件RC低通滤波器的功能。   一阶低通滤波的算法公式为:              Y(n)=αX(n)+(1-α)Y(n-1)   式中:α=滤波系数;X(n)=本次采样值;Y(n-1)=上次滤波输出值;Y(n)=本次滤波输出值。 一阶低通滤波法采用本次采样值与上次滤波输出值进行加权,得到有效滤波值,使得输出对输入有反馈作用。#definea0.01//滤波系数a(0-1)charfilter(void){baroOffset=get_ad();baro=a*baroOffset+(1.0f-a)*baroAlt;baroAlt=baro;returnbaro;}    滤波系数越小,滤波结果越平稳,但是灵敏度越低;滤波系数越大,灵敏度越高,但是滤波结果越不稳定。  一阶滤波无法完美地兼顾灵敏度和平稳度。有时,我们只能寻找一个平衡,在可接受的灵敏度范围内取得尽可能好的平稳度。而在一些场合,我们希望拥有这样一种接近理想状态的滤波算...
代码星球 代码星球·2020-04-11

算法设计与分析总结

算法分析的目的:估算该算法所需的内存空间和运行时间。分析算法复杂度的目的:用以比较同一问题的不同算法;时间和空间的增长率作为衡量的标准。算法是对解决这个问题的方法和步骤的描述。算法的基本特征:有穷性、确定性、可行性、0到多个输入、1到多个输出。一个好的算法应具有正确性、可读性、健壮性和高效性和低存储量需求等特征。递归的概念:直接或者间接的调用自身的算法。递归函数:用函数自身给出定义的函数。构成递归式的两个基本条件:递归的边界条件和递归的定义(递归公式)。分治法的基本思想:将一个规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同。递归的解决这些子问题,然后将各个子问题的解合并得到原问题的解。简述动态规划算法解题的基本步骤1、找出最优解的性质,并刻画其结构特征;2、递归的定义最优值;3、用自底向上的方法计算最优值;4、根据计算最优值时得到的信息,构造最优解;简述动态规划和分治法的异同。相同点:动态规划与分治法类似,其基本思想也是将待求解的问题分解成若干子问题,然后从这些子问题的解得到原问题的解。不同点:分治法的子问题互相独立且与原问题相同;动态规划求解的问题,经分解...
代码星球 代码星球·2020-04-11

数据结构设计——大数计算器

 1/* 2大数计算器 3 4实验目的:数据结构主要是研究计算机存储,组织数据,非数值计算程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。学习数据结构是为了将实际问题中涉及的对象在计算机中表示出来并对它们进行处理。通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。 5 6 7 8实验要求:要求包含加、减、乘、除、取余的两个超出普通计算器范围的大数运算。 91011程序代码:12*******************************************************************************13*/1//Large_Number.h2#defineMAXSIZE2003#defineTMAXSIZE40045typedefclas...

农历天干地支算法

干支纪年法   一.十支纪年是我国传统的纪年方法。   1.干和支的含义:干支是天干,地支的合称。    干指天干,共有10个符号:    1 2 3 4 5 6 7 8 9 10   甲 乙 丙 丁 戊 己 庚 辛 壬 癸     支指地支,共有12个符号:    1    2  3 4 5 6 7 8 9 10 11 12   子 丑 寅 卯 辰 巳 午 未 申 酉 戌 亥   2.干和支组合后用于纪年。即:将十天干和十二地支按顺序搭配组合成干支,用于纪年。按此排法,当天干10个符号排了六轮与地支12个符号排了五轮以后,可构成60干支。续排下去又将恢复原状,周而复始,即如民间所说“六十年转甲子”。    二.查看不同时间段的万年历。如:1516—2060年的万年历,记着五百年的干支,一查便知。   六十年甲子(干支表)    1 2 3  4 5  6 7  8 9 10   甲子乙丑丙寅丁卯戊辰己巳庚午辛未壬申癸酉    11 1213 14 15 16 17 18...
代码星球 代码星球·2020-04-11

【PMP】三点估算法

通过考虑估算中的不确定性和风险,可以提高持续时间估算的准确性。最可能时间(tM):基于最可能获得的资源、最可能取得的资源生产率、对资源可用时间的现实预计,资源对其他参与者的可能依赖关系及可能发生的各种干扰等,所估算的活动持续时间,这里简写为M最乐观时间(tO):基于活动的最好情况所估算的活动持续时间,这里简写为O最悲观时间(tP):基于活动的最差情况所估算的活动持续时间,这里简写为P       期望值:Te=(P+4M+O)/6       标准差:δ=(P-O)/6       方差:δ2=[(P-O)/6]2用三点估算计算出完成某活动的的期望值,即有50%的可能性在该工期内完成。以下是正太分布图标准差活动工期落在标准差范围内的概率-1δ~1δ68.26%-2δ~2δ95.44%-3δ~3δ99.72%-6δ~6δ99.99%项目在期望工期内完成的概率是50%,那么在(可能值...
代码星球 代码星球·2020-04-11

PageRank网页排名算法

互联网上各个网页之间的链接关系我们都可以看成是一个有向图,一个网页的重要性由链接到该网页的其他网页来投票,一个较多链入的页面会有比较高等级,反之如果一个页面没有链入或链入较少等级则低,网页的PR值越高,代表网页越重要假设一个有A、B、C、D四个网页组成的集合,B、C、D三个页面都链入到A,则A的PR值将是B、C、D三个页面PR值的总和:PR(A)=PR(B)+PR(C)+PR(D)继续上面的假设,B除了链接到A,还链接到C和D,C除了链接到A,还链接到B,而D只链接到A,所以在计算A的PR值时,B的PR值只能投出1/3的票,C的PR值只能投出1/2的票,而D只链接到A,所以能投出全票,所以A的PR值总和应为:PR(A)=PR(B)/3+PR(C)/2+PR(D)所以可以得出一个网页的PR值计算公式应为:其中,Bu是所有链接到网页u的网页集合,网页v是属于集合Bu的一个网页,L(v)则是网页v的对外链接数(即出度) 图1-1 表1-2根据图1-1计算的PR值 PA(A)P(B)PR(C)PR(D)初始值0.25 0.250.25 0.25...

单词共现算法

如果单词u属于单词w的窗口内,则认为(u,w)出现一次,这里的窗口可以定义为一个固定大小的窗口,或者是前后相连出现、在同一句中出现、在同一个段落中出现的单词,如果窗口中的单词为[w1,w2,w3],则发射((w1,w2),1)和((w1,w3),1)出去,然后窗口向后移动一个单词。Reduce阶段则对发射过来的相同键的值进行简单的累加求和即可设有一个英语语句:Ifyoudonotlearntothinkwhenyouareyoung,youmayneverlearn在Map阶段,假设窗口大小为6个单词,那么窗口首先覆盖Ifyoudonotlearnto,通过计算得到键值对((If,you),1),((If,do),1),((If,not),1),((If,learn),1),((If,to),1),然后发射出去。随后窗口向后滑动一个单词,窗口覆盖到youdonotlearntothink,通过计算得到键值对((you,do),1),((you,not),1),((you,learn),1),((you,to),1),((you,think),1),然后后发射出去.重复此过程直到文档尾部...
代码星球 代码星球·2020-04-11

数据结构(三) 用java实现七种排序算法

      很多时候,听别人在讨论快速排序,选择排序,冒泡排序等,都觉得很牛逼,心想,卧槽,排序也分那么多种,就觉得别人很牛逼呀,其实不然,当我们自己去了解学习后发现,并没有想象中那么难,今天就一起总结一下各种排序的实现原理并加以实现。                        -WZY一、文章编写风格总览    选择排序、插入排序、冒泡排序、归并排序、快速排序、希尔排序、堆排序、    最后对各种排序算法进行比较,理清楚各种排序的优缺点。      其中快速排序是冒泡排序的增强,堆排序是对选择排序的增强,希尔排序是对插入排序的增强,这就6种了,最后一种就是归并排序。          二、选择排序    选择排序是我认为最简单的一种排序了,因为我们自己也很容易想到这种方法对数组进行排序,原理非常简单,                原理图如上所示:先将第一个位值上的数跟之后所有位置上的数依次进行比较,如果第一个位置上的数比第二个位置上的数大,则进行互换,然后继续将第一个位置上的数与第三个位置上的数进行比较,经过一轮的比较后,第一个位值上的数就是所有数中最小的一个,接着将第二个位置...

数据结构(一) 单链表的实现-JAVA

      数据结构还是很重要的,就算不是那种很牛逼的,但起码得知道基础的东西,这一系列就算是复习一下以前学过的数据结构和填补自己在这一块的知识的空缺。按照链表、栈、队列、排序、数组、树这种顺序来学习数据结构这门课程把。                            -WZY一、单链表的概念      链表是最基本的数据结构,其存储的你原理图如下图所示                上面展示的是一个单链表的存储原理图,简单易懂,head为头节点,他不存放任何的数据,只是充当一个指向链表中真正存放数据的第一个节点的作用,而每个节点中都有一个next引用,指向下一个节点,就这样一节一节往下面记录,直到最后一个节点,其中的next指向null。      链表有很多种,比如单链表,双链表等等。我们就对单链表进行学习,其他的懂了原理其实是一样的。 二、用java实现单链表      语言只是一种工具,数据结构真正体会的是那种思想,这句话确实是这样,不管用什么写,其思想是不改变的。以前使用的是C++,现在用的是java,一步步来实现。      2.1、编写一个Node类来充当...

[分类算法] :朴素贝叶斯 NaiveBayes

1.原理和理论基础(参考)2.Spark代码实例:1)windows单机importorg.apache.spark.mllib.classification.NaiveBayesimportorg.apache.spark.mllib.linalg.Vectorsimportorg.apache.spark.mllib.regression.LabeledPointimportorg.apache.spark.{SparkConf,SparkContext}objectlocal_NaiveBayes{System.setProperty("hadoop.dir.home","E:/zhuangji/winutil/")defmain(args:Array[String]){valconf=newSparkConf().setMaster("local[2]").setAppName("NaiveBayes")valsc=newSparkContext(conf)//initiateddataandlabeledvaldata=sc.textFile("E:/Java_WS/Scal...

GraphX的三大图算法

1.PageRankhttp://blog.csdn.net/hguisu/article/details/7996185 2.ConnectedComponents 3.TriangleCounting 例子:users.txt1,BarackObama,BarackObama2,ladygaga,GoddessofLove3,jeresig,JohnResig4,justinbieber,JustinBieber6,matei_zaharia,MateiZaharia7,odersky,MartinOdersky8,anonsysfollowers.txt2141126373766737算法实战:packagemain.scalaimportorg.apache.spark.graphx.GraphLoaderimportorg.apache.spark.{SparkConf,SparkContext}objectgraphx_algorism{System.setProperty("hadoop.home.dir","E:/zhuangji/winu...
代码星球 代码星球·2020-04-11

[最优化算法] 梯度下降

梯度下降(GD,Gradientdescend)是最小化风险函数、损失函数的一种常用方法随机梯度下降和批量梯度下降是两种迭代求解思路。...

[聚类算法] K-means 算法

聚类和k-means简单概括。聚类是一种 无监督学习 问题,它的目标就是基于 相似度 将相似的子集聚合在一起。k-means算法是聚类分析中使用最广泛的算法之一。它把n个对象根据它们的属性分为k个聚类,以便使得所获得的聚类满足:    同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。k-means的算法原理:(文/qinm08(简书作者) 原文链接:http://www.jianshu.com/p/32e895a940a2)使用K-Means算法进行聚类,过程非常直观:(a)给定集合D,有n个样本点(b)随机指定两个点,作为两个子集的质心(c)根据样本点与两个质心的距离远近,将每个样本点划归最近质心所在的子集(d)对两个子集重新计算质心(e)根据新的质心,重复操作(c)(f)重复操作(d)和(e),直至结果足够收敛或者不再变化Pythondemo:fromsklearn.clusterimportKMeansmodel=KMeans(n_clusters=4,random_state=0...
代码星球 代码星球·2020-04-11

[分类算法] :SVM支持向量机

Supportvectormachines支持向量机,简称SVM分类算法的目的是学会一个分类函数或者分类模型(分类器),能够把数据库中的数据项映射给定类别中的某一个,从而可以预测未知类别。SVM是一种监督式学习的方法。支持向量:支持或支撑平面上把两类类别划分开来的超平面的向量点机:就是算法,机器学习常把一些算法看作是一个机器SVM其实就是一种很有用的二分类方法。超平面:   n维空间中,满足n元一次方程a1x1+a2x2+...+anxn=b的点(x1,x2,...,xn)的全体就叫空间的一张超平面(即广义平面)。   具体到2维空间,就是一条直线,3维空间,就是一个平面。 原理概况:线性可分:超平面分割(超平面是分割两类数据的最优的一个平面,下图的红线表示)       2.最大化间隔   3.线性问题求解:   求解对偶问题得到最优解。(Lagrange函数的对偶因子) &n...

基于LMS算法的自适应滤波

作者:紫曜花时间:2018-11-30前言姚天任、孙洪的《现代数字信号处理》第三章自适应滤波中关于LMS算法的学习,全文包括:1.     自适应滤波器简介2.     自适应干扰抵消原理3.     自适应滤波原理4.     最小均方(LMS)算法5.     Matlab实现内容为自己读书记录,本人知识有限,若有错误之处,还请各位指出!  一、自适应滤波器简介 自适应滤波器由参数可调的数字滤波器和自适应算法两部分组成。如图所示。  输入信号x(n) 通过参数可调数字滤波器后产生输出信号y(n),将其与期望信号d(n)进行比较,形成误差信号e(n),通过自适应算法对滤波器参数进行调整,最终使e(n)的均方值最小。自适应滤波可以利用前一时刻已得的滤波器参数的结果,自动调节当前时刻...
首页上一页...107108109110111...下一页尾页