PEPS 方案中 RSSI 与距离关系处理

关键字 :NXPRSSIPEPS

一、简介

       本文介绍 PEPS 接近检测系统中对 RSSI 值的处理。价绍包含处理方式、思路、原理、以及实现方法,过程中会概述处理的算法原理,对实际测量数据的处理等。文中数据是由 PEPS 方案(基站 NXP PCF7991、钥匙 NXP NCF29A1)所测实际数据。

 
二、背景

1、PEPS 背景

       PEPS 系统主要有两种系统:被动无钥门禁系统(PKES) 和远程无钥匙进入系统 (RKES),该项技术被广泛应用于车辆门禁无钥匙进入系统、车辆无钥匙启动系统、电摩接近检测系统等应用领域。

       接近检测系统基于 RFID 定位技术,该技术基于接收的信号强度指示(RSSI),信号传播有着以下规律,发射端距离越近,接收端所测得信号强度越强,发射端距离越远,接收端所测得信号强度越弱,因此可以通过接收的信号强度指示推算出基站的大概距离。其基本原理是利用射频信号和空间耦合(电磁耦合或电磁传播)传输的特性。

 

2、RSSI 技术背景

       在 IEEE 802.11 标准中定义无线网卡或 AP 的电路能够测量 RF 值,这个值即为接收信号强度指示(RSSI Received Signal Strength Indicator)。RSSI 的初衷是给适配器的微代码和驱动程序内部使用,当无线网卡需要传送一个包时,RSSI 用来确定无线信道是否空闲。

 

三、基本思路

1、实现方式

       实际测量实验环境下,对应距离 RSSI 值的数据,通过对数据分析,拟合出趋势线函数关系,利用该趋势线函数通过样本求得未知的数据。

 

2、曲线拟合

       实际条件中,变量间未必都有线性关系,曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。曲线拟合是一种数据处理方法, 定义为用解析表达式逼近离散数据的方法。
曲线的直线化是曲线拟合的重要手段之一,对于某些非线性的数据可以通过简单的变量变换使之直线化,这样就可以按最小二乘法原理求出变换后变量的直线方程。

 

四、最小二乘法原理

1、算法概述

       最小二乘法是一种数学优化算法,被广泛地应用于非线性方程中。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以通过样本求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和最小。

如下图中,红色实线即为样本实际值与拟合函数之间的差值,在算法实现过程中就是使得这个差值的平方和最小,以达到最佳拟合效果。




       最小二乘法寻找拟合函数 f(x) 的原理和思想关键:使得所有x和y相对拟合直线的平方和误差总和最小。

       最小二乘法数学公式:

      
      

五、RSSI 数据处理

1、polyfit() 函数

       polyfit 函数是 matlab 中常用于进行曲线拟合的一个函数。其数学基础是利用最小二乘法曲线拟合原理。

       调用方法:polyfit(x,y,n),x 为源数据点对应的横坐标,这里对应为钥匙离基站的距离,y 为源数据点对应的纵坐标,这里对应为钥匙对应距离所测 RSSI 值,n 为要拟合的阶数,一阶直线拟合,二阶抛物线拟合,并非阶次越高越好,看拟合情况而定。

       下图为对原始数据进行 1、3、5、7 阶次拟合趋势线图
      
      

       使用 polyfit() 函数拟合

import matplotlib.pyplot as plt
import numpy as np

# 钥匙离基站的距离
x = [0.30, 0.40, 0.50, 0.60, 0.70, 0.80, 0.90, 1.00, 1.10, 1.20, 1.30, 1.40, 1.50, 1.60, 1.70, 1.80, 1.90, 2.00, 2.10, 2.20, 2.30, 2.40, 2.50, 2.60, 2.70, 2.80]
# 对应距离钥匙所测 RSSI 值
y = [32.13, 14.5, 8.328125, 5.015625, 3.234375, 2.21875, 1.578125, 1.226562, 0.955078, 0.769531, 0.628906, 0.519531, 0.4375, 0.378906, 0.333984, 0.289062, 0.253906, 0.226562, 0.203125, 0.189453, 0.169922, 0.158203, 0.144531, 0.132812, 0.121094, 0.113281]

