24小时热门版块排行榜    

查看: 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(1ata_len,1:63)-1;       % 伪码长度:数据长度*63
n_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:1ata_len
    Spread_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
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aknuaa

木虫 (著名写手)

GPS方面的?跟踪频偏大吗?JPL的高动态模型具体指什么?
wantingdrenched
2楼2015-12-13 12:15:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

苍翠的路

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by aknuaa at 2015-12-13 12:15:48
GPS方面的?跟踪频偏大吗?JPL的高动态模型具体指什么?

也不算GPS方面的,但很相似,伪码用的是Gold码。由于只研究跟踪方面的,所以假设经过捕获后频偏大概1k左右,JPL的高动态模型是这样的:速度变化的过程持续8s,其中在3s-3.5s以及5.5s-6s这两个时间段内产生100g/s的正加加速度和负加加速度,其余时间段则保持25g的常加速状态。理论上来讲三阶PLL应该可以跟踪上的,但现在无法锁相,程序看了几次都觉得没问题,哥们你也是研究这方面的吗,求指点啊。。
3楼2015-12-13 21:10:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aknuaa

木虫 (著名写手)

引用回帖:
3楼: Originally posted by 苍翠的路 at 2015-12-13 21:10:29
也不算GPS方面的,但很相似,伪码用的是Gold码。由于只研究跟踪方面的,所以假设经过捕获后频偏大概1k左右,JPL的高动态模型是这样的:速度变化的过程持续8s,其中在3s-3.5s以及5.5s-6s这两个时间段内产生100g/s的 ...

哪敢说指点,我现在被逼着解决一个satcom下高动态捕获跟踪问题,根本没有什么资料……尝试这学习下高阶锁相环方法……

发自小木虫IOS客户端
wantingdrenched
4楼2015-12-14 06:50:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

苍翠的路

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by aknuaa at 2015-12-14 06:50:21
哪敢说指点,我现在被逼着解决一个satcom下高动态捕获跟踪问题,根本没有什么资料……尝试这学习下高阶锁相环方法……
...

额额,好吧。。。
5楼2015-12-14 10:01:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hwz1002

木虫 (小有名气)

【答案】应助回帖

资料不错,很好的,发表文章时可以学习。
6楼2015-12-26 21:09:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 苍翠的路 的主题更新
信息提示
请填处理意见