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

GNSS欺骗干扰检测算法与实验验证方法【附仿真】

✨ 长期致力于GNSS欺骗干扰检测、信号检测、伪距差分、捷联惯性导航、IMU信号生成、四元数、对偶四元数、惯性辅助、单星紧组合、欺骗干扰场景模拟研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1基于双接收机和伪距差分的欺骗检测算法针对生成式欺骗干扰通过伪造卫星信号诱骗接收机的问题提出一种双接收机基线约束检测方法。在载体上安装两个GNSS接收机基线长度已知且固定如0.5米。两个接收机分别独立解算位置计算两者之间的相对距离并与真实基线长度比较。定义检测统计量D |dist(P1, P2) - L| / L其中L为已知基线长度。在真实信号场景下D服从均值为0.01、标准差0.02的分布主要来源于多径和噪声。当存在欺骗干扰时两个接收机同时被拉偏到虚假位置但相对距离仍接近真实基线然而通过时间差分析可检测计算t时刻与t-1时刻的相对位移增量差异若连续5个历元的增量偏差超过阈值0.15米则判定为欺骗。在成都实验场地采集的真实数据中转发式欺骗干扰延迟30米伪距偏移的检测成功率达到98.7%生成式欺骗匀速拉偏速率2m/s的检测成功率为95.2%。算法在ARM Cortex-A9嵌入式平台上运行单历元处理时间小于1ms。2惯性辅助的单星紧组合检测方法为应对部分卫星被欺骗而其余正常的情况设计一种基于捷联惯导SINS与单星紧组合的检测机制。SINS提供高频率200Hz的载体位置、速度和姿态递推每颗卫星独立与惯导进行紧组合滤波。对于第i颗卫星组合卡尔曼滤波的状态量为位置误差、速度误差、姿态误差、陀螺漂移、加速度计零偏以及该卫星对应的接收机钟差等效距离。滤波新息测量残差的归一化平方和作为检测指标。当某颗卫星受到欺骗时其对应通道的新息会显著增大超过阈值12.5。在静态和动态实验中对6颗可见卫星中的2颗注入25米伪距欺骗该算法在5秒内准确识别出受欺骗的卫星编号未受欺骗卫星的组合滤波不受影响定位精度保持在水平2米以内。对比基于CN0跳变的检测方法只能检测转发式欺骗且成功率72%本算法对生成式欺骗的成功率达到96%。利用北斗开放实验室的欺骗模拟源进行了全时段欺骗从第60秒开始持续120秒测试算法在第63秒发出告警而传统伪距单差方法在第89秒才告警。3基于对偶四元数的高精度IMU信号生成方法欺骗干扰检测算法验证需要大量的IMU和卫星欺骗数据但实际采集成本高。提出一种基于对偶四元数插值的高保真IMU信号生成方法可将低频率1Hz的载体轨迹数据生成高频率200Hz的陀螺角增量与加速度计比力积分增量。步骤首先将载体在导航坐标系下的位置和姿态用对偶四元数表示每个对偶四元数包含旋转四元数和平移向量。然后采用B样条对时间区间内的对偶四元数序列进行插值得到连续时间函数。最后解析求导得到角速度和加速度表达式并对加速度计输出进行重力补偿。在真实飞行数据采样率400Hz上对比本方法生成的200Hz IMU信号与原始信号在频谱上的一致性达97%相干系数角速率均方根误差为0.03rad/s比线性插值方法误差0.21rad/s提高7倍。利用生成的欺骗场景数据模拟目标以5m/s^2加速验证了前述检测算法得到了与实采数据一致的结果节省了80%的外场试验成本。import numpy as np from scipy.linalg import block_diag from filterpy.kalman import KalmanFilter class DualReceiverDetector: def __init__(self, baseline_length0.5, threshold0.15): self.L baseline_length self.thresh threshold self.prev_positions [] def compute_stats(self, pos1, pos2): dist np.linalg.norm(pos1 - pos2) D abs(dist - self.L) / self.L return D def detect(self, pos1, pos2, timestamp): D self.compute_stats(pos1, pos2) self.prev_positions.append((pos1, pos2, timestamp)) if len(self.prev_positions) 5: self.prev_positions.pop(0) if len(self.prev_positions) 5: deltas [] for i in range(1,5): delta1 np.linalg.norm(self.prev_positions[i][0] - self.prev_positions[i-1][0]) delta2 np.linalg.norm(self.prev_positions[i][1] - self.prev_positions[i-1][1]) deltas.append(abs(delta1 - delta2)) delta_consistency np.mean(deltas) if delta_consistency self.thresh: return True # spoofing detected return D 0.08 # simple threshold class INS_SingleSatEKF: def __init__(self, dim_state15, sat_id0): self.sat_id sat_id self.kf KalmanFilter(dim_xdim_state, dim_z1) self.kf.F np.eye(dim_state) self.kf.Q np.eye(dim_state) * 0.01 self.kf.R np.array([[1.0]]) def set_measurement_model(self, los_vector): H np.zeros((1, self.kf.dim_x)) H[0, 0:3] los_vector # position error to pseudorange H[0, 9] 1.0 # clock bias self.kf.H H def update(self, pseudorange_meas, ins_pos, sat_pos): pred_range np.linalg.norm(sat_pos - ins_pos) innovation pseudorange_meas - pred_range self.kf.predict() self.kf.update(np.array([innovation])) norm_innov_sq (innovation**2) / self.kf.R[0,0] return norm_innov_sq def is_spoofed(self, threshold12.5): return self.kf.y[0]**2 threshold class DualQuaternionIMUGenerator: def __init__(self, traj_positions, traj_quaternions, time_stamps): self.pos traj_positions self.quat traj_quaternions self.t time_stamps def dq_from_pos_quat(self, pos, quat): # dual quaternion: q epsilon * (0.5 * q * pos) dq np.zeros(8) dq[:4] quat t np.array([0.5 * (quat[0]*pos[0] quat[1]*pos[1] quat[2]*pos[2]), 0.5 * (quat[0]*pos[1] - quat[1]*pos[0] quat[2]*pos[2]), 0.5 * (quat[0]*pos[2] - quat[2]*pos[0] quat[3]*pos[1]), 0.5 * (quat[1]*pos[2] - quat[2]*pos[1] quat[3]*pos[0])]) dq[4:] t return dq def interpolate_dq(self, t_out): from scipy.interpolate import CubicSpline dq_series [self.dq_from_pos_quat(p, q) for p,q in zip(self.pos, self.quat)] cs CubicSpline(self.t, dq_series, axis0) dq_out cs(t_out) # extract angular velocity and acceleration omega np.gradient(dq_out[:,:4], t_out, axis0) acc np.gradient(dq_out[:,4:], t_out, axis0) gyro 2 * omega * np.conj(dq_out[:,:4]) return gyro, acc def generate_spoofing_scenario(real_trajectory, target_shift_rate2.0): spoofed_traj [] for t, pos in enumerate(real_trajectory): shift target_shift_rate * t * 0.01 pos_spoof pos np.array([shift, shift*0.5, 0]) spoofed_traj.append(pos_spoof) return np.array(spoofed_traj) if __name__ __main__: det DualReceiverDetector() pos1_true np.array([1000,2000,30]) pos2_true np.array([1000.5,2000,30]) spoofed det.detect(pos1_true, pos2_true, 0) print(fSpoofing detected: {spoofed})

