亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tracksignal.asv

?? GPS的CA碼捕獲跟蹤源代碼
?? ASV
字號:
function [diata_dll,diata_fll]=tracksignal(iniphcode,inifd,iniph,snr,Code_Method_flag,Carrier_Method_flag,codew,codeb,carrierw,carrierfllb,carrierpllb)

svnum = 10;    %衛星號
iniphcode  = 120;  %生成信號源的碼相位
inifd = 4600;      %生成信號源的載波多普勒頻率
iniph = 0;         %生成信號源的載波初相位
snr = 0;           %生成信號源的信噪比


global time_unit; % 數據跳變時間單位
global time; % 數據發送時間
global time_cyc;% 一個完整擴頻碼周期
global fs; % 采樣率
global nn; % 一個完整擴頻周期采樣點數
global kk; % 數據總采樣點
global F_if;   % 載波中頻
global CA_freq; % PN碼速率 
global tc; 
global CA ; % 擴頻碼基瑪
global F_Carrier; % L1波段載波頻率


%%%%%%%%%%%%%%%%%%%%%%%%參數設置%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
time = 100*(10^(-3));
time_unit = 20*(10^(-3));
time_cyc = 1*(10^(-3));

fs = 5*(10^6);
nn = time_cyc*fs;
kk = (time/time_cyc)*nn;

F_if = 1.25*(10^6);
F_Carrier = 1575.42*(10^6);
CA_freq = 1.023*(10^6);


%%%%%%%%%%%生成C/A以供使用%%%%%%%%%%
PN = codegen(svnum);
CA = [];
k = 5;
for n = 1:length(PN)
CA((1+k*(n-1)):k*n) = PN(n)*ones(1,k);
end

tc = 1/(k*CA_freq); 
loop_time = time/time_cyc;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%生成信號源 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Signal_Source是生成的信號源, buffer_bit_data是隨機生成的數據位,用于與最后解調的數據進行比對
[Signal_Source,Phase_signal,buffer_bit_data]=CreateSource(iniphcode,inifd,iniph,snr); 



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%捕獲%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[fd_ac,f_ac_code] = acqu(Signal_Source);




%%%%%%%%%%%%%%%%%%%%%%%%%%%%定義跟蹤中用到的參數%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
IPSum_old = 0.01;
QPSum_old = 0.01;

%%%%%%%%%%碼跟蹤環濾波器參數設置%%%%%%%%%%%%%%
Code_Method_flag=2;      %碼跟蹤環鑒相法選擇標志

diffoffside = 0.5;  %碼鑒相時,正負偏移半個碼片

k0 =10^(-6);   %碼跟蹤環鑒相器增益
k1=10^(-3);    %碼跟蹤環NCO增益
%k1 = 50/k0;   %碼跟蹤環NCO增益
 codew = 20   %自然圓頻率
 codeb = 2    %阻尼系數


offside = f_ac_code;
theta_code_old = 0;
offside_old = f_ac_code;
CodeErr_old = 0;
Bk_DLL = [];
Track_Code_Buffer =[];

%%%%%%%%%%%載波跟蹤環濾波器參數設置%%%%%%%%%%
Last_Phase = 0;
Control_Buffer = [];
ts = 1/fs;   %采樣時間間隔

Carrier_Method_flag =3;  %fll,pll,fll->pll的方法選擇標志
dem_flag = 0;     %fll->pll的切換標志
add = 0;              %fll->pll的切換過程中用到的變量
carrierw = 20;          %自然圓頻率

Track_Freq_Buffer = [];
track_dopplar_old = 0;

%FLL環參數
FLLinput_old=0;
FLLoutput_old=0;
track_freq_fll = 0;
Sita_fll = 0; 
Bk_FLL = [];

%PLL環參數
PLLinput_old=0;
PLLoutput_old=0;
track_freq_pll = 0;
Sita_pll = 0;
Bk_PLL = [];


Buffer_Data =[];
adj_buffer = [];
ALL_Buffer_Data = [];
count_buffer = [];

Demodulate_I = [];
Local_Ph_Buffer = [];


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%跟蹤循環%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

for i = 1:1:loop_time   

     % =================part signal source========= %

     Signal = Signal_Source((i-1)*nn+1:i*nn);
