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

📄 wscordbt.m

📁 阵列信号处理的工具箱
💻 M
字号:
function scmp=wscordbt(s, wstypDummy, coupFlag, Ccmpmet, wcmatDummy, wnfcmp, wctabAnglesDummy, doas)%WSCORDBT Corrects steering/test vectors for near field, coupling and gain/phase.%%--------%Synopsis:%  scmp=wscordbt(s, wstypDummy, coupFlag, Ccmpmet, wcmatDummy, wnfcmp,  ...%    wctabAnglesDummy, doas)%%Description:%  Corrects steering/test vectors for near field, coupling and gain/phase.%  scmp = inv(diag(wcmat)) * inv(Ccmp.') * inv(wnfcmp) * s%  For more information on the calibrations and corrections, see [2,3].%%  (Korrigerar styr/test-vektor utgaaende fraan kaenda korrektionsmatriser%  s=diag(wcmat)(-1)*Ccmp(T-1)*wnfcmp(-1)*s0%  daer s och scmp aer kolumnvektorer, dim [1,nel] eller [nang,nel] )%%  The calibration compensation information is stored in global variables%  by the function "setcal1".%  This file is an adaption to DBT of Lars Petterssons file wscorr.m.%  This function is called by spastemat.%%Output and Input:%  scmp (CxMatrixT): Corrected steering/test matrix.%  s (CxMatrixT): Not corrected steering/test matrix.%  wstypDummy: Not used.%  coupFlag: An empty matrix means that coupling compensation will not be made.%  Ccmpmet (StringT): Type of coupling calibration. Gain and phase corrections%    are also performed.%    = 'Ccmp': Use decoupling matrix.%    = 'wctab': Use table of corrections for different directions. An%      interpolation will be used to find the "right" direction.%    = 'wcmedel': Use the "wcmedel" method, see [2].%    = 'nocomp': No coupling calibration and no gain and phase correction.%  wcmatDummy: Not used. Instead a global variable "wcmat" is used.%  wnfcmp: Near field correction factors, as delivered by the function%    "eincdbt". An empty matrix means that near field correction will not%    be made.%  wctabAnglesDummy: Not used.%  doas (): The directions to use when looking up in the table "wctab".%%Global Variables:%  Ccmp (CxMatrixT): Decoupling matrix. Created in "setcal1".%  wctab (CxMatrixT): Table of corrections for different directions.%    Created in "setcal1".%  phitab: Created in "setcal1".%  wcmedel (CxMatrix): Correction vector for the "wcmedel" method.%    Created in "setcal1".%  wcmat (CxMatrix): Correction vector for channel erros or drift since%    last calibration of coupling (Ccmp or wctab). This correction is always%    done unless the global variable "wcmat" is an empty matrix.%    Created in "setcal1".%%--------%Notations:%  Data type names are shown in parentheses and they start with a capital%  letter and end with a capital T. Data type definitions can be found in [1]%  or by "help dbtdata".%  [D] = This parameter can be omitted and then a default value is used.%  When the [D]-input parameter is not the last used in the call, it must be%  given the value [], i.e. an empty matrix.%  ... = There can be more parameters. They are explained under respective%  metod or choice.%%Software Quality:%  (About what is done to ascertain software quality. What tests are done.)%%Known Bugs:%%References:%  [1]: Bj鰎klund S.: "DBT, A MATLAB Toolbox for Radar Signal Processing.%    Reference Guide", FOA-D--9x-00xxx-408--SE, To be published.%  [2]: Pettersson L.: "講ersiktlig beskrivning av m鋞dataanalysprogram f鰎%    digital experimentantenn", FOA-D--96-00226-3.2--SE, FOA February 1996.%  [3]: Pettersson L., Danestig M., Sj鰏tr鰉 U.: "An Experimental S-Band%    Digital Beamforming Antenna", IEEE AES Systems Magazine, November 1997,%    p.19-26.%%See Also:%  spastemat, eincdbt, vcorrdbt, setcal1, sigcomp2%%   *  DBT, A Matlab Toolbox for Radar Signal Processing  *% (c) FOA 1994-2000. See the file dbtright.m for copyright notice.%%  Start        : 9xxxxx Lars Pettersson (larpet).%  Latest change: $Date: 2001/08/31 15:04:30 $ $Author: svabj $.%  $Revision: 1.13 $% *****************************************************************************%disp('Compensate steering vectors.')global Ccmp wctab phitab wcmedel wcmat[nfang,nelnf]=size(wnfcmp);  % Korrigera f鰎st naerfaeltseffekter.  % Notera att om wnfcmp==[] saa g鰎s ingen naerfaeltskorrigering.  if ~isempty(wnfcmp)		% This test is unnecessary because the				% nested if-statement checks the same.    if nfang==1      s=diag(1./wnfcmp)*s;    elseif nfang > 1      s=1./wnfcmp.'.*s;    end  end%if  % Korrigera sedan for koppling.  if ~isempty(coupFlag)    if strcmp(Ccmpmet,'Ccmp')      s=inv(Ccmp.')*s;    elseif strcmp(Ccmpmet,'wcmedel')      s=diag(1./wcmedel)*s;    elseif (strcmp(Ccmpmet,'wctab') & size(wctab,1)==1)      s=diag(1./wctab)*s;    elseif strcmp(Ccmpmet,'wctab') & size(wctab,2)==size(s,1)      % Size check changed.      s=1./(interp1(phitab,wctab,doas(1,:)')).'.*s;    elseif strcmp(Ccmpmet,'nocomp')      % Do nothing    else      error('DBT-Error: Felaktigt Ccmpmet i wscorr');    end%if  end%if  if (~strcmp(Ccmpmet,'nocomp'))    % Korrigera sedan foer kanalfel, eller drift sedan coupcal    if ~isempty(wcmat)      s=diag(1./wcmat)*s;    end  end%if  scmp=s;

⌨️ 快捷键说明

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