• 3点线性平滑:
//3点线性平滑
int LinearSmooth3(double* input, long size) {double *output = new double[size];long i(0);if (size < 3){for (i = 0; i <= size - 1; i++){output[i] = input[i];}}else{output[0] = (5.0 * input[0] + 2.0 * input[1] - input[2]) / 6.0;for (i = 1; i <= size - 2; i++){output[i] = (input[i - 1] + input[i] + input[i + 1]) / 3.0;}output[size - 1] = (5.0 * input[size - 1] + 2.0 * input[size - 2] - input[size - 3]) / 6.0;}for (i = 0; i < size; i++){input[i] = output[i];}delete[] output;return 0;
}
  • 5点线性平滑:
//5点线性平滑
int LinearSmooth5(double* input, long size) {double *output = new double[size];long i(0);if (size < 5){for (i = 0; i <= size - 1; i++){output[i] = input[i];}}else{output[0] = (3.0 * input[0] + 2.0 * input[1] + input[2] - input[4]) / 5.0;output[1] = (4.0 * input[0] + 3.0 * input[1] + 2 * input[2] + input[3]) / 10.0;for (i = 2; i <= size - 3; i++){output[i] = (input[i - 2] + input[i - 1] + input[i] + input[i + 1] + input[i + 2]) / 5.0;}output[size - 2] = (4.0 * input[size - 1] + 3.0 * input[size - 2] + 2 * input[size - 3] + input[size - 4]) / 10.0;output[size - 1] = (3.0 * input[size - 1] + 2.0 * input[size - 2] + input[size - 3] - input[size - 5]) / 5.0;}for (i = 0; i < size; i++){input[i] = output[i];}delete[] output;return 0;
}
  • 5点2次线性平滑:
//5点二次线性平滑
int LinearSmooth52(double* input, long size) {double *output = new double[size];long i(0);if (size < 5){for (i = 0; i <= size - 1; i++){output[i] = input[i];}}else{output[0] = (31.0 * input[0] + 9.0 * input[1] - 3.0 * input[2] - 5.0 * input[3] + 3.0 * input[4]) / 35.0;output[1] = (9.0 * input[0] + 13.0 * input[1] + 12 * input[2] + 6.0 * input[3] - 5.0 *input[4]) / 35.0;for (i = 2; i <= size - 3; i++){output[i] = (-3.0 * (input[i - 2] + input[i + 2]) +12.0 * (input[i - 1] + input[i + 1]) + 17 * input[i]) / 35.0;}output[size - 2] = (9.0 * input[size - 1] + 13.0 * input[size - 2] + 12.0 * input[size - 3] + 6.0 * input[size - 4] - 5.0 * input[size - 5]) / 35.0;output[size - 1] = (31.0 * input[size - 1] + 9.0 * input[size - 2] - 3.0 * input[size - 3] - 5.0 * input[size - 4] + 3.0 * input[size - 5]) / 35.0;}for (i = 0; i < size; i++){input[i] = output[i];}delete[] output;return 0;
}
  • 5点3次线性平滑:
//5点三次线性平滑
int LinearSmooth53(double* input, long size) {double *output = new double[size];long i(0);if (size < 5){for (i = 0; i <= size - 1; i++)output[i] = input[i];}else{output[0] = (69.0 * input[0] + 4.0 * input[1] - 6.0 * input[2] + 4.0 * input[3] - input[4]) / 70.0;output[1] = (2.0 * input[0] + 27.0 * input[1] + 12.0 * input[2] - 8.0 * input[3] + 2.0 * input[4]) / 35.0;for (i = 2; i <= size - 3; i++){output[i] = (-3.0 * (input[i - 2] + input[i + 2]) + 12.0 * (input[i - 1] + input[i + 1]) + 17.0 * input[i]) / 35.0;}output[size - 2] = (2.0 * input[size - 5] - 8.0 * input[size - 4] + 12.0 * input[size - 3] + 27.0 * input[size - 2] + 2.0 * input[size - 1]) / 35.0;output[size - 1] = (-input[size - 5] + 4.0 * input[size - 4] - 6.0 * input[size - 3] + 4.0 * input[size - 2] + 69.0 * input[size - 1]) / 70.0;}for (i = 0; i < size; i++){input[i] = output[i];}delete[] output;return 0;
}
  • 7点线性平滑:
