您好,欢迎来到东饰资讯网。
搜索
您的当前位置:首页数据预处理的MATLAB实现

数据预处理的MATLAB实现

来源:东饰资讯网
%--------------------------------------------------------------------------

% 调用smooth函数进行加噪数据的平滑处理

%--------------------------------------------------------------------------

%*****************产生加噪正弦波信号,绘制加噪波形图*************************

t = linspace(0,2*pi,500)'; % 产生一个从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轴加标签

-

%*************利用移动平均法对加噪信号进行平滑处理,绘制平滑波形图*************

yy1 = smooth(y,30); % 利用移动平均法对y进行平滑处理

figure; % 新建一个图形窗口

plot(t,y,'k:'); % 绘制加噪波形图

hold on;

plot(t,yy1,'k','linewidth',3); % 绘制平滑后波形图

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

ylabel('moving'); % 为Y轴加标签

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

%*************利用lowess方法对加噪信号进行平滑处理,绘制平滑波形图*************

yy2 = smooth(y,30,'lowess'); % 利用lowess方法对y进行平滑处理

figure; % 新建一个图形窗口

欢迎下载 2

-

plot(t,y,'k:'); % 绘制加噪波形图

hold on;

plot(t,yy2,'k','linewidth',3); % 绘制平滑后波形图

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

ylabel('lowess'); % 为Y轴加标签

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

%*************利用rlowess方法对加噪信号进行平滑处理,绘制平滑波形图************

yy3 = smooth(y,30,'rlowess'); % 利用rlowess方法对y进行平滑处理

figure; % 新建一个图形窗口

plot(t,y,'k:'); % 绘制加噪波形图

hold on;

plot(t,yy3,'k','linewidth',3); % 绘制平滑后波形图

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

欢迎下载

3

-

ylabel('rlowess'); % 为Y轴加标签

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

%*************利用loess方法对加噪信号进行平滑处理,绘制平滑波形图*************

yy4 = smooth(y,30,'loess'); % 利用loess方法对y进行平滑处理

figure; % 新建一个图形窗口

plot(t,y,'k:'); % 绘制加噪波形图

hold on;

plot(t,yy4,'k','linewidth',3); % 绘制平滑后波形图

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

ylabel('loess'); % 为Y轴加标签

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

%*************利用sgolay方法对加噪信号进行平滑处理,绘制平滑波形图*************

欢迎下载 4

-

yy5 = smooth(y,30,'sgolay',3); % 利用sgolay方法对y进行平滑处理

figure; % 新建一个图形窗口

plot(t,y,'k:'); % 绘制加噪波形图

hold on;

plot(t,yy5,'k','linewidth',3); % 绘制平滑后波形图

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

ylabel('sgolay'); % 为Y轴加标签

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

%--------------------------------------------------------------------------

% 调用smoothts函数对金融时间序列数据进行平滑处理

%--------------------------------------------------------------------------

%*********************读取金融时间序列数据,绘制波形图************************

x = xlsread('examp03_02.xls'); % 从文件examp03_02.xls中读取数据

欢迎下载 5

-

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

figure; % 新建一个图形窗口

plot(price,'k','LineWidth',2); % 绘制日收盘价曲线图,黑色实线,线宽为2

xlabel('观测序号'); ylabel('上海股市日收盘价'); % 为X轴和Y轴加标签

%*****************利用盒子法对数据进行平滑处理,绘制平滑波形图****************

output1 = smoothts(price,'b',30); % 用盒子法平滑数据,窗宽为30

output2 = smoothts(price,'b',100); % 用盒子法平滑数据,窗宽为100

figure; % 新建一个图形窗口

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

hold on

plot(output1,'k','LineWidth',2); % 绘制平滑后曲线图,黑色实线,线宽为2

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

xlabel('观测序号'); ylabel('Box method'); % 为X轴和Y轴加标签

欢迎下载

6

-

% 为图形加标注框

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

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

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

xlabel('观测序号'); ylabel('Gaussian window method'); % 为X轴和Y轴加标签

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

'平滑曲线(窗宽100,标准差100)','location','northwest');

欢迎下载

7

-

%*****************利用指数法对数据进行平滑处理,绘制平滑波形图****************

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

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

figure; % 新建一个图形窗口

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

hold on

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

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

xlabel('观测序号'); ylabel('Exponential method'); % 为X轴和Y轴加标签

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

%--------------------------------------------------------------------------

% 调用medfilt1函数对加噪正弦波信号进行平滑处理

%--------------------------------------------------------------------------

欢迎下载

8

-

%*****************产生加噪正弦波信号,绘制加噪波形图*************************

t = linspace(0,2*pi,500)'; % 产生一个从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; % 新建一个图形窗口

欢迎下载

9

plot(t,y,'k:'); % 绘制加噪波形图

hold on

plot(t,yy,'k','LineWidth',3); % 绘制平滑后曲线图,黑色实线,线宽为3

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

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

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

欢迎下载 -

10

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuoyibo.cn 版权所有 湘ICP备2023022426号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务