📄 rxradarsigt.m
字号:
function sigOut = RxRadarSigT(signals, model, param, pulIx, ranIx, spaIx, extraIx, cpiIx, trialIx, pulTrans, ranTrans, spaTrans, freqPos, rangePos, doaPos, spaPulTrans, spaRanTrans, pulRanTrans, allTrans)%RXRADARSIGT Constructor for radar signals.%%--------%Synopsis:% sigOut = RxRadarSigT% sigOut = RxRadarSigT(signals, {antenna, waveform}, {propSpeed},% pulIx, ranIx, spaIx, extraIx, cpiIx, trialIx, pulTrans,ranTrans,spaTrans,% freqPos, rangePos, doaPos)%%Description:% Constructor for radar signals, i.e. the data type "RxRadarSigT".% More information on this data type and the input parameters of this% function can be found in [1] (type the command "dbtrefguide").%%Output and Input:% sigOut (RxRadarSigT): The output radar signal.%% signals (CxMultiMatrixT): The complex radar signal values in a% multidimensional matrix with the indices (pulseIx, timeInPulseIx,% channelIx, extraIx, cpiIx, trialIx). All indices except for pulseIx% are optional.% antenna (AntDefT): The antenna definition to use in subsequent signal% processing of this radar signal.% waveform (WaveformT): The time properties (WaveformT) of the radar signal% to use in subsequent signal processing.% propSpeed [D](RealScalarT): Propagation speed of the radar wave [m/s].% Default is ?. This input parameter is not used. What is the purpose% with it?% pulIx [D](IndexT): Present pulse or doppler channel numbers in the signal.% ranIx [D](IndexT): Present range bins (numbers) in the signal.% spaIx [D](IndexT): Present spatial channels in the signal.% extraIx [D](IndexT): Present extra indices in the signal.% cpiIx [D](IndexT): Present CPIs in the signal.% trialIx [D](IndexT): Present trials in the signal.% pulTrans [D](CxMatrixT): Transformation matrix used for doppler or% frequency filtering, i.e. filtering in the time dimension.% ranTrans [D](CxMatrixT): Transformation matrix used for pulse compression,% i.e. filtering in the range dimension.% spaTrans [D](CxMatrixT): Transformation matrix used for beamforming, i.e.% filtering in the spatial dimension.% freqPos [D](RealVectorT): Frequency in Hertz for the different doppler% or frequency channels.% rangePos [D](RealVectorT): Range in meter for the different range bins.% doaPos [D](RealVectorT): Beam positions in radians for the different beams.%%--------%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:% % This example creates a radar signal from measured data in the variable % % "signals" from the FOA experimental antenna.% antenna = defant('expAnt'); % Antenna definition.% waveform = defwave(lambda,noRangeBinsTot,noPri,pModulation,sampleTime);% % lambda: wavelength.% % noRangeBinsTot: The separation between different pulses or% % PRIs expressed in number of range bins.% % noPri: Number of pulses% % pModulation: The coeffient of the pulse modulation.% % sampleTime: Sample period time.% pulIx = 1:noPri;% ranIx = 1:noSnapshots;% spaIx = 1:noElem;% sigvar = RxRadarSigT(signals,{antenna,waveform},[],pulIx,ranIx,spaIx);% % signals: See above in this help text.%% For other examples, see the code of the functions "compsim4", % "simradarsig" and "expsig".%%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.%%See Also:% dbtrefguide, defant, defwave, compsim4, simradarsig, expsig% * DBT, A Matlab Toolbox for Radar Signal Processing *% (c) FOA 1994-2000. See the file dbtright.m for copyright notice.%% Start : 981113 Svante Bj鰎klund (svabj).% Latest change: $Date: 2000/10/16 15:19:57 $ $Author: svabj $.% $Revision: 1.8 $% *****************************************************************************% The structure of this function is prepared for using MATLAB's classes.if (nargin == 0) sigOut = basedef;elseif isa(signals,'RxRadarSigT') sigOut = signals;else if (nargin < 2) error('DBT-Error: To few input parameters.') end % ****************** Add missing input parameters ****************** arginNo=3; if (nargin < arginNo) param = []; end arginNo = arginNo +1; if (nargin < arginNo) pulIx = []; end arginNo = arginNo +1; if (nargin < arginNo) ranIx = []; end arginNo = arginNo +1; if (nargin < arginNo) spaIx = []; end arginNo = arginNo +1; if (nargin < arginNo) extraIx = []; end arginNo = arginNo +1; if (nargin < arginNo) cpiIx = []; end arginNo = arginNo +1; if (nargin < arginNo) trialIx = []; end arginNo = arginNo +1; if (nargin < arginNo) pulTrans = []; end arginNo = arginNo +1; if (nargin < arginNo) ranTrans = []; end arginNo = arginNo +1; if (nargin < arginNo) spaTrans = []; end arginNo = arginNo +1; if (nargin < arginNo) freqPos = []; end arginNo = arginNo +1; if (nargin < arginNo) rangePos = []; end arginNo = arginNo +1; if (nargin < arginNo) doaPos = []; end arginNo = arginNo +1; % ****************** Default values ****************** if isempty(param) param = {speedoflight}; end%if if isempty(pulIx) pulIx = 1:size(signals,1); end%if if isempty(ranIx) ranIx = 1:size(signals,2); end%if if isempty(spaIx) spaIx = 1:size(signals,3); end%if if isempty(extraIx) extraIx = 1:size(signals,4); end%if if isempty(cpiIx) cpiIx = 1:size(signals,5); end%if if isempty(trialIx) trialIx = 1:size(signals,6); end%if % ************* Pick out some more fields from input parameters. ************* antenna = model{1}; waveform = model{2}; %propSpeed = param{1}; % ************* Base definition. ************* sigOut = basedef; % ************* Assign values. ************* sigOut.signals = signals; sigOut.antenna = antenna; sigOut.waveform = waveform; sigOut.pulIx = pulIx; sigOut.ranIx = ranIx; sigOut.spaIx = spaIx; sigOut.extraIx = extraIx; sigOut.cpiIx = cpiIx; sigOut.trialIx = trialIx; sigOut.trans.pulTrans = pulTrans; sigOut.trans.ranTrans = ranTrans; sigOut.trans.spaTrans = spaTrans; sigOut.freqPos = freqPos; sigOut.rangePos = rangePos; sigOut.doaPos = doaPos;end%if%endfunction RxRadarSigTfunction sigOut = basedef sigOut.dataType = 'RxRadarSigT'; sigOut.version = 2; % The version number must be changed after important changes of this % data type, changes requiring changes of the functions which are % using this data type. sigOut.signals = []; sigOut.antenna = []; sigOut.waveform = []; sigOut.pulIx = []; sigOut.ranIx = []; sigOut.spaIx = []; sigOut.extraIx = []; sigOut.cpiIx = []; sigOut.trialIx = []; sigOut.trans.pulTrans = []; sigOut.trans.ranTrans = []; sigOut.trans.spaTrans = []; sigOut.freqPos = []; sigOut.rangePos = []; sigOut.doaPos = []; %parent = SigT(...) %sigOut = class(sigOut,'RxRadarSigT',parent); % Inheritance from class "SigT".%endfunction basedef
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -