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

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

    关注

    6069

    文章

    45077

    浏览量

    653818
  • 插值算法
    +关注

    关注

    0

    文章

    7

    浏览量

    2107

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机用什么封装

    。深圳市安凯星科技有限公司在为拓邦、朗科、安徽龙多等客户开发方案时,会根据项目场景精准选择封装类型,确保性能与实用性平衡。 常见单片机封装类型及特点 DIP 封装:直式的经典之选 DIP(双列直封装)是最基础的
    的头像 发表于 08-01 13:47 ?219次阅读

    单片机怎么烧程序

    单片机烧程序是将编写好的程序代码写入单片机内部存储单元,让单片机按照预设逻辑工作的过程,是单片机应用开发中不可或缺的环节。无论是简单的灯光控制程序,还是复杂的工业控制
    的头像 发表于 07-23 11:47 ?228次阅读

    STM32单片机片上数字滤波器操作文档 快速入门数字滤波器在单片机上的实现

    这个文档,是为了帮助大家快速入门数字滤波器在单片机上的实现。
    的头像 发表于 06-23 16:53 ?740次阅读
    STM32<b class='flag-5'>单片机</b>片上数字滤波器操作文档 快速入门数字滤波器在<b class='flag-5'>单片机上</b>的实现

    单片机常用算法源码下载!

    单片机常用算法源码下载!
    发表于 06-10 20:44

    单片机项目实例:XPT2046触摸屏芯片驱动与校准算法

    单片机项目实例:XPT2046触摸屏芯片驱动与校准算法,推荐下载!
    发表于 06-09 22:24

    请问DAC39J84内部方式是0吗?

    请问DAC39J84内部方式是0吗? 请问2x 4x 8x 16x 过程分别是怎样
    发表于 01-03 06:41

    Teledyne Lecroy示波器算法

    示波器是通过内部硬件ADC对模拟信号采样来获取离散的数据点,然而这些离散的数据点有时难以完整呈现出原始模拟信号的全貌。软件算法的意义就在于,它能够依据特定的数学算法,在已采集的数据
    的头像 发表于 12-24 16:11 ?1401次阅读

    请问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 ?747次阅读
    基于51<b class='flag-5'>单片机</b>的智能防火GSM上报仿真

    单片机WiFi模块怎样连接手机APP

    连接 :将WiFi模块与单片机物理连接。 编程单片机 :编写代码使单片机能通过WiFi模块与互联网通信。 创建服务器 :在单片机上创建一个小型服务器,以便手机APP可以与之通信。 开发
    的头像 发表于 09-10 15:31 ?3828次阅读

    单片机烧录程序时为什么一直在检测

    重新插拔USB接口,或更换USB线。 接线错误 :检查接线是否按照正确的对应关系连接,如VCC对应5V,TXD对应RXD,RXD对应TXD,GND对应GND。有时候会将TXD和TXD,RXD和RXD接在一起,导致无法烧录。 2. 单片机或开发板问题 单片机
    的头像 发表于 09-02 09:57 ?8372次阅读

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

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

    单片机上位机

    想学习手机控制单片机界面的设计方法,但是不知道用学哪个语言比较方便,有好的书籍推荐下
    发表于 08-23 07:51

    单片机boot0和boot1怎么设置

    硬件方式设置,如通过跳线帽或焊接方式。 具体的设置方法需要参考单片机的数据手册。 单片机启动流程 单片机上电后,
    的头像 发表于 08-22 09:50 ?6101次阅读