?? wscordbt.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;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -