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

📄 simbutclk.m

📁 雷达信号处理、或阵列信号处理中能够用上的重要的matlab工具箱——阵列信号处理工具箱
💻 M
字号:
function simbutclk();
%%     *    DBT, A Matlab Toolbox for Radar Signal Processing    *% (c) FOA 1994-2000. See the file dbtright.m for copyright notice.%%    Start : xxxxx NNNNN (nnnn).%    Latest change: $Date: 2000/10/16 15:39:26 $ $Author: svabj $.%    $Revision: 1.2 $% *****************************************************************************
root = findobj('Tag','maingui');


% Read variables from input fields

tgtCnt = str2num(get(findobj(root,'Tag','Num Of Tgts'),'String'));

eType = getErrType(get(findobj(root,'Tag','Model Error Type'),'Value'));
eInit = str2num(get(findobj(root,'Tag','Init Error Level'),'String'));
eFin  = str2num(get(findobj(root,'Tag','Final Error Level'),'String'));
eCnt  = str2num(get(findobj(root,'Tag','Num Of Err'),'String'));

noSmpl = str2num(get(findobj(root,'Tag','Num Of Time-Smpls'),'String'));
noMCRuns = str2num(get(findobj(root,'Tag','Num Of MC-Runs'),'String'));
spectrType1 = getBFMethod(get(findobj(root,'Tag','BFMethod-1'),'Value'));
spectrType2 = getBFMethod(get(findobj(root,'Tag','BFMethod-2'),'Value'));

angCnt    = str2num(get(findobj(root,'Tag','Angle Count'),'String'));
initAng   = str2num(get(findobj(root,'Tag','Init Ang'),'String'));
finAng    = str2num(get(findobj(root,'Tag','Final Angle'),'String'));
centerAng = str2num(get(findobj(root,'Tag','Centre Angle'),'String'));
noisePwr = str2num(get(findobj(root,'Tag','NoisePwr'),'String'));
clutterPwr = str2num(get(findobj(root,'Tag','ClutPwr'),'String'));
clutterType = get(findobj(root,'Tag','ClutType'),'String');

smplPoints = (centerAng-finAng*tgtCnt : initAng/4 : centerAng+finAng*tgtCnt);


TgtType1 = getTgtType(get(findobj(root,'Tag','TgtType-1'),'Value'));
TgtPwr1 = str2num(get(findobj(root,'Tag','TgtPwr-1'),'String'));
TgtVel1 = str2num(get(findobj(root,'Tag','TgtVel-1'),'String'));
TgtType2 = getTgtType(get(findobj(root,'Tag','TgtType-2'),'Value'));
TgtPwr2 = str2num(get(findobj(root,'Tag','TgtPwr-2'),'String'));
TgtVel2 = str2num(get(findobj(root,'Tag','TgtVel-2'),'String'));
TgtType3 = getTgtType(get(findobj(root,'Tag','TgtType-3'),'Value'));
TgtPwr3 = str2num(get(findobj(root,'Tag','TgtPwr-3'),'String'));
TgtVel3 = str2num(get(findobj(root,'Tag','TgtVel-3'),'String'));
TgtType4 = getTgtType(get(findobj(root,'Tag','TgtType-4'),'Value'));
TgtPwr4 = str2num(get(findobj(root,'Tag','TgtPwr-4'),'String'));
TgtVel4 = str2num(get(findobj(root,'Tag','TgtVel-4'),'String'));
TgtType5 = getTgtType(get(findobj(root,'Tag','TgtType-5'),'Value'));
TgtPwr5 = str2num(get(findobj(root,'Tag','TgtPwr-5'),'String'));
TgtVel5 = str2num(get(findobj(root,'Tag','TgtVel-5'),'String'));
TgtType6 = getTgtType(get(findobj(root,'Tag','TgtType-6'),'Value'));
TgtPwr6 = str2num(get(findobj(root,'Tag','TgtPwr-6'),'String'));
TgtVel6 = str2num(get(findobj(root,'Tag','TgtVel-6'),'String'));


range1 = 6000;


% Define Sources


