0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在单片机上做插值算法?

Q4MP_gh_c472c21 来源:21ic论坛 作者:一路向北lm 2021-01-26 10:14 次阅读

第一步:学你所学,不懂也得懂,最枯燥的数学公式来了

在数值分析中,拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法。许多实际问题中都用函数来表示某种内在联系或规律,而不少函数都只能通过实验和观测来了解。 如对实践中的某个物理量进行观测,在若干个不同的地方得到相应的观测值,拉格朗日插值法可以找到一个多项式,其恰好在各个观测的点取到观测到的值。这样的多项式称为拉格朗日(插值)多项式。 数学上来说,拉格朗日插值法可以给出一个恰好穿过二维平面上若干个已知点的多项式函数。拉格朗日插值法最早被英国数学家爱德华·华林于1779年发现,不久后(1783年)由莱昂哈德·欧拉再次发现。1795年,拉格朗日在其著作《师范学校数学基础教程》中发表了这个插值方法,从此他的名字就和这个方法联系在一起。

b6863858-5f63-11eb-8b86-12bb97331649.png



第二步:构造拉格朗日插值算法函数,并使用C/C++ 语言实现

b6d1732c-5f63-11eb-8b86-12bb97331649.png

//预先定义插值节点的个数为1000个,根据控制台输入的个数num从而确定插值节点的个数const int N=1000;// 拉格朗日插值算法float lglr(float x[], float y[],int n,float t){float yResult=0.0;//LValue[N]存放的是每次求解的插值基函数的通项float LValue[N];//循环变量k,mint k,m;//插值基函数中的上下累乘temp1,temp2float temp1,temp2;for(k=0;k

b7335614-5f63-11eb-8b86-12bb97331649.png


2.同样是给写入的算法送入正弦曲线3个点,来预测此区间的其它点,发现预测出的正弦曲线不太理想,相关度很差。

b7882ec8-5f63-11eb-8b86-12bb97331649.png

3.增加给写入的算法送入正弦曲线的点数到10个点,来预测此区间的其它点,发现预测出的正弦曲线已达到要求,相关度很好。

b7d45302-5f63-11eb-8b86-12bb97331649.png


4.下面是使用matlab在绘制的图像,分别是线性3点、正弦3、5、10的和原始值对比的图像。

b84918b8-5f63-11eb-8b86-12bb97331649.png



第四步:移植到单片机使用串口输出测试插值效果,效果还可以哦!

b89679aa-5f63-11eb-8b86-12bb97331649.png



第四步:进阶完善,有点不甘心,使用Qt 搭了一个界面,做了一下可视化。 你别说效果还可以,Qt界面代码 放到了gitee有兴趣的来一起完善 https://gitee.com/lumengcode/my-qt/tree/master/MathTool/MathTool



插值题外话:

关于插值算法:可以继续完善牛顿插值、三次样条插值等,都很好玩!

原文标题:教你在单片机上做插值算法

文章出处:【微信公众号:嵌入式ARM】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5998

    文章

    43948

    浏览量

    620564
  • 插值算法
    +关注

    关注

    0

    文章

    7

    浏览量

    2010

原文标题:教你在单片机上做插值算法

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    关于AD5940移植到其他单片机上的问题求解

    与NRF52840单片机是否兼容? 2、AD5940在SPI读/写之前是否需要一些特殊的配置,具体步骤是什么? 3、官方网站上的代码是否都是正确的,可以使用的? 4、如果我想把AD5940单独移植到我的单片机上作为它的一部分,具体应该怎么
    发表于 12-01 06:05

    基于FPGA的线性插值-中

    ; } } //Y2为利用线性插值直接计算得到的,此处为了模拟FPGA除法会损失小数,因此把除法和乘法分开处理。 int Y2 = (141 - 137) * (i - 30) ; Y2= Y2
    发表于 11-23 23:09

    基于FPGA的线性插值-上

    ,并且除法会消耗大量的资源。 本文提出一种基于查找法实现线性插值算法,不需要利用除法实现线性插值。 2,方法原理 由当D是A,B的中点时,可以求出D的坐标为: x\' = (x1
    发表于 11-20 23:10

    单片机上电后没有运转,首先要检查什么?

    单片机上电后没有运转,首先要检查什么? 当单片机上电后没有运转时,我们需要进行一系列的检查,以确定导致问题的根源。 导语: 在现代科技领域中,单片机扮演着重要的角色,它广泛应用于各种电子设备中。然而
    的头像 发表于 11-17 14:16 2461次阅读

    单片机上电过程代码是怎样运行的?

    单片机上电过程代码是怎样运行的,不同单片机的不同之处
    发表于 11-02 06:05

    基于嵌入式RTOS在MSP430单片机上的实现

    电子发烧友网站提供《基于嵌入式RTOS在MSP430单片机上的实现.pdf》资料免费下载
    发表于 10-27 14:13 1次下载
    基于嵌入式RTOS在MSP430<b class='flag-5'>单片机上</b>的实现

    单片机上使用的无线通信方式有哪些?

    单片机上使用的无线通信方式有哪些
    发表于 10-27 07:21

    单片机ADC,十大C语言滤波算法

    单片机ADC,十大C语言滤波算法
    的头像 发表于 10-24 15:53 624次阅读

    STM32为何在诸多的单片机中脱颖而出?

    STM32为何在诸多的单片机中脱颖而出?
    的头像 发表于 10-19 18:05 287次阅读
    STM32为<b class='flag-5'>何在</b>诸多的<b class='flag-5'>单片机</b>中脱颖而出?

    单片机上位复位电路与按键与上电复位的区别

    单片机上位复位电路与按键与上电复位的区别  单片机的复位电路常用于保证单片机在复位状态下正常工作,以便单片机能够在正确的起始状态下启动。常见的单片机
    的头像 发表于 10-17 18:17 1711次阅读

    单片机上使用的加密算法有哪些?

    单片机上使用的加密算法有哪些
    发表于 10-10 06:17

    PIC单片机上fft时界面卡了怎么解决?

    PIC单片机上fft时,界面卡了
    发表于 10-08 06:50

    何在单片机上用摁键编辑信息可以在单片机上显示?

    做一个设计求指导,就是想在单片机上用摁键编辑信息可以在单片机上显示,并且能发送到电脑上,还能收到电脑的的信息。
    发表于 09-28 06:37

    8位PIC单片机上的通用异步收发器(UART)

    电子发烧友网站提供《8位PIC单片机上的通用异步收发器(UART).pdf》资料免费下载
    发表于 09-26 09:47 0次下载
    8位PIC<b class='flag-5'>单片机上</b>的通用异步收发器(UART)

    8位PIC单片机上的存储器访问分区

    电子发烧友网站提供《8位PIC单片机上的存储器访问分区.pdf》资料免费下载
    发表于 09-25 14:50 0次下载
    8位PIC<b class='flag-5'>单片机上</b>的存储器访问分区