当前位置: 首页 > news >正文

2021年全国研究生数学建模竞赛华为杯E题信号干扰下的超宽带(UWB)精确定位问题求解全过程文档及程序

2021年全国研究生数学建模竞赛华为杯

E题 信号干扰下的超宽带(UWB)精确定位问题

原题再现:

  一、背景
  UWB(Ultra-Wideband)技术也被称之为“超宽带”,又称之为脉冲无线电技术。这是一种无需任何载波,通过发送纳秒级脉冲而完成数据传输的短距离范围内无线通信技术,并且信号传输过程中的功耗仅仅有几十µW。UWB因其独有的特点,使其在军事、物联网等各个领域都有着广阔的应用。其中,基于UWB的定位技术具备实时的室内外精确跟踪能力,定位精度高,可达到厘米级甚至毫米级定位。UWB在室内精确的定位将会对卫星导航起到一个极好的补充作用,可在军事及民用领域有广泛应用,比如:电力、医疗、化工行业、隧道施工、危险区域管控等。UWB更多应用场景请参见[4—6]。
  UWB的定位技术有多种方法,本文仅考虑基于飞行时间(Time of Flight, TOF)的测距原理,它是UWB定位法中最常见的定位方法之一。TOF测距技术属于双向测距技术,其通过计算信号在两个模块的飞行时间,再乘以光速求出两个模块之间的距离,这个距离肯定有不同程度
  在室内定位的应用中,UWB技术可以实现厘米级的定位精度(一般指2维平面定位),并具有良好的抗多径干扰和衰弱的性能以及具有较强的穿透能力。但由于室内环境复杂多变UWB 通信信号极易受到遮挡,虽然UWB技术具有穿透能力,但仍然会产生误差,在较强干扰时,数据会发生异常波动(通常是时间延时),基本无法完成室内定位,甚至会造成严重事故。因此,信号干扰下的超宽带(UWB)精确定位问题成为亟待解决的问题。

  二、问题描述
  为解决信号干扰下的超宽带(UWB)精确定位问题,我们通过实际场景实测,采集到一定数量的数据,即利用UWB的定位技术(TOF),采集到锚点(anchor)与靶点(Tag)之间的距离,希望通过数学建模(或算法)方法 ,无论信号是否干扰,都可以给出目标物(靶点)的精确定位(3维坐标)。

  三、实验场景和数据采集
  如图所示,在5000mm5000mm3000mm的测试环境中,分别在4个角落A0,A1,A2,A3放置UWB锚点(anchor),锚点向所有方向发送信号。Tag是UWB标签(靶点),即需要定位的目标(只在测试环境范围内)。Tag接收到4个UWB锚点(anchor)的信号(无论信号是否干扰,Tag一般都可以接收到信号),利用TOF技术,分别解算出对应的4个距离数据。
  实验在实验场景1中采集了Tag在324个不同位置,在信号无干扰和信号干扰下的UWB数据,即每个位置各测试(采集)2次,一次信号无干扰,另一次信号有干扰(锚点与靶点间有遮挡),注意:每次采集数据时,由于Tag在同一位置会停留一会儿时间,而锚点与Tag之间每0.2—0.3秒之间就会发送、接收信号一次,所以在同一位置点,UWB会采集到多组数据(多组数据都代表同一位置的信息),组数的多少视Tag在同一位置的时间而定,停留的时间越长,组数就越多。数据见文件夹“附件1:UWB数据集”。
