clc;
clear;
close all;
warning off;
addpath 'func\'
global Cd_accumulator;
global Sc_accumulator;
global S_accumulator;
global ROM_sin;
global ROM_code;
global Lfcode;
global Lfsubcarrier;
global Lf_fll;
global Lf_pll;
global La_fll;
global La_pll;
global La_code;
global La_subcarrier;
global Nl_code;
global Nl_subcarrier;
global Nl_fll;
global Nl_pll;
global LN;
global Scale;
CNS = [25:0.5:60];
Per = zeros(size(CNS));
MTKL = 1000;%蒙特卡洛循环次数
for i = 1:length(CNS)
error=0;
for jj = 1:MTKL
CN0 = CNS(i);
LN = 40;
Scale = 2048;
f0 = 1.023e6;%基准频率
BOCm = 14;
BOCn = 2;
BW = 2*(BOCm+BOCn)*f0;
SNR = CN0 - 10*log10(BW);
%符号速率为50sps
Rb = 50;
navdatLength = 1;
%仿真持续时间为10个数据比特
D = navdatLength/Rb;
%副载波频率
fs = 50*f0;
%码速率
fc = 5*f0;
fIF = 20*f0;
fsamp = 100e6;%采样频率
Code_cc = fc*2^LN/fsamp;
SubCarrier_cc = fs*2^LN/fsamp;
Carrier_cc = fIF*2^LN/fsamp;
%信号源
Cd_accumulator = 0;
Sc_accumulator = 0;
S_accumulator = 0;
ROM_sin = sin(2*pi/Scale*(0:Scale-1));
ROM_code = func_gold_gen(Scale/2-1);
La_code = 0;
La_subcarrier = 0;
La_fll = 0;
La_pll = 0;
Lfcode = Code_cc;
Lfsubcarrier = SubCarrier_cc;
Lf_fll = Carrier_cc;
Lf_pll = Carrier_cc;
Nl_code = 0;
Nl_subcarrier = 0;
Nl_fll = 0;
Nl_pll = 0;
%相干时间,2ms
Tcoh = 2e-3;
%仿真跟踪时间
T_track = 4;
Lens = round(Tcoh*fsamp);
CAIndex = floor(fsamp/fc);
%码环的自然频率
Nfreq = 0.94;
%环路滤波器系数
C1 = (sqrt(2)*Nfreq + Nfreq^2*Tcoh);
C2 = (sqrt(2)*Nfreq);
loopnum = round(T_track/Tcoh);
[signal_BOC] = func_BOC_signal(2,Code_cc,SubCarrier_cc,Carrier_cc);
delta = 1e-7;
deltb = 1e-8;
local_fword_sub_carrier1 = Lfsubcarrier;
local_fword_sub_carrier2 = Lfsubcarrier;
local_fword_code1 = Lfcode;
local_fword_code2 = Lfcode;
%卡尔曼滤波参数
P = 600;
H = 1;
R = 200;
Q = 32;
F = 1;
for index = 1:2000
i
jj
index
%信号跟踪
[signal_BOC] = func_BOC_signal(Lens,Code_cc,SubCarrier_cc,Carrier_cc);
%加高斯白噪声
signal_BOC0 = awgn(signal_BOC,SNR,'measured');
%前端滤波
B = fir1(64,0.75,'low');
signal_BOC = filtfilt(B,1,signal_BOC0);
%本地码载波产生
[Lprn_E,Lprn_L,Lboc_E,Lboc_L,Fcos,Fsin,Pcos,Psin] = func_NCOprn2(Lens,delta,deltb);
%相关运算
Dcm_I_E1 = sum(signal_BOC.*Fcos.*Lboc_E);
Dcm_I_E2 = sum(signal_BOC.*Fcos.*Lprn_E);
Dcm_I_E11= Dcm_I_E1^2-Dcm_I_E2^2;
Dcm_Q_E1 = sum(signal_BOC.*Fsin.*Lboc_E);
Dcm_Q_E2 = sum(signal_BOC.*Fsin.*Lprn_E);
Dcm_Q_E11= Dcm_Q_E1^2-Dcm_Q_E2^2;
Dcm_I_L1 = sum(signal_BOC.*Fcos.*Lboc_L);
Dcm_I_L2 = sum(signal_BOC.*Fcos.*Lprn_L);
Dcm_I_L11= Dcm_I_L1^2-Dcm_I_L2^2;
Dcm_Q_L1 = sum(signal_BOC.*Fsin.*Lboc_L);
Dcm_Q_L2 = sum(signal_BOC.*Fsin.*Lprn_L);
Dcm_Q_L11= Dcm_Q_L1^2-Dcm_Q_L2^2;
clear Lprn_E Lprn_L Lboc_E Lboc_L Fcos Fsin Pcos Psin
clear Dcm_I_E1 Dcm_I_E2 Dcm_I_L1 Dcm_I_L2 Dcm_Q_E1 Dcm_Q_E2 Dcm_Q_L1 Dcm_Q_L2
%本地码载波产生
[Lprn_E,Lprn_L,Lboc_E,Lboc_L,Fcos,Fsin,Pcos,Psin] = func_NCOprn2(Lens,-1*delta,deltb);
%相关运算
Dcm_I_E1 = sum(signal_BOC.*Fcos.*Lboc_E);
Dcm_I_E2 = sum(signal_BOC.*Fcos.*Lprn_E);
Dcm_I_E21= Dcm_I_E1^2-Dcm_I_E2^2;
Dcm_Q_E1 = sum(signal_BOC.*Fsin.*Lboc_E);
Dcm_Q_E2 = sum(signal_BOC.*Fsin.*Lprn_E);
Dcm_Q_E21= Dcm_Q_E1^2-Dcm_Q_E2^2;
Dcm_I_L1 = sum(signal_BOC.*Fcos.*Lboc_L);
Dcm_I_L2 = sum(signal_BOC.*Fcos.*Lprn_L);
Dcm_I_L21= Dcm_I_L1^2-Dcm_I_L2^2;
Dcm_Q_L1 = sum(signal_BOC.*Fsin.*Lboc_L);
Dcm_Q_L2 = sum(signal_BOC.*Fsin.*Lprn_L);
Dcm_Q_L21= Dcm_Q_L1^2-Dcm_Q_L2^2;
clear Lprn_E Lprn_L Lboc_E Lboc_L Fcos Fsin Pcos Psin
clear Dcm_I_E1 Dcm_I_E2 Dcm_I_L1 Dcm_I_L2 Dcm_Q_E1 Dcm_Q_E2 Dcm_Q_L1 Dcm_Q_L2
%本地码载波产生
[Lprn_E,Lprn_L,Lboc_E,Lboc_L,Fcos,Fsin,Pcos,Psin] = func_NCOprn2(Lens,delta,-1*deltb);
%相关运算
Dcm_I_E1 = sum(signal_BOC.*Fcos.*Lboc_E);
Dcm_I_E2 = sum(signal_BOC.*Fcos.*Lprn_E);
Dcm_I_E12= Dcm_I_E1^2-Dcm_I_E2^2;
Dcm_Q_E1 = sum(signal_BOC.*Fsin.*Lboc_E);
Dcm_Q_E2 = sum(signal_BOC.*Fsin.*Lprn_E);
Dcm_Q_E12= Dcm_Q_E1^2-Dcm_Q_E2^2;
Dcm_I_L1 = sum(signal_BOC.*Fcos.*Lboc_L);
Dcm_I_L2 = sum(signal_BOC.*Fcos.*Lprn_L);
Dcm_I_L12= Dcm_I_L1^2-Dcm_I_L2^2;
Dcm_Q_L1 = sum(signal_BOC.*Fsin.*Lboc_L);
Dcm_Q_L2 = sum(signal_BOC.*Fsin.*Lprn_L);
Dcm_Q_L12= Dcm_Q_L1^2-Dcm_Q_L2^2;
clear Lprn_E Lprn_L Lboc_E Lboc_L Fcos Fsin Pcos Psin
clear Dcm_I_E1 Dcm_I_E2 Dcm_I_L1 Dcm_I_L2 Dcm_Q_E1 Dcm_Q_E2 Dcm_Q_L1 Dcm_Q_L2
%本地码载波产生
[Lprn_E,Lprn_L,Lboc_E,Lboc_L,Fcos,Fsin,Pcos,Psin] = func_NCOprn2(Lens,-1*delta,-1*deltb);
%相关运算
Dcm_I_E1 = sum(signal_BOC.*Fcos.*Lboc_E);
Dcm_I_E2 = sum(signal_BOC.*Fcos.*Lprn_E);
Dcm_I_E22= Dcm_I_E1^2-Dcm_I_E2^2;
Dcm_Q_E1 = sum(signal_BOC.*Fsin.*Lboc_E);
Dcm_Q_E2 = sum(signal_BOC.*Fsin.*Lprn_E);
Dcm_Q_E22= Dcm_Q_E1^2-Dcm_Q_E2^2;
Dcm_I_L1 = sum(signal_BOC.*Fcos.*Lboc_L);
Dcm_I_L2 = sum(signal_BOC.*Fcos.*Lprn_L);
Dcm_I_L22= Dcm_I_L1^2-Dcm_I_L2^2;
Dcm_Q_L1 = sum(signal_BOC.*Fsin.*Lboc_L);
Dcm_Q_L2 = sum(signal_BOC.*Fsin.*Lprn_L);
Dcm_Q_L22= Dcm_Q_L1^2-Dcm_Q_L2^2;
clear Lprn_E Lprn_L Lboc_E Lboc_L Fcos Fsin Pcos Psin
clear Dcm_I_E1 Dcm_I_E2 Dcm_I_L1 Dcm_I_L2 Dcm_Q_E1 Dcm_Q_E2 Dcm_Q_L1 Dcm_Q_L2
%码鉴别滤波,计算频率字
pow_E11 = Dcm_I_E11^2+Dcm_Q_E11^2;
pow_L11 = Dcm_I_L11^2+Dcm_Q_L11^2;
pow_E21 = Dcm_I_E21^2+Dcm_Q_E21^2;
pow_L21 = Dcm_I_L21^2+Dcm_Q_L21^2;
pow_E12 = Dcm_I_E12^2+Dcm_Q_E12^2;
pow_L12 = Dcm_I_L12^2+Dcm_Q_L12^2;
pow_E22 = Dcm_I_E22^2+Dcm_Q_E22^2;
pow_L22 = Dcm_I_L22^2+Dcm_Q_L22^2;
pow_E = (pow_E11+pow_E21+pow_E12+pow_E22)/4;
pow_L = (pow_L11+pow_L21+pow_L12+pow_L22)/4;
code_dis = (pow_E-pow_L)/(pow_E+pow_L)/2;
code_dis_result(index) = code_dis;
if index ==1
last_out_DDL = 0;
last_in_DDL = 0;
end
code_filter = last_out_DDL + [code_dis last_in_DDL]*[C1 (-1)*C2]';
if index == 1
x(index) = [code_dis last_in_DDL]*[C1 (-1)*C2]';
else
x_e = x(index-1) + [code_dis last_in_DDL]*[C1 (-1)*C2]';
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
matlab_(含教程)BOC调制解调系统的码跟踪抖动标准差随载噪比变化曲线的matlab性能仿真.7z (19个子文件)
matlab_(含教程)BOC调制解调系统的码跟踪抖动标准差随载噪比变化曲线的matlab性能仿真
教程.mp4 6.88MB
码跟踪抖动标准差随载噪比变化曲线
BOC10_5
main_tracking1.m 4KB
main_tracking2.m 9KB
T2.mat 929B
compared.m 314B
T1.mat 929B
func
func_gold_gen.m 633B
func_NCOprn2.m 2KB
func_NCOprn.m 2KB
func_BOC_signal.m 995B
BOC14_2
main_tracking1.m 4KB
main_tracking2.m 9KB
T2.mat 926B
compared.m 314B
T1.mat 927B
func
func_gold_gen.m 633B
func_NCOprn2.m 2KB
func_NCOprn.m 2KB
func_BOC_signal.m 995B
共 19 条
- 1
资源评论
mYlEaVeiSmVp
- 粉丝: 1964
- 资源: 19万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功