分享轨迹平滑算法之滑动平均平滑(Moving Average, MA)MATLAB代码
应用
用于一维、二维、三维轨迹平滑(对需要平滑的轴使用该函数即可)
公式
以5点MA平滑为例:
y s ( i ) = 1 2 N + 1 ( y ( i + N ) + y ( i + N − 1 ) + … + y ( i − N ) ) y s ( 1 ) = y ( 1 ) y s ( 2 ) = ( y ( 1 ) + y ( 2 ) + y ( 3 ) ) / 3 y s ( 3 ) = ( y ( 1 ) + y ( 2 ) + y ( 3 ) + y ( 4 ) + y ( 5 ) ) / 5 y s ( 4 ) = ( y ( 2 ) + y ( 3 ) + y ( 4 ) + y ( 5 ) + y ( 6 ) ) / 5 \begin{array}{l} y_{s}(i)=\frac{1}{2 N+1}(y(i+N)+y(i+N-1)+\ldots+y(i-N)) \\ y_{s}(1)=y(1) \\ y_{s}(2)=(y(1)+y(2)+y(3)) / 3 \\ y_{s}(3)=(y(1)+y(2)+y(3)+y(4)+y(5)) / 5 \\ y_{s}(4)=(y(2)+y(3)+y(4)+y(5)+y(6)) / 5 \end{array} ys(i)=2N+11(y(i+N)+y(i+N−1)+…+y(i−N))ys(1)=y(1)ys(2)=(y(1)+y(2)+y(3))/3ys(3)=(y(1)+y(2)+y(3)+y(4)+y(5))/5ys(4)=(y(2)+y(3)+y(4)+y(5)+y(6))/5
MATLAB函数
function res = MovingAverage(input,N)
%% input为平滑前序列(列向量和行向量均可);N为平滑点数(奇数);res返回平滑后的序列(默认行向量)。
sz = max(size(input));
n = (N-1)/2;
res = [];
for i = 1:length(input)if i <= nres(i) = sum(input(1:2*i-1))/(2*i-1);elseif i < length(input)-n+1res(i) = sum(input(i-n:i+n))/(2*n+1);elsetemp = length(input)-i+1;res(i) = sum(input(end-(2*temp-1)+1:end))/(2*temp-1);end
end
end
input为平滑前序列(列向量和行向量均可);N为平滑点数(奇数);res返回平滑后的序列。
一个例子
clear;clc;close all;
arr = [1,2,4,3,6,5,7,7,9,10];
plot(1:10,arr,'LineWidth',3,'color','r');hold on;
arr_MA = MovingAverage(arr, 5);
plot(1:10,arr_MA,'LineWidth',3,'color','b')
legend("平滑前","平滑后");grid on;
分享轨迹平滑算法之滑动平均平滑(Moving Average, MA)MATLAB代码相关推荐
- 理解滑动平均(exponential moving average)
1. 用滑动平均估计局部均值 滑动平均(exponential moving average),或者叫做指数加权平均(exponentially weighted moving average),可以 ...
- BN/Batch Norm中的滑动平均/移动平均/Moving Average
BN中的滑动平均是怎么做的 训练过程中的每一个batch都会进行滑动平均的计算[1]: moving_mean = moving_mean * momentum + batch_mean * (1 - ...
- 滑动平均(Moving Average Models,MA)模型
这里我们直接给出MA(q)模型的形式: c0为一个常数项.这里的at,是AR模型t时刻的扰动或者说新息(也就是白噪声误差项),则可以发现,该模型,使用了过去q个时期的随机干扰或预测误差来线性表达当前的 ...
- ACO蚁群算法优化BP神经网络(ACO-BPNN)回归预测MATLAB代码(有优化前后的对比)
ACO蚁群算法优化BP神经网络(ACO-BPNN)回归预测MATLAB代码(有优化前后的对比) 代码注释清楚. main为运行主程序,可以读取本地EXCEL数据. 很方便,容易上手. (以电厂运行数据 ...
- PSO粒子群算法优化BP神经网络(PSO-BPNN)回归预测MATLAB代码
PSO粒子群算法优化BP神经网络(PSO-BPNN)回归预测MATLAB代码(有优化前后的对比) 代码注释清楚. main为运行主程序,可以读取本地EXCEL数据,也可以加载本地数据.mat,使用换自 ...
- SSA麻雀算法优化BP神经网络(SSA-BPNN)回归预测MATLAB代码(有优化前后的对比
SSA麻雀算法优化BP神经网络(SSA-BPNN)回归预测MATLAB代码(有优化前后的对比) 代码注释清楚. main为运行主程序,可以读取本地EXCEL数据. 很方便,容易上手. (以电厂运行数据 ...
- 利用FFT分析比较卡尔曼滤波算法、低通滤波算法、滑动平均滤波的频谱
1 卡尔曼滤波 详见博客 https://blog.csdn.net/moge19/article/details/81750731 2 低通滤波 2.1 算法推导 一阶RC滤波器的硬件电路如图: 图 ...
- 【嵌入式算法】滑动平均滤波法
算数平均滤波需要多次采样后才能得出一个有效值,如果被检测量变化较快,多次采样后才输出一次有效值,表现就是系统反应迟钝.将当前采样值与之前连续的历史采样值进行平均,这样每次采样结束即可得出有效值.因为参 ...
- 雷达信号处理算法:静态杂波滤除(附MATLAB代码和数据)
本文编辑:调皮哥的小助理 本期文章将介绍三种雷达信号处理常用的静态杂波滤方法的基本原理,分别是零速通道置零法.动目标显示(MTI)以及相量均值相消算法(平均相消算法),并分析了静态杂波的滤除效果,以及 ...
最新文章
- Save a tree as XML using XmlSerializer
- java 写文件 0x0d_Java 读写文件 - My and My Princess…… - OSCHINA - 中文开源技术交流社区...
- linux 函数 文件校验,Linux中的文件效验命令
- 【笔试or面试】金山西山居2014校招笔试题
- 最新的ndkr20编译c_NDKr20使用clang编译ffmpeg
- 飘逸的python - 简明gzip模块压缩教程
- python ide安装_Python基础学习笔记(一)安装以及IDE的配置
- append在python中是什么意思_append在python里是什么意思
- 因果推断与反事实预测——盒马KDD2021的一篇论文(二十三)
- PCWorld:HTML5会终结移动应用程序吗?
- 小米11青春版 MIUI12安装谷歌条件GMS点击登录没反应的解决办法
- 银行信息技术岗面试总结----中信浦发工商建行
- 计算机大作业说明文档,计算机大作业.doc
- Visual Studio 匹配花括号的背景颜色
- C#中WorkBook的操作
- Java是什么?有什么特点?
- 使用新浪微博sdk开发
- python读xml文件生成.h头文件_Python创建xml文件示例
- 如何修复崩溃服务器,cm服务器崩溃,修复解决方案
- VNCViewer连接KVM虚机鼠标不同步问题
热门文章
- WORDPRESS QQ扫码登录插件
- python 英语翻译_Python 实现中英文翻译
- 华为任正非:管理的灰度
- 儿童编程Scratch入门课程都学习什么内容?
- C++ 11 14 RAII经典用法
- apache2 默认首页php,每天进步一点点:Ubuntu下修改Apache2默认网页(主页)
- JavaScript 自执行函数(闭包)
- 3. Proxmox VE 配置 NTP
- 亚马逊Amazon Vendor Central EDI对接流程
- pandas合并groupby_pandas数据聚合与分组运算——groupby方法