²é¿´: 561  |  »Ø¸´: 0

²Ô´äµÄ·

гæ (³õÈëÎÄ̳)

[ÇóÖú] Èý½×PLL·ÂÕæ¸ß¶¯Ì¬ÆµÆ«µÄÇé¿öϳöÏÖÎÊÌ⣬ÇëÇó´ó¼ÒÖ¸µã£¡

RT£¬ÒªÊµÏָ߶¯Ì¬Çé¿öϵÄÔØ²¨¸ú×Ù£¬¼´´æÔÚÆµÆ«ºÍƵƫһ´Î¼ÓËÙ¶È¡¢¶þ´Î¼ÓËÙ¶È£¬ÏÖÔÚ¸ù¾ÝÎÄÏס°High Dynamic GPS Tracking¡±ÀïÃæµÄËã·¨£¬Ê×ÏÈ·ÂÕæÁËDPLLËã·¨£¬Ò²¾ÍÊÇÈý½×ËøÏà»·£¬µ«ÊÇ·ÂÕæ½á¹ûºÍÎÄÏ×ÀïµÄÏà²îºÜÔ¶£¬ÏÖÔÚ¾ÍÊÇÏëÖªµÀÎÊÌâ³öÔÚÄÄÀÇóÓÐÏà¹Ø¾­ÑéµÄͬѧָµãÃÔ½ò°¡£¬À§»óºÃ¾ÃÁË£¡
CODE:
clc;
clear all;

Chip_rate = 6.3*10^6;          % À©ÆµÂëËÙÂÊ(chips/s)
Spreadcode_len = 63;           % À©ÆµÂ볤¶È(chips)
Data_len = 400;                % Êý¾Ý³¤¶È(symbols)
Freq_carrier = 4*10^9;        % ÉäÆµÔØ²¨ÆµÂÊ(Hz)
Freq_sample = 6.3*10^6;        % ½ÓÊÕ»ú²ÉÑùƵÂÊ(Hz)
Symbol_rate = 1*10^5;          % ·ûºÅËÙÂÊ(sym/s)
SNR = 0;                     % ÐÅÔë±È(dB)
load GoldSequence.mat;
PNcode = 2*GoldSequence(1:Data_len,1:63)-1;       % αÂ볤¶È£ºÊý¾Ý³¤¶È*63
n_chip = 63;

% JPL¸ß¶¯Ì¬Ä£ÐÍ
g = 9.8;                       % ÖØÁ¦¼ÓËÙ¶È(m/s^2)
c = 3*10^8;                    % ¹âËÙ(m/s)
ts = 1/3150;                    % JPLµÄ²ÉÑùʱ¼ä(s),ËùÉèÖõÄÖµÓëÀ©ÂëÐòÁеij¤¶ÈÓйØ
V0 = -500;                     % ³õʼËÙ¶È(m/s)
Theta0 = 2*pi*randn(1);        % ³õʼÏàλ(rad)

Time = [3 0.5 2 0.5 2];        % JPLÄ£Ð͵ĸ÷״̬³ÖÐøÊ±¼ä
State_length = round(Time/ts); % ¸÷״̬¶ÔÓ¦µÄ²ÉÑùʱ¼ä³¤¶È
% Total_length = sum(State_length);
% Total_time = 0:1:Total_length-1;
% 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)];   % ¶þ´Î¼ÓËÙ¶È(m/s^3)
Jerk = [zeros(1,State_length(1)) 100*g*ones(1,State_length(2)) zeros(1,State_length(3)) -100*g*ones(1,State_length(4)) zeros(1,State_length(5))];   % ¶þ´Î¼ÓËÙ¶È(m/s^3)
Acceleration = [-25*g cumsum(Jerk(1:end-1)*ts)-25*g];                                            % Ò»´Î¼ÓËÙ¶È(m/s^2)
Velocity = [V0 cumsum(Acceleration(1:end-1)*ts + Jerk(1:end-1)*ts^2/2)+V0];                         % ·ÉÐÐËÙ¶È(m/s)
Freq_Doppler = Freq_carrier / c * Velocity;                                                      % ÓÉËٶȼÆËã³öµÄ¶àÆÕÀÕÆµÆ«(Hz)
Freq_Doppler_der1 = Freq_carrier / c * Acceleration;                                             % ÓɼÓËٶȼÆËã³öµÄƵƫһ´Î±ä»¯ÂÊ(Hz/s)
Freq_Doppler_der2 = Freq_carrier / c * Jerk;                                                     % ÓɼӼÓËٶȼÆËã³öµÄƵƫ¶þ´Î±ä»¯ÂÊ(Hz/s^2)
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,Data_len)-1;         % Êý¾ÝÐòÁÐ

