短时相关+FFT捕获方法的MATLAB仿真

news2024/9/24 21:18:36

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

短时相关+FFT捕获方法的MATLAB仿真

  • 前言
  • 短时相关+FFT捕获相关原理
    • 1、频偏引起的相关损失
    • 2、扇贝损失
  • MATLAB程序
  • 获取完整程序


前言

对于算法类的工程,FPGA设计,仿真先行,再没搞清楚整个信号处理原理和流程之前,切莫盲目开始FPGA RTL。对于导航接收机而言,接收机的第一步就在于能够捕获到信号,才能进行后面的跟踪、解算等等。笔者所做的《从零开始研发GPS接收机》的工作中,使用的方法就是这种短时相关+FFT的捕获方法。
从零开始研发GPS接收机》记录了笔者实现一个硬件接收机的全过程,可通过公众号找到。

短时相关+FFT捕获相关原理

短时相关+FFT捕获(或叫做匹配滤波+FFT,PMF+FFT)是一种比较适合于硬件实现的方法。大致的实现方式如下:中频信号与本地载波相乘得到I、Q两路信号。I、Q两路信号分别进入N (,L为伪码长度)阶延迟线,与本地的N 位信号相关,可以得到N个相关值。各次相关输出存储在缓存中,M次运算后将形成一个维的矩阵,对该矩阵各列作M点FFT,当接收信号与本地信号相位差小于N 时即可完成对信号的捕获,当相位差大于N 时未能完成捕获,重新进入下一轮捕获。

在这里插入图片描述

1、频偏引起的相关损失

部分相关是一个低通滤波过程,随着多普勒频移的增大,对应的FFT输出值随之下降,叫做相关损失。随着多普勒频移的增大,相关损失引起FFT输出值下降,因而导致检测概率的下降。下图显示了不同相关器配置对短时相关+FFT结构的幅频响应的影响。X表示每段短时相关的点数,P为段数,N表示对P点数据做N点FFT运算

在总相关时间一定的情况下,分段相关器的相关时长越长,做FFT运算的点数越少,则相应的相关损失也越厉害。
在这里插入图片描述

2、扇贝损失

在短时相关-FFT结构中,FFT运算存在扇贝损失,即当多普勒频移值位于FFT输出两点之间时,该频率对应的FFT输出亦会下降。FFT输出幅度周期性的下降就是由于FFT运算中相位补偿不完全引起的,这种周期性的幅度下降同样也会导致检测概率的下降。扇贝损失可以用补零法来改善。

补零前的幅频响应:
在这里插入图片描述
补零后的幅频响应:
在这里插入图片描述
劣势:
1、如果频率落在两个分辨的频点中间,峰值会有所下降(扇贝损失)
2、如果频偏离中心频点较远,则峰值会下降(频偏损失)
优势:
1、对于电文跳变不敏感,不会因为电文翻转存在相关损失。
2、实现比较灵活,相关器个数可根据捕获速度要求配置

MATLAB程序

这里的matlab使用的是短时相关+FFT的方法。因为短时相关+FFT的原理比较简单,难点在于RTL设计和时序,读者在matlab中弄明白运算原理之后,可以试着参考下面链接中提到的一些设计思路进行设计。

从零开始研发GPS接收机连载——6、捕获模块设计与验证
这里使用下面文章中生成的信源来进行捕获和载噪比估计:
GPS的信号强度以及matlab信号模拟
matlab程序如下:

close all;
clear all;
clc;
format long g;

%参数
SAMPLECLK   = 16.369e6;   %采样时钟
T = 0.001;   %相关时长
SAMPLE1MS   = SAMPLECLK*T; 
L1CODEFERQ  = 1.023e6;
L1CARRFERQ  = 3.996e6;  %中频
L1CODELEN   = 1023;     %一周期码片个数

%y.mat来自于《GPS的信号强度以及matlab信号模拟》中的matlab
%此处doppler = 1000Hz
y = load('y.mat').y; %包含了PRNNUM = 1的卫星数据
y = y(CodePhase : end);

%以下为付费内容

首先还是得到这张二维图:
在这里插入图片描述
自动算出码相位和多普勒以及CNR。
可以看到,由于频率分辨率的限制,只能输出1000Hz最接近的一个频点,即937.5Hz,那么载波频率的捕获误差就是62.5Hz。
在这里插入图片描述

获取完整程序

见公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2105109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pandas数据处理库使用

文章目录 链接: [原文章链接](https://mp.weixin.qq.com/s?__bizMzkzNjI3ODkyNQ&tempkeyMTI4Nl8zM3FHVFU1NDRDL0p2SkplRTVidmhiNmh1ZWF3YXkwY3VYZlZNaWx0MXowdThFbVRUVEFEdEs5YlU2SUJLcmtXTHZpbnFmR2V6SG1rbGJyd01zYnRkdURWa1ZvNGtIU1piWDd5RFA4OUxkNmlaVmZ1QVpEd2tWR25IR…

MySQL常用窗口函数总和

在 MySQL 中,窗口函数是一类用于在查询结果集中计算值的函数,允许用户根据数据行进行聚合或排序操作,同时保留行的详细信息。窗口函数在分析数据时非常有用,因为它们允许您在不缩小结果集的情况下对数据进行复杂的计算。 常见的窗…

【文献及模型、制图分享】县域城乡融合发展对乡村旅游地实现共同富裕的影响机制——以长三角地区60个典型县为例

文献介绍 乡村旅游地是推动城乡融合、实现共同富裕的关键区域,精准把握县域城乡融合发展多维特征,系统解析其促进乡村旅游地共同富裕的机制,有助于丰富新时代城乡共富理论体系。基于共生理论,构建“共生单元—共生环境—共生结果…

linux~~目录结构远程登录教程(xshell+xftp)

目录 1.目录结构 2.远程登录xshell 2.1所需工具 2.2了解虚拟机IP 2.3查看是否正常连接 2.4xshell进行连接 3.文件传输xftp7 3.1xftp6安装 3.2相关设置 3.3效果展示 3.4文件之间的传输过程 1.目录结构 bin目录里面主要存放这个我们经常使用的指令,例如这个…

PointNet++改进策略 :模块改进 | PAConv,位置自适应卷积提升精度

题目:PAConv: Position Adaptive Convolution with Dynamic Kernel Assembling on Point Clouds来源:CVPR2021机构:香港大学论文:https://arxiv.org/abs/2103.14635代码:https://github.com/CVMI-Lab/PAConv 前言 PA…

从八股文到奇怪的缓存一致性问题

本文是最近看阿里云开发者的一遍奇怪的缓存一致性问题的总结与心得,原文放在文章末尾 缓存穿透、缓存击穿、缓存雪崩 缓存穿透、缓存击穿和缓存雪崩都是系统中可能遇到的问题,特别在高并发场景下。 缓存穿透 与后两者不同,缓存穿透是查询不…

10.10 层次化网络模型和综合布线系统

层次化网络模型 综合布线系统 真题

前端登录鉴权——以若依Ruoyi前后端分离项目为例解读

权限模型 Ruoyi框架学习——权限管理_若依框架权限-CSDN博客 用户-角色-菜单(User-Role-Menu)模型是一种常用于权限管理的设计模式,用于实现系统中的用户权限控制。该模型主要包含以下几个要素: 用户(User)…

基于微信的热门景点推荐小程序的设计与实现(论文+源码)_kaic

摘 要 近些年来互联网迅速发展人们生活水平也稳步提升,人们也越来越热衷于旅游来提高生活品质。互联网的应用与发展也使得人们获取旅游信息的方法也更加丰富,以前的景点推荐系统现在已经不足以满足用户的要求了,也不能满足不同用户自身的个…

Leetcode—72. 编辑距离【中等】

2024每日刷题&#xff08;158&#xff09; Leetcode—72. 编辑距离 动态规划算法思想 实现代码 class Solution { public:int minDistance(string word1, string word2) {const int m word1.length();const int n word2.length();vector<vector<int>> dp(n 1,…

Multi-Mode DOA Estimation AND Relax Super Resolution DOA

之前看到加特兰的新品发布会上&#xff0c;PPT写的一些算法信号处理流程图&#xff0c;这里记录学习一下自己的思考&#xff1a; 原始数据采样数据预处理距离维FFT通道间DDMA数据分离非相干累计RV-MAP coarse-cfar fine CFAR(multi-Mode DOA Estimation): 舱内的CPD信号处理流…

分支线定向耦合器宽带化设计和ADS仿真

分支线定向耦合器宽带化设计和ADS仿真 工程下载链接&#xff1a;分支线定向耦合器宽带化设计和ADS仿真-ADS工程文件 之前经常分析分支线定向耦合器&#xff0c;例如在15、ADS使用记录之耦合器设计和基于AWR的微带线分支线耦合器设计-从原理到版图中都有涉及&#xff0c;但是由…

Axure中继器动态数据图表制作

在Axure RP中&#xff0c;中继器&#xff08;Repeater&#xff09;是一个非常强大的工具&#xff0c;它允许设计者动态地展示和交互数据&#xff0c;进而创建各种复杂的数据可视化图表&#xff0c;如柱状图、条形图、堆叠图、散点图和对比图。以下将详细介绍如何使用中继器来设…

solidworks模型导出urdf(超详细)

目录 写在前面的话1 solidworks 文件2 安装sw2urdf插件3 完整步骤3.1 设置基准轴3.2 设置点3.3 设置坐标轴3.4 设置sw2urdf参数3.5 导出可能的问题3.6 ros2 编译3.7 成功结果画面 写在前面的话 刚进组1个月&#xff0c;我的博士研究方向是自动驾驶&#xff0c;还没入门&#x…

火山引擎携手Keep,让线上健身更快更稳

今年年初&#xff0c;一部《热辣滚烫》又掀起了健身塑型风潮。作为健身领域的佼佼者&#xff0c;Keep 为用户提供全面的健身方案&#xff0c;以帮助用户实现健身目标。随着短视频运动的流行&#xff0c;Keep 覆盖的运动品类超过60类&#xff0c;同时不断尝试直播等新的内容承载…

Oceanbase 透明加密TDE

官方文档&#xff1a;数据库透明加密概述-V4.3.2-OceanBase 数据库文档-分布式数据库使用文档 OceanBase 数据库社区版暂不支持数据透明加密。 数据存储加密是指对数据和 Clog 等保存在磁盘中的数据进行无感知的加密&#xff0c;即透明加密&#xff08;简称 TDE&#xff09;。…

【时时三省】(C语言基础)指针进阶 例题

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 字符数组例题&#xff1a; arr后面放了六个字符 所以这个数组的元素个数就是6 第一个arr 因为他计算的是一整个数组的大小 就是打印6 第二个arr0 arr没有单独放在它的内部 所以它计算的就是…

flunet瞬态处理时均问题

fluent处理时均问题 最近遇到个同学&#xff0c;处理心脏跳动的时均问题&#xff0c;由于仅想取部分稳定时间段的时均数据&#xff0c;fluent的自动采样仅能对全部时间做处理&#xff0c;就存在问题了&#xff0c;网上看到两篇很详细的文章&#xff0c;记录下。 具体网址&…

Docker Elasticsearch安装ik分词插件教程

本章教程在通过Docker 安装Elasticsearch,并安装ik分词插件。本文的重点是安装ik分词插件。 一、安装Elasticsearch 安装教程以前写过,参考:https://blog.csdn.net/qq_19309473/article/details/140725121 安装之后,通过http://ip:9200,可以访问,就表示安装成功。 二、安装…

[python]socket之网络编程基础知识

1.三要素介绍: ip地址:设备在网络内的标识,分为ipv4和ipv6 端口号:软件(程序)在设备上的唯一标识.0-65535,其中0-1024为知名端口号,程序开发中最好不要使用 协议:数据发送的规则,有TCP和UDP 等 ip地址详解: 简单来说主要分为 IpV4, IpV6 IpV4: 采用4个字节, 十进制的形式来…