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;
Tcc = [0];
Per = zeros(size(Tcc));
MTKL = 1;%蒙特卡洛循环次数
for i = 1:length(Tcc)
error=0;
for jj = 1:MTKL
CN0 = 60;
LN = 40;
Scale = 2048;
f0 = 1.023e6;%基准频率
BOCm = 10;
BOCn = 5;
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:400
i
jj
index
%信号跟踪
[signal_BOC] = func_BOC_signal(Lens,Code_cc,SubCarrier_cc,Carrier_cc);
%加高斯白噪声
signal_BOC0 = awgn(signal_BOC,SNR,'measured');
Lenss = round(abs((200*Tcc(i))));
if Tcc(i)>0
signal_BOC1 = [signal_BOC0(Lenss:end),signal_BOC0(1:Lenss-1)];
end
if Tcc(i)==0
signal_BOC1 = signal_BOC0;
end
if Tcc(i)<0
signal_BOC1 = [signal_BOC0(end-Lenss+1:end),signal_BOC0(1:end-Lenss)];
end
%前端滤波
B = fir1(64,0.75,'low');
signal_BOC = filtfilt(B,1,signal_BOC1);
%本地码载波产生
[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;
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1.版本:matlab2021a,包含仿真操作录像,操作录像使用windows media player播放。 2.领域:BOC调制解调 3.内容:BOC调制解调系统的跟踪环锁定跟踪性能收敛曲线matlab仿真分析,并结合卡尔曼滤波实现跟踪环的稳定跟踪输出。对比Unambiguous和KFPELTA。 4.注意事项:注意MATLAB左侧当前文件夹路径,必须是程序所在文件夹位置,具体可以参考视频录。
资源推荐
资源详情
资源评论
收起资源包目录
BOC调制解调系统的跟踪环锁定跟踪性能收敛曲线matlab仿真分析.rar (31个子文件)
2.jpg 30KB
1.jpg 41KB
跟踪环锁定跟踪收敛曲线
sinBOC10_5_60
main_tracking1.m 5KB
main_tracking2.m 9KB
T2.mat 3KB
compared.m 377B
T1.mat 3KB
func
func_gold_gen.m 633B
func_NCOprn2.m 2KB
func_NCOprn.m 2KB
func_BOC_signal.m 995B
sinBOC10_5_40
main_tracking1.m 5KB
main_tracking2.m 9KB
T2.mat 3KB
compared.m 377B
T1.mat 3KB
func
func_gold_gen.m 633B
func_NCOprn2.m 2KB
func_NCOprn.m 2KB
func_BOC_signal.m 995B
sinBOC10_5_80
main_tracking1.m 5KB
main_tracking2.m 9KB
T2.mat 3KB
compared.m 377B
T1.mat 3KB
func
func_gold_gen.m 633B
func_NCOprn2.m 2KB
func_NCOprn.m 2KB
func_BOC_signal.m 995B
操作录像0040.avi 13.03MB
3.jpg 26KB
共 31 条
- 1
资源评论
fpga和matlab
- 粉丝: 16w+
- 资源: 2561
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功