//7点线性平滑
int LinearSmooth7(double* input, long size) {double *output = new double[size];long i(0);if (size < 7){for (i = 0; i <= size - 1; i++){output[i] = input[i];}}else{output[0] = (13.0 * input[0] + 10.0 * input[1] + 7.0 * input[2] + 4.0 * input[3] +input[4] - 2.0 * input[5] - 5.0 * input[6]) / 28.0;output[1] = (5.0 * input[0] + 4.0 * input[1] + 3 * input[2] + 2 * input[3] +input[4] - input[6]) / 14.0;output[2] = (7.0 * input[0] + 6.0 * input[1] + 5.0 * input[2] + 4.0 * input[3] +3.0 * input[4] + 2.0 * input[5] + input[6]) / 28.0;for (i = 3; i <= size - 4; i++){output[i] = (input[i - 3] + input[i - 2] + input[i - 1] + input[i] + input[i + 1] + input[i + 2] + input[i + 3]) / 7.0;}output[size - 3] = (7.0 * input[size - 1] + 6.0 * input[size - 2] + 5.0 * input[size - 3] +4.0 * input[size - 4] + 3.0 * input[size - 5] + 2.0 * input[size - 6] + input[size - 7]) / 28.0;output[size - 2] = (5.0 * input[size - 1] + 4.0 * input[size - 2] + 3.0 * input[size - 3] +2.0 * input[size - 4] + input[size - 5] - input[size - 7]) / 14.0;output[size - 1] = (13.0 * input[size - 1] + 10.0 * input[size - 2] + 7.0 * input[size - 3] +4 * input[size - 4] + input[size - 5] - 2 * input[size - 6] - 5 * input[size - 7]) / 28.0;}for (i = 0; i < size; i++){input[i] = output[i];}delete[] output;return 0;
}
  • 7点2次线性平滑:
//7点二次线性平滑
int LinearSmooth72(double* input, long size) {double *output = new double[size];long i(0);if (size < 7){for (i = 0; i <= size - 1; i++){output[i] = input[i];}}else{output[0] = (32.0 * input[0] + 15.0 * input[1] + 3.0 * input[2] - 4.0 * input[3] -6.0 * input[4] - 3.0 * input[5] + 5.0 * input[6]) / 42.0;output[1] = (5.0 * input[0] + 4.0 * input[1] + 3.0 * input[2] + 2.0 * input[3] +input[4] - input[6]) / 14.0;output[2] = (1.0 * input[0] + 3.0 * input[1] + 4.0 * input[2] + 4.0 * input[3] +3.0 * input[4] + 1.0 * input[5] - 2.0 * input[6]) / 14.0;for (i = 3; i <= size - 4; i++){output[i] = (-2.0 * (input[i - 3] + input[i + 3]) +3.0 * (input[i - 2] + input[i + 2]) +6.0 * (input[i - 1] + input[i + 1]) + 7.0 * input[i]) / 21.0;}output[size - 3] = (1.0 * input[size - 1] + 3.0 * input[size - 2] + 4.0 * input[size - 3] +4.0 * input[size - 4] + 3.0 * input[size - 5] + 1.0 * input[size - 6] - 2.0 * input[size - 7]) / 14.0;output[size - 2] = (5.0 * input[size - 1] + 4.0 * input[size - 2] + 3.0 * input[size - 3] +2.0 * input[size - 4] + input[size - 5] - input[size - 7]) / 14.0;output[size - 1] = (32.0 * input[size - 1] + 15.0 * input[size - 2] + 3.0 * input[size - 3] -4.0 * input[size - 4] - 6.0 * input[size - 5] - 3.0 * input[size - 6] + 5.0 * input[size - 7]) / 42.0;}for (i = 0; i < size; i++){input[i] = output[i];}delete[] output;return 0;
}

