📄 basecorrm.m
字号:
function Rout = basecorrm(snapshots, rxRadarSig)%BASECORRM Gives a base estimates of the antenna signal correlation matrix.%%--------%Synopsis:% Rout = basecorrm(snapshots, rxRadarSig)%%Description:% Gives a base estimates of the antenna signal correlation matrix.% The estimate can be used as input to spectral (e.g MUSIC) and parametric% DOA estimation methods (e.g WSF). basecorrm allows you to choose whatever% snapshots you want, e.g. special pulse or range bins, to use for the% estimate. basecorrm i suitable both when taking snapshots from the same% signal (e.g. from different range bins, pulses) and from more than one% signal. A "snapshot" is a column vector with antenna channel signals.% You have to collect all snapshots to a comnplex matrix (CxMatrixT)% yourself. See the examples below.%% The estimate is a maximum likelihood (ML) estimate%%Output and Input:% Rout (RxCorrMatT): The estimated antenna signal correlation matrix.% snapshots (CxMatrixT): Snapshots of the antenna signal. This means% that different rows are signals from different antenna channels% and different columns come from different pulses, ranges, trials etc.% rxRadarSig (RxRadarSigT): An antenna signal, from which parameters% are extracted that are stored in Rout (needed by some processing% functions).%%--------%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.%%Examples:% Example 1:% ant = defant('isotropULA',[12, 0.45*lambda]);% sig = compsim5(ant, lambda, noPulses, noRangeBins, 'const', ...% [theta, phi, SNR, alpha, dalpha,dist], 'nonoise');% sigsize(sig);% figure,sigplot2(sig,1,':',':'),title('Before beamforming')% snapshots = [getm3(sig.signals,3,[],':',1,':'), ...% getm3(sig.signals,3,[],':',2,':')];% R = basecorrm(snapshots,sig);% s = sdoaspc('music',R)% figure,splot2(s)%% Example 2:% ant = defant('expAnt');% % Define the antenna.% setcal1('wctab','m1065.dbc')% % Set calibration compensation to use with sdoaspc, sdoapar1 etc.% sig = expsig1(ant,'m1065..dbs');% sig = sigsubix(sig,1:127,':',':');% % Read the received antenna signals.% sigsize(sig);% figure,sigplot2(sig,1,':',':'),title('Before beamforming')% snapshots = [...% getm3(sig.signals,3,[],':',15,':'), ...% getm3(sig.signals,3,[],':',16,':'), ...% getm3(sig.signals,3,[],':',17,':'), ...% getm3(sig.signals,3,[],':',18,':')% ];% % Get snapshots from range bins 15,16,17,18 from all pulses.% R = basecorrm(snapshots,sig);% s = sdoaspc('music',R)% figure,splot2(s)% % Plot a Music spectrum.%%Algoritm:%%Software Quality:% (About what is done to ascertain software quality. What tests are done.% Known bugs.)%%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.%%See Also:% ecorrm% * DBT, A Matlab Toolbox for Radar Signal Processing *% (c) FOA 1994-2000. See the file dbtright.m for copyright notice.%% Start : 980602 Svante Bj鰎klund (svabj).% Latest change: $Date: 2000/10/16 15:19:59 $ $Author: svabj $.% $Revision: 1.8 $% *****************************************************************************RxCorrMatTVersion = 3;% ----------------------------------------------------------------------- %% Handle input parameters% ----------------------------------------------------------------------- %if (nargin < 2) error('DBT-Error: To few input parameters.')end% ****************** Add missing input parameters ******************% ****************** Default values ******************% ****************** Error check input parameters ******************chkdtype(snapshots, 'CxMatrixT')chkdtype(rxRadarSig, 'RxRadarSigT')% ----------------------------------------------------------------------- %% Get a base estimate of the correlation matrix% ----------------------------------------------------------------------- % % ****************** Maximum Likelihood estimate ****************** L = size(snapshots,2); Rxx = 1/L * snapshots*snapshots'; % ****************** Create an output variable. ****************** old = 0; if (old) Rout = rxRadarSig; Rout = rmfield(Rout,'signals'); Rout.dataType = 'RxCorrMatT'; Rout.version = RxCorrMatTVersion; Rout.corrMat = Rxx; Rout.noSamples = L; else Rout = RxCorrMatT(Rxx, L, rxRadarSig); end%if
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -