精华内容
下载资源
问答
  • Matlab数据平滑处理

    2015-04-20 04:49:39
    Matlab数据平滑处理主要用于对于MATLAB所描述的函数进行平滑处理
  • MATLAB数据平滑处理

    万次阅读 多人点赞 2017-05-05 14:31:40
    试调用smoothts函数日收盘价数据进行平滑处理 绘制日收盘价曲线图: % 从文件examp7_1_2.xls中读取数据 >> x = xlsread('examp7_1_2.xls'); >> price = x(:,4)'; % 提取矩阵x的第4列数据...

    参考链接:http://bbs.pinggu.org/thread-3777396-1-1.html

    smoothts函数

    调用格式:

    output = smoothts(input)

    output = smoothts(input, ‘b’, wsize) % 盒子法

    output = smoothts(input, ‘g’, wsize, stdev) % 高斯窗方法

    output = smoothts(input, ‘e’, n) % 指数法

    【例7.1-2】现有上海股市日开盘价、最高价、最低价、收盘价、收益率等数据,时间跨度为2005年1月4日至2007年4月3日,共510组数据。完整数据保存在文件examp7_1_2.xls中,其中部分数据如下图所示。试调用smoothts函数对日收盘价数据进行平滑处理

    绘制日收盘价曲线图:

    % 从文件examp7_1_2.xls中读取数据

    >> x = xlsread('examp7_1_2.xls');

    >> price = x(:,4)'; % 提取矩阵x的第4列数据,即收盘价数据

    >> figure; % 新建一个图形窗口% 绘制日收盘价曲线图,黑色实线,线宽为2

    >> plot(price,'k','LineWidth',2); % 为X轴和Y轴加标签

    >> xlabel('观测序号');

    >> ylabel('上海股市日收盘价');

    1.jpg

    盒子法:

    % 用盒子法平滑数据,窗宽为30

    >> output1 = smoothts(price,'b',30);

    % 用盒子法平滑数据,窗宽为100

    >> output2 = smoothts(price,'b',100);

    >> figure; % 新建一个图形窗口

    >> plot(price,'.'); % 绘制日收盘价散点图

    >> hold on

    % 绘制平滑后曲线图,黑色实线,线宽为2

    >> plot(output1,'k','LineWidth',2);

    % 绘制平滑后曲线图,黑色点划线,线宽为2

    >> plot(output2,'k-.','LineWidth',2);

    % 为X轴和Y轴加标签

    >> xlabel('观测序号'); ylabel('Box method');

    % 为图形加标注框

    >> legend('原始散点','平滑曲线(窗宽30)','平滑曲线(窗宽100)','location','northwest');

    2.jpg

    用高斯窗方法平滑数据:

    >> output3 = smoothts(price,'g',30); % 窗宽为30,标准差为默认值0.65

    >> output4 = smoothts(price,'g',100,100); % 窗宽为100,标准差为100

    >> figure; % 新建一个图形窗口

    >> plot(price,'.'); % 绘制日收盘价散点图

    >> hold on % 绘制平滑后曲线图,黑色实线,线宽为2

    >> plot(output3,'k','LineWidth',2); % 绘制平滑后曲线图,黑色点划线,线宽为2

    >> plot(output4,'k-.','LineWidth',2); % 为X轴和Y轴加标签>> xlabel('观测序号'); ylabel('Gaussian window method');

    >> legend('原始散点','平滑曲线(窗宽30,标准差0.65)',... '平滑曲线(窗宽100,标准差100)','location','northwest');

    3.jpg

    用指数法平滑数据:

    >> output5 = smoothts(price,'e',30); % 用指数法平滑数据,窗宽为30

    >> output6 = smoothts(price,'e',100); % 用指数法平滑数据,窗宽为100 >> figure; % 新建一个图形窗口

    >> plot(price,'.'); % 绘制日收盘价散点图

    >> hold on % 绘制平滑后曲线图,黑色实线,线宽为2

    >> plot(output5,'k','LineWidth',2); % 绘制平滑后曲线图,黑色点划线,线宽为2

    >> plot(output6,'k-.','LineWidth',2); % 为X轴和Y轴加标签>> xlabel('观测序号'); ylabel('Exponential method');

    >> legend('原始散点','平滑曲线(窗宽30)','平滑曲线(窗宽100)','location','northwest');

    4.jpg

    三、medfilt1函数(一维中值滤波)

    调用格式:

    y = medfilt1(x,n)

    y = medfilt1(x,n,blksz)

    y = medfilt1(x,n,blksz,dim)


    【例7.1-3】产生一列正弦波信号,加入噪声信号,然后调用medfilt1函数对加入噪声的正弦波进行滤波(平滑处理)

    % 产生一个从0到2*pi的向量,长度为500

    >> t = linspace(0,2*pi,500)';

    >> y = 100*sin(t); % 产生正弦波信号

    % 产生500行1列的服从N(0,152)分布的随机数,作为噪声信号

    >> noise = normrnd(0,15,500,1);

    >> y = y + noise; % 将正弦波信号加入噪声信号

    >> figure; % 新建一个图形窗口

    >> plot(t,y); % 绘制加噪波形图

    >> xlabel('t'); % 为X轴加标签

    >> ylabel('y = sin(t) + 噪声'); % 为Y轴加标签

    5.jpg

    中值滤波:

    % 调用medfilt1对加噪正弦波信号y进行中值滤波,并绘制波形图

    >> yy = medfilt1(y,30); % 指定窗宽为30,对y进行中值滤波

    >> figure; % 新建一个图形窗口>> plot(t,y,'k:'); % 绘制加噪波形图

    >> hold on % 绘制平滑后曲线图,黑色实线,线宽为3

    >> plot(t,yy,'k','LineWidth',3);

    >> xlabel('t'); % 为X轴加标签

    >> ylabel('中值滤波'); % 为Y轴加标签

    >> legend('加噪波形','平滑后波形');

    6.jpg

    展开全文
  • matlab数据平滑处理

    千次阅读 2018-04-18 23:15:00
    利用移动平均滤波器列向量y进行平滑处理,返回与y等长的列向量yy。移动平均滤波器的默认窗宽为5,yy中元素的计算方法如下: yy(1)=y(1) yy(2)=(y(1)+y(2)+y(3))/3 yy(3)=(y...

    http://www.twoeggz.com/news/172341.html

    关于几种平滑滤波及其举例:

    1、 smooth函数平滑处理

    (1)yy=smooth(y)

    利用移动平均滤波器对列向量y进行平滑处理,返回与y等长的列向量yy。移动平均滤波器的默认窗宽为5,yy中元素的计算方法如下:

    yy(1)=y(1)

    yy(2)=(y(1)+y(2)+y(3))/3

    yy(3)=(y(1)+y(2)+y(3)+y(4)+y(5))/5

    yy(4)=(y(2)+y(3)+y(4)+y(5)+y(6))/5

    ......

    (2) yy=smooth(y,span)

    用span参数指定移动平均滤波器的窗宽,函数内部会强制将span变为奇数。

    (3)yy=smooth(y,method)

    method参数指定平滑数据的方法,method是字符串变量,可用的字符串如下表:

    method参数值 说明

    moving 移动平均法(默认情况)

    lowess 局部回归(加权线性最小二乘和一个一阶多项式模型)

    loess 局部回归(加权线性最小二乘和一个二阶多项式模型)

    sgolay Sacitzky-Golay滤波,一种广义移动平均滤波法

    rlowess lowess方法的稳健形式

    rloess loess方法的稳健形式

    (4)yy=smooth(y,span,method)

    method指定平滑方法,span指定窗宽。

    2、 smoothts函数平滑处理

    output=smoothts(input)

    output=smoothts(input,‘b’,wsize)

    output=smoothts(input,‘g’,wsize,stdev)

    output=smoothts(input,‘e’,n)

    输入参数input是输入数据,‘b’,‘g’,‘e’表示不同的数据平滑方法,‘b’表示盒子法(默认情况),'g'表示高斯窗方法,‘e’表示指数法。wsize指定各种数据平滑方法的窗宽,默认窗宽为5。stdev用来指定高斯方法的标准差,默认为0.65.

    3、 medfilt1函数平滑处理

    (1)y=medfilt1(x,n);

    (2) y=medfilt1(x,n,blksz)

    (3)y=medfilt1(x,n,blksz,dim)

     

    转载于:https://www.cnblogs.com/rjjhyj/p/8878357.html

    展开全文
  • MATLAB平滑处理数据
  • 试调用smoothts函数日收盘价数据进行平滑处理 绘制日收盘价曲线图: % 从文件examp7_1_2.xls中读取数据 >> x = xlsread('examp7_1_2.xls'); >> price = x(:,4)'; % 提取矩阵x的第4列数据,即收盘价数据 >> figure;...

    参考链接:http://bbs.pinggu.org/thread-3777396-1-1.html

    smoothts函数

    调用格式:

    output = smoothts(input)

    output = smoothts(input, ‘b’, wsize) % 盒子法

    output = smoothts(input, ‘g’, wsize, stdev) % 高斯窗方法

    output = smoothts(input, ‘e’, n) % 指数法

    【例7.1-2】现有上海股市日开盘价、最高价、最低价、收盘价、收益率等数据,时间跨度为2005年1月4日至2007年4月3日,共510组数据。完整数据保存在文件examp7_1_2.xls中,其中部分数据如下图所示。试调用smoothts函数对日收盘价数据进行平滑处理

    绘制日收盘价曲线图:

    % 从文件examp7_1_2.xls中读取数据

    >> x = xlsread('examp7_1_2.xls');

    >> price = x(:,4)'; % 提取矩阵x的第4列数据,即收盘价数据

    >> figure; % 新建一个图形窗口% 绘制日收盘价曲线图,黑色实线,线宽为2

    >> plot(price,'k','LineWidth',2); % 为X轴和Y轴加标签

    >> xlabel('观测序号');

    >> ylabel('上海股市日收盘价');

    盒子法:

    % 用盒子法平滑数据,窗宽为30

    >> output1 = smoothts(price,'b',30);

    % 用盒子法平滑数据,窗宽为100

    >> output2 = smoothts(price,'b',100);

    >> figure; % 新建一个图形窗口

    >> plot(price,'.'); % 绘制日收盘价散点图

    >> hold on

    % 绘制平滑后曲线图,黑色实线,线宽为2

    >> plot(output1,'k','LineWidth',2);

    % 绘制平滑后曲线图,黑色点划线,线宽为2

    >> plot(output2,'k-.','LineWidth',2);

    % 为X轴和Y轴加标签

    >> xlabel('观测序号'); ylabel('Box method');

    % 为图形加标注框

    >> legend('原始散点','平滑曲线(窗宽30)','平滑曲线(窗宽100)','location','northwest');

    用高斯窗方法平滑数据:

    >> output3 = smoothts(price,'g',30); % 窗宽为30,标准差为默认值0.65

    >> output4 = smoothts(price,'g',100,100); % 窗宽为100,标准差为100

    >> figure; % 新建一个图形窗口

    >> plot(price,'.'); % 绘制日收盘价散点图

    >> hold on % 绘制平滑后曲线图,黑色实线,线宽为2

    >> plot(output3,'k','LineWidth',2); % 绘制平滑后曲线图,黑色点划线,线宽为2

    >> plot(output4,'k-.','LineWidth',2); % 为X轴和Y轴加标签>> xlabel('观测序号'); ylabel('Gaussian window method');

    >> legend('原始散点','平滑曲线(窗宽30,标准差0.65)',... '平滑曲线(窗宽100,标准差100)','location','northwest');

    用指数法平滑数据:

    >> output5 = smoothts(price,'e',30); % 用指数法平滑数据,窗宽为30

    >> output6 = smoothts(price,'e',100); % 用指数法平滑数据,窗宽为100 >> figure; % 新建一个图形窗口

    >> plot(price,'.'); % 绘制日收盘价散点图

    >> hold on % 绘制平滑后曲线图,黑色实线,线宽为2

    >> plot(output5,'k','LineWidth',2); % 绘制平滑后曲线图,黑色点划线,线宽为2

    >> plot(output6,'k-.','LineWidth',2); % 为X轴和Y轴加标签>> xlabel('观测序号'); ylabel('Exponential method');

    >> legend('原始散点','平滑曲线(窗宽30)','平滑曲线(窗宽100)','location','northwest');

    三、medfilt1函数(一维中值滤波)

    调用格式:

    y = medfilt1(x,n)

    y = medfilt1(x,n,blksz)

    y = medfilt1(x,n,blksz,dim)

    【例7.1-3】产生一列正弦波信号,加入噪声信号,然后调用medfilt1函数对加入噪声的正弦波进行滤波(平滑处理)

    % 产生一个从0到2*pi的向量,长度为500

    >> t = linspace(0,2*pi,500)';

    >> y = 100*sin(t); % 产生正弦波信号

    % 产生500行1列的服从N(0,152)分布的随机数,作为噪声信号

    >> noise = normrnd(0,15,500,1);

    >> y = y + noise; % 将正弦波信号加入噪声信号

    >> figure; % 新建一个图形窗口

    >> plot(t,y); % 绘制加噪波形图

    >> xlabel('t'); % 为X轴加标签

    >> ylabel('y = sin(t) + 噪声'); % 为Y轴加标签

    中值滤波:

    % 调用medfilt1对加噪正弦波信号y进行中值滤波,并绘制波形图

    >> yy = medfilt1(y,30); % 指定窗宽为30,对y进行中值滤波

    >> figure; % 新建一个图形窗口>> plot(t,y,'k:'); % 绘制加噪波形图

    >> hold on % 绘制平滑后曲线图,黑色实线,线宽为3

    >> plot(t,yy,'k','LineWidth',3);

    >> xlabel('t'); % 为X轴加标签

    >> ylabel('中值滤波'); % 为Y轴加标签

    >> legend('加噪波形','平滑后波形');

    展开全文
  • 本博客适用于数字高程模型的平滑处理,对于其他数据平滑处理仅做参考 平滑处理公式采用Daly1984 Daly C1994_A statistical topographic model for mapping climatological precipitation over mountainous terrain...

    本博客适用于数字高程模型的平滑处理,对于其他数据的平滑处理仅作参考
    平滑处理公式采用Daly1984
    Daly C1994_A statistical topographic model for mapping climatological precipitation over mountainous terrain.
    ele(m,n) = 0.5ele(m,n)+0.125(ele(m-1,n)+ele(m+1,n)+ele(m,n-1)+ele(m,n+1))
    即中心点的高程由自身和上下左右四个点的高程加权平均得到
    (这里就涉及边界位置处的点如何处理的问题,我的做法是给栅格额外再加一圈0值,根据0的个数改变权重,实现边界位置点的高程平滑)

    MATLAB代码如下:

    %% 此代码是用于平滑处理DEM数据
    %计算公式(Daly,1984) 
    %ele(m,n) = 0.5ele(m,n)+0.125(ele(m-1,n)+ele(m+1,n)+ele(m,n-1)+ele(m,n+1))
    %为了方便处理边界位置处的点,给栅格矩阵额外加一圈
    clc
    clear
    
    %% 读取数据
    [DEM,GeoRef] = geotiffread('Resample.tif');   %GeoRef存储tif文件的地理空间信息
    [x,y] = size(DEM);                            %存储tif文件的栅格大小
    lat = GeoRef.LatitudeLimits;                  %存储tif文件的维度范围
    lon = GeoRef.LongitudeLimits;                 %存储tif文件的经度范围
    DEM(DEM==-32768) = 0;                         %将背景值换成0,之后统一处理
    
    %% 给DEM矩阵再加外围一圈,方便之后边界位置的处理
    DEM = [zeros(x,1),DEM];    %最左侧加一列
    DEM = [DEM,zeros(x,1)];    %最右侧加一列
    DEM = [zeros(1,y+2);DEM];  %最上侧加一行
    DEM = [DEM;zeros(1,y+2)];  %最下侧加一行
    DEM_origine = DEM;         %存储此时的矩阵,方便检查,看有没有出错
    
    %% 平滑处理
    for t = 1:40               %平滑处理的重复次数,最多40次
        for i = 2:x+1
            for j = 2:y+1
                if DEM(i,j) == 0                 %0意味着背景值或者最外围一圈,跳过
                    continue
                else           
                    a = sum([DEM(i-1,j),DEM(i+1,j),DEM(i,j-1),DEM(i,j+1)]==0);   %计算目标栅格周围为0的栅格数
                    %计算中心点的高程,4/(4-a)会根据周围0的个数而变化,从而改变权重,默认不出现周围全是0的情况,a在0-3之间
                    DEM(i,j) = 0.5*DEM(i,j)+0.125*4/(4-a)*(DEM(i-1,j)+DEM(i+1,j)+DEM(i,j-1)+DEM(i,j+1));
                end
            end
        end
        if t == 8||t == 16||t == 24||t == 32||t == 40     %重复平滑处理8、16等次数后输出图像
            DEM_out = DEM;
            DEM_out(:,16) = [];
            DEM_out(:,1) = [];
            DEM_out(15,:) = [];
            DEM_out(1,:) = [];                   %删掉外围一圈
            DEM_out(DEM_out==0) = -32768;        %将0值变回之前的默认背景值
            R = georasterref('RasterSize', size(DEM_out),'Latlim', [double(min(lat))...
                double(max(lat))], 'Lonlim', [double(min(lon)) double(max(lon))]); %记录空间坐标信息
            R.ColumnsStartFrom = 'north';
            geotiffwrite(['F:\Data of China Flash Flood\DEM_smoothing_test\Resample_tif\smoothed',num2str(t),'times','.tif'],DEM_out,R);     %保存绘制的地理栅格图像
        end
    end
    disp('finish!')
    

    以上代码的参考文献有:
    MATLAB nc文件转tif (可视化范例)
    Matlab:Save as GeoTiff Format

    效果如下:
    在这里插入图片描述

    展开全文
  • 实现对数据平滑、去噪处理,得到平滑后的数据
  • matlab数据平滑程序Word版》由会员分享,可在线阅读,更多相关《matlab数据平滑程序Word版(9页珍藏版)》请在人人文库网上搜索。1、传播优秀Word版文档 ,希望您有帮助,可双击去除!Matlab 数据平滑程序一、...
  • 基于MatLab不同平滑处理对边缘检测效果的影响.pdf
  • 对matlab平滑处理做了详细的介绍 yy1=smooth(y,30); %利用移动平均法y做平滑处理 >> figure; %新建一个图形窗口 >> plot(t,y,'k:'); %绘制加噪波形图 >> hold on; >> plot(t,yy1,'k','...
  • 利用MATLAB仿真软件实现图像的平滑处理数据采集 1.1原理分析 1.2项目代码 二 图像的加噪处理 2.1加入高斯噪声 2.1.1 原理分析 三 图像的去噪原理 3.1典型的去噪算法分析 3.2 均值滤波 3.3 中值滤波 四 实验...
  • 数据平滑处理

    2021-08-24 20:50:27
    %% 数据平滑处理 rng(0) y = rand(4); yy = smooth(y); y1 = smooth(y,'lowess'); y2 = smooth(y,'rlowess'); % 利用rlowess方法y进行平滑处理 y3 = smooth(y,'loess'); % 利用loess方法y进行平滑处理 y4 = ...
  • 移动平均值是一种常见的数据平滑技术,它沿着数据滑动窗口,同时计算每个窗口内点的均值。这可以帮助消除从一个数据点到下一个数据点的非显著变化。例如,假设每分钟测量一次风速,持续约 3 小时。使用 movmean 函数...
  • Matlab数据分析练习-平滑处理

    千次阅读 2017-12-08 20:19:09
    t = linspace(0,2*pi,500); %产生一个0到2pi的向量,长度为500 y = 100*sin(t); noise = normrnd(0,15,1,500); %产生随机数,符合正态分布 ...legend('原始信号','平滑后的信号'); title('moving');
  • 基于MATLAB的振动信号平滑处理方法.pdf
  • 时间序列数据进行平滑处理效果预览: Excel原数据部分预览: 1. 读取金融时间序列数据,绘制波形图 x = xlsread('examp03_02.xls'); % 从文件examp03_02.xls中读取数据 price = x(:,4)'; % 提取矩阵x的第4列数据,...
  • 数据平滑处理的例子

    2013-03-21 15:42:20
    对数据进行平滑处理的典型例子 对数据进行平滑处理的典型例子 对数据进行平滑处理的典型例子
  • MATLAB实现平滑处理

    千次阅读 2020-10-16 20:23:33
    一、五点三次平滑法 1.函数调用: 2.范例: clear all; clc; close all; xx=load('xnoisedata1.txt'); % 读入数据 time=xx(:,1);... % 调用mean5_3函数,平滑数据 % 作图 subplot 211; plot(time,x,'k');
  • Matlab平滑处理记录

    2020-10-14 15:52:16
    数据与软件处理后的数据相差并不大(如图所示),需要放大许多倍才能看出差别,对于结果呈现并不明显且影响不大,因此只在此说明,后面不再进行原数据与软件数据的比较。 原图 放大图 移动平均平滑 代码 ...
  • Matlab's smooth function, by default, smooths data using a 5-point moving average. What would be the best way to do the same in python?For example, if this is my data00.8235294117647060.85294117647058...
  • https://blog.csdn.net/kunshao_07/article/details/80809631 需求 想要两个列向量形成的曲线进行平滑处理。参考了@_Flamingo_的处理方法:https://blog.csdn.net/steelbasalt/article/details/48756143。两个列...
  • 利用移动平均法加噪信号进行平滑处理,绘制平滑波形图3. 利用lowess方法加噪信号进行平滑处理,绘制平滑波形图4. 利用rlowess方法加噪信号进行平滑处理,绘制平滑波形图5. 利用loess方法加噪信号进行平滑...
  • 介绍利用MATLAB,如何振动信号平滑处理的方法
  • MATLAB在工程测试信号平滑处理中的应用.pdf
  • 原标题:matlab使用移动平均滤波器、重采样和Hampel过滤器进行信号平滑处理原文链接:http://tecdat.cn/?p=6977此示例显示如何使用移动平均滤波器和重采样来隔离每小时温度读数的时间周期分量的影响,以及从开环电压...
  • 数据处理方面,经常需要使用到matlab软件,matlab可以对数据进行数据缺失和离散值处理,去除平滑和去除线性趋势,数据组合等,针对这些都有很多数据函数,这里简单介绍一下相应的函数。 缺失数据: 一般在大量数据...
  • 测试采集到的信号因外界干扰往往呈现出非线性、...本文介绍了振动原始信号消除噪声信号的两种平滑处理方 法 , 并在 MATLAB 操作平台上进行算法编程实现 , 给出了编程流程图。实测的信号进行平滑处理计算 , 再用 FF

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,258
精华内容 2,503
关键字:

matlab对数据平滑处理

matlab 订阅