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

📄 spastevec.m

📁 阵列信号处理的工具箱
💻 M
字号:
function a = spastevec(antenna, doas, lambda, focusDist)% *****************************************************************************%   *  DBT, A Matlab Toolbox for Radar Signal Processing  *% (c) FOA 1994-2000. See the file dbtright.m for copyright notice.%%  function a = spastevec(antenna, doas, lambda, focusDist)%%  Calculates the ideal steering vector for specified angles for a particular%  distance. This function should not be called. Use "spastemat" instead.%%  Start        : 960327 Svante Bj鰎klund (svabj).%  Latest change: $Date: 2000/10/16 15:22:07 $ $Author: svabj $.%  $Revision: 1.6 $% *****************************************************************************%dbtwarning('Using "spastevec". It should not be used.')global thSign  % Defines the reference direction for the theta angle in DOA:s.  % Defined in "defant".% ----------------------------------------------------------------------- %% Handle input parameters% ----------------------------------------------------------------------- %% ****************** Add missing input parameters ******************% ****************** Default values ******************if (nargin < 4)  focusDist = Inf;end% ****************** Error check input parameters ******************%if (focusDist ~= Inf)%   error('DBT-Error: Only focus on infinity is implemented.')%end  % This test required unnecessary execution time.if (size(doas,2) > 1)  error('DBT-Error: spastevec is only implemented for one DOA.')end% ----------------------------------------------------------------------- %% Code common to all antenna types.% ----------------------------------------------------------------------- %% ****************** Pick out fields from input parameters. ******************antennaType = antenna.antennaType;% ----------------------------------------------------------------------- %% Special antenna types.% ----------------------------------------------------------------------- %if isfield(antenna,'name')  if (strcmp(antenna.name,'aimtEx') | ...      strcmp(antenna.name,'expAnt'))    disp('Warning: Calls to spastevec are obsolete. Call spastemat instead.')    a = spastemat(antenna, doas, lambda, focusDist);    return  endend% ----------------------------------------------------------------------- %% Uniform Linear Array (ULA) and Non-Uniform Linear Array (LA).%% Start: 97xxxx David Rejdemyhr (davrej).% ----------------------------------------------------------------------- %if (strcmp(antennaType,'ULA') | strcmp(antennaType,'LA'))  if (size(doas,1) > 1)    error('DBT-Error: Regards to phi not taken when calc. steering vector for ULA');  end  noElem   = antenna.noElem;  if (strcmp(antennaType,'ULA'))    distElem = antenna.distElem;    elemPos = distElem*(0:noElem-1)';  else    elemPos = antenna.elemPos;  end  a = exp(thSign*j*2*pi*(elemPos/lambda)*sin(doas(1,1)));    % Array faktor.  w = antenna.element.beamSpaceTrans;  a = a * (w' * spastevec(antenna.element, doas, lambda, focusDist));% ----------------------------------------------------------------------- %% Antenna Elements (one channel antennas).%% Start: 97xxxx David Rejdemyhr (davrej).% ----------------------------------------------------------------------- %elseif (strcmp(antennaType,'elem'))%  error('DBT-Error: Antenna element calculation is obsolete, use spastemat instead');  pType = antenna.patternType;  if (strcmp(pType,'isotrop'))    a = 1;  elseif (strcmp(pType,'func'))    x = doas(1,1);    a = eval(antenna.patternFunc); % x is the evaluated variable.  else    error('DBT-Error: Illegal pattern type for element.')  end%if% ----------------------------------------------------------------------- %% The else branch.% ----------------------------------------------------------------------- %else    error('DBT-Error: Not implemented for desired antenna type.')end%if

⌨️ 快捷键说明

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