main.m
上传用户:shencti
上传日期:2016-08-16
资源大小:16k
文件大小:2k
源码类别:

邮电通讯系统

开发平台:

Matlab

  1. %%20080411
  2. %%卫星导航定位理论与方法第一次作业:Matlab实现DSSS捕获;
  3. %%伪码速率为1.023Mcps,SNR=-20dB;
  4. %%采用BPSK调制数据,不考虑数据位的影响
  5. %%采用FFT捕获
  6. %%采用固定门限 门限取4.5
  7. %%采用唐检测判决
  8. %%平方检波,进行5次非相干积累
  9. %%输入的中频为1.4193MHz,多普勒频率范围-9kHz至9kHz
  10. clc
  11. clear
  12. global EmulateIndex; %仿真次数
  13. EmulateIndex=0;
  14. %%%%设置参数
  15. [code_cycle,SNR,Ts,T,T_interp,fi,M,N,fd,f0,delay_time,fd_estimate,sigma_n,fs,Bandwidth,dot_insert,coef,coef_mod,B,A1]=set_parameter;
  16. %%%%产生接受中频信号伪码,抽头为1,8
  17. code_phase=[1,8];
  18. [inputcode]=code_gen(code_phase);
  19. %%%%本地伪码
  20. native_code=inputcode;
  21. %%%%产生本地伪码FFT共轭
  22. inputcode_2=[native_code,native_code];
  23. [Code_native_fft_conj]=code_native_fft_conj(inputcode_2,fd_estimate,T_interp,T,f0,dot_insert);
  24. %%%%多普勒频率搜索起始频率,搜索点数,搜索间隔
  25. fd_estimate=0e3;    %多普勒频率搜索起始频率
  26. times_estimate=37;  %频率检测次数
  27. IntervalOfFreq=0.5e3; %搜索间隔步进,多普勒频率范围为-9kHz-9kHz
  28. [snr,acq_flag,Correl_Peak_location]=Detection_Analysize_R_pd(Bandwidth,fd,f0,SNR,sigma_n,code_cycle,times_estimate,inputcode,T_interp,T,fd_estimate,Ts,fi,N,A1,B,M,fs,IntervalOfFreq,Code_native_fft_conj,dot_insert,delay_time,coef,coef_mod,EmulateIndex);
  29. %%%%确定捕获的多普勒频率
  30. if(acq_flag==1)
  31.     snr= sort(snr,2,'descend'); 
  32.     snr=snr(:,1:4);
  33.     snr_sum=sum(snr,2);
  34.     snr_max=max(snr_sum);
  35.     snr_index=find(snr_sum==snr_max);
  36.     disp('多普勒频率为:');
  37.     fd_estimate=(-1)^snr_index*round((snr_index-1)/2)*IntervalOfFreq
  38.     disp('码相位为:');
  39.     Correl_Peak_location_real=Correl_Peak_location(snr_index)-4
  40. else
  41.     disp('未捕获到信号');
  42. end