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

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

    关注

    6032

    文章

    44514

    浏览量

    632915
  • 插值算法
    +关注

    关注

    0

    文章

    7

    浏览量

    2032

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

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

收藏 人收藏

    评论

    相关推荐

    请问TPA3112D1的datasheet上的control system要连在单片机上吗?

    请问TPA3112D1的datasheet上的control system 要连在单片机上吗?AVCC是连在单片机上的某个引脚吗?PVCC是连接电源吗?附件是datasheet上给的参考电路图。
    发表于 10-31 08:32

    TAS5711用GDE生成的EQ cfg配置文件怎么加载到单片机上

    TAS5711 的用GDE 生成的EQcfg配置文件怎么加载到单片机上
    发表于 10-25 13:48

    基于51单片机的智能防火GSM上报仿真

    设定的报警时,蜂鸣器响,相应的指示灯亮;当测得的温度和烟雾同时超过报警时,电机转动,表示灭火; (4)报警时,利用GSM模块(仿真中无GSM模块,用串口模拟)将测得的温度与烟雾
    的头像 发表于 10-21 11:48 166次阅读
    基于51<b class='flag-5'>单片机</b>的智能防火GSM上报仿真

    单片机烧录程序的线比单片机上的少还能烧录吗

    单片机烧录原理 单片机烧录是指将编写好的程序代码通过一定的方式传输到单片机的存储器中,使其能够按照程序的指令运行。这个过程通常需要使用烧录器或者编程器等设备,通过一定的接口与单片机进行
    的头像 发表于 09-02 09:54 408次阅读

    一个暑假如何学习单片机

    一个暑假是学习和掌握单片机基础知识的良好时机。以下是一个关于如何在暑假期间学习单片机的建议计划
    的头像 发表于 07-03 09:19 479次阅读
    一个暑假如何学习<b class='flag-5'>单片机</b>

    单片机上位机软件用什么开发

    在开发单片机上位机软件时,选择合适的开发工具和编程语言至关重要。本文将详细介绍单片机上位机软件开发的各个方面,包括开发环境、编程语言、界面设计、通信协议、调试与测试等。 1. 开发环境选择 开发单片机上
    的头像 发表于 06-07 09:17 1190次阅读

    何在labview FPGA端实现二维的功能?

    例如,现在有X,C,W三个,每一组(X.C)对应一个W,我拥有几组(X,C)和W的对应关系(即具体数值),我要根据未知的一组(X,C)来通过值得到W。其中X和C没有对应关系,请
    发表于 05-15 14:59

    请问stm8单片机上电后PC的变化是怎样的?

    请问一下stm8单片机上电后,PC的变化是怎样的?
    发表于 05-15 08:04

    单片机上用malloc()是个坑,有隐患?

    单片机研发前几年,一直没用过动态内存分配的功能,但是如果想成为软件架构设计师,这是绕不过的一道坎。
    的头像 发表于 02-22 15:53 1857次阅读
    <b class='flag-5'>单片机上</b>用malloc()是个坑,有隐患?

    什么是线性插值?一维线性插值和双线性插值在BMS开发中的应用

    线性插值法(linear interpolation),是指使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的的方法。
    的头像 发表于 12-24 10:44 9370次阅读
    什么是线性<b class='flag-5'>插值</b>?一维线性<b class='flag-5'>插值</b>和双线性<b class='flag-5'>插值</b>在BMS开发中的应用

    图像理论研究之双三次插值

    双三次插值又叫双立方,用于在图像中“”(Interpolating)或增加“像素”(Pixel)数量/密度的一种方法。通常利用
    的头像 发表于 12-14 14:35 1059次阅读
    图像<b class='flag-5'>插</b><b class='flag-5'>值</b>理论研究之双三次<b class='flag-5'>插值</b>

    单片机按键切换模式怎么设置

    单片机作为一种微处理器,在各种嵌入式系统中扮演着核心控制器的角色。其中,按键输入作为单片机控制中常见的交互方式,实现模式切换是常见的需求。本文将详细介绍如何在单片机中实现按键切换模式。
    的头像 发表于 12-13 11:07 3783次阅读

    何在更小的空间内获取更高的电容

    何在更小的空间内获取更高的电容
    的头像 发表于 12-04 15:04 394次阅读
    如<b class='flag-5'>何在</b>更小的空间内获取更高的电容<b class='flag-5'>值</b>?

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

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

    大佬总结!这篇把单片机数字滤波算法讲绝了

    单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机实现数字滤
    发表于 11-30 18:39