大学毕业设计一席谈之三十四 GPS卫星采样信号的跟踪(3)降采样跟踪
采样信号为一个码片包含16个采样点,需要降为4采样点,然后再进入跟踪算法,看是否能准确跟踪上。本文将展示程序改动的过程!为何要降采样?最主要是为了降低运算量,保证程序运算的实时性。跟踪环路依旧是采用移动码片的方式完成伪码跟踪。降采样的方式就是抽取,这里的抽取非常直接,就是四选一!而通信终端里面的抽取过程远比这个复杂哦!导航接收机里面这么做则完全没有问题!搞通信算法的同行们在做信号抽取的时候需要考虑很多因素,可以阅读下面的系列文章!数字信号处理之信号处理仿真 第四章 内插和抽取(1)数字信号处理之信号处理仿真v2 第四章 内插和抽取(14)大学毕业设计一席谈之二十一 抽取滤波器的matlab仿真(1)GPS接收机需实时处理多颗卫星的信号(每颗卫星需独立跟踪环路)。降采样可减少相关器的计算量,适合资源受限的嵌入式设备。不过对于采用移动码相位跟踪方式的环路而言,降低采样率会降低定位精度。因为DLL需要足够采样点分辨码片(Chip)边界,降采样可能导致码环抖动增大,导致码相位跟踪偏差加大。 上一篇程序中的日期写错了!捕获结果也存在偏差,在此更正,不过这些失误不影响程序的正确运行!人都会犯错,关键看有没有自我纠错能力!N = 16.368e6;
% 读取数据
fid = fopen(file_path, 'r');
rxDemod = fread(fid, N*15, 'int8'); % 读取N*5个int8数据,保留符号
rxDemod = rxDemod(1:16368000*5)'; % 5s长度
% 4倍抽取
rxDemod = rxDemod(1:4:end); % 四选一方式!!!
fs = 4.092e6;
ts = 1/fs;
%%% 锁相环参数
damp = 0.707;
Bp = 100; % 噪声带宽
tp = 1/1000; % 时间间隔 1ms调整一次
Kp = 1;
Wp = 2*Bp/(damp+1/(4*damp));
alpha = 8*damp*Wp*tp/(Kp*(4+4*damp*Wp*tp+(Wp*tp)^2));
beta = 4*(Wp*tp)^2/(Kp*(4+4*damp*Wp*tp+(Wp*tp)^2));
%%%%%%%%%%%%%%% begin tracking
%%%%%% 第一通道