基于matlab的BOC调制信号捕获仿真

news2025/7/12 9:41:06

目录

1.算法描述

2.仿真效果预览

3.MATLAB部分代码预览

4.完整MATLAB程序


1.算法描述

       随着全球导航卫星系统的高速发展,导航系统的数量也越来越多,比如使用最广泛的GPS导航系统,以及越来越备受关注的中国北斗导航系统等.因此导航频段变得越来越拥挤,且各个频段内的信号相互干扰,在如此情况下,一种二进制偏移载波(Binary Offset Carrier,BOC)调制信号被成功提出,用来解决该问题.而伴随着对BOC信号的深入研究,一系列BOC衍生信号也被提出来应用于各个导航系统中.此外,实际环境中存在着许多干扰因素,给BOC及其衍生信号的捕获带来了困难,因此也成为了国内外学者研究的热点与难点.

       BOC 调制就是在原有 BPSK 调制的基础上,再加上一个二进制副载波对 BPSK 信号进行二次扩频。由于方波易于生产,因此采用方波来替代正弦波,这样可以节约硬件资源。一般用 BOC(sf ,cf)来表示sf 代表副载波频率,cf 代表伪码速率。因为sf 和cf都是 1.023MHz 的整数倍,所以文献中用 BOC(m,n)的表示形式,其中 m 表示的是副载波频率,n 表示的是扩频码速率,它们分别表示 1.023MHz 的 m 倍和 n 倍。

       BOC 调制的频谱可以分为两个对称独立的边带,它的自相关函数是一种多峰结构,其中主峰较窄,所以有可能对接收机处理方式做一些改变,以便在实现时获得性能的改善。另外一种可行的方法是使鉴相器工作在一个带宽信号的相对函数上,进而保持对主峰的粗跟踪,之后再转入用双边带信号工作的鉴相器,来作精跟踪。由此可见,BOC 调制信号的频谱中上边带和下边带的冗余,自相关函数中的多峰,如果加以开发利用有可能在接收机的信号截获、码跟踪以及数据解调等处理中带来利益。

      BOC 调制信号是在载波调制前对扩频信号用副载波进行二次扩频。其流程如下图所示:
在这里插入图片描述
正、余弦BOC调制信号的码片波形可以分别表示为
在这里插入图片描述
在这里插入图片描述

正弦BOC调制信号BOCs(m,n)和余弦BOC调制信号BOCc(m,n)的自相关函数分别为
在这里插入图片描述
在这里插入图片描述        

boc和bpsk区别很多:

1 功率谱不同,boc将基带信号能量搬移到±fs处,bpsk基带信号能量集中在0频。boc的这种特性使得一个频点可以发射多个信号分量。

2 相关函数不同,boc有多个峰,会使得接收机产生误锁,而bpsk不会。

总结,boc是的导航信号调制方式设计更具灵活性,但接收处理更有挑战。bpsk接收处理简单。

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

 

 

3.MATLAB部分代码预览