【C++】代码实现:数据线性平滑算法:3点线性平滑、5点(1次、2次、3次)线性平滑、7点(1次、2次)线性平滑相关推荐

  1. 【数据去噪】SG-多项式平滑算法

    文章目录 一.简介 二.原理 5点3次多项式平滑 三.代码 1. 3点线性平滑 2. 5点线性平滑 3. 5点2次线性平滑 4. 5点3次线性平滑 5. 7点线性平滑 6. 7点2次线性平滑 一.简介 ...

  2. 判断数组中某个元素除自身外是否和其他数据不同_算法工程师要懂的3种算法数据结构:线性表详解...

    算法思想有很多,业界公认的常用算法思想有8种,分别是枚举.递推.递归.分治.贪心.试探法.动态迭代和模拟.当然8种只是一个大概的划分,是一个"仁者见仁.智者见智"的问题. 其实这些 ...

  3. 多类线性分类器算法原理及代码实现 MATLAB

    多类线性分类器算法原理及代码实现 MATLAB 一.算法原理 下面举例说明为何蓝圈部分在case2中是确定的而在case1中不确定: 二.代码实现 1.HK函数 function [] = HK(w1 ...

  4. 大数据 机器学习 分类算法_13种用于数据科学的机器学习分类算法及其代码

    大数据 机器学习 分类算法 The roundup of most common classification algorithms along with their python and r cod ...

  5. 高光谱数据预处理之移动窗口平均平滑算法

    本文转自: https://blog.csdn.net/qq_35166974/article/details/88058945 今天介绍高光谱数据预处理算法中的:移动窗口平均平滑算法. 顾名思义,移 ...

  6. 直立平衡车PID控制策略以及数据平滑算法

    在某些场合下,如果我们把一个突变的数据直接加到一个已经稳定的系统中,那么这个系统可能会很难再次达到稳定,这个时候就需要对突变的数据进行平滑处理,逐渐的加大.可能这样说不太容易理解,举个例子,最近在做一 ...

  7. 一文掌握图像超分辨率重建(算法原理、Pytorch实现)——含完整代码和数据

    目录 一.  图像超分辨率重建概述 1. 概念 2. 应用领域 3. 研究进展 3.1 传统超分辨率重建算法 3.2 基于深度学习的超分辨率重建算法 二.  SRResNet算法原理和Pytorch实 ...

  8. 时间序列挖掘-预测算法-三次指数平滑法(Holt-Winters)——三次指数平滑算法可以很好的保存时间序列数据的趋势和季节性信息...

    from:http://www.cnblogs.com/kemaswill/archive/2013/04/01/2993583.html 在时间序列中,我们需要基于该时间序列当前已有的数据来预测其在 ...

  9. 雷达信号处理算法:静态杂波滤除(附MATLAB代码和数据)

    本文编辑:调皮哥的小助理 本期文章将介绍三种雷达信号处理常用的静态杂波滤方法的基本原理,分别是零速通道置零法.动目标显示(MTI)以及相量均值相消算法(平均相消算法),并分析了静态杂波的滤除效果,以及 ...

  10. 基于三阶贝塞尔曲线的数据平滑算法

    文章目录 前言 贝塞尔曲线 算法描述 算法实现 参考资料 前言 很多文章在谈及曲线平滑的时候,习惯使用拟合的概念,我认为这是不恰当的.平滑后的曲线,一定经过原始的数据点,而拟合曲线,则不一定要经过原始 ...

最新文章

  1. 电机高频注入原理_永磁同步电机新型转子位置估计误差补偿策略
  2. Pci设备驱动:设备枚举
  3. linux 下查看帮助信息
  4. java中取得上下文路径的方法
  5. 【三国志战略版】拆解与分析
  6. 中国十大名校“互撕”往事
  7. VC6.0 导入资源崩溃
  8. 理论基础 —— 索引 —— 分块索引
  9. CentOS新增硬盘系统不能自动进行识别。
  10. 40. 数组中只出现一次的数字(C++版本)
  11. HTML之我的个人主页
  12. 手机端APP防盗链配置问题
  13. linux驱动开发(三):Linux字符设备驱动实例
  14. netty编解码之jboss marshalling
  15. 关于 戴尔G3 NVIDIA 1050TI 显卡驱动无法使用的解决办法
  16. vant上传图片 转二进制_土旦:移动端 Vue+Vant 的Uploader 实现 :上传、压缩、旋转图片-Go语言中文社区...
  17. 【编程题】【Scratch四级】2021.09 小猫钓鱼
  18. vue切换路由不重新渲染_Vue来回切换页面不重新加载 --keep-alive
  19. 力扣707设计链表(单链表,JavaScript)
  20. js中TSC打印机在IE浏览器使用ActiveX控件实现打印

热门文章

  1. 武汉理工大学计算机辅助项目管理简答题,武汉理工大学软件项目管理实验报告...
  2. python拆分参数列表_Python序列拆分操作符与映射拆分操作符实例
  3. CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?
  4. 群晖nas安装监控后台SurveillanceStation
  5. Contrastive Clustering
  6. 算法设计与分析中用到的渐近记号:Θ、O、Ω、o和ω
  7. 完美日记小红书社群运营:KOL的私域流量运营
  8. excel打开html非常慢,打开excel很慢
  9. python对Excel合并单元格拆分
  10. 木吉他学习的高频问答(持续更新)