matlab 信号平滑处理方法

news/2025/2/12 22:02:09/

smooth函数、imfilter滤波、直接用conv2,最简单的低通比如1/9*ones(3)



详细:

1.smooth:

%--------------------------------------------------------------------------
%              调用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;  % 新建一个图形窗口
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轴加标签
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方法对加噪信号进行平滑处理,绘制平滑波形图*************
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('加噪波形','平滑后波形');



http://www.ppmy.cn/news/387915.html

相关文章

warning:iteration 7 invokes undefined behavior

这里是因为定义FP_Request_Buffer数组时只开了28位,而下标却到了32造成的溢出错误.

非参数统计之局部多项式回归

局部多项式回归 局部多项式回归是非参数回归的一种方法,主要是由于 N a d a r a y a − W a t s o n Nadaraya-Watson Nadaraya−Watson估计方法的加权是基于整个样本点,而且往往在边界上的估计效果并不理想。 局部线性回归 解决上述问题的办法就是用…

核平滑方法——局部多项式回归

Kernel Smoothing — Local polynomial regression 1. 核平滑方法代码实现 2. 局部多项式核回归2.1 加权最小二乘法(Weighted least squares)2.2 局部多项式核回归(Local polynomial kernel regression)代码实现 \qquad 本文以一维核平滑为例,假设有观测数据集 { x…

Curve fitting C: Non-linear Iterative Curve Fitting中文翻译

Curve fitting C: Non-linear Iterative Curve Fitting (a.k.a. "spectral deconvolution" or "peak deconvolution") ---开始翻译时间2017-03-22(要是网站改版我就无能为力了) --------2017-03-25 先这样,后面的可能不…

信号峰拟合的MATLAB程序,包括高斯拟合,多高斯拟合等多种类型

今天准备弄双高斯拟合,看到一个信号峰拟合的MATLAB版本的程序,大体看了一下,很不错,先MARK一下,以后再详细研究。 http://terpconnect.umd.edu/~toh/spectrum/CurveFittingC.html http://terpconnect.umd.edu/~toh/spe…

C#当动态数据过大画图有困难时怎么办?

笔者最近写了一个监控软件, 数据量较大, 而所用插件刷新有压力. 所以就写了一个支持数据抽取的大数据维护类. // 设计需求:// 会发生数据的新增, 并且在数据达到上限时自动去掉前半截数据,// 高频的等间隔读取抽有数据,// 数据结构大小是可以在生成对象时提供, 并且对不提供大小…

Go语言并发范式-future模式

1、Go语言并发范式-future模式 编程中经常遇到在一个流程中需要调用多个子调用的情况,这些子调用相互之间没有依赖,如果串行地调用,则耗 时会很长,此时可以使用Go并发编程中的future模式。 future模式的基本工作原理&#xff1…

如何选择到最合适的DDoS缓解服务?

DDoS缓解服务提供商的数量可能很多,但只有一些提供商提供高效服务的所有必要功能,因此如果要选择正确的 DDoS保护解决方案,必须考虑以下因素: 1.缩小风险范围 选择DDoS缓解服务的第一步,确定您组织的特定需求&#…