%target = deftarget(trgType, trgPower, trgRange, trgDOA, trgVel);
switch tgtCnt
   case 1
      tgt1 = deftarget(TgtType1, TgtPwr1, range1, [0; 0], TgtVel1);
      tgts = {tgt1};
   case 2
      tgt1 = deftarget(TgtType1, TgtPwr1, range1, [0; 0], TgtVel1);
      tgt2 = deftarget(TgtType2, TgtPwr2, range1, [0; 0], TgtVel2);
      tgts = {tgt1 tgt2};
   case 3
      tgt1 = deftarget(TgtType1, TgtPwr1, range1, [0; 0], TgtVel1);
      tgt2 = deftarget(TgtType2, TgtPwr2, range1, [0; 0], TgtVel2);
      tgt3 = deftarget(TgtType3, TgtPwr3, range1, [0; 0], TgtVel3);
      tgts = {tgt1 tgt2 tgt3};
   case 4
      tgt1 = deftarget(TgtType1, TgtPwr1, range1, [0; 0], TgtVel1);
      tgt2 = deftarget(TgtType2, TgtPwr2, range1, [0; 0], TgtVel2);
      tgt3 = deftarget(TgtType3, TgtPwr3, range1, [0; 0], TgtVel3);
      tgt4 = deftarget(TgtType4, TgtPwr4, range1, [0; 0], TgtVel4);
      tgts = {tgt1 tgt2 tgt3 tgt4};
   case 5
      tgt1 = deftarget(TgtType1, TgtPwr1, range1, [0; 0], TgtVel1);
      tgt2 = deftarget(TgtType2, TgtPwr2, range1, [0; 0], TgtVel2);
      tgt3 = deftarget(TgtType3, TgtPwr3, range1, [0; 0], TgtVel3);
      tgt4 = deftarget(TgtType4, TgtPwr4, range1, [0; 0], TgtVel4);
      tgt5 = deftarget(TgtType5, TgtPwr5, range1, [0; 0], TgtVel5);
      tgts = {tgt1 tgt2 tgt3 tgt4 tgt5};
   case 6
      tgt1 = deftarget(TgtType1, TgtPwr1, range1, [0; 0], TgtVel1);
      tgt2 = deftarget(TgtType2, TgtPwr2, range1, [0; 0], TgtVel2);
      tgt3 = deftarget(TgtType3, TgtPwr3, range1, [0; 0], TgtVel3);
      tgt4 = deftarget(TgtType4, TgtPwr4, range1, [0; 0], TgtVel4);
      tgt5 = deftarget(TgtType5, TgtPwr5, range1, [0; 0], TgtVel5);
      tgt6 = deftarget(TgtType6, TgtPwr6, range1, [0; 0], TgtVel6);
      tgts = {tgt1 tgt2 tgt3 tgt4 tgt5 tgt6};
end



%noiseSrc = defnoise(noiseType, noisePower, corrMx);
noiseSrc = defnoise('Gaussian', noisePwr);

%clutterdef = defclutter(clutterType, clutterTypeParam, clutterPower, clutterPatchDOAs, transAnt)
clutterSrc = defclutter('MIT-LCE', {range1 4 50}, clutterPwr, d2r(-30):0.01:d2r(30));

%srcDef = defsources(srcList, trgCorrMx)
switch tgtCnt
  case 0
    sources = defsources({noiseSrc clutterSrc});
  case 1
    sources = defsources({tgt1 noiseSrc clutterSrc});
  case 2
    sources = defsources({tgt1 tgt2 noiseSrc clutterSrc});
  case 3
    sources = defsources({tgt1 tgt2 tgt3 noiseSrc clutterSrc});
  case 4
    sources = defsources({tgt1 tgt2 tgt3 tgt4 noiseSrc clutterSrc});
  case 5
    sources = defsources({tgt1 tgt2 tgt3 tgt4 tgt5 noiseSrc clutterSrc});
  case 6
    sources = defsources({tgt1 tgt2 tgt3 tgt4 tgt5 tgt6 noiseSrc clutterSrc});
end


% Put together appropriate record variables


simParam.eType = eType;
simParam.errLevelInit  = eInit;
simParam.errLevelFinal = eFin;
simParam.errLevelCount = eCnt;
simParam.noSmpl = noSmpl;
simParam.smplPts = smplPoints;
simParam.noMCRuns = noMCRuns;
simParam.spectrType1 = spectrType1;
simParam.spectrType2 = spectrType2;

srcParams.diffAngleCnt = angCnt;
srcParams.initDiffAngle = d2r(initAng);
srcParams.finalDiffAngle = d2r(finAng);
srcParams.centerAngle = d2r(centerAng);


% Call moderr simulation routine


res = moderr(simParam, srcParams, sources);
hold on
size(res.resProb1);
for errIdx = 1:length(res.errList)
   plot(r2d(res.tgtAngles),res.resProb1(errIdx,:),'r-')
   plot(r2d(res.tgtAngles),res.resProb2(errIdx,:),'b.')
end %for
%legend(spectrType1,spectrType2)
hold off
%

function tgtType = getTgtType(choice)

switch choice
case 1
   tgtType = 'swerling0';
case 2
   tgtType = 'swerling1';
case 3
   tgtType = 'swerling2';
case 4
   tgtType = 'swerling3';
case 5
   tgtType = 'swerling4';
end

%tgtType = 'swerling0'; % swerling0 only so far


function method = getBFMethod(choice)

switch choice
case 1
   method = 'cbf';
case 2
   method = 'music';
case 3
   method = 'minnorm';
case 4
   method = 'capon';
end

tgtType = 'swerling0'; % swerling0 only so far

function eType = getErrType(choice)

switch choice
case 1
   eType = 'positionError';
case 2
   eType = 'tgtCntError';
case 3
   eType = 'chPhError';
case 4
   eType = 'chAmpError';
end

⌨️ 快捷键说明

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