# 拟合 1 阶
p = np.polyfit(x, y, 1)
# 合并多项式
c = np.poly1d(p)
print(c)

# 对原始数据画散点图
plt.scatter(x, y, marker='o', label='original datas',color='r')
# 画出拟合函数曲线图
plt.plot(x, c(x), 'b',label='one polyfit')
plt.legend()
plt.show()

 

2、curve_fit() 函数

       随着拟合阶数的增加拟合出的多项式越来越复杂,不利于实际应用。所以采用  python 中 scipy 模块的子模块 optimize 中提供了一个专门用于曲线拟合的函数 curve_fit(),对 RSSI 值做处理。

       curve_fit() 函数不仅可以用于直线、二次曲线、三次曲线的拟合和绘制,仿照代码中的形式,可以适用于任意形式的曲线的拟合和绘制,只要定义好合适的曲线模型方程即可。

       采用趋势曲线模型:

      

       下图为对原始数据进行拟合趋势线图,可以看出拟合效果较好,趋势函数可以用作表示 RSSI 与距离关系数据的趋向。


       使用 curve_fit()函数拟合

from scipy.optimize import curve_fit
import matplotlib.pyplot as plt

# 钥匙离基站的距离
x = [0.30, 0.40, 0.50, 0.60, 0.70, 0.80, 0.90, 1.00, 1.10, 1.20, 1.30, 1.40, 1.50, 1.60, 1.70, 1.80, 1.90, 2.00, 2.10, 2.20, 2.30, 2.40, 2.50, 2.60, 2.70, 2.80]
# 对应距离钥匙所测 RSSI 值
y = [32.13, 14.5, 8.328125, 5.015625, 3.234375, 2.21875, 1.578125, 1.226562, 0.955078, 0.769531, 0.628906, 0.519531, 0.4375, 0.378906, 0.333984, 0.289062, 0.253906, 0.226562, 0.203125, 0.189453, 0.169922, 0.158203, 0.144531, 0.132812, 0.121094, 0.113281]

def fund(x, a, b):
return x ** a + b

popt, pcov = curve_fit(fund, x, y)
# popt数组中,值分别是待求参数a,b
yvals = [fund(i, popt[0], popt[1],) for i in x]
print("RSSI = x^", popt[0], "+", popt[1])

# 对原始数据画散点图
plt.scatter(x, y, marker='o', label='original datas',color='r')
# 画出拟合函数曲线图
plt.plot(x, c, label='fitted curve',color='g')
plt.legend()
plt.show()


3、Excel 数据处理

       除了使用程序来处理数据,也可以利用一些便捷的工具分析数据,Excel 中对数据生成曲线的拟合趋势线,所用到的算法原理也是最小二乘法。


       1、选择数据生成原始数据的散点图,选择任意数据。
       
       

       2、单机右键添加趋势线,会生成该数据趋势线,以及设置趋势线格式窗口。
       
       

       3、选择合适趋势线模型,这里幂乘函数趋势线更加拟合原始数据,选择显示趋势线公式。

       


六、参考资料

       【 PEPS 技术浅谈 】              https://www.wpgdadatong.com/blog/detail?BID=B2618

       【 NXP PEPS 方案深入浅出(一)-系统结构与选型 】              https://www.wpgdadatong.com/blog/detail?BID=B1177

       【 S32K144 PKE RSSI SINGLE 】              https://www.wpgdadatong.com/blog/detail?BID=B2668

       【 python 指数、幂数拟合 curve_fit 】              https://blog.csdn.net/yefengzhichen/article/details/52767733

       【 RSSI 曲线拟合问题 】              https://www.renrendoc.com/paper/107281054.html

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论

Gumustech 00905326688286

Gumustech 00905326688286

2023年3月4日
你好 你能用你在 NCF29xx s 方面的经验为我们做一个项目吗? 我们想回收用过的汽车遥控器。 使用此 IC 的遥控器在被编码到车内时被锁定。 我们知道它们可以被解锁,我们想解锁它们并再次使用它们。 我们可以向您发送锁定的远程和解锁的远程 bin.file。 如果可以,请告诉我们您要收取的价格。 我们聊天我 d cemilaydemir