for ii = 1:length(Visible_sv)
    %输出即将赋值的可见星号码
    PRN = Visible_sv(ii);
    fprintf('%02d ', PRN);  
    %产生随机的多普勒偏移频率
    frqshift(ii) = settings.acqSearchBand * 1e3 * rand(1,1) - ...
        (settings.acqSearchBand/2) * 1e3;       
    %此时载波频率
    frqBins(ii) = settings.IF  + frqshift(ii);  
    %产生随机导航数据为1或-1
    NavData = randi([0,1],1,ceil(navdatLength+1))*2 - 1;
    %每个采样点所对应的导航数据号
    dataValueIndex = floor((ts * (1:settings.msToProcess*1e-3*settings.samplingFreq)) / ...
                               (1/50));          
    %每个采样点所对应的导航数据
    NavDataS = NavData(dataValueIndex + 1);      
    clear dataValueIndex
    %利用generateCAcode函数产生每个可见星对应的C/A码
    caCode1023 = generateCAcode(PRN);           
    %每个采样点所对应的C/A码片序号
    codeValueIndex = floor((ts * (1:settings.msToProcess*1e-3*settings.samplingFreq)) / ...
                               (1/settings.codeFreq));
    %产生每个采样点所对应的随机相位
    codePhase(ii) = floor(1023*rand(1,1));            
    %每个随机相位下采样点对应的C/A码片数据
    codePhase_o=codePhase(ii);
    longCaCode = caCode1023((rem(codeValueIndex + ...
        settings.CAcodeLength - codePhase(ii), settings.CAcodeLength) + 1));
    clear caCode1023                                 
    
    %产生副载波并与伪码相乘得到BOC信号码片数据
    subCarr = square(settings.subcarrFreq * phasePoints); %sign(sin(settings.subcarrFreq * phasePoints));
    longBocCode = longCaCode.*subCarr;               
    clear longCaCode subCarr
    %产生正弦余弦载波信号
    sinCarr = sin(frqBins(ii) * phasePoints);         
    cosCarr = cos(frqBins(ii) * phasePoints);         
    
    %产生正交以及同向的BOC调制信号
    I1      = cosCarr .* longBocCode .* NavDataS;
    Q1      = sinCarr .* longBocCode .* NavDataS;
    clear NavDataS longBocCode sinCarr cosCarr      
    
    %多个可见星正交以及同向的BOC调制信号叠加,即模拟实际情况
    signalI = signalI + I1;
    signalQ = signalQ + Q1;                          
    clear I1 Q1 
end
A48

4.完整MATLAB程序

matlab源码说明_我爱C编程的博客-CSDN博客

V

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

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

相关文章

activiti-api-impl

activiti-api-impl目录概述需求:设计思路实现思路分析1.CommonModelAutoConfiguration2.RuntimeEventImpl3.ProcessModelAutoConfiguration4.DefaultServiceTaskBehavior5.APIVariableInstanceConverterTaskModelAutoConfiguration参考资料和推荐阅读Survive by day…

Flutter高仿微信-第53篇-群聊-删除并退出

Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图: 实现代码: //删除并退出对话框 void _deleteAndExistDialog(){Load…

图解LeetCode——1752. 检查数组是否经排序和轮转得到(难度:简单)

一、题目 给你一个数组 nums 。nums 的源数组中,所有元素与 nums 相同,但按非递减顺序排列。 如果 nums 能够由源数组轮转若干位置(包括 0 个位置)得到,则返回 true ;否则,返回 false 。 源数…

一文了解Linux上TCP的几个内核参数调优

Linux作为一个强大的操作系统,提供了一系列内核参数供我们进行调优。光TCP的调优参数就有50多个。在和线上问题斗智斗勇的过程中,笔者积累了一些在内网环境应该进行调优的参数。在此分享出来,希望对大家有所帮助。 调优清单 好了&#xff0…

Java#27(Arrays)

目录 一.Arrays 操作数组的工具类 二.Lambda表达式 1.注意: 2.省略规则 一.Arrays 操作数组的工具类 方法名 作用 public static String toString(数组) 把数组拼接…

大数据毕设选题 - 深度学习动物识别与检测系统( python opencv)

文章目录0 前言1 深度学习实现动物识别与检测2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层4 数据集准备4.1 数据标注简介4.2 数据保存5 …

kafka集群搭建与prometheus监控配置

文章目录1、基于zookeeper的集群2、kafka集群安装2.1 基于Zookeeper集群的配置2.2 基于KRaft模式集群的配置2.3、启动Kafka集群3、kafka_exporter监控组件安装3.1、安装3.2、系统服务3.3、集成到prometheus4、与Grafana集成1、基于zookeeper的集群 下载地址:https:…

ABAP学习笔记之——第三章:OPEN SQL和NATIVE SQL

