|
RFID中间件数据的过滤方法本文对RFID中间件的架构进行了介绍,研究和分析了现有的数据过滤方法.结合应用场景的实际需求,设计了一种具有广泛适用性,能够抑制噪点数据和去除冗余数据的过滤算法。 首先是为标签构建一个TagEvent类,该类包含的关键参数和方法为: public class TagEvent imp lements Runnable{ int value; boolean detecStauts = false; int fmax; int fmin; public void run ( ) { while ( value > 0) { try{ Thread. currentThread ( ). sleep (1000) ; } catch ( Interrup tedExcep tion e) { } if ( value > = fmax&&! detecStauts) { (触发标签出现记录) detecStauts = true; } else if ( value < = fmin&&detecStauts) { (触发标签消失记录) detecStauts = false; } value - - ; } } 当过滤模块主程序检测到一个新标签的时候,便为其建立一个Tag Event类的对象new Tag,并对各个关键字段赋初值,同时启动该对象内部的计时器线程: new Thread ( newTag). start ( ) ;该计时器线程的作用是每个报告周期对标签权值value进行检查并触发相应操作. 每次检查后将标签权值value减1,以实现当标签未被报告时其权值的逐步下降. 当权值value减到0的时候,计时器线程停止,这时可以销毁该对象。 当过滤算法主模块发现报告的标签已存在时,对该标签对象的value值进行累加: newTag. value + = valueStep; if ( newTag. value > = newTag. fmax) { newTag. value = newtag. fmax; } 其中valueStep就是算法中定义的累加权值. 如果权值value已经达到阀值fmax,则将其保持在该值,防止经过多个上报周期后标签权值过高,影响后继判断。 3. 2 实验验证 在验证的过程中模拟了2 种应用场景: 第1种是带读写器的货架,该场景要求达到货架读写器能稳定识别放入的带标签物品,不会因为信号波动而误报货品离开信息,并对经过货架的其他物品保持较低的敏感度;第2种是门禁系统,要求对出现在读写范围内的标签立刻做出反应,但在一定时间内不能重复上报同一个标签。 在第1种货架系统场景中,设置valueS tep = 3,fapp = 10, fdisp = 0,当标签进入读写器范围后,经过5s左右的时间过滤模块触发标签出现操作,人为将标签多次短时间移出读写器范围,模拟信号干扰和波动的情况,并将另一标签从读写器范围内移过,读写器均未触发多余的标签出现和消失操作。 在第2 种门禁系统场景中,设置valueS tep =10, fapp = 10, fd isp = 0,当标签进入读写器范围内,过滤模块立即触发了标签出现操作,当标签消失后, 10 s内不再重新触发。 4 结束语 本文中通过对RFID中间件实际应用场景的分析和现有过滤算法的研究,设计并实现了一种适用范围广,带有噪点抑制功能的RFID数据过滤算法,通过一个java程序在模拟场景中对算法进行了实验。结果表明,该算法具有良好的抑噪和去冗能力,在不同参数的组合下,可以适应各种实际应用需求,该过滤算法为更高层的业务规则过滤模块奠定了很好的数据基础,对于RFID中间件的设计和开发有一定的实用价值。 责编:刘沙 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:kaiyun体育官方人口
文章著作权分属kaiyun体育官方人口
、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
推荐博客 |
|