爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7122|回复: 3

[源程序] 最简单的滑动平均法

[复制链接]

新浪微博达人勋

发表于 2019-5-31 14:14:54 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
滑动平均就是在一定的步长下生成一个新的滑动平均序列,关键在于该序列中每个元素如何算得,公式魏凤英p48

clear; clc
% 削弱短于滑动长度的周期

% 人为创建一周期为7的序列
x = [31.7, 31.5, 31.0, 31.2, 31.5, 31.4, 32.0];
% repmat以复制的形式扩充矩阵,前一个数字表示新矩阵的行数,后一个数字表示新矩阵的列数
x = repmat(x,1,10);

% n为原样本序列长度;k为滑动长度,最好选奇数;m为滑动平均序列长度
n = 70;
k = 50;
m = n - k + 1;

% 构造滑动平均序列xs(x_smooth),其长度是n - k + 1,对xs进行重构
for i = 1 : m
    for j = 1 : k
        xx(j) = x(j+i-1);
    end
    xs(i) = sum(xx) / k;
end

figure
plot(x);
hold on;
plot(xs);

% 实验结果!!!
% 当k设为实际周期的n倍时,滑动平均序列为一直线(这是周期被削平了?还是周期被完全凸显?或周期长度变成1了?)
% k设为1时,相当于无滑动,两线重叠
% k比nT大或小的效果见视频smo.avi,smo.avi的生成代码见SmoAvi.m

k=7

k=7

k=8

k=8

k=9

k=9

k=10

k=10

k=11

k=11

k=12

k=12

k=13

k=13

k=14

k=14

SmoAvi.m

704 Bytes, 下载次数: 4, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2019-5-31 14:29:53 | 显示全部楼层
更简单的方法是用smooth和filter函数,此程序的意义在于希望探讨k取值不同的影响
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-6-10 22:54:49 | 显示全部楼层
学习啦,好好学习,天天向上
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-2-5 20:11:23 | 显示全部楼层
你好,我想问一下滑动平均的时候,这个端点处的值是怎么处理的呢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表