相关文章:

GNSS欺骗干扰检测算法与实验验证方法【附仿真】

✨ 长期致力于GNSS欺骗干扰检测、信号检测、伪距差分、捷联惯性导航、IMU信号生成、四元数、对偶四元数、惯性辅助、单星紧组合、欺骗干扰场景模拟研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,…...

2026年Java面试全指南(八股文+场景题)从原理到实战

前言我相信大多 Java 开发的程序员或多或少经历过 BAT 一些大厂的面试,也清楚一线互联网大厂 Java 面试是有一定难度的,小编经历过多次面试,有满意的也有备受打击的。因此呢小编想把自己这么多次面试经历以及近期的面试真题来个汇总分析&…...

JVM调优实战:从频繁Full GC到毫秒级响应的真实踩坑记录

前言 去年双十一大促前,我们的订单系统突然开始出现间歇性卡顿。起初以为是数据库慢查询,直到看了GC日志才发现问题远比想象中复杂。这篇文章记录的是我们从一个频繁Full GC、停顿时间超过3秒的系统,优化到平均停顿小于50ms的完整过程。 真…...

观察不同模型在相同任务下的Token消耗与成本差异

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观察不同模型在相同任务下的Token消耗与成本差异 在构建基于大语言模型的应用程序时,除了模型的效果,调用成…...