%    Signalph= Phase_signal((i-1)*nn+1:i*nn);

     %==============Local carrier===================%
     t = [0:nn-1]*ts;
     track_dopplar = fd_ac+track_freq_fll+track_freq_pll;
     Track_Freq_Buffer = [Track_Freq_Buffer track_dopplar];
     Local_I = cos(2*pi*(F_if+track_dopplar)*t + Last_Phase);
     Local_Q = sin(2*pi*(F_if+track_dopplar)*t + Last_Phase);
     Iph = 2*pi*(F_if+track_dopplar)*t + Last_Phase;
     Local_Ph_Buffer = [Local_Ph_Buffer Iph];
     Last_Phase = Last_Phase + 2*pi*(F_if+track_dopplar)*time_cyc;   %%上一次積分結束點的相位
     Carrier_I = Local_I;
     Carrier_Q = Local_Q;
     

     % =================Create Localcode============== %
     ph_code_p = offside;
     fd_code_p = track_dopplar;
     CA_Code_p = CAcode(ph_code_p,fd_code_p,i);
     lc_p = CA_Code_p.*Signal;

     ph_code_e = offside+diffoffside;
     fd_code_e = track_dopplar;
     CA_Code_e = CAcode(ph_code_e,fd_code_e,i);
     lc_e = CA_Code_e.*Signal;                                
     
     ph_code_l = offside-diffoffside;
     fd_code_l = track_dopplar;
     CA_Code_l = CAcode(ph_code_l,fd_code_l,i);
     lc_l = CA_Code_l.*Signal;

    % ==========================multiply================================ %
     Local_P_I = lc_p.*Carrier_I;
     Local_P_Q = lc_p.*Carrier_Q;
     Local_E_I = lc_e.*Carrier_I;
     Local_E_Q = lc_e.*Carrier_Q;
     Local_L_I = lc_l.*Carrier_I;
     Local_L_Q = lc_l.*Carrier_Q;


     % ========================integration============================= %
     IPSum = sum(Local_P_I);
     QPSum = sum(Local_P_Q);
     IESum = sum(Local_E_I);
     QESum = sum(Local_E_Q);
     ILSum = sum(Local_L_I);
     QLSum = sum(Local_L_Q);
 
     % =======================Code Control==================================
     if Code_Method_flag==1 
        %鑒想器 
        theta_code = k0*((IESum.^2+QESum.^2)-(ILSum.^2+QLSum.^2));
     
        %碼環路濾波器
        [CodeErr] = CodeloopFilter(codew,codeb,theta_code,theta_code_old,CodeErr_old);  %CodeErr是經過濾波器輸出的碼相位誤差的估計值
    
        %碼環NCO
        offside=offside_old+60*k1*CodeErr;      %碼NCO的輸出
     
        theta_code_old = theta_code;  %將當前結果保存,用于下一個循環的碼跟蹤
        CodeErr_old = CodeErr;        %將當前結果保存,用于下一個循環的碼跟蹤
        offside_old = offside;        %將當前結果保存,用于下一個循環的碼跟蹤
     
        Bk_DLL = [Bk_DLL theta_code];   %記錄跟蹤過程中的碼環鑒想器的輸出
        Track_Code_Buffer = [Track_Code_Buffer offside];  %記錄跟蹤過程中的碼環NCO的數出   
     
     elseif Code_Method_flag==2
        %鑒想器 
        theta_code = ((IESum.^2+QESum.^2)-(ILSum.^2+QLSum.^2))/((IESum.^2+QESum.^2)+(ILSum.^2+QLSum.^2));
        theta_code =10.^(-3)*(1-sqrt(1-theta_code.^2))/(2*theta_code);
     
        %碼環路濾波器
        
        [CodeErr] = CodeloopFilter(codew,codeb,theta_code,theta_code_old,CodeErr_old);  %CodeErr是經過濾波器輸出的碼相位誤差的估計值
    
        %碼環NCO
        offside=offside_old+500*CodeErr;      %碼NCO的輸出
     
        theta_code_old = theta_code;  %將當前結果保存,用于下一個循環的碼跟蹤
        CodeErr_old = CodeErr;        %將當前結果保存,用于下一個循環的碼跟蹤
        offside_old = offside;        %將當前結果保存,用于下一個循環的碼跟蹤
     
        Bk_DLL = [Bk_DLL theta_code];   %記錄跟蹤過程中的碼環鑒想器的輸出
        Track_Code_Buffer = [Track_Code_Buffer offside];  %記錄跟蹤過程中的碼環NCO的數出
     end
     % ====================Carrier control=============================%
     if Carrier_Method_flag == 1            %%%%%%%%%%%%%%% fll跟蹤環路
        %鑒想器
        real_Q = IPSum_old*QPSum-QPSum_old*IPSum;
        real_I = IPSum_old*IPSum+QPSum_old*QPSum;
        a=real_Q/real_I;
        theta_fll = atan(real_Q/real_I);
        Bk_FLL = [Bk_FLL theta_fll];
        FLLinput = theta_fll/(2*pi*time_cyc);
                 
        %環路濾波器
        FLLoutput = CarrierLoopFilter(carrierw,carrierfllb/2,FLLinput,FLLinput_old,FLLoutput_old);
     
        %FLL環NCO
        Sita_fll = Sita_fll+FLLoutput;    
        track_freq_fll = -Sita_fll;      %FLL環跟蹤到的多普勒頻率 (由于反正切主值區間造成的)
        
        FLLinput_old=FLLinput;      %將當前結果保存,用于下一個循環的載波跟蹤
        FLLoutput_old=FLLoutput;    %將當前結果保存,用于下一個循環的載波跟蹤       
        IPSum_old = IPSum;          %將當前結果保存,用于下一個循環的載波跟蹤
        QPSum_old = QPSum;          %將當前結果保存,用于下一個循環的載波跟蹤
       
        
     elseif Carrier_Method_flag == 2         %%%%%%%%%%%%%%%%%%%%%%%costa跟蹤環路
        theta_pll = atan(QPSum/IPSum);
        PLLinput = theta_pll/(2*pi*time_cyc);
        Bk_PLL = [Bk_PLL theta_pll];
        
        %LoopFilter       
        PLLoutput = CarrierLoopFilter(carrierw,carrierpllb/2,PLLinput,PLLinput_old,PLLoutput_old); 
        
        track_freq_pll = -PLLoutput;
        
        PLLinput_old=PLLinput;      %將當前結果保存,用于下一個循環的載波跟蹤
        PLLoutput_old=PLLoutput;    %將當前結果保存,用于下一個循環的載波跟蹤 

      elseif Carrier_Method_flag == 3        %%%%%%%%%%%%%%%%%%%%fll跟蹤環路->costa
          if dem_flag == 0 
             real_Q = IPSum_old*QPSum-QPSum_old*IPSum;
             real_I = IPSum_old*IPSum+QPSum_old*QPSum;
             theta_fll = atan(real_Q/real_I);
             FLLinput = theta_fll/(2*pi*time_cyc);
             Bk_FLL = [Bk_FLL theta_fll];
             
             %LoopFilter
             FLLoutput = CarrierLoopFilter(carrierw,carrierfllb/2,FLLinput,FLLinput_old,FLLoutput_old);;
             
             %NCO
             Sita_fll = Sita_fll+FLLoutput;
             track_freq_fll = -Sita_fll;
             
             FLLinput_old=FLLinput;      %將當前結果保存,用于下一個循環的載波跟蹤
             FLLoutput_old=FLLoutput;    %將當前結果保存,用于下一個循環的載波跟蹤 
             IPSum_old = IPSum;          %將當前結果保存,用于下一個循環的載波跟蹤
             QPSum_old = QPSum;          %將當前結果保存,用于下一個循環的載波跟蹤
             
          elseif dem_flag == 1
             theta_pll = atan(QPSum/IPSum);
             PLLinput = theta_pll/(2*pi*time_cyc);
             Bk_PLL = [Bk_PLL theta_pll];
             
             %LoopFilter
             PLLoutput = CarrierLoopFilter(carrierw,carrierpllb/2,PLLinput,PLLinput_old,PLLoutput_old); 
             
             track_freq_pll = -PLLoutput;
             
             PLLinput_old=PLLinput;      %將當前結果保存,用于下一個循環的載波跟蹤
             PLLoutput_old=PLLoutput;    %將當前結果保存,用于下一個循環的載波跟蹤 
          end
     end

     adj_flag = track_dopplar - track_dopplar_old;  %相鄰兩次跟蹤到的多普勒頻率值之差,用以判斷是否FLL跟蹤的頻率已經足夠精確,從而轉入PLL
     track_dopplar_old = track_dopplar; 
     adj_buffer = [adj_buffer adj_flag];
      
     outdata = sign(real(IPSum)); 
     ALL_Buffer_Data = [ALL_Buffer_Data outdata];
          
     if adj_flag < 1      %看相鄰兩次跟蹤到的多普勒頻率之差是否小于1Hz
         add = add+1;
     else
         add = 0;
     end
     
     if add >= 2          %看是否有連續兩次跟蹤到的多普勒頻率之差小于1Hz,若有,則認為頻率跟蹤已很穩定而精確,可以轉入PLL
         dem_flag = 1;
     end
    
     if dem_flag == 1
         count_time = i;
         count_buffer = [count_buffer count_time];
         Buffer_Data = [Buffer_Data outdata]
     end