在这里插入图片描述
  实验场景1:
  靶点(Tag)范围:5000mm5000mm3000mm
  锚点(anchor)位置(单位:mm):
  A0(0,0,1300)、 A1(5000,0,1700)、
  A2(0,5000,1700)、A3(5000,5000,1300)

  四、数据文件说明
  (1)UWB数据集
   “附件1:UWB数据集”有2个文件夹和1个文件,1个文件(Tag坐标信息.txt)存放324个不同位置的编号及3维坐标信息,2个文件夹中1个存放信号无干扰下(正常)采集的数据(各文件名为x.正常.txt,x表示对应的位置编号),另1个存放信号有干扰下(异常)采集的数据(各文件名为x.异常.txt,x表示对应的位置编号)。
  (2)数据文件
  Tag在每个位置都采集了2个数据文件(1个正常,另1个异常),共有648个数据文件,无论正常、异常数据,数据格式都一样,每个数据文件开头第1行为采集开始行,无实际意义,接下来,每4行为一组,表示UWB采集的一组完整数据(一组数据表示一个样品),如:
  T:144235622:RR:0:0:950:950:118:1910
  T:144235622:RR:0:1:2630:2630:118:1910
  T:144235622:RR:0:2:5120:5120:118:1910
  T:144235622:RR:0:3:5770:5770:118:1910

  这4行数据的含义分别是:
  Tag标识:时间戳:Range Report的缩写:Tag ID:锚点ID:该锚点的测距值(mm):测距值的校验值:数据序列号:数据编号(每个数据之间用“:”分隔)。实际上就是提供了4个锚点到靶点(Tag)的距离,即
  A0到靶点距离为:950mm
  A1到靶点距离为:2630mm
  A2到靶点距离为:5120mm
  A3到靶点距离为:5770mm
  每个数据文件都有多组数据,表示在同一位置连续时间内UWB自动采集到的多组数据。

  五、完成任务
  试根据上述数据,完成如下任务:
  任务1:数据预处理(清洗)
  无论是信号无干扰下采集数据,或信号干扰下采集数据,Tag在同一坐标点上都采集多组数据(见附件1中648个数据文件),请用某种方法把每个数据文件相应数值抓取出来,并转换成二维表(矩阵)形式(txt、Excel或其他数据格式),每一行代表一组数据(即一个样品),然后对这些数据文件进行预处理(清洗),删除掉一些“无用”(异常、缺失、相同或相似)的数据(样品)。经处理后,“正常数据”所有数据文件和“异常数据”所有数据文件最后各保留多少组(多少个样品)数据,并重点列出以下4个数据文件,经处理后保留的数据(矩阵形式);
  “正常数据”文件夹中: 24.正常.txt、 109.正常.txt
  “异常数据”文件夹中: 1.异常.txt、 100.异常.txt

  任务2: 定位模型
  利用任务1处理后的数据,分别对“正常数据”和“异常数据”,设计合适的数学模型(或算法),估计(或预测)出Tag的精确位置,并说明你所建立的定位模型(或算法)的有效性;同时请利用你的定位模型(或算法)分别对附件2中提供的前5组(信号无干扰)数据和后5组(信号有干扰)数据进行精确定位(3维坐标);
  注意:(1)定位模型必须体现实验场景信息;
  (2)请同时给出定位模型的3维(x,y,z)精度、2维(x,y)精度以及1维的各自精度。

  任务3:不同场景应用
  我们的训练数据仅采集于同一实验场景(实验场景1),但定位模型应该能够在不同实际场景上使用,我们希望你所建立的定位模型能够应用于不同场景。附件3中10组数据采集于下面实验场景2(前5组数据信号无干扰,后5组数据信号有干扰),请分别用上述建立的定位模型,对这10 组数据进行精确定位(3维坐标);
  实验场景2:
  靶点(Tag)范围:5000mm3000mm3000mm
  锚点(anchor)位置(单位:mm):
  A0(0,0,1200)、 A1(5000,0,1600)、
  A2(0,3000,1600),A3(5000,3000,1200)

  任务4: 分类模型
  上述定位模型是在已知信号有、无干扰的条件下建立的,但UWB在采集数据时并不知道信号有无干扰,所以判断信号有无干扰是UWB精确定位问题的重点和难点。利用任务1处理后的数据,建立数学模型(或算法),以便区分哪些数据是在信号无干扰下采集的数据,哪些数据是在信号干扰下采集的数据?并说明你所建立的分类模型(或算法)的有效性;同时请用你所建立的分类模型(或算法)判断附件4中提供的10组数据(这10组数据同样采集于实验场景1)是来自信号无干扰或信号干扰下采集的?

  任务5: 运动轨迹定位
  运动轨迹定位是UWB重要应用之一,利用静态点的定位模型,加上靶点自身运动规律,希望给出动态靶点的运动轨迹。附件5是对动态靶点采集的数据(一段时间内连续采集的多组数据),请注意,在采集这些数据时,会随机出现信号干扰,请对这个运动轨迹进行精确定位,最终画出这条运动轨迹图(数据采集来自实验场景1)。

整体求解过程概述(摘要)

  UWB 定位技术是一类室内外精确跟踪能力强,定位精度高的导航技术。近年来在各领域得到了快速发展和广泛应用。然而基于UWB的三维高精度定位算法仍然是一项亟待解决的技术问题。本文将基于这样的背景,采用提供的试验数据研究一类高精度的分类与定位算法,并应用提供的数据完成了方法检验和技术验证。
  针对问题1中的数据预处理问题,本文统计了样本数据的分布特性得出了大部分样本数据符合正态分布的结论,对于样本中测量值异常的数据,采用 3σ 原则对于偏离分布中心3倍标准差的数据进行删除;考虑到相同相似样本会加大定位算法设计与计算负担,采用欧氏距离判定同一样本中相同相似数据并进行删除,进一步给出了面向定位算法设计的简化数据。同时应用统计分析方法检验了预处理前后数据分布特性,确定了测量数据存在有效偏差和白噪声干扰,统计了3附件一样本对应的324项标准差数据,得到了标准差符合正态分布且均值为10,标准差为3的结论,确定了各组传感器性能一致且明确了测量噪声的分布规律。
  针对问题二与问题三,首先分别应用传统的最小二乘法、基于PSO的定位算法建立了接近传统意义上的四点算法,精度分析表明,两种算法的求解精度基本一致,基本符合x,y 轴求解精度较高而z轴求解精度较低的特性。为了进一步建立高精度定位算法,采用机器学习方法建立了一类高精度定位算法,以测量长度为输入、xyz 坐标数据为输出设计了三层BP 神经网络,通过大量训练完成了定位算法设计,精度分析表明,基于机器学习的定位算法仍然表现出x,y轴求解精度较高而z轴求解精度较低的特性,但是x、y轴求解精度达到厘米级,而z轴求解精度达到了分米级,极大地提高了三点定位算法的精度特性。
  针对问题四,为了进一步解决正常数据、异常数据的分类问题,首先基于传统方法出发拟寻找一类分类指标完成对正常、异常数据的二分类。然而基于统计分析建立的测距偏差分类方法和基于平面几何出发的三圆相交面积判别皆未能充分区分正常、异常数据,因此本文认为基于有限的先验信息和较大的噪声水平干扰下,无法通过有效的传统方法完成对正常数据、异常数据的识别,因此仍采用机器学习方法建立了一类有效的分类方法,基于附件1的测试表明识别精度达到97.69%,并完了对附件四数据的计算。
  针对问题五,首先从附件5中提取得到了运动过程中靶点到4个锚点的长度信息,再使用问题四中的分类算法验证每组数据是否存在异常干扰,对于修正后的数据采用前面问题所建立的机器学习的方法求解坐标,最后根据坐标即可得到在空间中的运动轨迹。
  本文综合了针对UWB技术三维坐标精确定位技术出发展开了相关研究,分析了传统方法的不足并应用机器学习方法形成了一套准确性高、适用性强的分类和定位方法,有效的解决了题目中的相关问题。

模型假设:

  假设测量误差仅仅因TOF技术不足和传感器性能有限而引起,误差引起的形式为一类有色偏差和一类白噪声误差的组合。
  基于数据统计分析可以说明,UWO 给出的测距偏差与实际测量距离存在线性相关关系,随着实际测量距离的增加,UWO 测量结果会被引入一类偏置误差,同时由于传感器性能不同和实验引入的误差,测量结果还会引入一类白噪声误差,假定白噪声幅值与传感器性能有关,且假设传感器的性能并不随实验次数和实验环境变化。

问题分析(部分内容由于篇幅限制):

  通过数据处理得到了附件1中的全数据,考虑题中规定附件1中数据来源于324个不同的位置测量获得,首先通过标准差分析检验数据的分布特点。下文为了叙述和绘图方便,约定ZC表示正常,YC表示异常。

在这里插入图片描述
  原始数据标准差分析表明,正常数据 A0ZCA3ZC 的标准差存在尖端,A1ZC、A2ZC的标准差控制在20以内;异常数据中,每个锚点都存在标准差处于高水平(超过200)的状态,选取两幅典型数据解释该问题,这是因为异常数据中,同一时间内仅有一个锚点存在异常状态,但是同一组数据内先后有两个锚点被干扰,干扰对测量数据造成的影响体现为两种情况,在原有数据基础上引入了超过400的测量偏差,或者引入一段均值为400左右的大幅值(波动水平:在400上下有幅值为200的波动)波动误差。这里要指出,对于异常数据的定义为:在正常数据水平上出现了正偏置干扰,测量数据原有的测量噪声与正常数据中的测量噪声一致看待。
  题中对正常数据的定义为不存在测量干扰的数据,但是通过标准差分析发现,A0ZCA3ZC 的标准差存在尖端。提取出部分数据并做图分析可知,这是因为原始数据中存在异常点,具体表现为图像出现尖端。
  首先考虑通过几何关系求解靶点的坐标。在实验场景 1 中,靶点(Tag)范围:5000mm5000mm3000mm,如图5.1 建立空间直角坐标系,其中锚点位置如图所示,分别为A0(0,0,1300)、A1(5000,0,1700)、A2(0,5000,1700)、A3(5000,5000,1300),而靶点可以出现在5000mm5000mm3000mm立方体空间中任意一处,根据靶点和锚点的空间关系,符合公式:
