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

📄 dbtex25.m

📁 雷达信号处理、或阵列信号处理中能够用上的重要的matlab工具箱——阵列信号处理工具箱
💻 M
字号:
function dbtex25%DBTEX25 An example of doppler filtering of radar signals using the function "pulfilt".%  Several methods for the filtering including Capon and MUSIC are used.%%   *  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 15:39:47 $ $Author: svabj $.%  $Revision: 1.4 $%*****************************************************************************% ----------------------------------------------------------------------- %% Definition of the antenna.% ----------------------------------------------------------------------- %lambda  = 0.03;             % wavelength.D   = 0.45*lambda;          % Element separation.noChannels   = 12;          % Number of digital antenna channels.recAnt = defant('isotropULA',[noChannels,D]);% ----------------------------------------------------------------------- %% Definition of the waveform.% ----------------------------------------------------------------------- %%pri = 1e-3;pri = 1e-4;noPulses = 32;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, 6000, [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);radarSig = sigsplitdim(radarSig, 1, 4, 5);% ----------------------------------------------------------------------- %% Signal processing and plotting.% ----------------------------------------------------------------------- %%----  Pulse compression ----radarSig=pulscomp(radarSig,pModulation);%ranAxis = (0:99)*150;ranAxis = (1:80)*150;%----  Beamforming : Conventional beamforming ----spaAxis = d2r(-90:5:90);%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 = 32;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);%plotPulAxis = sigFinal.freqPos;plotPulAxis = sigFinal.freqPos * lambda / 2; % Radial speed.%----  Plotting the signal  ----figure% Targets at ranges 19, 53 range bins.sigplot2(sigFinal,':',53,':',{...  'spaAxis', spaAxis, ...  'pulAxis', plotPulAxis, ...  '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);%plotPulAxis = sigFinal2.freqPos;plotPulAxis = sigFinal2.freqPos * lambda / 2; % Radial speed.%----  Plotting the signal  ----figuresigplot2(sigFinal2,':',':',1,{...  'spaAxis', spaAxis, ...  'pulAxis', plotPulAxis, ...  '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);%plotPulAxis = sigFinal2.freqPos;plotPulAxis = sigFinal2.freqPos * lambda / 2;  % Radial speed.%----  Plotting the signal  ----figuresigplot2(sigFinal2,':',':',1,{...  'spaAxis', spaAxis, ...  'pulAxis', plotPulAxis, ...  '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 , data from spat. dim. --%noFreqsOutHigh = 256;%pulAxis = genfreqaxis(0,prf,noFreqsOutHigh).';pulAxis = [(-prf/2):200:-2020, -2020:2.5:-1980, -1980:100:300, 300:2.5:400, 400:100:1300, 1300:2.5:1400, 1400:200:(prf/2)];sigFinal2 = pulfilt(radarSig, {  'method', 'capon',...  'model', {radarSig.antenna, radarSig.waveform},...  'freqChoice' pulAxis,...  'sampleDim', 3});spaAxis = r2d(sigFinal2.doaPos);%plotPulAxis = sigFinal2.freqPos;plotPulAxis = sigFinal2.freqPos * lambda / 2; % Radial speed.%----  Plotting the signal  ----figuresigplot2(sigFinal2,':',':',1,{...  'spaAxis', spaAxis, ...  'pulAxis', plotPulAxis, ...  'scaleType', dopScaleType});  %'ranAxis', ranAxis, ...ylabel('Doppler Frequency [Hz]')%ylabel('Radial speed [m/s]')%xlabel('Direction [degrees]')title('Capon Doppler filtering, without beamf., spa data')%shading('interp')%-- Doppler filtering : Capon , without beamforming , data from cpi. dim. --%pulAxis = genfreqaxis(0,prf,noFreqsOutHigh).';sigFinal2 = pulfilt(radarSig, {  'method', 'capon',...  'model', {radarSig.antenna, radarSig.waveform},...  'freqChoice' pulAxis,...  'sampleDim', 5});spaAxis = r2d(sigFinal2.doaPos);%plotPulAxis = sigFinal2.freqPos;plotPulAxis = sigFinal2.freqPos * lambda / 2; % Radial speed.%----  Plotting the signal  ----figuresigplot2(sigFinal2,':',':',1,{...  'spaAxis', spaAxis, ...  'pulAxis', plotPulAxis, ...  'scaleType', dopScaleType});  %'ranAxis', ranAxis, ...%ylabel('Doppler Frequency [Hz]')ylabel('Radial speed [m/s]')%xlabel('Direction [degrees]')title('Capon Doppler filtering, without beamf., cpi data')%shading('interp')%----  Doppler filtering : MUSIC , without beamforming ----%pulAxis = genfreqaxis(0,prf,noFreqsOut).';sigFinal2 = pulfilt(radarSig, 'music', {radarSig.antenna, radarSig.waveform},...  [], pulAxis);spaAxis = r2d(sigFinal2.doaPos);%plotPulAxis = sigFinal2.freqPos;plotPulAxis = sigFinal2.freqPos * lambda / 2; % Radial speed.%----  Plotting the signal  ----figuresigplot2(sigFinal2,':',':',1,{...  'spaAxis', spaAxis, ...  'pulAxis', plotPulAxis, ...  'scaleType', dopScaleType});  %'ranAxis', ranAxis, ...%ylabel('Doppler Frequency [Hz]')ylabel('Radial speed [m/s]')%xlabel('Direction [degrees]')title('MUSIC Doppler filtering, without beamforming')%shading('interp')%----  Doppler filtering : "dopplerfilt" , without beamforming ----pulAxis = genfreqaxis(0,prf,noFreqsOut).';sigFinal2 = dopplerfilt(radarSig, pulAxis);spaAxis = r2d(sigFinal2.doaPos);plotPulAxis = sigFinal2.freqPos * lambda / 2; % Radial speed.;%----  Plotting the signal  ----sigFinal2;figuresigplot2(sigFinal2,':',':',1,{...  'spaAxis', spaAxis, ...  'pulAxis', plotPulAxis, ...  'scaleType', dopScaleType});  %'ranAxis', ranAxis, ...%ylabel('Doppler Frequency [Hz]')ylabel('Radial speed [m/s]')%xlabel('Direction [degrees]')title('Doppler filtering with "dopplerfilt"')%shading('interp')%-- Doppler filtering : 'dataeigvec' , without beamforming , data from spat. dim. --%noFreqsOutHigh = 256;%pulAxis = genfreqaxis(0,prf,noFreqsOutHigh).';%pulAxis = [(-prf/2):200:-2020, -2020:2.5:-1980, -1980:100:300, 300:2.5:400, 400:100:1300, 1300:2.5:1400, 1400:200:(prf/2)];sigFinal2 = pulfilt(radarSig, {  'method', 'dataeigvec',...  'model', {radarSig.antenna, radarSig.waveform},...  'sampleDim', 3});spaAxis = r2d(sigFinal2.doaPos);%plotPulAxis = sigFinal2.freqPos;%plotPulAxis = sigFinal2.freqPos * lambda / 2; % Radial speed.%----  Plotting the signal  ----figuresigplot2(sigFinal2,':',':',1,{...  'spaAxis', spaAxis, ...  'scaleType', dopScaleType});  %'ranAxis', ranAxis, ...ylabel('Doppler Frequency [Hz]')%ylabel('Radial speed [m/s]')%xlabel('Direction [degrees]')title('Data Eigenvector Doppler filtering, without beamf., spa data')%shading('interp')%----  Doppler filtering : dfb2 , without beamforming ----PRI = radarSig.waveform.noRangeBins * radarSig.waveform.sampleTime;PRF = 1/PRI;[sigFinal2, vd] = dfb2(radarSig,PRF,noFreqsOut);spaAxis = r2d(sigFinal2.doaPos);%plotPulAxis = sigFinal2.freqPos;plotPulAxis = vd;%----  Plotting the signal  ----sigFinal2;figuresigplot2(sigFinal2,':',':',1,{...  'spaAxis', spaAxis, ...  'pulAxis', plotPulAxis, ...  '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 + -