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,'^')

试图效果

相关推荐
唐某人丶1 小时前
教你如何用 JS 实现 Agent 系统(2)—— 开发 ReAct 版本的“深度搜索”
前端·人工智能·aigc
FIT2CLOUD飞致云1 小时前
九月月报丨MaxKB在不同规模医疗机构的应用进展汇报
人工智能·开源
阿里云大数据AI技术1 小时前
【新模型速递】PAI-Model Gallery云上一键部署Qwen3-Next系列模型
人工智能
袁庭新2 小时前
全球首位AI机器人部长,背负反腐重任
人工智能·aigc
机器之心2 小时前
谁说Scaling Law到头了?新研究:每一步的微小提升会带来指数级增长
人工智能·openai
该用户已不存在2 小时前
Mojo vs Python vs Rust: 2025年搞AI,该学哪个?
后端·python·rust
算家计算2 小时前
AI配音革命!B站最新开源IndexTTS2本地部署教程:精准对口型,情感随心换
人工智能·开源·aigc
量子位2 小时前
马斯克周末血裁xAI 500人
人工智能·ai编程
算家计算2 小时前
OpenAI最强编程模型GPT-5-Codex发布!可独立编程7小时,编程效率提升10倍
人工智能·ai编程·资讯
NAGNIP4 小时前
大模型框架性能优化策略:延迟、吞吐量与成本权衡
算法