基于matlab的BOC调制信号捕获仿真
目录
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程序
V
相关文章
- 【光伏功率预测】基于EMD-PCA-LSTM的光伏功率预测模型(Matlab代码实现)
- 基于双向LSTM模型进行电力需求预测(Matlab代码实现)
- 基于遗传算法的PID控制器增益的实现(Matlab代码实现)
- 【优化调度】基于改进遗传算法求解农业水资源调度问题(Matlab代码实现)
- 【信号处理】基于优化算法的 SAR 信号处理(Matlab代码实现)
- m基于matlab的WLAN室内无线信道建模与仿真
- 基于MATLAB的分布式mimo性能仿真,分析能量效率和频谱效率
- 基于OFDM+STBC通信链路的误码率matlab仿真
- m基于matlab的短波宽带通信系统的信道建模,对比了Watterson信道和ITS信道
- m基于VCG拍卖机制的认知无线电频谱竞拍共享算法matlab仿真
- m基于多用户MIMO系统的分布式可重构注水算法的matlab仿真
- m基于随机接入代价的异构网络速率分配算法matlab仿真
- m基于GA遗传优化算法的认知中继网络最优中继功率分配和最佳中继节点选择算法matlab仿真
- m基于MATLAB数字调制解调仿真,包括ASK,FSK,DPSK及MDPSK,对比误码率
- m基于遗传优化的时域声辐射模态的振动控制算法的matlab仿真
- 基于PSO粒子群算法优化RBF网络的数据预测matlab仿真
- 基于PSO三维极点搜索matlab仿真
- m基于GA遗传优化的BP神经网络时间序列预测算法matlab仿真
- 通过MATLAB实现基于PSO优化的NARMAX模型参数辨识算法
- m基于HOG特征提取和GRNN网络的人体姿态识别算法matlab仿真,样本为TOF数据库的RGB-D深度图像
- 基于SIFT特征提取的图像特征提取配准和拼接matlab仿真
- 基于Graph-Cut算法的图像目标分割matlab仿真
- 基于CNN卷积神经网络的语音信号识别算法matlab仿真
- m基于BP神经网络的障碍物避障和路线规划matlab仿真
- 基于TPC算法的WSN网络资源分配matlab仿真
- 基于MFCC特征提取和神经网络的语音信号识别算法matlab仿真
- m基于matlab的polar码误码率仿真,译码算法采用SC算法