%================== ÐŵÀ±àÂë ===================%
% trellis = poly2trellis([5,4],[23 35 0;0 5 13]);
% Data_sequence_conv = convenc(Data_sequence,trellis);   % ¾­¾í»ý±àÂëºóΪ240bit

%================== BPSKµ÷ÖÆ ===================%
Data_sequence_mod = BPSKMod(Data_sequence);       % ¾­BPSKµ÷ÖÆºóÈÔΪ240bit

%================== À©Æµµ÷ÖÆ ===================%
Spread_sequence = Data_sequence_mod(1) * PNcode(1,:);
for i=2:1:Data_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;            
% for k=1:Data_len
%     Signal_pro(k)=sum(Signal_despread((k-1)*n_chip+1:k*n_chip))/63;
% end
%================== »·Â·²ÎÊýÉèÖà ===================%
k = 0.5;
r = 3;
Bl = 300;   % »·Â·´ø¿í£¬¸ù¾Ý¸ú×ÙÃÅÏÞÉèÖÃ
updatetime = 1e-3;
d = 4*Bl*updatetime*(r-k)/(r*(r-k+1));
C1 = r*d/updatetime;
C2 = r*d^2/updatetime;
C3 = r*k*d^3/updatetime;
Simulation_len = length(Signal_despread);

acc1 = zeros(1,1);
acc2 = zeros(1,1);
temp = zeros(1,1);
Theta_err = zeros(1,Simulation_len);
Nco_out = zeros(1,Simulation_len);
Flt_out = zeros(1,Simulation_len);

for i=2:Simulation_len
   
    Signal_PLL(i) = Signal_despread(i)*exp(-1i*mod(Nco_out(i-1),2*pi));
    I_PLL(i) = real(Signal_PLL(i));
    Q_PLL(i) = imag(Signal_PLL(i));
    Theta_err(i)=sign(I_PLL(i))*Q_PLL(i)/abs(Signal_PLL(i));
%     Theta_err(i) = atan(Q_PLL(i)/I_PLL(i));
%     Theta_err(i) = angle(Signal_despread(i) * exp(-1i*Nco_out(i-1)));
    acc1 = acc1 + C3*Theta_err(i);
    temp = acc1 + C2*Theta_err(i);
    acc2 = acc2 + temp;
    Flt_out(i) = acc2 + C1*Theta_err(i);
   
    Nco_out(i) = Nco_out(i-1) + Flt_out(i)*updatetime;
   
end

