📄 dbtex23.m
字号:
function dbtex23%DBTEX23 An example of doppler filtering of radar signals.%% * DBT, A Matlab Toolbox for Radar Signal Processing *% (c) FOA 1994-2000. See the file dbtright.m for copyright notice.% Start : 991012 Svante Bj鰎klund (svabj).% Latest change: $Date: 2000/10/16 18:56:32 $ $Author: svabj $.% $Revision: 1.1 $%*****************************************************************************% ----------------------------------------------------------------------- %% Definition of the antenna.% ----------------------------------------------------------------------- %lambda = 0.03; % wavelength.D = 0.45*lambda; % Element separation.%noChannels = 12; % Number of digital antenna channels.noChannels = 48; % Number of digital antenna channels.recAnt = defant('isotropULA',[noChannels,D]);% ----------------------------------------------------------------------- %% Definition of the waveform.% ----------------------------------------------------------------------- %%pri = 1e-3;pri = 1e-4;noPulses = 24;noCPI = 1;sampleTime = 1e-6; % SubPulseLength [s]noRangeBins = round(pri / sampleTime);noRangeBins = 100;pModulation = getmod('barker','13'); % Barker-13 has sidelobes 1/13 of the main peak.%pModulation =[];waveform = defwave(lambda, noRangeBins, noPulses, pModulation, sampleTime);% ----------------------------------------------------------------------- %% Definition of the sources.% ----------------------------------------------------------------------- %%target = deftarget(trgType, trgPower, trgRange, trgDOA, trgVel);trg1 = deftarget('swerling0', 10^1.2, 6000, [d2r(25); 0], 20);trg2 = deftarget('swerling0', 10^0.6, 1000, [d2r(18); 0], -30);trg3 = deftarget('swerling0', 10^0.8, 730000, [d2r(-3); 0], 5);%noiseSrc = defnoise(noiseType, noisePower);noiseSrc1 = defnoise('Gaussian', 0.3, eye(noChannels));%clutterdef = defclutter(clutterType, clutterTypeParam, clutterPower, clutterPatchDOAs, transAnt)%clutterSrc1 = defclutter('MIT-LCE', {6000 4 50}, 10, d2r(-30):0.01:d2r(30));%srcDef = defsources(srcList, trgCorrMx)%sources = defsources({trg1 trg2 trg3}, eye(3));sources = defsources({trg1 trg2 trg3 noiseSrc1}, eye(3));%sources = defsources({trg2 noiseSrc1}, eye(1));%sources = defsources({trg1 trg2 trg3 noiseSrc1 clutterSrc1}, eye(3));% ----------------------------------------------------------------------- %% Simulation of radar signals.% ----------------------------------------------------------------------- %radarSig = simradarsig(recAnt, sources, waveform, pri);% ----------------------------------------------------------------------- %% Signal processing and plotting.% ----------------------------------------------------------------------- %%---- Pulse compression ----radarSig=pulscomp(radarSig,pModulation);%ranAxis = (0:99)*150;ranAxis = (1:80)*150;%---- Beamforming : Conventional beamforming ----%spaAxis = d2r(-10:0.5:40);spaAxis = [];sigFinal = beamform(radarSig,spaAxis,[],'taylor',50);spaAxis = r2d(sigFinal.doaPos);%---- Plotting the signal ----sigFinal;figure%13:25sigplot2(sigFinal,1,50:60,':',{... 'spaAxis', spaAxis, ... 'scaleType', 'lin'}); %'ranAxis', ranAxis, ...%ylabel('Ranges [m]')xlabel('Direction [degrees]')title('Conventional beamforming, 50 dB Taylor')%shading('interp')dopScaleType = 'lin';noFreqsOut = 96;prf = 1/pri;%---- Doppler filtering : Conventional filtering ----pulAxis = genfreqaxis(0,prf,noFreqsOut).';sigFinal = pulfilt(sigFinal, 'cbf', {radarSig.antenna, radarSig.waveform},... [], pulAxis);spaAxis = r2d(sigFinal.doaPos);%pulAxis = sigFinal.freqPos;pulAxis = sigFinal.freqPos * lambda / 2; % Radial speed.%---- Plotting the signal ----figure% Targets at ranges 19, 53 range bins.sigplot2(sigFinal,':',53,':',{... 'spaAxis', spaAxis, ... 'pulAxis', pulAxis, ... 'scaleType', dopScaleType}); %'ranAxis', ranAxis, ...%ylabel('Doppler Frequency [Hz]')ylabel('Radial speed [m/s]')xlabel('Direction [degrees]')title('Conventional Doppler filtering, with beamforming')%shading('interp')%---- Doppler filtering : Conventional filtering , without beamforming ----pulAxis = genfreqaxis(0,prf,noFreqsOut).';sigFinal2 = pulfilt(radarSig, 'cbf', {radarSig.antenna, radarSig.waveform},... [], pulAxis);spaAxis = r2d(sigFinal2.doaPos);%pulAxis = sigFinal2.freqPos;pulAxis = sigFinal2.freqPos * lambda / 2; % Radial speed.%---- Plotting the signal ----figuresigplot2(sigFinal2,':',':',1,{... 'spaAxis', spaAxis, ... 'pulAxis', pulAxis, ... 'scaleType', dopScaleType}); %'ranAxis', ranAxis, ...%ylabel('Doppler Frequency [Hz]')ylabel('Radial speed [m/s]')%xlabel('Direction [degrees]')title('Conventional Doppler filtering, without beamforming')%shading('interp')%---- Doppler filtering : FFT , without beamforming ----pulAxis = genfreqaxis(0,prf,noFreqsOut).';sigFinal2 = pulfilt(radarSig, 'fft', {radarSig.antenna, radarSig.waveform},... [], [],[],[],[],96);spaAxis = r2d(sigFinal2.doaPos);%pulAxis = sigFinal2.freqPos;pulAxis = sigFinal2.freqPos * lambda / 2; % Radial speed.%---- Plotting the signal ----figuresigplot2(sigFinal2,':',':',1,{... 'spaAxis', spaAxis, ... 'pulAxis', pulAxis, ... 'scaleType', dopScaleType}); %'ranAxis', ranAxis, ...%ylabel('Doppler Frequency [Hz]')ylabel('Radial speed [m/s]')%xlabel('Direction [degrees]')title('FFT Doppler filtering')%shading('interp')%---- Doppler filtering : Capon , without beamforming ----pulAxis = genfreqaxis(0,prf,384).';sigFinal2 = pulfilt(radarSig, { 'method', 'capon',... 'model', {radarSig.antenna, radarSig.waveform},... 'freqChoice' pulAxis,... 'sampleDim', 3});spaAxis = r2d(sigFinal2.doaPos);%pulAxis = sigFinal2.freqPos;pulAxis = sigFinal2.freqPos * lambda / 2; % Radial speed.%---- Plotting the signal ----figuresigplot2(sigFinal2,':',':',1,{... 'spaAxis', spaAxis, ... 'pulAxis', pulAxis, ... 'scaleType', dopScaleType}); %'ranAxis', ranAxis, ...%ylabel('Doppler Frequency [Hz]')ylabel('Radial speed [m/s]')%xlabel('Direction [degrees]')title('Capon Doppler filtering, without beamforming')%shading('interp')%---- Doppler filtering : MUSIC , without beamforming ----if (0)pulAxis = genfreqaxis(0,prf,noFreqsOut).';sigFinal2 = pulfilt(radarSig, 'music', {radarSig.antenna, radarSig.waveform},... [], pulAxis);spaAxis = r2d(sigFinal2.doaPos);%pulAxis = sigFinal2.freqPos;pulAxis = sigFinal2.freqPos * lambda / 2; % Radial speed.%---- Plotting the signal ----figuresigplot2(sigFinal2,':',':',1,{... 'spaAxis', spaAxis, ... 'pulAxis', pulAxis, ... 'scaleType', dopScaleType}); %'ranAxis', ranAxis, ...%ylabel('Doppler Frequency [Hz]')ylabel('Radial speed [m/s]')%xlabel('Direction [degrees]')title('Capon Doppler filtering, without beamforming')%shading('interp')end%if (0)%---- Doppler filtering : dfb2 , without beamforming ----PRI = radarSig.waveform.noRangeBins * radarSig.waveform.sampleTimePRF = 1/PRI;[sigFinal2, vd] = dfb2(radarSig,PRF,noFreqsOut);spaAxis = r2d(sigFinal2.doaPos);%pulAxis = sigFinal2.freqPos;pulAxis = vd;%---- Plotting the signal ----sigFinal2;figuresigplot2(sigFinal2,':',':',1,{... 'spaAxis', spaAxis, ... 'pulAxis', pulAxis, ... 'scaleType', dopScaleType}); %'ranAxis', ranAxis, ...%ylabel('Doppler Frequency [Hz]')ylabel('Radial speed [m/s]')%xlabel('Direction [degrees]')title('Doppler filtering with dfb2')%shading('interp')%End Of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -