%% 2023-04-23
%% 高斯加权移动平均滤波算法
%% 清空环境变量
clear all;close all;clc
%% 定义字体字号和线宽
LW=1;%定义画图线宽
fontnamed='宋体';%定义画图字体名字% 'Arial'
ssize=10;%定义画图字体大小
%% 给定绘图颜色%%更改括号里面的数字就可以更改绘图颜色,详情参照pdf
C1 = chinesecolors(177);%釉蓝
C2 = chinesecolors(4);%香叶红
% C2 = chinesecolors(8);%茶花红
% C3 = chinesecolors(12);%合欢红
% C4 = chinesecolors(17);%鹅冠红
% C5 = chinesecolors(37);%山黎豆红
% C6 = chinesecolors(62);%夹竹桃红
% C7 = chinesecolors(77);%葡萄酒红
% C8 = chinesecolors(463);%芙蓉红
% C9 = chinesecolors(470);%蟹蝥红
% C10 = chinesecolors(495);%极光红
% C11 = chinesecolors(505);%樱桃红
%% 一维非局部均值滤波
%用MATLAB产生正弦波信号
fs = 600; %设定采样频率
N = 300; %计算向量的N点傅里叶变换
n = 0:N-1; %可以看成采样
t = n/fs;
f0 = 15; %设定正弦信号频率
%生成正弦信号
x = sin(2*pi*f0*t);
signal = x + randn(size(t));%添加噪声
%滤波
M = 8;
y1 = smoothdata(signal,'gaussian',M);
% 'sgolay'可以替换为如下定义好的参数
% 'movmean' 每个窗口内的移动平均值。此方法对于减少数据中的周期性趋势很有用。
% 'movmedian' 每个窗口内的移动中位数。当存在离群值时,此方法对于减少数据中的周期性趋势很有用。
% 'gaussian' 每个窗口内的高斯加权移动平均值。
% 'lowess' 每个窗口内的线性回归。该方法可能会耗费大量计算资源,但会减少不连续性。
% 'loess' 每个窗口内的二次回归。此方法的计算开销略高于 'lowess'。
% 'rlowess' 每个窗口内的稳健线性回归。此方法比 'lowess' 方法的计算开销更大,不过它在处理离群值时更为稳健。
% 'rloess' 每个窗口内的稳健二次回归。此方法比 'loess' 方法的计算开销更大,不过它在处理离群值时更为稳健。
% 'sgolay' Savitzky-Golay 滤波器,它根据在 A 的每个窗口上拟合的二次多项式进行平滑处理。当数据变化很快时,此方法可能比其他方法更有效。
%% 绘图标准代码
%% 1行1列
%% 一幅图的时候figureWidth = 8.5;figureHeight = 8;调整这两个参数就可以
%定义整幅图出现的在电脑屏幕上的位置以及长和宽
%这里有必要解释一下为什么figureWidth要设置为8.5;
figureHandle = figure;
figureUnits = 'centimeters';
figureWidth = 8.5;
figureHeight = 6;
set(gcf, 'Units', figureUnits, 'Position', [20 20 figureWidth figureHeight]);
%%
h1=plot(signal,'LineWidth',1,'color',C1);hold on;
h2=plot(y1,'LineWidth',1,'color',C2);hold on;
%% 画图的标准格式代码
% string={'训练集的预测效果';['RMSE=' num2str(MSE_outputn)]};
title(string);
% text(0.5,0.9,'(a) XXX','fontsize',ssize,'FontName',fontnamed);%,'horiz','center'
xlabel('X-axis','fontsize',ssize,'FontName',fontnamed);
ylabel('Y-axis','fontsize',ssize,'FontName',fontnamed);
% axis([0 10 0 7]);%XY轴的范围
% xticks([1 2 3 4 5 6 7 8 9 10]);%画格网的时候的小刻度
% xticklabels({'1','2','3','4','5','6','7','8','9','10'});%加x轴刻度标注
% yticks([1 2 3 4 5 6]);%画格网的时候的小刻度
% yticklabels({'1','2','3','4','5','6'});%加y轴刻度标注
set(gca,'linewidth',1,'fontsize',ssize,'FontName',fontnamed);
% set(gca,'yticklabel',[]);%y轴不显示
% set(gca,'xticklabel',[]);%x轴不显示
grid on;box on;hold on;
kk=legend('噪声信号', '高斯加权移动平均滤波');
set(kk,'location','NorthEast','Box', 'off','fontsize',ssize,'FontName',fontnamed);%'orientation','horizontal',
%% 背景颜色
set(gcf,'Color',[1 1 1])
%% 设置完毕后,按照所需分辨率、格式输出
figW = figureWidth;
figH = figureHeight;
set(figureHandle,'PaperUnits',figureUnits);
set(figureHandle,'PaperPosition',[0 0 figW figH]);
fileout = '高斯加权移动平均滤波';
print(figureHandle,[fileout,'.png'],'-r600','-dpng');
苏格拉没有D
- 粉丝: 10
- 资源: 4
最新资源
- 斗地主源码(还在加码中)
- Python经典题库及答案(67页)
- 面试求职知识结构图(操作系统篇)
- Python编程基础及高级特性的笔记整理
- 机器学习(预测模型):详尽的太空任务数据集
- Python基础知识点复习整理:变量、数据类型、列表与字典详解
- Java毕设项目:基于spring+mybatis+maven+mysql实现的蜀都天香酒楼酒店管理系统【含源码+数据库+毕业论文】
- LabVIEW实现GSM/GPRS通信【LabVIEW物联网实战】
- 公路车桥耦合振动程序(考虑路面不平整度),适用于研究生参考 有两套模型,一套纯ansys,一套是ansys与matlab联合的 模型一: 基于MATLAB与ANSYS软件
- elasticsearch-analysis-hanlp-8.17.0.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