目录
1、前言
2、中值滤波器
3、均值滤波器
4、Hampel滤波器
5、小波变换滤波器
1、前言
因为设备、温度和实验室物品摆设等因素的影响,未经处理的CSI数据不能直接使用,需要对数据进行异常值处理以保证数据的稳定性,同时减少环境中人的活动、突发性干扰对CSI的影响,下面将简单探讨MATLAB自带的几种滤波器对CSI幅值数据的处理,一些升级版的滤波程序由你们自主思考。
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('幅值');
中值滤波处理前后的幅值图像:
图1 中值滤波处理前
图2 中值滤波处理后
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('幅值');
均值滤波处理前后的幅值图像:
图3 均值滤波处理前
图4 均值滤波处理后
4、Hampel滤波器
Hampel滤波是一种基于中位数的离群点检测和滤波方法。它通过对信号进行中位数滤波,并计算每个数据点与中位数之间的距离来识别离群点。如果距离大于某个阈值,则该数据点被视为离群点,并用中位数替换。该方法具有抗噪声能力和对离群点的较好识别能力。它常用于数据清洗、异常检测和信号预处理。
great_data = hampel(raw_amp,3,2);
figure(5)
plot(1:1:30,raw_amp);
title('原始幅值');
ylabel('幅值');
figure(6)
plot(1:1:30,great_data);
title('Hampel低通滤波');
ylabel('幅值');
Hampel滤波处理前后的幅值图像:
图5 Hampel滤波处理前
图6 Hampel滤波处理后
5、小波变换滤波器
小波变换滤波器也是一种常规的滤波器,常用于数据平滑去噪。小波变换滤波器处理前后的幅值图像:
CSI的相关文章请参考:CSI数据预处理之卡尔曼滤波、高斯滤波、简单平均_rssi高斯滤波_数产小黑娃的博客-CSDN博客卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。卡尔曼滤波算法在估计值和观测值之间做了一个修正。........................https://blog.csdn.net/qq_53860947/article/details/126175335
室内定位之CSI指纹定位_数产小黑娃的博客-CSDN博客随着WiFi技术的发展,IEEE802.11n系列通信协议及其之后的无线局域网协议应用了多输入多输出(multiple-input multiple-output,MI-MO)和正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)等技术,使得WiFi收发设备之间的信道特征可以在物理层进行估计,并以信道状态信息(channel status information,CSI)的形式存储下来。https://blog.csdn.net/qq_53860947/article/details/126180830
CSI室内指纹定位——CSI数据说明_csi数据集_数产小黑娃的博客-CSDN博客我们通过修改NIC的设备驱动程序,来读取每个数据包接收时以CSI的形式记录在硬件中的CSI值,并生成包含CSI信息的dat文件。,也就是对应的幅度和相位。当然angle函数获得的相位是带误差的相位,需要解卷绕+线性变换才能获取到真实的相位。csi的值是一个n*m*30的复数矩阵,n表示发射天线的个数,m表示接收天线的个数,30是子载波个数。2、使用MATLAB解析dat文件,显示1615*1个元胞数组,这些原胞数组包含了1615个1*1的结构体,每个结构体表示一个数据包的所有信息,包括信道状态信息元。https://blog.csdn.net/qq_53860947/article/details/126449801
CSI室内指纹定位——相关通信名词解释_信道冲击响应_数产小黑娃的博客-CSDN博客OFDM技术的主要思想就是将数据流分成多个子数据流,通过不同频率的多个子信道并行传输,每个子信道使用独立的子载波,且这些子载波是相互正交的。简单来说,就是在发送端发送一个脉冲信号,在接收端进行响应,由于多径时延扩展和多普勒平移的原因,不同接收端会有不同的信道脉冲响应,不同位置也会因为多径的原因会有不同的信道脉冲响应)。通俗的讲,就是数据的传输速度,比如:100M的宽带,带宽就是100Mbps,1字节(byte)对应8个比特位(bit),所以100M的宽带相当于12.5MB/s的网络。https://blog.csdn.net/qq_53860947/article/details/127716277