在这里插入图片描述
  式中,x,y,z为靶点坐标,xi、yi、zi为锚点的坐标,i为锚点的编号(i=1,2,3,4)。空间问题需要至少4个锚点来确定坐标,而上述方程为三元二次方程组。在理想情况下,三个锚点坐标信息以及这三个锚点到靶点的距离即可求解方程,得到两组解,通过第4个锚点的信息确定靶点的最终坐标;在实际情况下,由于测距数据存在误差,满足4个方程的解可能无实数解,故不能用此方法直接来求解靶点的坐标。
在这里插入图片描述
  由于通过锚点位置信息和锚点测距值无法求解直接求解靶点坐标,故利用锚点坐标和锚点的测距值设计一个期望函数,通过函数值来反映靶点的坐标状况。

论文缩略图:

在这里插入图片描述
在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

import osimport reimport numpy as npimport pandas as pdfrom os import listdirfrom collections import Counterdef missing_data_processing(content,j):a =[]time = re.compile(r'T:(\w+):RR').findall(content)b =list(Counter(time))for i in b:if (Counter(time)[i]== 4):a.append(i)if (int(j)==109):print(len(a))return adef three_sigmal(data):n =3 #n*sigmaprint(data)ymean = np.mean(data, axis=0) # 均值
ystd = np.std(data, axis=0)threshold1 = ymean- n * ystdthreshold2 = ymean + n * ystdoutlier = [] # 将异常值保存
final = []# 标准差
# 删除掉异常值后的数据
for i in range(0, len(data)):#print(np.abs(data[i]-ymean))if (np.abs(data[i]-ymean) > n * ystd).any() :outlier.append(data[i])else:final.append(data[i])return outlier#normal_data_path = 'D:/竞赛/数学建模/2021 年 E 题/附件 1:UWB数据集/正常数据'abnormal_data_path = 'D:/竞赛/数学建模/2021 年 E 题/附件 1:UWB 数据集/异常数
据'label_path = 'D:/竞赛/数学建模/2021 年 E 题/附件1:UWB数据集/Tag坐标信息.txt'filename1 = listdir(normal_data_path)filename2 = listdir(abnormal_data_path)
 1. import matplotlib.pyplot as plt2. import numpy as np3. import pandas as pd4. import math5. from sklearn import datasets, linear_model, discriminant_analysis6. from sklearn.model_selection import train_test_split7. from sklearn.preprocessing import StandardScaler #数据预处理8. import csv9. import joblib10.11. def test_ridge(*data):12. X_train, X_test, y_train, y_test = data13. ridgeRegression = linear_model.Ridge()14. # ridgeRegression = linear_model.LinearRegression()15. rd=ridgeRegression.fit(X_train, y_train)16. joblib.dump(rd, "yc_model.pkl")17.18. #print("预测性能得分: %.2f" % ridgeRegression.score(X_test, y_test))19. return ridgeRegression.predict(X_test)20.21. #测试不同的α值对预测性能的影响
