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

📄 calculateobjectvalue.asv

📁 对于天线的设计和应用进行了仿真,并进行了优化处理
💻 ASV
字号:
function[Fitness]=CalculateObjectValue(Phi,M,N)
dr=0.8;
k=2*pi*dr;
Value=ones(M,201);
MaxValue=zeros(M,1);
Index=zeros(M,1);
% find the max value and it's index
s=0;
for j=1:M
    for f=-1:0.01:1
        s=s+1;
        for n=1:N
            Value(j,s)=Value(j,s)+exp(i*(k*f*n+Phi(j,n)));
        end
        Value(j,s)=abs(Value(j,s));
        if Value(j,1)>MaxValue(j,s)
            MaxValue(j,1)=Value(j,s);
            Index(j,1)=f;
        end
        Value(j,s)=1;
    end
end

Lmin=MaxValue;
LIndex=zeros(M,1);
Value=zeros(M,1);
Value1=ones(M,1);
% find the first minimal value on the left
for j=1:M
    for f=Index(j,1):-0.01:-1
           for n=1:N
                Value1(j,1)=Value1(j,1)+exp(i*(k*f*n+Phi(j,n)));
            end
            
            Value(j,1)=abs(Value1(j,1));
            if Value(j,1)<=Lmin(j,1)
               Lmin(j,1)=Value(j,1);
           else
               break;
           end
            Value1(j,1)=1;
            LIndex(j,1)=f;          
    end
end
% find the first minimal value on the right
Rmin=MaxValue;
RIndex=zeros(M,1);
Value=zeros(M,1);
Value1=ones(M,1);
for j=1:M
    for f=Index(j,1):0.01:1
           for n=1:N
                Value1(j,1)=Value1(j,1)+exp(i*(k*f*n+Phi(j,n)));
            end
            Value(j,1)=abs(Value1(j,1));
            if Value(j,1)<=Rmin(j,1)
               Rmin(j,1)=Value(j,1);
           else
               break;
           end
            Value1(j,1)=1;
            RIndex(j,1)=f; 
        end
end

Value=ones(M,1);
Lmax=zeros(M,1);
for j=1:M
    for f=-1:0.01:LIndex(j,1)
        for n=1:N
            Value(j,1)=Value1(j,1)+exp(i*(k*f*n+Phi(j,n)));
        end
        Value(j,1)=abs(Value(j,1));
        if Lmax(j,1)<Value(j,1)
            Lmax(j,1)=Value(j,1);
        end
        Value(j,1)=1;
    end
end

Value=ones(M,1);
Rmax=zeros(M,1);
for j=1:M
    for f=-1:0.01:RIndex(j,1)
        for n=1:N
            Value(j,1)=Value1(j,1)+exp(i*(k*f*n+Phi(j,n)));
        end
        Value(j,1)=abs(Value(j,1));
        if Rmax(j,1)<Value(j,1)
            Rmax(j,1)=Value(j,1);
        end
        Value(j,1)=1;
    end
end

% the Fitness value
LV=Lmax./MaxValue;
RV=Rmax./MaxValue;
dBLV=10*log10(LV);
dBRV=10*log10(RV);
V=ones(M,1);
Fitness=V.*28-((max(0,(dBLV+17))+max(0,(dBRV+11))));
RIndex
LIndex

⌨️ 快捷键说明

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