亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sea_det.m

?? 多天線系統信號檢測
?? M
字號:
function [xHat,wHat,nv,nf,nl] = SEA_det(m,xMax,y,H,cplx)%% [xHat,wHat,nv,nf,nl] = SEA_det(m,xMax,y,H,cplx)%% Given inputs -% % m    : the problem dimension, i.e., the number of symbols to decode,% xMax : a parameter specifying the admissible solution space, e.g.,%        each element of xHat can take values in {-xMax+1,..,-1,0,1,..,xMax},% y    : a real or complex target signal (column) vector,% H    : a real or complex linear transform matrix, e.g., a MIMO channel, and% cplx : flag specifying if xHat should be (0) real- or (1) complex-valued.% % SEA_det returns -% % xHat : a possibly suboptimal solution to   argmin    |y - H*x|^2,%                                          x \in Z_*^m %        where Z_*^m is the set of integers such that -xMax < Z_* <= xMax,% wHat : the squared distance |y - H*xHat|^2, i.e., the solution node weight,% nv   : the number of nodes expanded by the detector,% nf   : the (approximate) number of floating points operations performed%        (excluding pre-processing, e.g., QR factorization),% nl   : the number of leaf nodes visited by the detector.%   % The real-valued version of this depth-first stack-based sequential decoding% algorithm uses a decoding tree of m+1 levels where each node has 2*xMax% children.  At each stage, the node under consideration is expanded if its% weight is less than the squared distance to nearest currently known lattice% point.  This distance threshold is initially set to infinity.%% Because it is a depth-first traversal, we expand a node by computing its% first child.  If it is a leaf node, clearly it cannot be further expanded.% In this case, we will have found a closer lattice point than that previously% known. Therefore we can adaptively reduce the distance threshold to reflect% this new discovery.%% If the weight of the node under consideration is larger than this distance% threshold, then the current search path is terminated because it cannot% possibly lead to a closest lattice point. Upon path termination, the next% node to be considered is the next sibling of its parent.%% If xMax == 0, we do not apply (rectangular, or any) boundary control. In% other words, SEA_det behaves as a lattice decoder.  %% For more sophisticated operation, xMax may also be a vector of length m.% Then each node at the beginning of stage j in the tree, where the root node% is at the beginning of stage m and the leaf nodes are found at the end of% stage 1, has 2*xMax(j) children.  Equivalently, symbol xHat(j) is drawn from% {-xMax(j)+1,..,-1,0,1,..,xMax(j)}.%% If cplx == 1, we consider a tree of 2*m+1 levels with each node still having% 2*xMax children.  In addition, either xMax should be a complex-valued vector,% or imag(xMax) will be taken to be equal to real(xMax), i.e., a square QAM% constellation will be assumed by default.% % If either lattice reduction assistance or MMSE pre-processing are desired,% these operations should also be applied in advance of calling SEA_det.%% Notes:%% - Size(H,1) is expected to be equal to length(y).% - Size(H,1) is expected to be greater than or equal to size(H,2).% - Size(H,2) is expected to be equal to m.% - Length(xMax) is expected to be equal to either 1 or m.% - The solution xHat is an integer vector; be sure to apply any necessary%   scaling prior to calling SEA_det so that this solution is appropriate.%% Example:%%   m    = 4;                        % 4x4 MIMO system%   xMax = 2;                        % 16-QAM modulation%   cplx = 1;%   y    = randn(m,1)+i(randn(m,1);  % generate random complex target vector%   H    = randn(m,m)+i*randn(m,m);  % generate random complex channel %   [xHat,wHat,nv,nf,nl] = SEA_det(m,xMax,y,H,cplx);%% Version 1.2, copyright 2006 by Karen Su.%% Please send comments and bug reports to karen.su@utoronto.ca.%% Version 1.1%   Bug fix: now correctly handles xMax == 0 case.% Version 1.2%   Bug fix: Now correctly counts number of nodes visited; v1.1 did not count%            first expansion and so under-reported nv by exactly 1.global w;global z;global cn;global zp;global nf;xHat = [];wHat = Inf;nv   = 0;nf   = 0;nl   = 0;%% A small number%EPS = 0.001;%% Basic error checking%[n,mChk] = size(H);if n ~= length(y) || mChk ~= m  fprintf('Error: Decoding failed, invalid dimensions for H.\n');  return;endif n < m  fprintf('Error: Cannot solve under-determined problem, n (%i) < m (%i).\n', n, m);  return;endif length(xMax) == 1  xMax = xMax*ones(m,1);elseif size(xMax,2) == m  xMax = xMax.';elseif size(xMax,1) ~= m  fprintf('Error: Decoding failed, invalid dimensions for xMax.\n');  return;end%% Complex -> real conversion if necessary%if cplx == 1  m = 2*m;  n = 2*n;  y = [real(y);imag(y)];  H = [[real(H),-imag(H)];[imag(H),real(H)]];  if isreal(xMax)    xMax = [xMax;xMax];  else    xMax = [real(xMax);imag(xMax)];  endend%% Special handling to allow xMax == 0%noBCind       = find(xMax==0);xMax(noBCind) = Inf;%% Reduce problem to square if H is overdetermined; also factorize code% generator%[Hq,Hr] = qr(H);wRoot   = 0;yR      = Hq'*y;if m < n  wRoot = norm(yR(m+1:n))^2;  yR    = yR(1:m);end%% A basic node data structure consists of%   w   : node weight%   pyR : parent's residual target vector, elements 1:dim  == py(1:dim,dim)%   zA  : accumulated symbol decision vector, length m-dim == z(dim+1:dim)%   dim : node/residual dimension, root (m+1) to leaf (1)%   cn  : sibling ordinal%   pw  : parent node weight                               == w(dim+1)%   ut  : (scalar) target for siblings at this level       == py(dim+1,dim)%   zp  : symbol decision of previous sibling             %% In addition, the following components enable us to effect more sophisticated,% albeit still justified rectangular, boundary control%   lb  : lower bound of admissible range for siblings at this level == lb(dim)%   ub  : upper bound of admissible range for siblings at this level == ub(dim)%% The algorithm requires only a fixed-size block of memory; we initialize it% with the root node.  %w   = zeros(1,m+1);py  = zeros(m,m);z   = zeros(1,m);dim = m;cn  = zeros(1,m);zp  = zeros(1,m);lb  = -xMax.'+1;ub  = xMax.';dimp    = dim+1;w(dimp) = wRoot;%% Compute first child of root node %py(1:dim,dim) = yR;                              % Store parent (root) residual target.compFirstChild(dim,dimp,lb(dim),ub(dim),Hr(dim,dim),py(dim,dim));nv = nv + 1;backtrack = 0;while dim <= m  if w(dim) < wHat                     % If the node under consideration has a smaller weight    if dim == 1                        % and it is a leaf node, then update xHat, wHat       wHat = w(dim);      xHat = z;      nl   = nl + 1;      backtrack = 1;                   % To backtrack, we have to compute the next sibling      dim  = dimp;                     % of the current node's parent      dimp = dimp+1;      if cn(dim) <= ub(dim)-lb(dim)    % Check that there is at least one more sibling                         backtrack = 0;        compNextSibling(dim,dimp,lb(dim),ub(dim),Hr(dim,dim),py(dim,dim));      end      nf = nf + 1;    %    % If the node under consideration has a sufficiently small weight and is    % not a leaf node:    % - then either we are backtracking (backtrack == 1, and so compute the    %   next sibling of its parent)    %    elseif backtrack && cn(dim) > ub(dim)-lb(dim) % No more siblings      %backtrack = 1;      dim = dimp;      if dim <= m                      % Check that we have not backtracked to root        dimp = dimp+1;         if cn(dim) <= ub(dim)-lb(dim)  % Check that there is at least one more sibling          backtrack = 0;          compNextSibling(dim,dimp,lb(dim),ub(dim),Hr(dim,dim),py(dim,dim));        end        nf = nf + 1;      end      %    % - or we are trying an alternate path (backtrack == 0, and so compute    %   the first child)    %    else      %backtrack = 0;      nv   = nv + 1;      dimp = dim;      dim  = dim-1;      py(1:dim,dim) = py(1:dim,dimp)-Hr(1:dim,dimp)*z(dimp);  % Compute current node residual target.      nf            = nf + 2*dim;      compFirstChild(dim,dimp,lb(dim),ub(dim),Hr(dim,dim),py(dim,dim));    end  else                                 % If the node under consideration has too large a weight    dim       = dimp;                  % then we backtrack (if possible).  To do so, we have to    backtrack = 1;                     % compute the next sibling of the current node's parent.    if dim <= m                        % Check that we have not backtracked to root      dimp = dimp+1;      if cn(dim) <= ub(dim)-lb(dim)    % Check that there is at least one more sibling        backtrack = 0;        compNextSibling(dim,dimp,lb(dim),ub(dim),Hr(dim,dim),py(dim,dim));      end      nf = nf + 1;    end  end  nf = nf + 1;endxHat = xHat.';%   % Undo any complex -> real transformation that may have been done before%   if cplx == 1  m = m/2;  xHat = xHat(1:m)+i*xHat(m+1:2*m);endfunction compFirstChild(dim,dimp,lbd,ubd,Hrdd,pydd)global w;global z;global cn;global zp;global nf;z0 = pydd/Hrdd;                              % The first child is found byz1 = round(z0);                              % quantization and symbol-dependentz1 = min([z1 ubd]);                          % boundary control.z1 = max([z1 lbd]);z(dim)  = z1;                                % Store first child decisionzp(dim) = z0;                                % and pre-quantization data;w(dim)  = w(dimp)+(pydd-Hrdd*z(dim))^2;      % compute its weight/cost.cn(dim) = 1;                                 % First child ordinal has 1.nf      = nf + 6;function compNextSibling(dim,dimp,lbd,ubd,Hrdd,pydd)global w;global z;global cn;global zp;global nf;zn   = z(dim)-cn(dim)*sign(z(dim)-zp(dim));  % The next sibling symbol decision can beif zn > ubd                                  % derived from the current and previous ones,  zn = ubd-cn(dim);                          % followed by boundary control. This procedureelseif zn < lbd                              % is dependent on the child ordinal and also the  zn = lbd+cn(dim);                          % symbol-dependent lower and upper bounds.endzp(dim) = z(dim);                            % Save previous sibling's symbol decision andz(dim)  = zn;                                % store next sibling decision.cn(dim) = cn(dim)+1;                         % Siblings have one larger child ordinal.w(dim) = w(dimp)+(pydd-Hrdd*zn)^2;           % Compute sibling node weight.nf     = nf + 10;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩不卡免费视频| 国产精品网曝门| 欧美精品一区二区三区很污很色的 | 国产欧美在线观看一区| 亚洲美腿欧美偷拍| 精品在线免费视频| 欧美日韩精品电影| 国产精品麻豆99久久久久久| 免费观看日韩av| 91麻豆免费观看| 欧美激情综合五月色丁香 | 欧美亚洲国产怡红院影院| 日韩一区二区精品葵司在线 | aaa亚洲精品| 久久精品视频一区二区三区| 亚洲福利视频一区| 97久久精品人人澡人人爽| 久久亚洲精精品中文字幕早川悠里| 亚洲成人在线免费| 色94色欧美sute亚洲线路一久| 日韩欧美国产综合在线一区二区三区 | 夜夜嗨av一区二区三区四季av| 国产精品一区二区在线看| 欧美一级爆毛片| 麻豆一区二区三| 欧美剧情电影在线观看完整版免费励志电影 | 精品嫩草影院久久| 久久99精品国产.久久久久| 欧美美女视频在线观看| 亚洲电影一区二区三区| 日本精品视频一区二区| 最新久久zyz资源站| 国产99久久久久| 欧美国产1区2区| 成人黄色片在线观看| 欧美国产一区在线| 国产另类ts人妖一区二区| 精品福利一区二区三区免费视频| 久久国产免费看| 日韩精品最新网址| 国产一区二区美女| 国产精品丝袜91| 一本色道久久综合亚洲精品按摩| 一区二区三区视频在线观看| 欧美自拍偷拍午夜视频| 亚洲国产综合91精品麻豆| 欧美三级中文字幕| 精品一二三四区| 国产欧美日韩激情| 91视频你懂的| 亚洲妇熟xx妇色黄| 精品国产sm最大网站免费看| 国产黑丝在线一区二区三区| 国产精品国产三级国产普通话三级| 波多野结衣中文字幕一区二区三区 | 日韩影院精彩在线| 精品日韩99亚洲| www.久久久久久久久| 亚洲欧美另类久久久精品 | 日韩精品免费专区| 久久精品视频免费观看| 99久久99久久精品国产片果冻| 亚洲一区二区三区四区中文字幕| 91精品国产高清一区二区三区蜜臀 | 亚洲超丰满肉感bbw| 日韩精品中午字幕| 99久久777色| 玖玖九九国产精品| 自拍偷拍欧美精品| 日韩欧美电影在线| 色女孩综合影院| 久久国产尿小便嘘嘘尿| 中文字幕一区免费在线观看| 欧美一区二区三区在线视频 | 精品一区二区在线免费观看| 中文在线资源观看网站视频免费不卡| 色香色香欲天天天影视综合网| 免费人成精品欧美精品| 国产精品久久精品日日| 91精品国产色综合久久久蜜香臀| 不卡的av电影在线观看| 久久精品国产在热久久| 一区二区三区中文在线| 日韩精品一区二区在线观看| 91福利精品第一导航| 国产91精品久久久久久久网曝门 | 亚洲人成小说网站色在线| 日韩视频中午一区| 在线观看国产日韩| 成人一区二区视频| 久久成人麻豆午夜电影| 亚洲一二三专区| 亚洲欧洲另类国产综合| 久久久久久久综合狠狠综合| 91精品国产综合久久香蕉麻豆| 色婷婷一区二区| jlzzjlzz欧美大全| 激情欧美日韩一区二区| 日韩av电影免费观看高清完整版在线观看 | 91香蕉视频mp4| 成人动漫在线一区| 国产一区二区在线视频| 另类人妖一区二区av| 亚洲成人激情社区| 亚洲精品久久久久久国产精华液| 亚洲欧洲精品天堂一级| 亚洲国产精华液网站w| 久久久久亚洲蜜桃| 精品盗摄一区二区三区| 日韩你懂的在线播放| 日韩一区二区三区观看| 欧美高清视频在线高清观看mv色露露十八 | 亚洲成人激情av| 亚洲图片欧美色图| 偷拍日韩校园综合在线| 午夜av电影一区| 日韩电影一区二区三区| 美女视频黄 久久| 久久爱www久久做| 国产精品资源站在线| 国产在线麻豆精品观看| 久久99精品国产麻豆婷婷洗澡| 久久99精品久久久久久| 国模冰冰炮一区二区| 国产成人啪免费观看软件| 岛国精品在线观看| 91视频91自| 欧美日韩日本视频| 日韩美一区二区三区| 久久婷婷色综合| 亚洲同性同志一二三专区| 亚洲欧美另类小说视频| 午夜电影久久久| 国产一区二区导航在线播放| av欧美精品.com| 一本色道久久综合精品竹菊| 911精品国产一区二区在线| 欧美日韩久久一区| 26uuu另类欧美亚洲曰本| 国产精品久久久久久一区二区三区 | |精品福利一区二区三区| 一区二区三区中文字幕在线观看| 五月天激情小说综合| 国产米奇在线777精品观看| av电影一区二区| 欧美疯狂做受xxxx富婆| 久久久亚洲午夜电影| 一区二区三区四区在线| 捆绑变态av一区二区三区| 成人免费观看视频| 欧美一区二区三区性视频| 久久久久久久久久看片| 亚洲国产你懂的| 国产精品77777| 欧美日韩一区视频| 久久综合九色综合97_久久久| 国产精品久久久久久一区二区三区| 日韩在线卡一卡二| 99精品偷自拍| 久久久久久久久久看片| 一二三区精品福利视频| 狠狠色狠狠色综合日日91app| 一本久久精品一区二区| 日韩美女主播在线视频一区二区三区| 亚洲三级电影全部在线观看高清| 日韩av不卡一区二区| 91小视频免费看| 久久久亚洲精品一区二区三区| 亚洲欧美激情插| 成人v精品蜜桃久久一区| 欧美一级一区二区| 亚洲精品乱码久久久久久| 国产91精品欧美| 精品91自产拍在线观看一区| 亚洲h在线观看| 91农村精品一区二区在线| 久久久久久久久97黄色工厂| 日本伊人色综合网| 欧美日韩一区在线| 一级特黄大欧美久久久| 不卡的av电影| 国产精品人成在线观看免费 | 久久久精品一品道一区| 日本vs亚洲vs韩国一区三区| 欧美日韩和欧美的一区二区| 中文字幕一区二区视频| 成人美女视频在线观看18| 精品电影一区二区| 精品一区二区影视| 欧美卡1卡2卡| 三级欧美在线一区| 欧美人狂配大交3d怪物一区| 一区二区三区四区在线| 色婷婷综合久久久久中文一区二区 | 欧美日产国产精品| 亚洲成人一二三| 欧美精品久久99久久在免费线 | 99精品视频一区二区三区| 国产拍揄自揄精品视频麻豆| 国产精品一区2区|