22. def test_ridge_alpha(*data):23. X_train, X_test, y_train, y_test = data24. alphas = [0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000]25. scores = []26. for i, alpha in enumerate(alphas):27. ridgeRegression = linear_model.Ridge(alpha=alpha)28. ridgeRegression.fit(X_train, y_train)29. #scores.append(ridgeRegression.score(X_test, y_test))30. return alphas, scores31.32. def show_plot(alphas, scores):33. figure = plt.figure()34. ax = figure.add_subplot(1, 1, 1)35. ax.plot(alphas, scores)36. ax.set_xlabel(r"$\alpha$")37. ax.set_ylabel(r"score")38. ax.set_xscale("log")39. ax.set_title("Ridge")40. plt.show()41.42.43.
44. if __name__ == '__main__':45.46. A0=[0,0,130]47. A1=[500,0,170]48. A2=[0,500,170]49. A3=[500,500,130]50.51. url = './预测/16维训练异常.csv'52. data = pd. read_csv(url, sep=',',header=None)53. data=np.array(data)54.55. X_data=data[:,4:16]56.57. Y=data[:,16:19]58.59. # url_test = './预测/场景1/场景1_异常.csv'60.61. # url_test = './预测/16维训练异常.csv'62. url_test = './预测/16维测试异常.csv'63. # url_test = './预测/场景2/场景2_异常.csv'64. data_test = pd. read_csv(url_test, sep=',',header=None)65. data_test=np.array(data_test)66.67. X_data_test=data_test[:,4:16]68. Y_test=data_test[:,16:19]69.70. X_train=X_data71. X_test=X_data_test72. Y_train=Y73. Y_test=Y_test74. print(Y_test)75.76. predict=test_ridge(X_train, X_test, Y_train, Y_test)77. print(predict)78.79. dis=((predict[:,0]-Y_test[:,0])**2+(predict[:,1]-Y_test[:,1])**2+(predict[:,2]-Y_test[:,2])**2)80. dis_mean=np.sqrt(dis)81. print(np.mean(dis_mean))82.83.84. dis=((predict[:,0]-Y_test[:,0])**2+(predict[:,1]-Y_test[:,1])**2)85. dis_mean=np.sqrt(dis)86. print(np.mean(dis_mean))
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

相关文章:

2021年全国研究生数学建模竞赛华为杯E题信号干扰下的超宽带(UWB)精确定位问题求解全过程文档及程序

2021年全国研究生数学建模竞赛华为杯 E题 信号干扰下的超宽带(UWB)精确定位问题 原题再现: 一、背景   UWB(Ultra-Wideband)技术也被称之为“超宽带”,又称之为脉冲无线电技术。这是一种无需任何载波,通过发送纳秒…...

【电脑】u盘重装win7

u盘必须8GB以上 1. CPU型号 首先查看CPU的型号看看到底能不能装win7 2. 下载光盘映像文件 网址 看电脑是多少位的机器(32位下载x86 64位下载x64) 一共是这么多个版本按需下载对应的版本 电脑小白推荐无脑下载旗舰版 将链接复制到迅雷进行下载 3. 下载软碟通 网址 下…...

HCIA项目实践--RIP的拓展配置

9.4.7 RIP的拓展配置 (1)RIPV2的手工认证 RIPv2 的手工认证是增强网络安全性的手段。管理员手动配置密钥,路由器在收发 RIPv2 路由更新消息时,会对消息中的认证信息进行检查。发送方添加密钥,接收方用预设密钥验证。若…...

常用架构图:业务架构、产品架构、系统架构、数据架构、技术架构、应用架构、功能架构及信息架构

文章目录 引言常见的架构图I 业务架构图-案例模块功能说明1. 用户界面层 (UI)2. 应用服务层3. 数据管理层4. 基础设施层业务流程图示例技术实现II 功能架构图 -案例功能模块说明1. 船舶监控模块2. 报警管理模块3. 应急响应模块4. 通信管理模块5. 数据分析模块数据管理层基础设施…...

初阶c语言(练习题,猜随机数,关机程序)

目录 第一题,使用函数编写一个随机数,然后自己猜,猜随机数 第二道题(关机程序) 实现代码(关机程序) 实现代码(猜数字) 前言: 学习c语言,学习…...

三维重建(十二)——3D先验的使用

文章目录 零、最近感受和前言一、使用能够快速得到重建初始化的方法1.1 Colmap(多视角)1.2 深度估计(单视角)二、已知形状模板2.1 人脸2.2 人体2.3 动物三、刚性与非刚性约束(变形约束)3.1 刚性变形3.2 非刚性变形四、统计(深度学习)先验——从大量(3D)数据中提取信息…...

DDoS技术解析

这里是Themberfue 今天我们不聊别的,我们聊聊著名的网络攻击手段之一的 DDoS,看看其背后的技术细节。 DoS 了解 DDoS 前,先来讲讲 DoS 是什么,此 DoS 而不是 DOS 操作系统啊。1996年9月6日,世界第三古老的网络服务提供…...

总结:如何在SpringBoot中使用https协议以及自签证书?

总结:如何在SpringBoot中使用https协议以及自签证书? 前提一:什么是http协议?前提二:什么是https协议?一生成自签证书二 将证书转换为PKCS12格式三 配置SpringBoot(1)修改配置文件&a…...

Django开发入门 – 4.创建Django app

Django开发入门 – 4.创建Django app Create A Django App Under An Existing Project By JacksonML 1. 什么是Django app? Django项目面向Web应用程序,它会由一个或多个子模块组成,这些子模块称为apps。 Django apps负责执行完整Web应用程序中涉及…...

