MBOC和CBOC调制和解调详细介绍与Matlab仿真

目录

1.MBOC和CBOC调制和解调原理

1.1 MBOC

1.2 CBOC

2.MBOC和CBOC区别

3.MATLAB程序

4.仿真结论


1.MBOC和CBOC调制和解调原理

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

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

1.1 MBOC

       MBOC(Multiplexed Binary Offset Carrier,复用二进制偏移载波)是为平衡信号精度与抗干扰能力提出的通用调制方案,被北斗、GPS等系统采用。MBOC不局限于单一子载波,而是通过两种不同频率的子载波信号加权叠加,生成兼具窄带高精度和宽带抗干扰的复合信号。其本质是将主信号(窄带子载波)与辅助信号(宽带子载波)在相同频段内复用,提升频谱利用率。

主信号:采用低频子载波(如1.023MHz),保证信号的窄带特性,提升码跟踪精度。

辅助信号:采用高频子载波(如6.138MHz,为主信号的6倍),扩展信号带宽,增强抗多径和抗干扰能力。

MBOC信号的基带表达式为两种子载波信号的加权和,公式如下:

  

1.2 CBOC

      CBOC(Composite Binary Offset Carrier,复合二进制偏移载波)是MBOC的一种具体应用形式,仅使用单一频率的子载波,通过调整子载波的符号规律实现类似MBOC的效果,本质是 MBOC在 “单频子载波” 场景下的简化版。

CBOC不叠加不同频率子载波,而是对同一子载波的符号进行周期性反转,等效生成 “主瓣 + 边瓣” 的复合频谱,从而在不增加子载波数量的前提下,兼顾精度与抗干扰能力。将子载波周期分为多个小段(如2段),对其中部分段的符号反转,使信号频谱在主瓣外产生额外边瓣,扩展有效带宽。

      CBOC信号基于单一子载波,通过符号反转实现复合特性,公式如下:

  

2.MBOC和CBOC区别

两者的差异集中在子载波设计、频谱特性和应用场景上,具体对比如下:

对比维度MBOC 调制CBOC 调制
子载波数量2 个(不同频率,如f1​和6f1​)1 个(单一频率,如f1​)
信号生成逻辑多子载波加权叠加单子载波符号周期性反转
频谱特性主瓣窄、边瓣丰富,带宽更宽主瓣与 MBOC 接近,边瓣由符号反转生成,带宽略窄
实现复杂度需处理两种子载波,复杂度较高仅需单一子载波 + 符号反转,复杂度低
典型应用GPS L1C、北斗 B1C 等高精度信号部分 GNSS 系统的过渡信号或简化场景

3.MATLAB程序

clc;
clear;
close all;
warning off;
addpath 'func\'


CN0              =    80;
Sig_BW          =    2e6; 
SNR              =    CN0 - 10*log10(Sig_BW);    
%符号速率为50sps
Rb            = 50; 
navdatLength  = 1;
%仿真持续时间为10个数据比特
D             = navdatLength/Rb; 

f0            = 1.023e6;%基准频率
BOCm          = 10;
BOCn          = 2;
%副载波频率
fs            = BOCm*f0;
%码速率
fc            = BOCn*f0; 
fIF           = 2*fs;
fsamp         = 24*f0;%采样频率
%一个周期的采样点
n             = fsamp/1000;
KK            = 1000;
%多普勒频率
fd            = 0;
Nn            = n;
nn            = [0:Nn-1];
CAIndex       = floor(fsamp/fc);
%数据通道的卫星号
Ndata         = 1;
%导频通道的卫星号
Npilot        = 2;
%BOC
[BOC_data,BOC_pilot] = func_BOC_Signal(Ndata,Npilot,Nn,CAIndex);
%移动码片
BOC_data_code        = [BOC_data(n-KK:n),BOC_data(1:n-KK-1)]; 
BOC_pilot_code       = [BOC_pilot(n-KK:n),BOC_pilot(1:n-KK-1)];
t                    = [1:Nn]/fsamp;
%输入信号
cosCarr              = cos(2*pi*(fIF + fd)*t);
sinCarr              = sin(2*pi*(fIF + fd)*t);
Signal_Boc           = 2*BOC_data_code .* cosCarr + 2*BOC_pilot_code .* sinCarr;
 
%仿真数据长度
in_signal            = Signal_Boc;

figure,
plot(in_signal);
acf_cboc = xcorr(in_signal,in_signal);

figure,
plot(acf_cboc);
title('CBOC ACF');

psd_cboc = fftshift(fft(acf_cboc));
figure,
plot(abs(psd_cboc));
title('CBOC PSD');

%加高斯白噪声
in_signal = awgn(in_signal,SNR,'measured');

%对比算法BPSK like
[Y,Yi]    = BPSK_like(in_signal,n,Nn,fsamp,f0,fIF);


%-----------------------------****** 画图 ******---------------------------%
figure;%二维结果
plot(Y(Yi,:));
xlabel('码片延时(采样后)');ylabel('相关幅度');
figure;%三维结果
s=surf(Y);set(s,'EdgeColor','none','Facecolor','interp');
xlabel('码片延时(采样后)');ylabel('多普勒频率:kHz');zlabel('相关幅度');D49

4.仿真结论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值