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

📄 make_increment.m

📁 小区初搜为GSM系统中的一个关键过程
💻 M
字号:
function [ INCREMENT ] = make_increment(SYMBOLS,NEXT,Rhh)
%function [ INCREMENT ] = make_increment(SYMBOLS,PREVIOUS,Rhh)
%
% MAKE_INCREMENT:
%           This function returns a lookuptable containing the
%           metric increments related to moving from state n to m.
%           The data is arranged so that the increment accosiated 
%           with a move from state n to m is located in 
%           INCREMENT(n,m). To minimize computations only legal
%           transitions are considdered.
%
% SYNTAX:   [ INCREMENT ] = make_increment(SYMBOLS,NEXT,Rhh)
%
% INPUT:    SYMBOLS: The table of symbols corresponding the the state-
%                    numbers.
%           NEXT:    A transition table containing the next legal
%                    states, as it is generated by the code make_next.
%           Rhh:     The autocorrelation as estimated by mf.m.
%
% OUTPUT:   INCREMENT:
%                    The increment table as described above.
%
% SUB_FUNC: None
%
% WARNINGS: There is no syntax checking on input or output.
%
% TEST(S):  By hand, against expected values.
%
% AUTOR:    Jan H. Mikkelsen / Arne Norre Ekstr鴐
% EMAIL:    hmi@kom.auc.dk / aneks@kom.auc.dk
%
% $Id: make_increment.m,v 1.6 1997/09/22 11:39:34 aneks Exp $

% IN THIS PEACE OF CODE THE SYNTAX CHECKING IS MINIMAL
% THIS HAS BEEN CHOSEN TO AVOID THE OVERHEAD. RECALL THAT
% THIS CODE IS EXECUTED EACH TIME A BURST IS RECEIVED.

% FIND THE NUMBER OF SYMBOLS THAT WE HAVE
%
[M,Lh]=size(SYMBOLS);

% INITIALIZE THE INCREMENT MATRIX
%
INCREMENT=zeros(M);

% RECALL THAT THE I SEQUENCE AS IT IS STORED IN STORED AS:
% [ I(n-1) I(n-2) I(n-3) ... I(n-Lh) ]
%
% ALSO RECALL THAT Rhh IS STORED AS:
% [ Rhh(1) Rhh(2) Rhh(3) ... Rhh(Lh) ]
%
% THE FORMULA TO USE IS:
% INCREMENT(n,m)
% =
% real(conj(I(n))*(I(n-Lh)*Rhh(Lh)+I(n-Lh+1)*Rhh(Lh-1)+...+I(n-1)*Rhh(1))
%
% THEY CAN THUS BE MULTIPLIED DIRECTLY WITH EACH OTHER

% LOOP OVER THE STATES, AS FOUND IN THE ROWS IN SYMBOLS.
%
for n=1:M, 
% for m=1:M,
% ONLY TWO LEGAL NEXT STATES EXIST, SO THE LOOP IS UNROLLED
  % 按照文档上的说法应该是一正一负,这个好像没看出来。两个的SYMBOLS的第一列的符号是相反的
  %所以得出的INCREMENT,是相反的。
  m=NEXT(n,1);
%   n=PREVIOUS(m,1);
  INCREMENT(n,m)=real(conj(SYMBOLS(m,1))*SYMBOLS(n,:)*Rhh(2:Lh+1).');
%  INCREMENT(n,m)=real(conj(SYMBOLS(m,1))*SYMBOLS(n,:)*Rhh(2:Lh+1).');
  %这个好像太浪费了,这样行不行INCREMENT(m,1)=........
  %需要和后面的关系对应好
  %后面注释的是
  %real的意思是只是取实部,好像只是实部相乘就行?两个的第一列的数据刚好是相反的
  %实现了
  m=NEXT(n,2);
%   n=PREVIOUS(m,2);
   INCREMENT(n,m)=real(conj(SYMBOLS(m,1))*SYMBOLS(n,:)*Rhh(2:Lh+1).');
  %INCREMENT(n,2)=...........
end

⌨️ 快捷键说明

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