end


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%位同步與數據解調%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Buffer_Data_out = framecheck2(Buffer_Data,count_buffer); %位同步  
l_i_d = time/time_unit;
l_o_d = length(Buffer_Data_out);
l_zeros = l_i_d - l_o_d;
Buffer_Data_out = [zeros(1,l_zeros) Buffer_Data_out]; 


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%計算跟蹤精度%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Track_Code_Buffer;
Track_Freq_Buffer;
l_dll = length(Track_Code_Buffer);
l_fll = length(Track_Freq_Buffer);
diata_dll = sqrt(sum((Track_Code_Buffer(40:l_dll)-iniphcode).^2)/length(Track_Code_Buffer(40:l_dll)));  %碼跟蹤環跟蹤精度
diata_fll = sqrt(sum((Track_Freq_Buffer(40:l_fll)-inifd).^2)/length(Track_Freq_Buffer(40:l_fll)));      %載波跟蹤環的跟蹤精度

%Track_Ph_Buffer = Local_Ph_Buffer-Phase_signal;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%畫圖顯示跟蹤結果%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(1,2,1);
plot(Track_Code_Buffer);
xlabel('時間(ms)');
ylabel('碼相位跟蹤值');
title('碼跟蹤結果');
grid on

subplot(1,2,2);
plot(Track_Freq_Buffer);
xlabel('時間(ms)');
ylabel('多普勒頻率跟蹤結果(Hz)')
title('載波跟蹤結果');
grid on