»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ ²Ô´äµÄ· µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] ²ÄÁÏ080500µ÷¼ÁÇóÊÕÁô +8 Ò»¿Åmeteor 2026-03-13 8/400 2026-03-20 20:00 by zhukairuo
[¿¼ÑÐ] Ò»Ö¾Ô¸ÄÏÀí¹¤085701»·¾³302Çóµ÷¼ÁԺУ +3 ¿ûè÷ÎÀ¶Ó 2026-03-20 3/150 2026-03-20 19:28 by zhukairuo
[¿¼ÑÐ] 295²ÄÁÏÇóµ÷¼Á£¬Ò»Ö¾Ô¸Î人Àí¹¤085601ר˶ +4 Charlieyq 2026-03-19 4/200 2026-03-20 14:26 by ÎÞи¿É»÷111
[¿¼ÑÐ] Ò»Ö¾Ô¸Î÷ÄϽ»Í¨ ר˶ ²ÄÁÏ355 ±¾¿ÆË«·Ç Çóµ÷¼Á +4 Î÷ÄϽ»Í¨×¨²Ä355 2026-03-19 4/200 2026-03-20 11:39 by »¨¿ª¸»¹óÐÒ¸£ÈËÉ
[¿¼ÑÐ] 271²ÄÁϹ¤³ÌÇóµ÷¼Á +7 .6lL 2026-03-18 7/350 2026-03-20 09:10 by xingguangj
[¿¼ÑÐ] 085410È˹¤ÖÇÄÜר˶317Çóµ÷¼Á£¨0854¶¼¿ÉÒÔ£© +4 xbxudjdn 2026-03-18 4/200 2026-03-20 09:07 by ²»168
[¿¼²©] É격26Äê +3 °Ë6°Ë68 2026-03-19 3/150 2026-03-19 19:43 by nxgogo
[¿¼ÑÐ] 266Çóµ÷¼Á +5 ÑôÑôÍÛÈû 2026-03-14 10/500 2026-03-19 15:08 by ÑôÑôÍÛÈû
[¿¼ÑÐ] Ò»Ö¾Ô¸985£¬±¾¿Æ211£¬0817»¯Ñ§¹¤³ÌÓë¼¼Êõ319Çóµ÷¼Á +10 Liwangman 2026-03-15 10/500 2026-03-19 10:25 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 304Çóµ÷¼Á +6 ˾¿Õ. 2026-03-18 6/300 2026-03-18 23:03 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] 295Çóµ÷¼Á +3 Ò»Ö¾Ô¸¾©Çø211 2026-03-18 5/250 2026-03-18 17:03 by zhaoqian0518
[¿¼ÑÐ] 311Çóµ÷¼Á +6 26ÑÐ0 2026-03-15 6/300 2026-03-18 14:43 by haxia
[¿¼ÑÐ] 293Çóµ÷¼Á +11 zjlµÄºÅ 2026-03-16 16/800 2026-03-18 08:10 by zhukairuo
[¿¼ÑÐ] 304Çóµ÷¼Á +5 ËØÄê¼ÀÓï 2026-03-15 5/250 2026-03-16 17:00 by ÎҵĴ¬Îҵĺ£
[¿¼ÑÐ] 304Çóµ÷¼Á +4 ahbd 2026-03-14 4/200 2026-03-16 16:48 by ÎҵĴ¬Îҵĺ£
[¿¼ÑÐ] Ò»Ö¾Ô¸211 0703·½Ïò310·ÖÇóµ÷¼Á +3 ŬÁ¦·Ü¶·112 2026-03-15 3/150 2026-03-16 16:44 by houyaoxu
[¿¼ÑÐ] 318Çóµ÷¼Á +3 Yanyali 2026-03-15 3/150 2026-03-16 16:41 by houyaoxu
[¿¼ÑÐ] 277²ÄÁÏ¿ÆÑ§Ó빤³Ì080500Çóµ÷¼Á +3 ×ÔÓɼå±ý¹û×Ó 2026-03-16 3/150 2026-03-16 14:10 by ÔËÆøyunqi
[¿¼ÑÐ] 297Ò»Ö¾Ô¸ÉϽ»085600Çóµ÷¼Á +5 Ö¸¼â°ËǧÀï 2026-03-14 5/250 2026-03-14 17:26 by a²»Ò×
[¿¼ÑÐ] 297Çóµ÷¼Á +4 ѧº£Æ¯²´ 2026-03-13 4/200 2026-03-14 11:51 by ÈÈÇéɳĮ
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û