当前位置:网站首页>基于matlab的BOC调制信号捕获仿真
基于matlab的BOC调制信号捕获仿真
2022-07-23 09:46:00 【我爱C编程】
目录
1.算法描述
随着全球导航卫星系统的高速发展,导航系统的数量也越来越多,比如使用最广泛的GPS导航系统,以及越来越备受关注的中国北斗导航系统等.因此导航频段变得越来越拥挤,且各个频段内的信号相互干扰,在如此情况下,一种二进制偏移载波(Binary Offset Carrier,BOC)调制信号被成功提出,用来解决该问题.而伴随着对BOC信号的深入研究,一系列BOC衍生信号也被提出来应用于各个导航系统中.此外,实际环境中存在着许多干扰因素,给BOC及其衍生信号的捕获带来了困难,因此也成为了国内外学者研究的热点与难点.
2.部分程序
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
end3.部分仿真图预览






4.源码获取方式
点击下载链接:
获取方式2:
博客资源项,搜索和博文同名资源。
获取方式3:
如果下载链接失效,加博主微信联系。
A_048
边栏推荐
- 真人踩过的坑,告诉你避免自动化测试常犯的10个错误
- 21 - 二叉树的垂直遍历
- Quick introduction to PKI system
- 直播课堂系统03补充-model类及实体
- Head pose estimation principle and visualization_ Loveliuzz's blog - Programmer's Homestead_ Head posture estimation
- Opencv calculation outsourcing rectangle
- Live classroom system 02 build project environment
- 452. 用最少数量的箭引爆气球
- [untitled]
- Common JS modular specification from a code question
猜你喜欢

Head pose estimation principle and visualization_ Loveliuzz's blog - Programmer's Homestead_ Head posture estimation

mysql 之general_log日志

mysql唯一索引无重复值报错重复

Typora图床配置详细教程

FastAPI应用加入Nacos

Kettle實現共享數據庫連接及插入更新組件實例
![[paper notes] mobile robot navigation method based on hierarchical depth reinforcement learning](/img/3d/6486f836535e5a1fa1a362d5214d77.png)
[paper notes] mobile robot navigation method based on hierarchical depth reinforcement learning

真人踩过的坑,告诉你避免自动化测试常犯的10个错误

运维高级作业03

易基因|靶基因DNA甲基化测序(Target-BS)
随机推荐
Kettle implements shared database connection and insert update component instances
直播课堂系统03补充-model类及实体
@FeignClient使用详细教程(图解)
基于matlab的BOC调制解调的同步性能仿真,输出跟踪曲线以及不同超前滞后码距下的鉴别曲线
什么是Per-Title编码?
自研的数据产品迭代了一年多,为什么不买第三方商业数据平台产品呢?
What methods are called behind the use of objects
452. 用最少数量的箭引爆气球
Mathematical function of MySQL function summary
The self-developed data products have been iterated for more than a year. Why not buy third-party commercial data platform products?
Detailed tutorial of typora drawing bed configuration
C language introduction practice (11): enter a group of positive integers and sum the numbers in reverse order
如何加速矩阵乘法——优化GEMM (CPU单线程篇)
[applet automation minium] III. element positioning - use of wxss selector
[WinForm] desktop program implementation scheme for screenshot recognition and calculation
直播课堂系统01-数据库表设计
Transferred from Yuxi information disclosure: products such as mRNA covid-19 vaccine and Jiuzhou horse tetanus immunoglobulin are expected to be on the market within this year.
[software testing] how to sort out your testing business
【测试平台开发】23. 接口断言功能-保存接口断言和编辑回显
NVIDIA vid2vid paper reproduction