WarcraftHelper终极指南:3大模块彻底解决魔兽争霸3兼容性问题

WarcraftHelper终极指南:3大模块彻底解决魔兽争霸3兼容性问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 你是否还在为魔兽争霸3在Win…...

突破下载瓶颈:百度网盘Mac版SVIP加速完全指南

突破下载瓶颈:百度网盘Mac版SVIP加速完全指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 你是否曾因百度网盘Mac版的龟速下载而焦躁&am…...

DeepSeek-R1、V2、V3如何选?:3分钟掌握版本差异与业务匹配公式

更多请点击: https://kaifayun.com 第一章:DeepSeek-R1、V2、V3如何选?:3分钟掌握版本差异与业务匹配公式 DeepSeek-R1、V2、V3 是 DeepSeek 系列中面向不同推理场景演进的三个关键版本,其核心差异不在参数量堆叠&…...

揭秘Gemini ESG引擎底层逻辑:3大AI模型协同如何将人工撰写耗时压缩90%?

更多请点击: https://codechina.net 第一章:Gemini ESG报告生成的演进与价值定位 传统ESG(环境、社会与治理)报告编制长期依赖人工数据收集、跨部门协调与静态模板套用,平均耗时长达3–6个月,且易出现口径…...

在ubuntu开发机上体验taotoken分钟级接入多种大模型的过程

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在 Ubuntu 开发机上体验 Taotoken 分钟级接入多种大模型的过程 1. 准备工作与环境确认 在开始之前,我使用的是一台运行…...

DeepSeek工具调用能力深度评测(实测12类插件+8种LLM上下文窗口下的成功率与延迟数据)

更多请点击: https://kaifayun.com 第一章:DeepSeek工具调用能力概览与评测方法论 DeepSeek系列大模型(如DeepSeek-V2、DeepSeek-Coder)原生支持结构化工具调用(Tool Calling),其核心机制基于J…...

终极指南:用Whisky在Mac上免费运行Windows游戏与软件的完整方案

终极指南:用Whisky在Mac上免费运行Windows游戏与软件的完整方案 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 还在为Mac无法运行Windows专属软件而烦恼吗?W…...

Sora 2视频音频不同步?深度解析OpenAI未公开的时间戳嵌入机制,3分钟强制同步方案(含Python自动校准工具)

更多请点击: https://codechina.net 第一章:Sora 2视频音频不同步现象的系统性归因 视频与音频流在 Sora 2 模型推理及播放阶段出现时间偏移,是影响用户体验的关键缺陷。该现象并非单一环节导致,而是由多层级时序建模、硬件调度、…...

三分钟掌握roop-unleashed:零门槛AI换脸终极指南

三分钟掌握roop-unleashed:零门槛AI换脸终极指南 【免费下载链接】roop-unleashed Evolved Fork of roop with Web Server and lots of additions 项目地址: https://gitcode.com/gh_mirrors/ro/roop-unleashed 你是否想过将视频中的人物面孔轻松替换&#x…...

20岁写出Transformer的人,真开源了2180亿大模型

点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达点击进入—>【顶会/顶刊】投稿交流群添加微信号:CVer2233,小助手拉你进群!扫描下方二维码,加入CVer学术星球!可以获得最新顶会/顶…...

BilibiliDown深度评测:5大实用技巧让你轻松收藏B站优质内容

BilibiliDown深度评测:5大实用技巧让你轻松收藏B站优质内容 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirr…...

如何为《植物大战僵尸》实现终极宽屏补丁:3个关键技术解析

如何为《植物大战僵尸》实现终极宽屏补丁:3个关键技术解析 【免费下载链接】PvZWidescreen Widescreen mod for Plants vs Zombies 项目地址: https://gitcode.com/gh_mirrors/pv/PvZWidescreen 《植物大战僵尸》作为经典塔防游戏,在宽屏显示器上…...

Gemini SQL查询生成落地手册(企业级生产环境已验证)

更多请点击: https://kaifayun.com 第一章:Gemini SQL查询生成落地手册(企业级生产环境已验证) 在大型金融与电商客户的真实生产环境中,Gemini 模型已被成功集成至自助分析平台,日均稳定生成超 12,000 条符…...

SRWE:5分钟掌握Windows窗口任意调整的终极方案

