RSSI滤波方法

2024-09-05 20:04
文章标签 方法 滤波 rssi

本文主要是介绍RSSI滤波方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、均值滤波
  • 二、递推平均滤波
  • 三、中位值滤波
  • 四、狄克逊检验法滤波
  • 五、高斯滤波
  • 六、速度滤波
  • 七、卡尔曼滤波

一、均值滤波

均值滤波是指节点接收到另一节点的多个RSSI值之后,求其算式平均值,作为测试结果
R S S I ‾ = 1 n ∙ ∑ i = 1 n R S S I i \overline{RSSI} = \frac {1}{n} \bullet \sum_{i=1}^n RSSI_i RSSI=n1i=1nRSSIi

当样本容量很大,RSSI波动范围较小时,信号平滑度较高,可较好地解决RSSI干扰问题;
当RSSI值波动较大时,该方法可信度下降。

二、递推平均滤波

递推平均滤波是把连续接收到的N 个RSSI值看成一个队列,队列的长度固定为N,每次接收到一个新的RSSI值后放入队尾,并扔掉原来队首的一个RSSI值。最后把队列中的N 个数据进行算术平均运算,就可获得新的滤波结果。该滤波算法优点是对周期性干扰有良好的抑制作用,平滑度高,缺点是对偶然出现的脉冲性干扰抑制作用差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较强的场合。

三、中位值滤波

中位值滤波是指采集N(N 为奇数)个RSSI值之后,将这N 个RSSI值按大小顺序排列,取其正中间的RSSI值作为滤波输出
R S S I = M e d { R S S I 1 , R S S I 2 , R S S 3 ⋯ R S S I n } RSSI = Med \{RSSI_{1}, RSSI_{2}, RSS_{3} \cdots RSSI_{n}\} RSSI=Med{RSSI1,RSSI2,RSS3RSSIn}
中位值滤波能有效克服因偶然因数引起的波动干扰,但是对于脉冲干扰比较强,样本容量不多的情况下,滤波效果不理想。

四、狄克逊检验法滤波

狄克逊检验法滤波是通过极差比判定和剔除异常数据。该方法认为异常数据应该是最大数据和最小数据,因此该方法是将数据按大小排列,检验最大数据和最小数据是否是异常数据。以样本容量小于等于30为例,具体步骤如下:
(1)将对同一节点多次测量到的RSSI 值按从小到大的顺序排列,

R S S I ( 1 ) , R S S I ( 2 ) , R S S I ( 3 ) , … , R S S I ( n − 2 ) , R S S I ( n − 1 ) , R S S I ( n ) {RSSI(1),RSSI(2),RSSI(3),\dots ,RSSI(n - 2),RSSI(n - 1),RSSI(n)} RSSI(1),RSSI(2),RSSI(3),,RSSI(n2),RSSI(n1),RSSI(n)

并确定检出水平 α =0.05;

(2)根据狄克逊统计公式[10]有:
当n=3~7时检验高端异常值:
r 10 = R S S I n − R S S I n − 1 R S S I n − R S S I 1 r_{10} = \frac {RSSI_{n} - RSSI_{n-1}}{RSSI_{n} - RSSI_{1}} r10=RSSInRSSI1RSSInRSSI

这篇关于RSSI滤波方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139927

相关文章

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

Go路由注册方法详解

《Go路由注册方法详解》Go语言中,http.NewServeMux()和http.HandleFunc()是两种不同的路由注册方式,前者创建独立的ServeMux实例,适合模块化和分层路由,灵活性高... 目录Go路由注册方法1. 路由注册的方式2. 路由器的独立性3. 灵活性4. 启动服务器的方式5.

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

Idea实现接口的方法上无法添加@Override注解的解决方案

《Idea实现接口的方法上无法添加@Override注解的解决方案》文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Languagel... 目录Idea实现接China编程口的方法上无法添加@javascriptOverride注解错误原因解决方

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

c++中std::placeholders的使用方法

《c++中std::placeholders的使用方法》std::placeholders是C++标准库中的一个工具,用于在函数对象绑定时创建占位符,本文就来详细的介绍一下,具有一定的参考价值,感兴... 目录1. 基本概念2. 使用场景3. 示例示例 1:部分参数绑定示例 2:参数重排序4. 注意事项5.

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

树莓派启动python的实现方法

《树莓派启动python的实现方法》本文主要介绍了树莓派启动python的实现方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、RASPBerry系统设置二、使用sandroidsh连接上开发板Raspberry Pi三、运