18、matlab信号生成与预处理--剔除异常值:hampel()函数

1、语法

说明:对输入向量x应用Hampel滤波器来检测和去除异常值。

1)y = hampel(x) 参数:x:输入信号 y:预处理的输出信号

对于x的每个样本,函数计算由样本及其周围的六个样本组成的窗口的中位数,每边三个。它还使用中位数绝对偏差估计每个样本关于其窗口中位数的标准偏差。如果样本与中位数相差超过三个标准差,则将其替换为中位数。如果x是一个矩阵,那么该函数将x的每一列视为一个独立的通道。

2)[y,j] = hampel(x) 参数:x:输入信号 y:预处理的输出信号 j:离群指数(0/1表示,1离群)

返回一个逻辑矩阵,该矩阵在标识为离群值的所有点的位置为真

3)[y,j,xmedian,xsigma] = hampel(x)

参数: x:输入信号 y:预处理的输出信号 j:离群指数(0/1表示,1离群) xmedian:中位数 xsigma:估计标准差

返回x的每个元素的局部中位数和估计标准差。

4)y = hampel(x,k) 参数:x:输入信号 y:预处理的输出信号 k:样本两侧数据数

指定测量窗口中x的每个样本两侧的邻居k的数量。K默认为3。

5)y = hampel(x,k,nsigma)

指定若干个标准差,x的样本必须与局部中位数不同,才能被替换为中位数。sigma默认为3。

2、单通道信号生成与预处理

1)单通道信号生成

代码

Matlab 复制代码
x = sin(4*pi*(0:199)/200);%输入值
x(6) = 2.5;%异常点1
x(20) = -3;%异常点2
x(120) = 2.5;%异常点3
x(180) = -3;%异常点4
n = 1:length(x);
figure(1)
plot(n,x,'color','r')%加入异常数据

视图效果

2)单通道信号处理:hampel()函数

代码

Matlab 复制代码
x = sin(4*pi*(0:199)/200);%输入值
x(6) = 2.5;%异常点1
x(20) = -3;%异常点2
x(120) = 2.5;%异常点3
x(180) = -3;%异常点4
n = 1:length(x);
figure(1)
plot(n,x,'color','r')%加入异常数据
hold on;
[y,j,xmedian,xsigma] = hampel(x,4);
plot(n,y,'^','color','g')%预处理数据
plot(n,xmedian,'^','color','b')%中位数
plot(n,xsigma,'*','color','y')%标准差
a=find(j);%find()函数:返回非零元素 索引
plot(a,x(j),'s','color','k')
legend('异常','预处理','中位数','估计标准差','离群点')

视图效果

3)单通道信号处理参数调整

代码

Matlab 复制代码
hampel(x,2)%调整k参数

k=2/4/6/8效果图

3、双通道信号生成与预处理

1)双通道信号生成

代码

Matlab 复制代码
rng('default')%控制随机函数生成
n = 100;
x = sin(pi./[10 20]'*(1:n)+pi/6)';%双通道信号生成
figure(1)
plot(x)
sy= randi(100,9,1);%添加异常参数的索引//100以内,9行1列的矩阵 
x(sy) = x(sy)*2.2;%添加异常参数
x(randi(100,6,1)) = NaN;%添加异常 缺失参数
figure(2)
plot(x)

视图效果

2)双通道信号处理(处理异常点和数据缺失)

代码:

Matlab 复制代码
figure(3)
y = hampel(x,4);
plot(y)
figure(4)
[y,j,xmedian,xsigma] = hampel(x,4,2);
plot(y)
hold on
plot(xmedian,'^')

试图效果

相关推荐
爱可生开源社区3 分钟前
SCALE | 重构 AI 时代数据库能力的全新评估标准
人工智能
Jahzo24 分钟前
openclaw本地化部署体验与踩坑记录--飞书机器人配置
人工智能·开源
Narrastory24 分钟前
明日香 - Pytorch 快速入门保姆级教程(一)
人工智能·pytorch·深度学习
数据智能老司机25 分钟前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机28 分钟前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
Narrastory29 分钟前
明日香 - Pytorch 快速入门保姆级教程(二)
人工智能·pytorch·深度学习
AI攻城狮30 分钟前
OpenClaw Session 管理完全指南:Context 压缩、重置与持久化
人工智能·云原生·aigc
IVEN_31 分钟前
只会Python皮毛?深入理解这几点,轻松进阶全栈开发
python·全栈
AI软著研究员34 分钟前
程序员必看:软著不是“面子工程”,是代码的“法律保险”
算法
FunnySaltyFish1 小时前
什么?Compose 把 GapBuffer 换成了 LinkBuffer?
算法·kotlin·android jetpack