📄 tayloro.txt
字号:
动态优化窗函数。
程序中,fit数组为综合指标。停止准则是设定的叠带次数。程序结束时,如仍不满足指标,则将最佳结果代替初始参数,重新执行程序。以下是程序清单:
function tayloro
% 优化组合参数 ,用动态优选法优化
clear
disp('输入参数');
B=input( '带宽 (MHZ):');T=input('时宽(us):');fc=input('抽样率(*B):');
delt=1/fc;N=T/delt;M=5;
for z=1:50 % 设定总的叠代次数为50
g1(z)=1+(rand(1)-1)/10;g2(z)=1+(rand(1)-1)/10;g3(z)=1+(rand(1)-1)/10;g4(z)=1+(rand(1)-1)/10;g5(z)=1+(rand(1)-1)/10;
a=[0.42825,0.0002,0.00427,-0.00193,0.00074];
a(1)=a(1)*g1(z);a(2)=a(2)*g2(z);a(3)=a(3)*g3(z);a(4)=a(4)*g4(z);a(5)=a(5)*g5(z); % 在窗函数附近选定一组初始值
N1=1;
%以下求频率调制函数f(t)
f(1)=-B/2;t1(1)=0;ff=-B/2; t(1)=0;tt=0;
for i1=-N/2:(N/2-1)
m=i1+N/2+1;
t1(m+1)=t1(m)+delt;
while (t1(m+1)-tt)>=0.0001,
ff=ff+0.0001;
tt0=0;
for j1=1:5
tt0=tt0+a(j1)*T/(pi*j1)*sin(2*pi*j1*ff/B);
end
tt=T/2+ff*T/B+tt0;
end
f(m+1)=ff;
t(m+1)=tt;
end
t(N+1)=T;
f(N+1)=B/2;
plot(t,f)
%求频率调制函数f(t)完毕,以下求I、W支路信号及脉压输出
w(1)=0;
for m=1:N
w(m+1)=w(m)+2*pi*f(m+1)*delt;
end
for m=1:N+1
F1(m)=cos(w(m));
F2(m)=sin(w(m));
F(m)=exp(j*w(m));
end
xout=abs(xcorr(F,'coeff'));%pulse compress output and unitary
peak0=max(xout);
%求脉压输出完毕,以下求峰值点及主副比
for n=1:2*N+1 %求峰值点
if peak0==xout(n)
peakpoint0=n;
else
end
end
n=peakpoint0;
while 20*log10(xout(n))+3>=0.00001
n=n+1;
end
peakwide3=2*(n-peakpoint0)*delt
x1=xout(n);
x2=xout(n+1);
while x1>=x2
n=n+1;
x1=xout(n);
x2=xout(n+1);
end
for i=n:2*N+1
x3(i-n+1)=xout(i);
end
peak1(z)=max(x3);
if peak1(z)<=0.015 & peakwide3<0.85
fit(z)=100/(100*peak1(z)+peakwide3);%fit为综合指标
else
fit(z)=0;
end
end
for i=1:50
if fit(i)==max(fit)
z=i %寻找最好的指标,确定最佳参数
else
end
end
c1=g1(z)
c2=g2(z)
c3=g3(z)
max(fit)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -