CSI指纹预处理(中值、均值、Hampel、维纳滤波、状态统计滤波器)(一)

简介: CSI指纹预处理(中值、均值、Hampel、维纳滤波、状态统计滤波器)(一)

前言

因为设备、温度和实验室物品摆设等因素的影响,未经处理的CSI数据不能直接使用,需要对数据进行异常值处理以保证数据的稳定性,同时减少环境中人的活动、突发性干扰对CSI的影响,下面将简单探讨MATLAB自带的几种滤波器对CSI幅值数据的处理,一些升级版的滤波程序由你们自主思考。

1、箱线法

箱线法主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较,我们可以先使用箱线法可视化异常值,下面给出了箱线法可视化异常值及箱线法对照图,感兴趣的可以自己去了解一下。

 图1 箱线法可视化异常值

2、中值滤波器

中值滤波是一种非线性滤波方法,可以有效去除信号中的噪声,同时保留信号中的边缘信息。中值滤波的基本思想是将信号中每个采样点的值替换为该点周围一定范围内的中值。


MATLAB中可以使用medfilt1函数对信号进行中值滤波。该函数的语法为:

y = medfilt1(x, w)

x表示我们要处理的数据;w表示均值滤波器的窗口大小,y表示滤波后的结果。

load('raw_amp');
best_amp= medfilt1(raw_amp, 5);
figure(1)
plot(raw_amp);
title('原始幅值');
ylabel('幅值');
figure(2)
plot(best_amp);
title('中值滤波');
ylabel('幅值');


中值滤波处理前后的幅值图像:

图3 中值滤波处理前

 图4 中值滤波处理后

3、均值滤波器

均值滤波是一种线性滤波方法,可以用于平滑信号,去除噪声。均值滤波的基本思想是将每个采样点的值替换为该点周围一定范围内的平均值。

MATLAB中可以使用smoothdata函数对信号进行均值滤波。该函数的语法为:

y = smoothdata(x, 'movmean', w)

x表示我们要处理的数据;w表示均值滤波器的窗口大小,y表示滤波后的结果。

best_amp2 = smoothdata(raw_amp, 'movmean', 5);
figure(3)
plot(raw_amp);
title('原始幅值');
ylabel('幅值');
figure(4)
plot(best_amp2);
title('均值滤波');
ylabel('幅值');


均值滤波处理前后的幅值图像:

图5 均值滤波处理前

图6 均值滤波处理后

4、Hampel滤波器

Hampel滤波是一种基于中位数的离群点检测和滤波方法。它通过对信号进行中位数滤波,并计算每个数据点与中位数之间的距离来识别离群点。如果距离大于某个阈值,则该数据点被视为离群点,并用中位数替换。该方法具有抗噪声能力和对离群点的较好识别能力。它常用于数据清洗、异常检测和信号预处理。


MATLAB中可以使用hampel函数对信号进行滤波。该函数的语法为:

y=hampel(x,k,nsigma)

x表示我们要处理的数据;k表示可指定窗口中每个样本周围的样本数,默认为3;nsigma表示指定几倍的标准差;y表示滤波后的结果。

great_data = hampel(raw_amp,5,2);
figure(5)
plot(1:1:30,raw_amp);
title('原始幅值');
ylabel('幅值');
figure(6)
plot(1:1:30,great_data);
title('Hampel低通滤波');
ylabel('幅值');

Hampel滤波处理前后的幅值图像:

图7  Hampel滤波处理前  

图8  Hampel滤波处理后  

相关文章
|
5月前
|
算法
【MATLAB】语音信号识别与处理:一维信号NLM非局部均值滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:一维信号NLM非局部均值滤波算法去噪及谱相减算法呈现频谱
107 1
|
5月前
|
数据采集 算法 数据可视化
python实现时序平滑算法SG滤波器
python实现时序平滑算法SG滤波器
|
5月前
|
算法 Linux Python
R语言BUGS序列蒙特卡罗SMC、马尔可夫转换随机波动率SV模型、粒子滤波、Metropolis Hasting采样时间序列分析
R语言BUGS序列蒙特卡罗SMC、马尔可夫转换随机波动率SV模型、粒子滤波、Metropolis Hasting采样时间序列分析
|
5月前
|
算法
LabVIEW计算测量路径输出端随机变量的概率分布密度
LabVIEW计算测量路径输出端随机变量的概率分布密度
26 0
|
5月前
极值分析:分块极大值BLOCK-MAXIMA、阈值超额法、广义帕累托分布GPD拟合降雨数据时间序列
极值分析:分块极大值BLOCK-MAXIMA、阈值超额法、广义帕累托分布GPD拟合降雨数据时间序列
极值分析:分块极大值BLOCK-MAXIMA、阈值超额法、广义帕累托分布GPD拟合降雨数据时间序列
|
5月前
LabVIEW连续采样与有限采样模式
LabVIEW连续采样与有限采样模式
164 0
|
算法
【模型预测控制MPC】使用离散、连续、线性或非线性模型对预测控制进行建模(Matlab代码实现)
【模型预测控制MPC】使用离散、连续、线性或非线性模型对预测控制进行建模(Matlab代码实现)
456 0
【 PMU】信号生成、采样、分割、估计器应用和误差计算(Matlab代码实现)
【 PMU】信号生成、采样、分割、估计器应用和误差计算(Matlab代码实现)
|
数据安全/隐私保护
DetectGPT:使用概率曲率的零样本机器生成文本检测
DetectGPT的目的是确定一段文本是否由特定的llm生成,例如GPT-3。为了对段落 x 进行分类,DetectGPT 首先使用通用的预训练模型(例如 T5)对段落 ~xi 生成较小的扰动。然后DetectGPT将原始样本x的对数概率与每个扰动样本~xi进行比较。如果平均对数比高,则样本可能来自源模型。
274 0
CSI指纹预处理(中值、均值、Hampel、维纳滤波、状态统计滤波器)(二)
CSI指纹预处理(中值、均值、Hampel、维纳滤波、状态统计滤波器)(二)
157 0