📄 dfb2.m
字号:
function [sigOut,vd] = dfb2(sigIn, prf, noDopChan)%DFB2 Doppler filter bank filtering.%%--------%Synopsis:% [sigOut,vd] = dfb2(sigIn)% [sigOut,vd] = dfb2(sigIn, prf)% [sigOut,vd] = dfb2(sigIn, prf, noDopChan)%%Description:% Doppler filter bank filtering. Modified version of function "dfb".% Among others, this function does not take the absolute value of the result.% The number of pulses in the input signal must be an even number.%%Output and Input:% sigOut (RxRadarSigT): Output radar signal.% vd (RealScalarT): Doppler speed [m/s].% sigIn (RxRadarSigT): Input radar signal.% prf (RealScalarT): PRF (Pulse Repetition Frequency).% noDopChan (IntScalarT): Number of doppler channels to create.%%--------%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 ...% [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.)%%Known Bugs:% dfb2 does not save information about the performed filtering, which% is necessary to make high resolution doppler estimation.% The frequencies of the doppler channels are not saved in the output signal.% When there are different wavelengths for different CPI:s ...%%See Also:% dopplerfilt, pulfilt% * DBT, A Matlab Toolbox for Radar Signal Processing *% (c) FOA 1994-2000. See the file dbtright.m for copyright notice.%% Start : 961120 Fredrik Athley (freath).% Latest change: $Date: 2000/10/16 15:20:37 $ $Author: svabj $.% $Revision: 1.19 $% *****************************************************************************% ----------------------------------------------------------------------- %% Handle input parameters% ----------------------------------------------------------------------- %if (nargin < 1) error('DBT-Error: To few input parameters.')end% ****************** Add missing input parameters ******************arginNo=2;if (nargin < arginNo) prf = [];endarginNo = arginNo +1;if (nargin < arginNo) noDopChan = [];endarginNo = arginNo +1;% *************** Pick out some fields from input parameters. ***************ant = sigIn.antenna;lambda = sigIn.waveform.wavelength;%K = ant.noElem;XX = sigIn.signals;s = sizem(XX);noPulses = s(1);noRangeBins = s(2);noBeams = s(3);noExtras = s(4);noCPIs = s(5);noTrials = s(6);% ****************** Default values ******************if isempty(prf) prf = 1;end%ifif isempty(noDopChan) noDopChan = noPulses;end%if% ****************** Error check input parameters ******************chkdtype(prf, 'RealScalarT')chkdtype(noDopChan, 'IntScalarT')% ----------------------------------------------------------------------- %% Calculate Doppler.% ----------------------------------------------------------------------- %if noPulses>1 s2 = s; s2(1) = noDopChan; YY = zerosm(s2); for trialLoop = 1:noTrials for extraLoop = 1:noExtras for range=1:noRangeBins for cpi=1:noCPIs X = getm(XX,':',range,':',extraLoop,cpi,trialLoop); Y = fft(X, noDopChan); Y = fftshift1(Y); YY(':',range,':',extraLoop,cpi,trialLoop) = Y; % setm end%for cpi infoStr = sprintf('dfb2: range = %d(%d)\r',range,noRangeBins); dbtinfo(infoStr,1); end%for range dbtinfo(''); %New line. end%for extraLoop end%for trialLoop fd = linspace(-prf/2, prf/2, noDopChan); vd = lambda/2*fd;else YY = XX;end%ifsigOut = sigIn;sigOut.signals = YY;%End Of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -