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

📄 ranfilt.m

📁 阵列信号处理的工具箱
💻 M
📖 第 1 页 / 共 2 页
字号:
function [sigOut, basisMat, rangePosOut] = ranfilt(sigIn, method, model, modelParam, rangeChoice, taperCoeff, interCorrMat, steVecFlag, extraParam, orthBeamFlag)%RANFILT Range linear filtering (i.e. pulse compression).%%--------%Synopsis:%  sigOut = ranfilt(sigIn)%%  [sigOut, basisMat, rangePosOut] = ranfilt(sigIn, method,%    {antenna, waveform}, {propSpeed, interpMethod, storageClass, ...%    boundaryMethod}, rangeChoice, taperCoeff, interCorrMat, steVecFlag, ...%    extraParam, orthBeamFlag)%%  [sigOut, basisMat, rangePosOut] = ranfilt(sigIn, keywordList)%%Description:%  Range linear filtering (i.e. pulse compression).%%  This function works like beamforming functions in the way that range %  steering vectors are created which then are correlated with the input%  signal. The range of the steering vectors are specified by the input %  parameter "rangeChoice". It is not necessary that the ranges span all%  ranges in the input signal or are multiples of one range bin.%  This function calls the general functions "calcfiltinit" and "calcfiltproc" %  for the actual processing. This means that the methods implemented in%  these functions can be tried but it is not sure that they are all are %  applicable for range filtering (this function). See also below about%  the input parameter "method".%%  After the execution of this function, targets in range bin 1 is located%  in element number 1 in the output signal matrix. This is different from %  the old function "pulscomp".%%  This function can be very memory consuming, especially if there are%  many range bins in the input signal. This function can require long %  execution time, especially if many ranges are specified with the input %  parameter "rangeChoice".%%Output and Input:%  sigOut (RxRadarSigT): Output radar signal.%  basisMat ():%  rangePosOut (RealVectorT.'): The tested ranges [m].%%  sigIn (RxRadarSigT): Input radar signal.%%  keywordList [D](CellArrayT): A cell array with input parameter name%    (keyword) and value pairs, see the example below. All input parameters%    of this function following "sigIn" can be used. The use of keywords%    is to simplify calls to this function with many input parameters.%%  method (StringT): Filter method. See help text of function "calcfiltinit"%    for sections about each method.%    = 'conv': Non-adaptive pulse compression in the range domain (convolution).%      This is tested and works.%    = 'aconv': Adaptive pulse compression in the range domain (convolution). %      This is pulse compression with adaptive sidelobe cancelation (ASLC).%      A range interference correlation matrix should be specified with the %      "interCorrMat" input parameter. In this way disturbing signals at some %      ranges should be suppressed. Not tested for range filtering.%    = 'capon': Capon's method. Unsure if this works for range filtering. %      See for example "dbtex22".%    = 'fft': Discrete fourier transform. Cannot be used with this function.%    = 'ifft': Inverse discrete fourier transform. Cannot be used with this %      function.%    = 'music : MUSIC. Not tested for range filtering.%  antenna [D](AntDefT): Antenna model to use. If this parameters is an%    empty matrix, the antenna model in the input signal "sigIn" is used%    instead.%  waveform [D](WaveformT): Waveform (time properties) model to use. %    If this parameters is an empty matrix, the waveform model in the input%    signal "sigIn" is used instead.%  propSpeed [D](RealScalarT): Propagation speed of the waves [m/s].%    Default = speed of light in free space.%  interpMethod [D](StringT): Interpolation method to use when calculating%    the range steering matrices. See function "ranstemat" for possible%    methods.%  storageClass [D](StringT): Specifies the MATLAB storage class for range%    steering matrices. See function "ranstemat" for more information.%  boundaryMethod [D](StringT): How to handle the boundaries of the PRI.%    See function "ranstemat" for more information.%  rangeChoice [D](RealVectorT.'): One or more ranges to test [m].%  taperCoeff [D](CxVectorT): Tapering coefficients to use.%  interCorrMat [D](CxMatrixT): Interference signal correlation matrix. %    This is used to adaptively suppress the interference.%  steVecFlag [D](BoolT): Specifies whether the steering vector (= 1, default) %    or filter weights (= 0) will be used in the filtering.%  extraParam [D](): The use and data type depend on filter method. See help %    text of function "calcfiltinit" for sections about each method.%  orthBeamFlag [D](BoolT): 1 = orthogonalize the weight vectors. %    0 = Do not do it (default).%%--------%Conventional Pulse Compression.%Synopsis:%%Output and Input:%%Description:%%Algoritm:%%--------%Conventional Pulse Compression.%Synopsis:%%Output and Input:%%Description:%%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:%%Software Quality:%  (About what is done to ascertain software quality. What tests are done.)%  Only the method 'conv' ist tested and found to work. See for example %  "dbtex22".%%Known Bugs:%  *) When using methods , e.g. 'capon' or 'music', requiring a correlation %  matrix, this matrix is currently estimated using the pulses.%  If the number of range bins is larger than the number of pulses, %  which often is the case, the correlation matrix will be singular and%  cannot be used. %  Consequently these methods will not work in these cases. Warning messages%  like the following will appear:%    Warning: Matrix is close to singular or badly scaled.%        Results may be inaccurate. RCOND = 1.599693e-20.%%  *) This function do not use the function "calcfiltsig".%%  *) If the waveform parameter "pModulation" is not specified for radar %  measurements this function will not work. See the function "expsig1"%  for more information.%%  *) For Capon, only the non-adapted steering matrix is stored. See the %  function "calcfiltinit".%%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:%  calcfiltinit, pulsecomp, pulscomp, pulfilt, spafilt%   *  DBT, A Matlab Toolbox for Radar Signal Processing  *% (c) FOA 1994-2000. See the file dbtright.m for copyright notice.%%  Start        : 990301 Svante Bj鰎klund (svabj).%  Latest change: $Date: 2001/08/31 14:34:16 $ $Author: svabj $.%  $Revision: 1.11 $% *****************************************************************************%Child functions for "ranfilt" rev. 1.9:%  calcfiltproc %  ranstemat %  getm3 %  dbtinfo %  chkdtype %  calcfiltinit %  setrantrans %  getranbinlen %  sigsize %  speedoflight %  iscell % The comment "NFF" stands for "New filter function" and gives tips to% necessary changes when using this function as a template for new filter % functions (in other dimensions).% ----------------------------------------------------------------------- %% Handle input parameters% ----------------------------------------------------------------------- %arginNo=1;if (nargin < arginNo)  error('DBT-Error: To few input parameters.')endarginNo = arginNo +1;% ****************** Add missing input parameters ******************if (nargin < arginNo)  method = [];endarginNo = arginNo +1;if (nargin < arginNo)  model = [];endarginNo = arginNo +1;if (nargin < arginNo)  modelParam = [];endarginNo = arginNo +1;if (nargin < arginNo)  rangeChoice = [];endarginNo = arginNo +1;if (nargin < arginNo)  taperCoeff = [];endarginNo = arginNo +1;if (nargin < arginNo)  interCorrMat = [];endarginNo = arginNo +1;if (nargin < arginNo)  steVecFlag = [];endarginNo = arginNo +1;if (nargin < arginNo)  extraParam = [];endarginNo = arginNo +1;if (nargin < arginNo)  orthBeamFlag = [];endarginNo = arginNo +1;% *************** Evalute the list of keywords  ***************% If the input parameter "method" is a cell array, it is interpreted as a% list of input parameter name (keyword) and value pairs.% The values of these keywords are assigned to the local variables with% the same name as the keywords. The use of keywords is to make calls to% this function simpler.if (iscell(method))  keywordList = method;  lenExtra = length(keywordList);  if (mod(lenExtra,2) ~= 0), error('DBT-Error: Keyword value missing.'),end%if  for n = 1:2:length(keywordList)    eval([keywordList{n} '= keywordList{n+1};' ]);  end%for nendarginNo = arginNo +1;

⌨️ 快捷键说明

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