📄 a9.m
字号:
function coef=corrcoef1(x,y) % 计算x和y的相关系数函数,x为单序列,y为复序列
[m,n]=size(y);
coef=zeros(m,1);
for i=1:m
coef(i)=sum(abs(conv(x,y(i,:))))/sqrt( sum(abs(conv(x,x)))*sum(abs(conv(y(i,:),y(i,:)))) );
end
function class=recognite(signal,inform) ; % 目标识别函数
% signal为待识别目标的雷达信号;inform为目标识别数据库中的模板信号
NIND = 20; % 个体数目(Number of individuals)
MAXGEN =200; % 最大遗传代数(Maximum number of generations)
Type=10;Angle=20; % 目标类型10bit,雷达视角20bit
PRECI = Type + Angle; % 变量的二进制位数(Precision of variables)
GGAP = 0.9; % 代沟(Generation gap)
FieldD = [PRECI;1;NIND;1;0;1;1]; % 区域描述器(Build field descriptor)
Chrom = crtbp(NIND, PRECI); % 创建初始种群
gen = 0;
v=bs2rv(Chrom,FieldD); % 种群十进制转换
class=round(v); % 取整
ObjV = corrcoef1(signal,inform(class,:)); % 计算相关系数
trace=zeros(MAXGEN); % 性能跟踪
while gen < MAXGEN,
FitnV = ranking(-ObjV); % 分配适应度值(Assign fitness values)
SelCh = select('sus', Chrom, FitnV, GGAP); % 选择
SelCh = recombin('xovsp',SelCh,0.7); % 重组
SelCh = mut(SelCh); % 变异
v=bs2rv(SelCh,FieldD);
class=round(v);
ObjVSel = corrcoef1(signal,inform(class,:)); % 计算目标函数相关系数
[Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); % 重插入
gen = gen+1;
trace(gen)=max(ObjV);
end
% 输出最优解及其序号,并在目标函数图象中标出,Y为最优解,I为种群的序号
[Y,I]=max(ObjV);
Type=round(bs2rv(Chrom(I,1:Type),FieldD)); % 目标类型编号
Angle=round(bs2rv(Chrom(I,Type+1:Angle),FieldD)); % 雷达视角编号
plot(trace);hold on;
plot(trace,'.'); grid;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -