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  状态统计滤波器处理后

相关文章
|
存储 算法 数据可视化
PCL 随机采样一致性--识别球面和平面
PCL 随机采样一致性--识别球面和平面
PCL 随机采样一致性--识别球面和平面
|
6月前
|
算法 Linux Python
R语言BUGS序列蒙特卡罗SMC、马尔可夫转换随机波动率SV模型、粒子滤波、Metropolis Hasting采样时间序列分析
R语言BUGS序列蒙特卡罗SMC、马尔可夫转换随机波动率SV模型、粒子滤波、Metropolis Hasting采样时间序列分析
|
6月前
极值分析:分块极大值BLOCK-MAXIMA、阈值超额法、广义帕累托分布GPD拟合降雨数据时间序列
极值分析:分块极大值BLOCK-MAXIMA、阈值超额法、广义帕累托分布GPD拟合降雨数据时间序列
极值分析:分块极大值BLOCK-MAXIMA、阈值超额法、广义帕累托分布GPD拟合降雨数据时间序列
|
6月前
|
算法
LabVIEW计算测量路径输出端随机变量的概率分布密度
LabVIEW计算测量路径输出端随机变量的概率分布密度
30 0
|
6月前
样条曲线分段线性回归模型piecewise regression估计个股beta值分析收益率数据
样条曲线分段线性回归模型piecewise regression估计个股beta值分析收益率数据
|
6月前
Stata中的治疗效果:RA:回归调整、 IPW:逆概率加权、 IPWRA、 AIPW
Stata中的治疗效果:RA:回归调整、 IPW:逆概率加权、 IPWRA、 AIPW
|
存储 算法 PyTorch
pytorch 给定概率分布的张量,如何利用这个概率进行重复\不重复采样?
在 PyTorch 中,可以使用 torch.distributions.Categorical 来基于给定的概率分布进行采样。
926 0
|
算法
【模型预测控制MPC】使用离散、连续、线性或非线性模型对预测控制进行建模(Matlab代码实现)
【模型预测控制MPC】使用离散、连续、线性或非线性模型对预测控制进行建模(Matlab代码实现)
541 0
【 PMU】信号生成、采样、分割、估计器应用和误差计算(Matlab代码实现)
【 PMU】信号生成、采样、分割、估计器应用和误差计算(Matlab代码实现)
|
数据采集 运维 数据可视化
CSI指纹预处理(中值、均值、Hampel、维纳滤波、状态统计滤波器)(一)
CSI指纹预处理(中值、均值、Hampel、维纳滤波、状态统计滤波器)(一)
433 0