figure;
plot([1:length(buffer_bit_data)],buffer_bit_data,'b*',[1:length(Buffer_Data_out)],Buffer_Data_out,'ro');
set(gca,'xtick',[1:1:5]);
set(gca,'xticklabel',{'1','2','3','4','5'});
set(gca,'ytick',[-1:1:1]);
set(gca,'yticklabel',{'-1','0','1'});
xlabel('數據位');
ylabel('解調結果')
title('數據解調輸出結果');
legend('數據','解調輸出數據');
grid on


% figure;
% plot(Bk_DLL);
% title('Track Code 輸入控制')
% grid on

% figure;
% plot(Track_Ph_Buffer);
% title('Track differ Phase')
% grid on

 
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩三级一区| 久久精品在线观看| 久久无码av三级| 亚洲乱码日产精品bd| 九色综合国产一区二区三区| 99re免费视频精品全部| 538在线一区二区精品国产| 中文字幕亚洲在| 国产一区二区三区在线观看精品| 日本伦理一区二区| 国产精品精品国产色婷婷| 麻豆精品国产91久久久久久| 在线欧美日韩国产| 国产精品嫩草影院av蜜臀| 精品一区二区三区久久久| 5月丁香婷婷综合| 亚洲h精品动漫在线观看| 91免费国产在线观看| 国产欧美日韩综合精品一区二区| 男人的天堂亚洲一区| 欧美另类变人与禽xxxxx| 亚洲综合小说图片| 色呦呦日韩精品| 一区二区三区中文在线观看| 91在线视频免费观看| 中文字幕一区二区三区在线不卡 | 色婷婷综合久久久久中文一区二区| 欧美精品一区二区三区一线天视频| 无码av免费一区二区三区试看| 色哟哟一区二区在线观看| 国产精品传媒入口麻豆| 国产精品无圣光一区二区| 国产高清久久久久| 久久―日本道色综合久久| 日本美女一区二区三区视频| 欧美在线制服丝袜| 亚洲欧美另类在线| 成人黄色综合网站| 国产亚洲欧美日韩日本| 激情伊人五月天久久综合| 欧美日本免费一区二区三区| 国产精品久久久久影院亚瑟 | 精品一区二区三区在线播放 | 日韩毛片一二三区| 国产成人免费视频| 国产农村妇女毛片精品久久麻豆| 国产中文字幕一区| 日韩精品一区二区三区四区视频| 婷婷中文字幕综合| 91麻豆精品国产自产在线 | 色婷婷香蕉在线一区二区| 亚洲欧洲精品天堂一级| 99视频有精品| 1区2区3区国产精品| 丁香六月久久综合狠狠色| 国产午夜精品福利| 成人深夜在线观看| 亚洲欧美日韩综合aⅴ视频| 99精品欧美一区二区蜜桃免费 | 欧美日韩亚州综合| 婷婷激情综合网| 日韩欧美一级精品久久| 国产综合色在线| 中文字幕的久久| 日本精品视频一区二区三区| 亚洲va在线va天堂| 欧美久久婷婷综合色| 亚洲精品国产a| 久久久亚洲精品一区二区三区| 国产乱码精品一区二区三区五月婷| 欧美国产激情二区三区| 91年精品国产| 午夜一区二区三区视频| 日韩精品一区二区三区在线| 成人在线综合网站| 一区二区三区中文字幕| 欧美一区二区三区在| 国产精品一区二区x88av| 中文字幕一区二区三区在线播放| 在线看一区二区| 九九九久久久精品| 亚洲精品一卡二卡| 精品国产免费视频| 91视视频在线观看入口直接观看www | 日本不卡不码高清免费观看| 精品久久久三级丝袜| 91香蕉视频黄| 久久精品国产亚洲5555| 一区二区中文字幕在线| 6080yy午夜一二三区久久| 成人h动漫精品一区二| 亚洲国产日产av| 国产色综合一区| 欧美日韩五月天| 国产成人综合精品三级| 亚洲韩国一区二区三区| 国产欧美一区二区三区网站 | 国产精品久久久久影院亚瑟| 欧美日韩高清一区二区不卡| 国产成人精品三级麻豆| 日韩av中文字幕一区二区| 中文字幕一区二区三区四区 | 欧美一区二区福利在线| www.亚洲精品| 久久不见久久见免费视频7| 一区二区三区四区视频精品免费 | 欧美国产在线观看| 日韩一区二区三区三四区视频在线观看| 丰满白嫩尤物一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品污污网站在线观看| 日韩欧美美女一区二区三区| 欧美在线一二三| 99久久综合99久久综合网站| 国产一区二区女| 日本欧洲一区二区| 视频一区二区三区在线| 洋洋av久久久久久久一区| 一区在线观看免费| 国产精品久久久久毛片软件| 欧美国产一区在线| 国产女同互慰高潮91漫画| 91精品在线麻豆| 色先锋资源久久综合| 一本色道久久综合亚洲aⅴ蜜桃| 成人三级伦理片| www.av亚洲| 97久久超碰精品国产| 成人一区二区三区视频在线观看| 国产精品一线二线三线精华| 麻豆91在线播放免费| 午夜成人在线视频| 美脚の诱脚舐め脚责91 | 亚洲欧美在线另类| 中文字幕一区视频| 亚洲欧美色综合| 亚洲婷婷国产精品电影人久久| 一区二区欧美国产| 亚洲成人av资源| 日本欧美肥老太交大片| 久久精品国产精品亚洲精品| 久久精品国产一区二区三| 加勒比av一区二区| 国产精品自拍一区| 不卡av在线免费观看| 色哟哟日韩精品| 欧美猛男超大videosgay| 欧美一区二区在线免费播放| 精品美女一区二区| 国产婷婷色一区二区三区 | 国产一区二区免费在线| 国产成人精品三级| 成人免费视频app| 91网站视频在线观看| 欧美人妖巨大在线| 久久嫩草精品久久久精品一| 中文字幕亚洲欧美在线不卡| 亚洲福利视频三区| 美女视频免费一区| av亚洲产国偷v产偷v自拍| 欧美制服丝袜第一页| 精品国产网站在线观看| 国产精品福利一区| 免费欧美高清视频| 91免费观看在线| 精品人伦一区二区色婷婷| 国产精品污www在线观看| 亚洲电影一区二区| 国产资源在线一区| 欧美天堂一区二区三区| 久久免费看少妇高潮| 亚洲黄色小说网站| 激情丁香综合五月| 欧美性大战久久久| 久久久综合视频| 亚洲女同一区二区| av中文字幕亚洲| 欧美电影精品一区二区| 亚洲欧美乱综合| 国产成人小视频| 欧美精品精品一区| 亚洲视频狠狠干| 国产精品一区在线观看乱码 | 国产女主播一区| 免费在线视频一区| 99久久精品久久久久久清纯| 欧美mv日韩mv国产网站app| 亚洲嫩草精品久久| 国v精品久久久网| 日韩欧美国产一二三区| 亚洲国产精品久久久久秋霞影院 | 中文字幕佐山爱一区二区免费| 麻豆久久久久久| 欧美日韩一区二区在线观看 | 91精品国产一区二区人妖| 亚洲女人****多毛耸耸8| 成人综合在线观看| 国产午夜精品理论片a级大结局 | 亚洲一区二区三区四区在线免费观看| 国产精品亚洲一区二区三区妖精|