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

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

5、维纳滤波

维纳滤波是一种二维自适应除噪滤波器,根据局部方差来调整滤波器效果。对于去除高斯噪声效果明显。


维纳滤波的两个函数wiener2与deconvwnr都能够完成维纳滤波的功能,但两者具有差异性,感兴趣的可以自己去了解,MATLAB中维纳滤波代码如下:


y=wiener2(x,[m,n]);

x指原始CSI的幅值;y指维纳滤波后的幅值;[m,n]指定滤波器窗口大小为m*n,默认值为3*3。

load('raw_amp');
m=5;
n=5;
best_amp3=wiener2(raw_amp,[m,n]);
figure(7)
plot(raw_amp);
title('原始幅值');
ylabel('幅值');
figure(8)
plot(best_amp3);
title('维纳滤波');
ylabel('幅值');

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

图9 维纳滤波处理前  

图10  维纳滤波处理后  

6、状态统计滤波器

它的滤波概念是中值滤波的推广,中值滤波是对于给定的n个数值{al ,a2,...,an},将它们按大小顺序排列,取中间的那个值作为滤波器的输出。而状态统计滤波器将n个非零数值按小到大排序后处于第k个位置的元素作为滤波器的输出。MATLAB中状态统计滤波器可以用ordfilt2函数表示:

y=ordfilt2(x,order,domain);

x指原始CSI的幅值;y指状态统计滤波后的幅值;order 为滤波器输出的顺序值;domain为滤波窗口;


(1)y=ordfilt2(x,13,ones(5,5)),在模板内的像素值都为非零时,相当于模板为5×5的中值滤波(order=13,刚好为窗口的中间值);


(2)y=ordfilt2(x,1,ones(5,5)),在模板内的像素值都为非零时,相当于5×5的最小值滤波(order=1,刚好为窗口的最小值);


(3)y=ordfilt2(x,25,ones(5,5)),在模板内的像素值都为非零时,相当于5×5的最大值滤波(order=25,刚好为窗口的最大值);

load('raw_amp');
order = 10;
domain = ones(5,5);
best_amp4=ordfilt2(raw_amp,order,domain);
figure(8)
plot(raw_amp);
title('原始幅值');
ylabel('幅值');
figure(9)
plot(best_amp4);
title('状态统计滤波器');
ylabel('幅值');

状态统计滤波器处理前后的幅值图像:

 图11  状态统计滤波器处理前

图12  状态统计滤波器处理后

相关文章
|
7月前
|
算法
【MATLAB】语音信号识别与处理:一维信号NLM非局部均值滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:一维信号NLM非局部均值滤波算法去噪及谱相减算法呈现频谱
146 1
|
存储 算法 数据可视化
PCL 随机采样一致性--识别球面和平面
PCL 随机采样一致性--识别球面和平面
PCL 随机采样一致性--识别球面和平面
|
7月前
|
数据采集 算法 数据可视化
python实现时序平滑算法SG滤波器
python实现时序平滑算法SG滤波器
|
7月前
|
算法 Linux Python
R语言BUGS序列蒙特卡罗SMC、马尔可夫转换随机波动率SV模型、粒子滤波、Metropolis Hasting采样时间序列分析
R语言BUGS序列蒙特卡罗SMC、马尔可夫转换随机波动率SV模型、粒子滤波、Metropolis Hasting采样时间序列分析
|
7月前
极值分析:分块极大值BLOCK-MAXIMA、阈值超额法、广义帕累托分布GPD拟合降雨数据时间序列
极值分析:分块极大值BLOCK-MAXIMA、阈值超额法、广义帕累托分布GPD拟合降雨数据时间序列
极值分析:分块极大值BLOCK-MAXIMA、阈值超额法、广义帕累托分布GPD拟合降雨数据时间序列
|
7月前
|
算法
LabVIEW计算测量路径输出端随机变量的概率分布密度
LabVIEW计算测量路径输出端随机变量的概率分布密度
30 0
|
7月前
Stata中的治疗效果:RA:回归调整、 IPW:逆概率加权、 IPWRA、 AIPW
Stata中的治疗效果:RA:回归调整、 IPW:逆概率加权、 IPWRA、 AIPW
|
7月前
用图直观上理解梯度算子(一阶)与拉普拉斯算子(二阶)的区别,线检测与边缘检测的区别
用图直观上理解梯度算子(一阶)与拉普拉斯算子(二阶)的区别,线检测与边缘检测的区别
265 1
|
7月前
|
数据挖掘 编译器 定位技术
Python中whitebox实现忽略无效值NoData的长时间序列栅格遥感影像批量逐像元求取像素平均值
Python中whitebox实现忽略无效值NoData的长时间序列栅格遥感影像批量逐像元求取像素平均值
|
算法 数据可视化 数据挖掘
基于GMM的一维时序数据平滑算法
本文将介绍我们使用高斯混合模型(GMM)算法作为一维数据的平滑和去噪算法。
205 0