高级迭代法(AIA)和通用相位提取(GPSA)算法对比-----MATLAB

%% *******************苏德志论文仿真********************

%                AIA算法和GPSA算法仿真对比(随机步长,移相未知)

%                作者:James_Ray_Murphy

%                参考文献:高精度干涉测量随机移相技术研究_苏志德

%****************************%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;clc;close all;
M = 4;
for k = 1:M
    delta(k) = (k-1)*pi/2 + (2*rand-1)*pi/4;
end
%delta = [pi/10 pi/2-pi/7 pi+pi/7 pi*3/2-pi/8];
N = 200;
xmax = 1;
ymax = 1;
x = linspace(-xmax,xmax,N);
y = linspace(-ymax,ymax,N);
[X,Y] = meshgrid(x,y);
A = 145;%*exp(-1.8*(X.^2+Y.^2));
B = 100;%*exp(-0.2*(X.^2+Y.^2));
phi = 2*pi*(X.^2+Y.^2);
phi_wrapped = angle(exp(j*phi));
figure(1)
surf(phi,'FaceColor','interp', 'EdgeColor','none','FaceLighting','phong');
camlight left, axis tight
xlabel('X/Pixels','FontSize',14);ylabel('Y/Pixels','FontSize',14);zlabel('Phase/Radians','FontSize',14);title('初始相位图','FontSize',14)
set(figure(1),'name','Initial Phase 3D','Numbertitle','off');


I0 = A + B.*cos(phi+delta(1));
I1 = A + B.*cos(phi+delta(2));
I2 = A + B.*cos(phi+delta(3));
I3 = A + B.*cos(phi+delta(4));
figure(2);subplot(221);imshow(I0,[]);title('四步非等步长相位图delta=0+noise');
subplot(222);imshow(I1,[]);title('四步非等步长相位图delta=pi/2+noise');
subplot(223);imshow(I2,[]);title('四步非等步长相位图delta=pi+noise');
subplot(224);imshow(I3,[]);title('四步非等步长相位图delta=3pi/2+noise');
%% *********************GPSA算法相位提取***********************
%                   P = K-1.*L


M = 4;
cos_delta = 0;
sin_delta = 0;
sin_cos_delta = 0;
cos_sin_delta = 0;
cos_2_delta = 0;
sin_2_delta = 0;
L1 = 0; L2 = 0; L3 = 0;
delta_G = [0 pi/2 pi 3*pi/2];
tic
for k = 1:M
    cos_delta = cos_delta + cos(delta_G(k));
    sin_delta = sin_delta + sin(delta_G(k));
    cos_sin_delta = cos_sin_delta + cos(delta_G(k))*sin(delta_G(k));
    sin_cos_delta = sin_cos_delta + sin(delta_G(k))*cos(delta_G(k));
    sin_2_delta = sin_2_delta + sin(delta_G(k))^2;
    cos_2_delta = cos_2_delta + cos(delta_G(k))^2;
end
K = [M cos_delta sin_delta;cos_delta cos_2_delta cos_sin_delta;
    sin_delta sin_cos_
  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
人工免疫算法AIA)和遗传算法(GA)都是常用的优化算法,在解决复杂问题时具有较好的效果。下面将从几个方面对这两种算法MATLAB中的对比进行分析。 首先,人工免疫算法和遗传算法算法的基本思想上存在一定的区别。人工免疫算法的灵感来源于人体免疫系统,通过模拟免疫系统的演化过程以实现优化的目标;而遗传算法则主要模拟生物遗传和进化的过程,通过选择、交叉和变异等操作来搜索最优解。 其次,在优化问题的适应度评估上,人工免疫算法和遗传算法也有一定的差异。人工免疫算法通常使用抗体浓度来表示解的适应度,进而根据浓度的大小进行选择和变异操作;而遗传算法一般使用适应度函数来度量解的优劣。 此外,人工免疫算法和遗传算法在演化过程中的操作也存在差异。人工免疫算法通过克隆、变异和选择等操作来不断改进解的质量;而遗传算法则通过选择、交叉和变异等操作来不断搜索全局最优解。 最后,在MATLAB编程实现方面,人工免疫算法和遗传算法都可以使用MATLAB工具箱或自行编程实现。其中,MATLAB提供了较完整的遗传算法工具箱,开发者可以简单地调用函数进行遗传算法的优化;而人工免疫算法的实现相对较为复杂,需要开发者自行编写程序。 总的来说,人工免疫算法和遗传算法在优化问题的求解上有一定的异同。选择使用哪种算法要根据具体问题的特点和求解效果进行综合考虑。在MATLAB中,两种算法的实现都相对较为简便,可以根据个人需求选择合适的算法进行求解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值