📄 doaspc1.m
字号:
function spect = doaspc1(method, sigIn, specType, smplPoints, focusDist, rangeIx, cpiIx, in8, in9, in10, timeIx, snapshotDim)%DOASPC1 Estimates a DOA-spectrum with different methods.%% spect = doaspc1(method, sigIn, [], smplPoints, focusDist, rangeIx,% cpiIx, ...)%%More detailed help text by commands "help2 doaspc1" or "helpwin2 "doaspc1".%DOASPC1 Estimates a DOA-spectrum with different methods.%%--------%Synopsis:% spect = doaspc1(method, sigIn, [], smplPoints, focusDist, rangeIx,% cpiIx, ...)%%Description:% Estimates a DOA spectrum ((Direction of Arrival)) with different methods.%% If the input parameters "rangeIx" or "cpiIx" are vectors, several DOA% spectra will be estimated, one for each specified range bin and CPI.%% The input can either be a radar signal (RxCorrMatT) or a spatial% correlation matrix (RxCorrMatT). In the former case a correlation% matrix is estimated for all range bins and CPIs by calling% Rxx1 = ecorrm(sigIn,[],rangeIx, cpiIx);% This means that the samples used for the estimation are taken from all% pulses (see function "eccorrm").%%Output and Input:% spect (DoaSpecT): Output DOA-spectrum. It is a quadratic measure of the% presence of sources in different directions. It can be either a power% spectrum (e.g. cbf) or a pseudo spectrum (e.g. music).% All methods use the antenna signal correlation matrix, which is% estimated by the function "ecorrm" if it is not supplied as input.% method (StringT): Estimation method. See below for sections about each% method.% = 'cbf': Conventional beamforming.% = 'acbf': Adaptive conventional beamforming. This is beamforming with% adaptive sidelobe cancelation (ASLC). Not implemented.% = 'capon': Capons beamformer.% = 'capon2': An other implementation of Capons beamformer.% = 'music : MUSIC.% = 'music2': An other implementation of MUSIC.% = 'minnorm': Minimum norm.% = 'minnorm2': An other implementation of Minimum norm (freath).% = 'eigvec': Eigenvector method.% = 'pisa': Pisarenko Harmonic Decomposition.% sigIn (RxRadarSigT or RxCorrMatT): The input antenna signal or a% spatial correlation matrix.% smplPoints [D](Vector of DoaT): Calculate the spectrum at these angles.% focusDist [D](RealScalarT): Focus distance of the antenna [m]% (default = Inf). Not implemented.% rangeIx [D](IndexT): Indices of range bin (default = 1). Only used% when "sigIn" is of type RxRadarSigT. Then default is all range bins.% cpiIx [D](IndexT): CPI indices (default = 1). Only used% when "sigIn" is of type RxRadarSigT. Then default is all CPIs.% timeIx : Not Implemented.% snapshotDim [D](IntScalarT): Use snapshots from this dimension to% estimate the correlation matrix. Not Implemented.%%--------%Conventional Beamforming.%Synopsis:% spect = doaspc1('cbf', sigIn)% spect = doaspc1('cbf', sigIn, [], smplPoints)% spect = doaspc1('cbf', sigIn, [], smplPoints, [], rangeIx, cpiIx)% spect = doaspc1('cbf', sigIn, [], [], [], [], [], taperType, taperParam)% spect = doaspc1('cbf', sigIn, [], smplPoints, [], rangeIx, cpiIx,% taperType, taperParam)%%Output and Input:% taperType (StringT): Tapering type.% = 'norm': Normalised beamforming ([2] p. 72-73).% = Otherwise the parameter "taperType" of function "gettap1".% taperParam (?): The third input parameter of function "gettap1".%%Description:% The conventional beamforming. It can be done either with any of the% taperings that are available with te function gettap1 or by a kind of% normalization.%%Algoritm:% taperType = 'norm':% P = (a'*Rxx*a)/(a'*a),% where P=P(doa) is the output spectrum as a function of direction,% a=a(doa) is the steering vector calculated by the spastemat function,% Rxx is an estimate of the input antenna signal correlation matrix.% taperType = Otherwise:% w = a .* taper% P = w'*Rxx*w,% where taper is a tapering from the function gettap1. Other variables% are as above.%%--------%Adaptive Conventional Beamforming.%Synopsis:% spect = doaspc1('acbf', sigIn, [], [], [], [], [], [], [], iNCorrMat)% spect = doaspc1('acbf', sigIn, [], [], [], [], [], taperType, taperParam,% iNCorrMat)% spect = doaspc1('acbf', sigIn, [], smplPoints, [], rangeIx, cpiIx,% taperType, taperParam, iNCorrMat)%%Output and Input:% taperType (StringT): Tapering type.% = The parameter "taperType" of function "gettap1".% taperParam (?): The third input parameter of function "gettap1".% iNCorrMat (RxCorrMatT): The input antenna signal interference-plus-noise% correlation matrix. This should be estimated on a radar signal without% targets.%%Description:% Not implemented.% Adaptive (conventional) beamforming. Reference [4] p. 57-58 contains a% description of STAP which is a generalization of adaptive beamformning.% Possibility to choose a desired weight vector ([4] p. 57-58).%%Algoritm:%%Examples:% ant = defant('isotropULA',[noElem,D,lambda]);% sigJam = compsim2(ant, 1, T, jamModel, [thetaJam, phiJam, SNRJam, ...% alphaJam, dalphaJam, dist, ones(size(theta,1))], 'rndn', eye(noElem));% iNCorrMat = ecorrm(sigJam);% sigTgt = compsim2(ant, 1, T, tgtModel, [thetaTgt, phiTgt, SNRTgt, ...% alphaTgt, dalphaTgt, distTgt, ones(size(theta,1))], 'rndn', eye(noElem));% splot2(doaspc1('acbf', sigTgt, [], 'taylor', 40, iNCorrMat))%%--------%Capons Beamformer.%Synopsis:% spect = doaspc1('capon', sigIn)% spect = doaspc1('capon', sigIn, [], smplPoints)% spect = doaspc1('capon', sigIn, [], smplPoints, [], rangeIx, cpiIx)%%Description:% This is another adaptive conventional beamformer (see 'acbf') but there% is no possibility to choose a desired weight vector.% This method is the solution to a minimization that attempts to minimize% signals from other direction other than the current look direction, in% which a constant gain is maintained, [2] p73-74.% This method is also known as Minimum Variance Distorionless Response.%%Algoritm:% 1/(a'*inv(Rxx)*a),% where P=P(doa) is the output spectrum as a function of direction,% a=a(doa) is the steering vector calculated by the spastemat function,% Rxx is an estimate of the input antenna signal correlation matrix.%%--------%MUSIC.%Synopsis:% spect = doaspc1('music', sigIn, [], [], [], [], [], noSrc)% spect = doaspc1('music', sigIn, [], smplPoints, [], [], [], noSrc)% spect = doaspc1('music', sigIn, [], smplPoints, [], rangeIx, cpiIx,% noSrc)%%Output and Input:% noSrc [D](IntScalarT): Hypotesis for the number of targets or signals.%%Description:% Multiple Signal Classification. Probably the most known model based DOA% spectrum estimation method. See for example [2] p. 74-75.%%Algoritm:% See [3].%%--------%Minimum Norm.%Synopsis:% spect = doaspc1('minnorm', sigIn, [], [], [], [], [], noSrc)% spect = doaspc1('minnorm', sigIn, [], smplPoints, [], [], [], noSrc)% spect = doaspc1('minnorm', sigIn, [], smplPoints, [], rangeIx, cpiIx,% noSrc)%%Output and Input:% noSrc (IntScalarT): Hypotesis for the number of targets or signals.%%Description:% A modification of the MUSIC method. See [2] p. 75.%Algoritm:%%--------%Minimum Norm 2.%Synopsis:% spect = doaspc1('minnorm2', sigIn, [], [], [], [], [], noSrc)% spect = doaspc1('minnorm2', sigIn, [], smplPoints, [], [], [], noSrc)% spect = doaspc1('minnorm2', sigIn, [], smplPoints, [], rangeIx, cpiIx,% noSrc)%%Output and Input:% noSrc (IntScalarT): Hypotesis for the number of targets or signals.%%Description:% An other implementation of Minimum norm (by Fredrik Athley).%%Algoritm:% See [3].%%--------%Eigenvector Method.%Synopsis:% spect = doaspc1('eigvec', sigIn, [], [], [], [], [], noSrc)% spect = doaspc1('eigvec', sigIn, [], smplPoints, [], [], [], noSrc)% spect = doaspc1('eigvec', sigIn, [], smplPoints, [], rangeIx, cpiIx,% noSrc)%%Output and Input:% noSrc (IntScalarT): Hypotesis for the number of targets or signals.%%Description:% See [6] p. 9 and [7] p. 384.%%Algoritm:%%--------%Pisarenko Harmonic Decomposition.%Synopsis:% spect = doaspc1('pisa', sigIn, [], [], [], [], [], noSrc)% spect = doaspc1('pisa', sigIn, [], smplPoints, [], [], [], noSrc)% spect = doaspc1('pisa', sigIn, [], smplPoints, [], rangeIx, cpiIx,% noSrc)%%Output and Input:% noSrc (IntScalarT): Hypotesis for the number of targets or signals.%%Description:% See [6] p. 10. and [7] p. 371.% This method does not seem to work.%%Algoritm:%%--------%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:% ant = defant('isotropULA',[noElem,D,lambda]);% sig = compsim2(ant, 1, T, tgtModel, [theta, phi, SNR, alpha, dalpha, ...% dist, ones(size(theta,1))], 'rndn', eye(noElem));% splot2(sdoaspc('music',sig,[],MMu))% figure;% splot2(doaspc1('cbf', sig, [], d2r(-30:0.1:30), [], 3, 2, 'taylor', 40));%%Software Quality:% (About what is done to ascertain software quality. What tests are done.)% The methods 'cbf', 'capon', 'music' and 'minnorm' were used in the work% done by A. Heydarkhan [5].%%Known Bugs:% The wavelength is acquired from the antenna definition. This is not% logical but works as the wavelength happens to be stored there.%%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]: Krim H., Viberg M.:"Two Decades of Array Signal Processing Research",% IEEE Signal Processing Magazine, July 1996, pp. 67-94.% [3]: Fredrik Athley, Ericsson Microwave Systems, M鰈ndal, Sweden.% [4]: Ward J.: "Space-Time Adaptive Processing for Airborne Radar",% Technical report 1015, MIT Lincoln Laboratory 1994.% [5]: Heydarkhan A.: "Model Based Direction of Arrival Estimation Methods% Applied to Experimental Antenna Data", Master's Thesis, Chalmers% University of Technology 1997. FOA-R--97-00631-408--SE, FOA November 1997.% [6]: Pettersson L.: "Inverkan av fel p
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -