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

📄 dbtex26.m

📁 阵列信号处理的工具箱
💻 M
字号:
function dbtex26%DBTEX26 An example of simultaneous beamforming ad doppler filtering of radar signals.%%Description:%  The filtering is performed with the function "spapulfilt". %  Both Capon and MUSIC methods are used. The needed correlation matrix%  is estimated from from several CPIs, which are obtained by splitting%  the number of pulses in a fewer number of pulses and several CPIs. As%  comparison, separate conventional nonadaptive beamforming and doppler%  filtering are calculated and displayed.%  Two targets at the same range and with DOAs and Doppler frequencies%  close to each other is simulated. A Barker 13 waveform is used and%  pulse compression is performed before any processing in DOA or Doppler.%%See Also:%  dbtex21, dbtex25%%   *  DBT, A Matlab Toolbox for Radar Signal Processing  *%  (c) FOA 1994-2000. See the file dbtright.m for copyright notice.%  Start        : 991101 Svante Bj鰎klund (svabj).%  Latest change: $Date: 2000/10/16 15:39:48 $ $Author: svabj $.%  $Revision: 1.4 $%*****************************************************************************% Script for simradarsig.!%clear all% ----------------------------------------------------------------------- %% 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-4;noPulses = 1024;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', 20, 1000, [d2r(25); 0], 20);trg2 = deftarget('swerling0', 15, 1000, [d2r(24); 0], 18);%trg3 = deftarget('swerling0', 12, 1000, [d2r(25); 0], 18);%trg4 = deftarget('swerling0', 3, 1000, [d2r(24); 0], 20);  % Targets at ranges 19 and 53 range bins.%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 noiseSrc1}, eye(2));%sources = defsources({trg1 trg2 trg3 trg4 noiseSrc1}, eye(4));%sources = defsources({trg1 trg3 noiseSrc1 clutterSrc1}, eye(2));% ----------------------------------------------------------------------- %% Simulation of radar signals.% ----------------------------------------------------------------------- %radarSig1 = simradarsig(recAnt, sources, waveform, pri);radarSig1 = sigsubix(radarSig1,':',1:25,':');figure,sigplot2(radarSig1,':',':',1)title('Radar signal before pulse compression.')  % The amplitude will depend on the pulse number because the two targets will interfere with each other, sometimes constructively and simetimes destructively.% ----------------------------------------------------------------------- %% Signal processing and plotting.% ----------------------------------------------------------------------- %%----  Pulse compression ----radarSig1=pulscomp(radarSig1,pModulation);%ranAxis = (0:99)*150;%ranAxis = (1:80)*150;ranAxis = [];%----  Split signal into several CPIs ----figure,sigplot2(radarSig1,':',':',1)title('Radar signal after pulse compression.')radarSig2 = sigsubix(radarSig1,':',19,':');radarSig2 = sigsplitdim(radarSig2, 1, 8, 5);%----  Beamforming : Conv. beamf., without Doppler filt. ----%spaAxis = d2r(-10:0.5:40);spaAxis = [];sigFinal = beamform(radarSig1,spaAxis,[],[],[]);spaAxis = r2d(sigFinal.doaPos);%----  Plotting the signal  ----figuresigplot2(sigFinal,1,':',':',{...  'ranAxis', ranAxis, ...  'spaAxis', spaAxis, ...  'scaleType', 'lin'});ylabel('Ranges [m]')xlabel('Direction [degrees]')title('Conventional beamforming')%shading('interp')%----  Doppler filtering : "dopplerfilt" , without beamforming ----dopScaleType = 'lin';noFreqsOut = noPulses;prf = 1/pri;pulAxis = genfreqaxis(0,prf,noFreqsOut).';sigFinal2 = dopplerfilt(radarSig1, 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')%----  Beamforming and Doppler filtering : Conv. filt. ----if (0)%pulAxis = genfreqaxis(0,prf,noFreqsOut).';sigFinal2 = spapulfilt(radarSig1, {  'method', 'cbf',...  'model', {radarSig1.antenna, radarSig1.waveform},...  'sampleDim', 5});spaAxis = r2d(sigFinal2.doaPos);%plotPulAxis = sigFinal2.freqPos;plotPulAxis = sigFinal2.freqPos * lambda / 2; % Radial speed.%----  Plotting the signal  ----figuresigplot2(sigFinal2,':',19,':',{...  'spaAxis', spaAxis, ...  'pulAxis', plotPulAxis, ...  'scaleType', dopScaleType});  %'ranAxis', ranAxis, ...%ylabel('Doppler Frequency [Hz]')ylabel('Radial speed [m/s]')%xlabel('Direction [degrees]')title('Conv. space-pulse filtering, without beamforming')%shading('interp')end%if (0)%----  Beamforming and Doppler filtering : Capon. ----spaAxisIn = d2r(23.5:0.05:25.5);pulAxisIn = (17.5:0.1:20.5)*2/lambda;sigFinal2 = spapulfilt(radarSig2, {  'method', 'capon',...  'model', {radarSig2.antenna, radarSig2.waveform},...  'doaFreqChoice', {spaAxisIn, pulAxisIn},...  '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 space-pulse filtering, without beamforming')%shading('interp')%----  Beamforming and Doppler filtering : MUSIC. ----spaAxisIn = d2r(23.5:0.05:25.5);pulAxisIn = (17.5:0.1:20.5)*2/lambda;sigFinal2 = spapulfilt(radarSig2, {  'method', 'music',...  'model', {radarSig2.antenna, radarSig2.waveform},...  'doaFreqChoice', {spaAxisIn, pulAxisIn},...  '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('MUSIC space-pulse estimation, without beamforming')%shading('interp')%End Of File

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -