参考官方文档:

Linear Interpolate Example

Cubic Spline Interpolation

cubic spline的基本概念:

定义:Spline interpolation is a method of interpolation where the interpolant is a piecewise-defined polynomial called "spline"

计算过程:A is a tridiagonal matrix (a band matrix of bandwidth 3) of size N=n+1. The factorization algorithms (A=LU) can be simplified considerably because a large number of zeros appear in regular patterns. The Crout method has been used: 1) Solve LZ=B

计算已知点两端范围外的点:It is possible to compute the interpolated vector for x values outside the input range (xq<x(1); xq>x(n)). The coefficients used to compute the y values for xq<x(1) are going to be the ones used for the first interval, while for xq>x(n) the coefficients used for the last interval.

接口说明(Version 1.10.0):

1、使用接口一定要注意数组的大小;

2、x 输入数组必须严格按升序排序,并且不能包含两次相同的值: (x(i)<x(i+1))。

//初始化实例函数
void arm_spline_init_f32(arm_spline_instance_f32 *S,arm_spline_type type,const float32_t *x,const float32_t *y,uint32_t n,float32_t *coeffs,float32_t *tempBuffer ) /*
[in,out] S 指向浮点样条结构的一个实例。
[in] type 三次样条插值类型(边界条件)
[in] x 指向已知数据点的 x 值。
[in] y 指向已知数据点的 y 值。
[in] n 个已知数据点。
[in] coeffs b、c 和 d 的系数数组:注意大小是3*(n-1),其中的n是已知的点数
[in] tempBuffer  用于内部计算的 tempBuffer 缓冲区数组,注意大小是n+n-1,其中的n是已知的点数
*///运行cubic spline函数
void arm_spline_f32 (arm_spline_instance_f32 *S,const float32_t *xq,float32_t *pDst,uint32_t blockSize )    /*
[in] S 指向浮点样条结构的一个实例。
[in] xq 指向插值数据点的x值。
[out] pDst 指向输出数据块。
[in] blockSize 输出数据的样本数。
*/

cubic spline 的DSP代码实现(Version 1.10.0):

#include "arm_math.h"
#include "math_helper.h"#define DATA_LEN 1024 //数据长度int main(void)
{arm_spline_instance_f32 spline_instance;arm_spline_type type = 0;float data[512];float data_out[1024];uint32_t n = 512;float coeffs[3*(n-1)];float temp_buffer[n+n-1];arm_spline_init_f32(&spline_instance, type , data, data_out, n, coeffs, temp_buffer);arm_spline_f32(&spline_instance, t, data, data_out, DATA_LEN);
}

嵌入式算法:STM32 F4xx 使用DSP实现cubic spline插值算法相关推荐

  1. 【嵌入式开发-STM32】初识STM32

    [嵌入式开发-STM32]初识STM32 文章目录 [嵌入式开发-STM32]初识STM32 一.什么是STM32 二.STM32的拓展 三.如何确定STM32选型 3.1.STM32的命名方法 3. ...

  2. 【嵌入式】STM32通讯方式

    欢迎关注博主 Mindtechnist 或加入[Linux C/C++/Python社区]一起学习和分享Linux.C.C++.Python.Matlab,机器人运动控制.多机器人协作,智能优化算法, ...

  3. rust做嵌入式开发_Rust 嵌入式开发 STM32 amp; RISC-V

    Rust 嵌入式开发 STM32 & RISC-V 发布于 2020-04-03 11:07:06 本帖最后由 wuhanstudio 于 2020-4-3 11:58 编辑 更新地址: [m ...

  4. 教你如何在STM32中使用DSP指令

    01.DSP简介 提到DSP,作为电子专业的学生,大部分第一时间想到的是DSP芯片,DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用 ...

  5. 嵌入式算法移植优化学习笔记5——CPU,GPU,TPU,NPU都是什么

    嵌入式算法移植优化学习笔记5--CPU,GPU,TPU,NPU都是什么 一.什么是CPU? 二.什么是GPU? 三.什么是NPU? 四.什么是TPU? 附: 随着AI的广泛应用,深度学习已成为当前AI ...

  6. 【嵌入式】STM32实现SPI双机通信的一些细节(2)片选总结

    [嵌入式]STM32实现SPI双机通信的一些细节(2)SPI软硬件片选总结 SPI片选总结 坑爹的手册示意图 理想中的硬件片选 主机软件片选就对了 从机硬件片选 从机软件片选 代码 主机软件片选SPI ...

  7. SVPWM仿真和基于DSP28335的PIL(处理器在环) 仿真模型(将matlab仿真算法生成代码在DSP中在线运行返回数据给Matlab)验证算法可行性和实时性

    SVPWM仿真和基于DSP28335的PIL(处理器在环) 仿真模型(将matlab仿真算法生成代码在DSP中在线运行返回数据给Matlab)验证算法可行性和实时性. 对于数字信号处理很有用. ID: ...

  8. 嵌入式实时操作系统μC/OS-Ⅱ 在DSP芯片上的移植与测试

    [摘要]为了降低DSP 系统软件的开发难度,保证系统的实时性,缩短开发周期,将嵌入式实时操作系统μC/OS-Ⅱ移植到DSP 芯片中是目前比较常用的一种方法.本文介绍了嵌入式实时操作系统μC/OS-Ⅱ的 ...

  9. 嵌入式开发-STM32硬件SPI驱动TFT屏

    嵌入式开发-STM32硬件SPI驱动TFT屏 这次用到的TFT屏 CubeMX设置 代码编写 增加的内容 需要注意问题 代码下载 这次用到的TFT屏 现在的TFT屏幕已经很便宜了,65536色屏幕,2 ...

最新文章

  1. React Native开发之必备React基础
  2. JavaScript 字符串连接性能比较
  3. win7 VS2008 编译luabind-0.9.1 动态库 静态库
  4. 第一阶段SCRUM冲刺-05
  5. sql系列(基础篇)-第一章 关于sysdate
  6. mysql中dint_mysql常用操作——数据库和表的操作1(共2页)
  7. 启动Tomcat时报错,一大堆的
  8. jQuery 5 条件选择器
  9. 微信公众号开发(一)配置服务器
  10. 【好看图标不用愁】吾爱万能软件ICO图标提取器
  11. 基于腾讯地图实现精准定位,实现微信小程序考勤打卡功能
  12. 李勇强seo,李勇强SEO
  13. java实验7 常用类的使用
  14. 【CMS建站】写给大家看的网站制作教程03—零基础学网站制作的简单入门指南...
  15. Nginx 的入门教程
  16. 迟到的总结图文-Hunter司务长
  17. ESP8266 下载报错please check partition type 6 addr:3fd000 len:3000
  18. 网络测试软件smartest,AGILENT-93K的混合信号测试解决方案
  19. [安卓开发笔记二]android Studio通过jni调用C++代码
  20. 单项选择的php代码,php单项选择提交,该如何处理

热门文章

  1. 单片机旋转led程序c语言,基于单片机POV的旋转LED灯程序
  2. rust各地辐射值_rust怎么不被辐射 | 手游网游页游攻略大全
  3. 《Spring实战》读书笔记-第6章 渲染Web视图,java基础入门第二版pdf百度云
  4. 面向对象三大特性之多态
  5. scipy 插值重采样
  6. STM32之LCD液晶屏(ILI9341)显示图片
  7. linux查看hex编码,小弟我使用过的Linux命令之hexdump - ”十六“进制查看器
  8. 那些吓人的 Linux 命令
  9. 永远的Beatles
  10. AppScan 使用疑难解决