安装WPS后,导致python调用Excel.Application异常,解决办法

在使用xlwings编辑excel文件时,默认调用的是“Excel.Application”,如果安装过wps,会导致该注册表为WPS,会导致xlwings执行异常 因为安装过WPS,导致与Excel不兼容的问题,想必大家都听说过。有些问题及时删…...

语言大模型基础概念 一(先了解听说过的名词都是什么)

SFT(监督微调)和RLHF(基于人类反馈的强化学习)的区别 STF(Supervised Fine-Tuning)和RLHF(Reinforcement Learning from Human Feedback)是两种不同的模型训练方法,分别…...

理解 WebGPU 的入口: navigator.gpu

在现代 Web 开发中,WebGPU 已经成为实现高性能图形渲染和计算的强大工具。作为 WebGPU API 的入口点, navigator.gpu 是开发者与 GPU 交互的起点。本文将详细介绍 navigator.gpu 的属性和方法,以及如何通过它初始化 WebGPU 环境。 什…...

Django 创建第一个项目

Django 创建第一个项目 引言 Django 是一个高级的 Python Web 框架,它鼓励快速开发和干净、实用的设计。本指南将带您从头开始创建一个简单的 Django 项目,以便您能够熟悉 Django 的基本结构和概念。 准备工作 在开始之前,请确保您已经安装了 Python 和 Django。以下是安…...

ChatGPT vs DeepSeek详细对比

💡 AI模型发展背景 OpenAI的GPT系列需要数据参数算力,这些要素共同推动了模型的成长。但是,到了GPT-5时代,人类现有的知识精华几乎被学习殆尽,模型的提升空间变得有限。于是OpenAI团队另辟蹊径,尝试模拟人…...

日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(6):動詞ない形について句型

日语学习-日语知识点小记-构建基础-JLPT-N4&N5阶段(6):動詞ない形について句型 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)~動詞な形 +なければなりません(2)~動詞な形  + なくてもいいです(3)に まで までに :区別3、单词(1)日语单词…...

我的docker随笔46:在x86平台构建龙芯镜像

本文介绍在x86服务器上构建龙芯平台的docker镜像。 前言 去年11月,在龙芯机器上安装了docker工具,并开始尝试研究如何构建龙芯的文件系统。断断续续搞了2个月后,有点结果出来了。前面有文章介绍了如何用debootstrap构建龙芯编译运行环境&…...

移动端测试的挑战与解决方案:兼容性、网络问题及实战策略

引言 移动应用已成为用户触达服务的核心入口,但移动端测试面临设备多样性、网络波动、用户场景复杂等多重挑战。据Statista统计,2023年全球活跃移动设备超180亿台,操作系统(Android/iOS)版本碎片化率超30%,这对测试工程师提出了极高要求。本文深度解析移动端测试的核心痛…...

STM32 I2C通信协议说明

目录 背景 I2C协议 数据的有效性 I2C通信开始和停止条件 I2C数据传输 发送 响应 正常情况: 异常情况: 主机结束接收 写寄存器的标准流程 读寄存器的标准流程 仲裁机制 时钟同步 SDA线的仲裁 程序 背景 对单片机的三大通信中的I2C通信进…...

DeepSeek v3 技术报告阅读笔记

注 本文参考 DeepSeek-v3 / v2 / v1 Technical Report 及相关参考模型论文本文不包括基础的知识点讲解,为笔记/大纲性质而非教程,建议阅读技术报告原文交流可发送至邮箱 henryhua0721foxmail.com 架构核心 核心: MLA 高效推理DeepSeekMOE 更…...

HCIA项目实践(网络)---NAT地址转化技术

十三 NAT网络地址转换技术 13.1 什么是NAT NAT(Network Address Translation)地址转换技术,是一种将内部网络的私有 IP 地址转换为外部网络的公有 IP 地址的技术。其主要作用是实现多个内部网络设备通过一个公有 IP 地址访问外部网络&#x…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

无法与IP建立连接,未能下载VSCode服务器

如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

【JVM】- 内存结构

引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...

MeshGPT 笔记

[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭!_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...

英国云服务器上安装宝塔面板(BT Panel)

在英国云服务器上安装宝塔面板(BT Panel) 是完全可行的,尤其适合需要远程管理Linux服务器、快速部署网站、数据库、FTP、SSL证书等服务的用户。宝塔面板以其可视化操作界面和强大的功能广受国内用户欢迎,虽然官方主要面向中国大陆…...