一、SAP R/3体系结构 SAP R/3一个分为三层:数据库层、应用层、表示层。其中应用层和数据库层由一个系统构成。 表示层:表示层(Presentation Layer)简单来讲其实就是指个人PC,是保存构成SAPGUI(GraphicalUserInterface)的软件组件(Software Co…

数字验证学习笔记——SystemVerilog芯片验证10 ——类的成员

一、类和成员 类是成员变量和成员方法的载体,之所以称为自洽体,是因为其变量和方法应符合‘聚拢’原则,即一个类的功能应该尽可能简单,不应承担过多的职责,更不应该承担不符合它的职责,这在设计模式被称为…

变分自编码器(VAES)

Dimensionality reduction ,PCA and autoencoders Dimensionality reduction 我们清楚,数据降维其实都是减少数据的特征数量,如果把encoderencoderencoder看作是由高维原有特征生成低维新特征的过程。把decoderdecoderdecoder看作是将低维特征还原为高…

vulnhub靶机ha:wordy

靶机下载链接:HA: Wordy ~ VulnHub 靶机ip:192.168.174.136(后面重启后变成192.168.174.137) kali ip:192.168.174.128 目录 靶机ip发现: 靶机端口扫描: 子目录扫描: wpscan扫描 漏洞利用1 漏洞利…

ASEMI肖特基二极管MBR40200PT参数,MBR40200PT规格

编辑-Z ASEMI肖特基二极管MBR40200PT参数: 型号:MBR40200PT 最大重复峰值反向电压(VRRM):200V 最大平均正向整流输出电流(IF):40A 峰值正向浪涌电流(IFSM&#xff0…

5、Mybatis的查询功能(必定有返回值)

Mybatis的查询功能(必定有返回值) 注意: 查询功能与前面的增删改不同,增删改的返回值是固定的(所以增删改我们就有两种返回值要么设置为int获取受影响的行数,要么设置为void我们不获取返回值)…

基于JAVA的农产品生鲜销售管理系统【数据库设计、源码、开题报告】

数据库脚本下载地址: https://download.csdn.net/download/itrjxxs_com/86468222 主要使用技术 Struts2HibernateJSPJSCSSMysql 功能介绍 1,游客访问 |–系统首页,查看商品列表 |–特价商品 |–最新上架 2,会员访问 |–用户登…

Qt 界面设置无边框之后如何实现缩放界面

在qt中,如果设置的了窗口无边框的话(即setWindowFlag(Qt::FramelessWindowHint);)那么窗口就没法直接被鼠标拖动了,也没法按住窗口的边界进行缩放。 如果要实现缩放和拖动,一般来说就需要的重写窗口类的mousePressEve…

目标检测论文解读复现之十九:基于YOLOv5网络模型的人员口罩佩戴实时检测

前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文&#xff0…

8.3 数据结构——交换排序

基本思想:两两比较,如果发生逆序则交换,直到所有记录都排好序为止。 常见的交换排序:(1)冒泡排序 (2)快速排序 8.3.1 冒泡排序 基本思想:每趟不断将记录两两比较&…

VLAN(Virtual LAN)虚拟局域网

1、广播与广播域 广播:将广播地址做为目标地址的数据帧 广播域:网络中能接收到同一个广播所有节点的集合(广播域越小越好,收到的垃圾广播越少,这样通信效率更高) MAC地址广播 广播地址为:FF-FF-…

rabbitmq配置windows authentication(windows account)登录

rabbitmq配置windows authentication(windows account开启插件配置文件创建一个不需要密码的账号,赋予administrator权限。用windows账号和密码登录rabbitmq加密明文密码创建密钥的文件,添加密钥字符串加密解密用户名密码配置加密后的字符串重启rabbitmq&#xff0c…

HyperLynx(三十一)高速串行总线仿真(三)

高速串行总线仿真(三) 1.从一个多层板工程中验证串行通道 2.在多层板中设置连接器模型 1.从一个多层板工程中验证串行通道 在本例练习中,将集中研究从芯片到插件形成的串行发射通道,并分析它的性能。 (1)打开 HyperLynx 软件&a…