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

📄 downcvt.asv

📁 Galileo BOC 码产生捕获相关仿真结果
💻 ASV
字号:

function [Cmplx,Rpart,Ipart]=DownCvt(datain,Freq_Para)

% datain: the input GPS data;
% Freq_Para: the parameter of output frequency 
% Cmplx: the the down converted data in the form of complexity;
% Rpart: the real part of the Cmplx;
% Ipart: the imaginary part of the Cmplx;

N=length(datain);
Cmplx=zeros(1,N);
Rpart=zeros(1,N);
Ipart=zeros(1,N);
DownCvtCarrier=zeros(1,N);
dco_acc =zeros(1,N);

% ****************** Sample input data module ***********************************
% SampleMap = [1 3 5 7 -1 -3 -5 -7];
% datain = SampleMap(datain+1);       % the format of input data is unsigned
% 
% datain = sign(datain).*(fix(abs(datain)*2)+1); % the format of input data is signed
% % Note: if the data is signed, zero is forbidden. it should add +/-eps to
% %       zero according to +0 or -0.



% ******************* down converter module ******************************
for(i=2:N)
    dco_acc(i) = dco_acc(i-1) + Freq_Para;
    dco_acc(i) = mod(dco_acc(i),256);
end
dco_acc = floor(dco_acc./8);

DownCvtMap = [7+j*1
              6+j*3
              6+j*4
              5+j*5
              4+j*6
              3+j*6
              1+j*7
              0+j*7
              -1+j*7
              -3+j*6
              -4+j*6
              -5+j*5
              -6+j*4
              -6+j*3
              -7+j*1
              -7+j*0
			  -7+j*-1
              -6+j*-3
              -6+j*-4
              -5+j*-5
              -4+j*-6
              -3+j*-6
              -1+j*-7
              0+j*-7
              1+j*-7
              3+j*-6
              4+j*-6
              5+j*-5
              6+j*-4
              6+j*-3
              7+j*-1
			  7+j*0 ];
DownCvtMap = DownCvtMap';

DownCvtCarrier = DownCvtMap(dco_acc+1);
			  
% for(i=1:N)    
%   switch (dco_acc(i))
%     case 0 , DownCvtCarrier(i) = 7   + j* 1; 
%     case 1 , DownCvtCarrier(i) = 6   + j* 3; 
%     case 2 , DownCvtCarrier(i) = 6   + j* 4; 
%     case 3 , DownCvtCarrier(i) = 5   + j* 5; 
%     case 4 , DownCvtCarrier(i) = 4   + j* 6; 
%     case 5 , DownCvtCarrier(i) = 3   + j* 6; 
%     case 6 , DownCvtCarrier(i) = 1   + j* 7; 
%     case 7 , DownCvtCarrier(i) = 0   + j* 7; 
%     case 8 , DownCvtCarrier(i) = -1  + j* 7;  
%     case 9 , DownCvtCarrier(i) = -3  + j* 6;  
%     case 10, DownCvtCarrier(i) = -4  + j* 6;  
%     case 11, DownCvtCarrier(i) = -5  + j* 5;  
%     case 12, DownCvtCarrier(i) = -6  + j* 4;  
%     case 13, DownCvtCarrier(i) = -6  + j* 3;  
%     case 14, DownCvtCarrier(i) = -7  + j* 1;  
%     case 15, DownCvtCarrier(i) = -7  + j* 0;  
%     case 16, DownCvtCarrier(i) = -7  + j* -1; 
%     case 17, DownCvtCarrier(i) = -6  + j* -3;  
%     case 18, DownCvtCarrier(i) = -6  + j* -4;  
%     case 19, DownCvtCarrier(i) = -5  + j* -5;  
%     case 20, DownCvtCarrier(i) = -4  + j* -6;  
%     case 21, DownCvtCarrier(i) = -3  + j* -6;  
%     case 22, DownCvtCarrier(i) = -1  + j* -7;  
%     case 23, DownCvtCarrier(i) = 0   + j* -7; 
%     case 24, DownCvtCarrier(i) = 1   + j* -7; 
%     case 25, DownCvtCarrier(i) = 3   + j* -6; 
%     case 26, DownCvtCarrier(i) = 4   + j* -6; 
%     case 27, DownCvtCarrier(i) = 5   + j* -5; 
%     case 28, DownCvtCarrier(i) = 6   + j* -4; 
%     case 29, DownCvtCarrier(i) = 6   + j* -3; 
%     case 30, DownCvtCarrier(i) = 7   + j* -1; 
%     case 31, DownCvtCarrier(i) = 7   + j* 0;  
% end   
% end

Cmplx=datain.*DownCvtCarrier;
Rpart=real(Cmplx);
Ipart=imag(Cmplx);

⌨️ 快捷键说明

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