📄 simbutclk.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 + -