⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pullin.m

📁 GPS signal Pulling in Tracking range
💻 M
字号:
function f_5 = pullin(fid, f, ph, sat_id);
%This function performs a linear search at constant code phase and returns
%th IF carrier.
% the purpose is to find the IF carrier with better accuracy so that the
% carrier loop can pull-in

% fid = file pointer to data
% f = coarse carrier IF
% ph = code phase (samples)
% sat_id = satellite
% initial values
fs= 5.714e6;
d1ms=fs/1000;

% Generate CA code
ca = cacode(sat_id, 1.023e6, fs, d1ms);
% Time vector
t = (0:(d1ms-1))/fs;
%initialize variables
C=zeros(101,1);
doppler_index=0;
% Search +/-250Hz with 5 Hz increments
for fc = (f-250):5:(f+250)
    fseek(fid, ph, -1);
    doppler_index=doppler_index+1;
    %Accumulate 10 correlations
    for n = 1:20
        % Read data
        data=(fread(fid, d1ms, 'schar'))';
        %data = (fscanf(fid, '%1d', d1ms));
         %convert i/p data into +1 and -1 form
        %for l=1:length(data);
   %if data(l) == 0
     % data(l) = -1;
     %end
     %end
%data= data';
        % despread
       data = ca.*data;
        % Downconvert
        I_comp = sin(2*pi*fc*t).*data;
        Q_comp = cos(2*pi*fc*t).*data;
        % Accumulate
        I = sum(I_comp);
        Q = sum(Q_comp);
        C(doppler_index) = C(doppler_index) + I.^2 + Q.^2;
     end
  end
  % Find max correlation
 
  i = find(C==max(C));
  f_5 = f + (i-51)*5
  
     
        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -