📄 dfb.m
字号:
function [sigOut,vd] = dfb(sig,prf)% function [sigOut,vd] = dfb(sig,prf)%% Doppler filter bank. This function takes the absolute value of the result.% Use the function dfb2 if this is not wanted.%% sigOut RxRadarSigT% vd ? ?% sig RxRadarSigT% prf RealScalarT : PRF (Pulse Repetition Frequency)%%Known Bugs:% dfb 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.% This function takes the absolute value of the result.% Use the function dfb2 if this is not wanted.%%See Also:% dfb2% * 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:36 $ $Author: svabj $.% $Revision: 1.15 $% *****************************************************************************disp('Warning: The function dfb is obsolete. Use dfb2 instead.')ant = sig.antenna;%lambda = ant.lambda;waveform = sig.waveform;lambda = waveform.wavelength;K = ant.noElem;XX = sig.signals;s = sizem(XX);noPulses = s(1);noRangeBins = s(2);noBeams = s(3);noCPIs = s(5);N = noPulses;if N>1 if N~=2^round(log(N)/log(2)) error('DBT-Error: Number of pulses must be a power of 2') end YY = zerosm(s); for range=1:noRangeBins for cpi=1:noCPIs X = getm(XX,':',range,':',1,cpi); X = reshape(X,noBeams,noPulses); Y = abs(fft(X.'))'; Y = [Y(:,N/2+2:N) Y(:,1:N/2+1)]; YY = setm(YY,Y.',':',range,':',1,cpi); end end N = s(2); fd = linspace(0,(N - 1)/N*prf,N); fd = (-(N/2-1):N/2)*prf/N; vd = lambda/2*fd;else YY = XX;end%sigOut.dataType = 'RxRadarSigT';%sigOut.antenna = ant;sigOut = sig;sigOut.signals = YY;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -