1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y56Vmpxw
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
卫星信号的捕获算法是卫星定位接收机的关键,传统的捕获算法通常采用基于fft的相干积分和非相干积分相结合的方法,例如在使用gps信号进行定位和导航前首先需要对卫星信号进行捕获,gps卫星信号的传统捕获算法一般为频域并行捕获算法,频域并行捕获算法的原理框图如图3所示,频域并行捕获算法是一种基于fft的捕获算法,搜索覆盖全部搜索频点和全部伪码序列,对于正常功率的gps信号,通常只需要处理lms的导航数据,就能够完成gps信号的捕获,但是对于gps弱信号而言,通常处理lms的导航数据所获得的判决量并不可靠,难以实现捕获,此时就需要通过增加捕获算法所用的数据长度,采用相关积分和非相关积分相结合的方法,来提高捕获灵敏度,但同时导致fft相关运算的计算量将成倍增长,从而造成捕获速度降低。
4.部分源码
.................................................................
[fdout, freq_axis]= fdcorr(rx_seg,prn_code,frange);
%find delay and frequency offset for SV26:
[temp1, temp2]=max(fdout); %max in each col of fdout
[maxcorr,freq_index]=max(temp1);
delay=temp2(freq_index)-1;
chip_delay=(delay)/2; %in chips since sampled at chip2x
freq= freq_axis(freq_index); % in radians/sample
freqHz= freq*fs/(2*pi); % in Hz
%run again without a return variable to plot result:
figure(1)
fdcorr(rx_seg,prn_code,frange);
%correct course frequency offset:
rotation=[1:length(rx_seg)]'*freq;
rx0= rx_seg.*exp(-j.*rotation);
%align code with signal
codeshift=circshift(prn_code,-delay);
%correlation at aligned frequency and delay:
svcorr= abs(rx0'*codeshift);
%plot aligned result:
figure(2)
fdcorr(rx0,codeshift,frange);
A235