| 查看: 1127 | 回复: 5 | ||
[求助]
matlab仿真实现三阶锁相环路跟踪高动态多普勒变化出现问题,急需指点[有源码]已有1人参与
|
|
RT,最近在忙论文,但仿真出现问题,结果总是不对。用的模型是JPL的高动态模型,环路带宽根据跟踪门限设为90Hz,积分时间为1ms,但是好像就是一直没法锁相,鉴相误差一直较大,有没做过这方面的同学或前辈啊,急需指点和讨论!! clc; clear all; Chip_rate = 6.3*10^6; % 扩频码速率(chips/s) Spreadcode_len = 63; % 扩频码长度(chips) Data_len = 240; % 数据长度(symbols) Freq_carrier = 4*10^10; % 射频载波频率(Hz) Freq_sample = 6.3*10^6; % 接收机采样频率(Hz) Symbol_rate = 1*10^5; % 符号速率(sym/s) SNR = -5; % 信噪比(dB) load GoldSequence.mat; PNcode = 2*GoldSequence(1 ata_len,1:63)-1; % 伪码长度:数据长度*63n_chip = 63; g = 9.8; % 重力加速度(m/s^2) c = 3*10^8; % 光速(m/s) ts = 1/1890; % JPL的采样时间(s),所设置的值与扩码序列的长度有关 V0 = -500; % 初始速度(m/s) Theta0 = 2*pi*randn(1); % 初始相位(rad) Time = [3 0.5 2 0.5 2]; Total_length = round(Time/ts); % Jerk = [zeros(1,3/ts) 100*g*ones(1,0.5/ts) zeros(1,2/ts) -100*g*ones(1,0.5/ts) zeros(1,2/ts)]; Jerk = [zeros(1,Total_length(1)) 100*g*ones(1,Total_length(2)) zeros(1,Total_length(3)) -100*g*ones(1,Total_length(4)) zeros(1,Total_length(5))]; Acceleration = [-25*g cumsum(Jerk(1:end-1)*ts)-25*g]; Velocity = [V0 cumsum(Acceleration(1:end-1)*ts + Jerk(1:end-1)*ts^2/2)+V0]; Freq_Doppler = Freq_carrier / c * Velocity; Freq_Doppler_der1 = Freq_carrier / c * Acceleration; Freq_Doppler_der2 = Freq_carrier / c * Jerk; Theta = Theta0 + 2*pi*cumsum(Freq_Doppler)*ts + 2*pi*cumsum(Freq_Doppler_der1).*ts^2/2 + 2*pi*cumsum(Freq_Doppler_der2).*ts^3/6; %================== 数据序列 ===================% Data_sequence = randi(2,1,160)-1; %================== 信道编码 ===================% trellis = poly2trellis([5,4],[23 35 0;0 5 13]); Data_sequence_conv = convenc(Data_sequence,trellis); %================== BPSK调制 ===================% Data_sequence_mod = BPSKMod(Data_sequence_conv); %================== 扩频调制 ===================% Spread_sequence = Data_sequence_mod(1) * PNcode(1, ;for i=2:1 ata_lenSpread_sequence = cat(2,Spread_sequence,Data_sequence_mod(i) * PNcode(i, );end %================== 加频偏和噪声 ===================% Spread_sequence_offset = Spread_sequence .* exp(1i*Theta); Spread_sequence_noise = Noise_Generate(Spread_sequence_offset,SNR); PNcode1 = reshape(PNcode.',1,[]); Signal_despread = Spread_sequence_noise.*PNcode1; w_nF_PLL = 90; T_IC = 1e-3; a3 = 1.1; b3 = 2.4; Simulation_len = length(Signal_despread); Signal_PLL = zeros(1,Simulation_len); NCO_Phase = zeros(1,Simulation_len); Discriminator_Out = zeros(1,Simulation_len); phase_third_derivate_temp = 0; phase_second_derivate1_temp = 0; for i=2:Simulation_len Signal_PLL(i) = Signal_despread(i)*exp(-1i*mod(NCO_Phase(i-1),2*pi)); I_PLL(i) = real(Signal_PLL(i)); Q_PLL(i) = imag(Signal_PLL(i)); Discriminator_Out(i)=sign(I_PLL(i))*Q_PLL(i)/abs(Signal_PLL(i)); % Discriminator_Out(i) = atan(Q_PLL(i)/I_PLL(i)); phase_third_derivate = T_IC*w_nF_PLL^3*Discriminator_Out(i); phase_third_derivate1 = phase_third_derivate + phase_third_derivate_temp; phase_third_derivate1_temp = phase_third_derivate1 + phase_third_derivate_temp; phase_second_derivate = a3*w_nF_PLL^2*Discriminator_Out(i) + 1/2*phase_third_derivate1_temp; phase_second_derivate1 = phase_second_derivate*T_IC + phase_second_derivate1_temp; phase_second_derivate2 = phase_second_derivate1 + phase_second_derivate1_temp; phase_derivate = 1/2*phase_second_derivate2 + b3*w_nF_PLL*Discriminator_Out(i); NCO_Phase(i)=NCO_Phase(i-1) + T_IC*phase_derivate; phase_third_derivate_temp = phase_third_derivate1; phase_second_derivate1_temp = phase_second_derivate1; end |
» 猜你喜欢
到新单位后,换了新的研究方向,没有团队,持续积累2区以上论文,能申请到面上吗
已经有13人回复
博士申请都是内定的吗?
已经有6人回复
之前让一硕士生水了7个发明专利,现在这7个获批发明专利的维护费可从哪儿支出哈?
已经有5人回复
博士读完未来一定会好吗
已经有29人回复
投稿精细化工
已经有4人回复
高职单位投计算机相关的北核或SCI四区期刊推荐,求支招!
已经有4人回复
导师想让我从独立一作变成了共一第一
已经有9人回复
读博
已经有4人回复
心脉受损
已经有5人回复
Springer期刊投稿求助
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
如何使用matlab仿真信道容量
已经有6人回复
MATLAB 仿真
已经有0人回复
adams与matlab联合仿真
已经有1人回复
基于蒙特卡罗仿真用于多种失效分布底事件的故障树分析如何实现Matlab仿真?
已经有2人回复
如何根据窗口估计法实现matlab的滤波仿真
已经有0人回复
MATLAB-SIMULINK通信系统建模与仿真实例分析-邵玉斌-清华大学
已经有109人回复
线性调频连续波雷达的matlab仿真实现
已经有2人回复
怎样用matlab实现细菌觅食算法的仿真
已经有0人回复
有关matlab仿真的问题
已经有6人回复
求基于稀疏表示的图像分类的Matlab仿真实验代码
已经有2人回复
怎么应用matlab蒙特卡洛仿真得以实现
已经有1人回复
【已完结】matlab仿真图形(交流问题即有奖,呵呵)
已经有6人回复
matlab 电路仿真
已经有40人回复
matlAB仿真中lms算法应用的一些问题
已经有0人回复
用matlab仿真wsn
已经有4人回复
【求助】如何利用MATLAB仿真实现服从某分布的时间序列
已经有2人回复
aknuaa
木虫 (著名写手)
- 应助: 17 (小学生)
- 金币: 3699.6
- 散金: 485
- 红花: 4
- 帖子: 1138
- 在线: 211.6小时
- 虫号: 1709843
- 注册: 2012-03-22
- 性别: GG
- 专业: 通信理论与系统

2楼2015-12-13 12:15:48
3楼2015-12-13 21:10:29
aknuaa
木虫 (著名写手)
- 应助: 17 (小学生)
- 金币: 3699.6
- 散金: 485
- 红花: 4
- 帖子: 1138
- 在线: 211.6小时
- 虫号: 1709843
- 注册: 2012-03-22
- 性别: GG
- 专业: 通信理论与系统

4楼2015-12-14 06:50:21
5楼2015-12-14 10:01:11
hwz1002
木虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 2768.4
- 红花: 2
- 帖子: 160
- 在线: 40.7小时
- 虫号: 2274025
- 注册: 2013-02-04
- 性别: GG
- 专业: 信息处理方法与技术
6楼2015-12-26 21:09:16













ata_len,1:63)-1; % 伪码长度:数据长度*63
;
回复此楼