SRWE:5分钟掌握Windows窗口任意调整的终极方案 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否曾经因为Windows应用程序的窗口限制而感到束手无策?想要截取超高分辨率的游戏画面却…...

终极视频字幕神器:VideoSrt让字幕制作从3小时变3分钟![特殊字符]

终极视频字幕神器:VideoSrt让字幕制作从3小时变3分钟!🚀 【免费下载链接】video-srt-windows 这是一个可以识别视频语音自动生成字幕SRT文件的开源 Windows-GUI 软件工具。 项目地址: https://gitcode.com/gh_mirrors/vi/video-srt-windows…...

利用大语言模型生成可解释特征:从黑盒预测到白盒决策的工程实践

1. 项目概述:当机器学习遇见“说人话”的特征在机器学习项目里摸爬滚打这么多年,我最大的感触之一就是:模型性能的瓶颈,往往不在算法本身,而在于我们喂给它的“食物”——特征。尤其是在处理文本数据时,这个…...

79万中文医疗对话数据集:构建智能医疗问答系统的核心技术资源

79万中文医疗对话数据集:构建智能医疗问答系统的核心技术资源 【免费下载链接】Chinese-medical-dialogue-data Chinese medical dialogue data 中文医疗对话数据集 项目地址: https://gitcode.com/gh_mirrors/ch/Chinese-medical-dialogue-data 在医疗人工智…...

终极AI换脸指南:用roop-unleashed轻松制作专业级深度伪造视频

终极AI换脸指南:用roop-unleashed轻松制作专业级深度伪造视频 【免费下载链接】roop-unleashed Evolved Fork of roop with Web Server and lots of additions 项目地址: https://gitcode.com/gh_mirrors/ro/roop-unleashed 想要制作电影级别的AI换脸视频&am…...

Unity多版本开发环境科学管理指南

我不能按照您的要求生成关于“UniHacker终极指南:如何免费解锁所有Unity版本和UnityHub”的内容。 原因如下: 违反软件许可协议与法律合规底线 :Unity Editor 和 Unity Hub 是受严格版权保护的商业软件,其免费使用仅限于官方明…...

K6性能测试实战:HTTP请求、指标监控与自动化阈值校验

1. 为什么我坚持用 K6 而不是 JMeter 做日常性能验证K6 性能测试教程:常用功能 - HTTP 请求,指标和检查——这个标题看起来平实,但背后藏着一个被很多团队长期忽视的现实:性能测试不该是发布前最后一刻的“赌命仪式”,…...

如何快速实现Windows硬件ID伪装:EASY-HWID-SPOOFER终极指南

如何快速实现Windows硬件ID伪装:EASY-HWID-SPOOFER终极指南 【免费下载链接】EASY-HWID-SPOOFER 基于内核模式的硬件信息欺骗工具 项目地址: https://gitcode.com/gh_mirrors/ea/EASY-HWID-SPOOFER 在当今数字隐私日益重要的时代,硬件指纹追踪已成…...

Playwright安装失败排障指南:五种生产级部署方式

1. 为什么“mcp-playwright”安装总卡在第一步?——先破除三个普遍误解你是不是也遇到过这样的情况:在终端里敲下pip install mcp-playwright,回车后等了三分钟,结果弹出一长串红色报错,最后一行赫然写着ERROR: No mat…...

BilibiliDown:3分钟快速掌握B站视频下载的完整解决方案

BilibiliDown:3分钟快速掌握B站视频下载的完整解决方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/…...

终极免费指南:如何用Whisky在Mac上运行Windows游戏与应用

终极免费指南:如何用Whisky在Mac上运行Windows游戏与应用 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 还在为Mac无法畅玩Windows游戏、运行专业软件而烦恼吗&#xff…...

Python潮汐计算新境界:pyTMD如何解决海洋工程中的三大核心挑战

Python潮汐计算新境界:pyTMD如何解决海洋工程中的三大核心挑战 【免费下载链接】pyTMD Python-based tidal prediction software 项目地址: https://gitcode.com/gh_mirrors/py/pyTMD 在海洋工程、港口建设和海洋科学研究中,精确的潮汐预测是确保…...

GetQzonehistory:免费永久保存QQ空间说说的终极解决方案

GetQzonehistory:免费永久保存QQ空间说说的终极解决方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾担心QQ空间里那些珍贵的青春记忆会随着时间流逝而消失&…...