自聚焦算法

自聚焦算法

1.算法基本原理和推导

       自聚焦算法。假设一幅退化的雷达图像可以表示为 g ( t m , t n ) = I ( t m , t n ) + j ⋅ Q ( t m , t n ) g(t_m, t_n)=I(t_m, t_n)+j\cdot Q(t_m,t_n) g(tm,tn)=I(tm,tn)+jQ(tm,tn)。其中,考虑这一种典型的情况,图像的退化,是由于横向频率域中有误差相位引起的,有
g ( t m , t n ) = ∫ G ( t m , t n ) ⋅ e j ⋅ ϕ ( f n ) ⋅ e j 2 π f n t n d f n (1) g(t_m,t_n)=\int{G(t_m,t_n)\cdot e^{j\cdot \phi (f_n)}\cdot e^{j2\pi f_nt_n}df_n} \tag{1} g(tm,tn)=G(tm,tn)ejϕ(fn)ej2πfntndfn(1)
作为最简单的一种情况,我们认为,误差函数 ϕ ( f n ) \phi(f_n) ϕ(fn)是一个二次函数,有
ϕ ( f n ) = a ⋅ f n 2 (2) \phi(f_n) = a\cdot f_n^2\tag{2} ϕ(fn)=afn2(2)
对于我们而言,找到对应的 a a a就可以解决问题。
       实际过程中,我们采用图像熵来衡量图像的质量,熵值定义为
E = − ∑ m = 1 M ∑ n = 1 N ( ∣ g ( m , n ) ∣ 2 E n ⋅ l o g 2 ∣ g ( m , n ) ∣ 2 E n ) (3) E = -\sum_{m=1}^{M}\sum_{n=1}^{N}(\frac{{| g (m,n)|}^2}{E_n}\cdot log_2{}\frac{{|g (m,n)|}^2}{E_n}) \tag{3} E=m=1Mn=1N(Eng(m,n)2log2Eng(m,n)2)(3)
其中,
E n = ∑ m = 1 M ∑ n = 1 N ∣ g ( m , n ) ∣ 2 (4) E_n = \sum_{m=1}^{M}\sum_{n=1}^{N}|g(m,n)|^2\tag{4} En=m=1Mn=1Ng(m,n)2(4)
g ( m , n ) g(m,n) g(m,n)是对 g ( t m , t n ) g(t_m,t_n) g(tm,tn)离散化的结果。
        对于函数的导数,我们可以采用近似
f ′ ( x ) = lim ⁡ Δ → 0 f ( x + Δ x ) − f ( x ) Δ x ≈ f ( x + Δ x ) − f ( x ) Δ x (5) f^{'}(x)=\lim_{\Delta \rightarrow 0}\frac{f(x+\Delta x)-f(x)}{\Delta x}\approx \frac{f(x+\Delta x)-f(x)}{\Delta x}\tag{5} f(x)=Δ0limΔxf(x+Δx)f(x)Δxf(x+Δx)f(x)(5)

2.级数反演法原理

        假设一函数 f ( x ) f(x) f(x) x 0 x_0 x0处可以用泰勒级数展开为:
f ( x ) = ∑ n = 0 ∞ 1 n ! f n ( x 0 ) ( x − x 0 ) n f(x)=\sum_{n=0}^{\infin}\frac{1}{n!}f^{n}(x_0)(x-x_0)^n f(x)=n=0n!1fn(x0)(xx0)n
        则:
f ′ ( x ) = ∑ n = 0 ∞ 1 n ! f n ( x 0 ) ⋅ n ⋅ ( x − x 0 ) n − 1 = ∑ n = 1 ∞ 1 ( n − 1 ) ! f n ( x 0 ) ( x − x 0 ) n − 1 = ∑ n = 0 ∞ 1 n ! f n + 1 ( x 0 ) ( x − x 0 ) n \begin{aligned} f^{'}(x) = &\sum_{n=0}^{\infin}\frac{1}{n!}f^n(x_0)\cdot n\cdot (x-x_0)^{n-1}\\ =&\sum_{n=1}^{\infin}\frac{1}{(n-1)!}f^n(x_0)(x-x_0)^{n-1}\\ =&\sum_{n=0}^{\infin}\frac{1}{n!}f^{n+1}(x_0)(x-x_0)^{n}\\ \end{aligned} f(x)===n=0n!1fn(x0)n(xx0)n1n=1(n1)!1fn(x0)(xx0)n1n=0n!1fn+1(x0)(xx0)n
f ′ ( x ) − f ′ ( x 0 ) = ∑ n = 1 ∞ a n ( x − x 0 ) n a n = 1 n ! f n + 1 ( x 0 ) (6) f^{'}(x)-f^{'}(x_0)=\sum_{n=1}^{\infin}a_n(x-x_0)^{n}\quad a_n=\frac{1}{n!}f^{n+1}(x_0) \tag{6} f(x)f(x0)=n=1an(xx0)nan=n!1fn+1(x0)(6)
        假设函数 f ′ ( x ) f^{'}(x) f(x) x 0 x_0 x0的某一邻域内单调,则函数 f ′ ( x ) f^{'}(x) f(x)在此邻域内存在反函数 f ′ − 1 ( x ) f^{'-1}(x) f1(x)。同样利用泰勒级数 f ′ − 1 ( x ) f^{'-1}(x) f1(x) f ′ ( x 0 ) f^{'}(x_0) f(x0)展开为:
x − x 0 = ∑ m = 1 ∞ A m ( f ′ ( x ) − f ′ ( x 0 ) ) m (7) x-x_0=\sum_{m=1}^{\infin}A_m(f^{'}(x)-f^{'}(x_0))^{m}\tag{7} xx0=m=1Am(f(x)f(x0))m(7)
        令
Y = f ′ ( x ) − f ′ ( x 0 ) y = x − x 0 Y=f^{'}(x)-f^{'}(x_0)\quad \quad y=x-x_0 Y=f(x)f(x0)y=xx0
       联立 ( 6 ) ( 7 ) (6)(7) (6)(7)可得方程组:
{ Y = ∑ n = 1 ∞ a n y n y = ∑ m = 1 ∞ A m Y m \begin{cases} Y = \sum_{n=1}^{\infin}a_ny^n\\ y= \sum_{m=1}^{\infin}A_mY^m \end{cases} {Y=n=1anyny=m=1AmYm
       可得:
Y = ∑ n = 1 ∞ a n ( ∑ m = 1 ∞ A m Y m ) n Y=\sum_{n=1}^{\infin}a_n(\sum_{m=1}^{\infin}A_mY^m)^n Y=n=1an(m=1AmYm)n
       对应项系数相等,可解得各系数 A m A_m Am:
{ 1 = a 1 A 1 0 = a 1 A 2 + a 2 A 1 2 0 = a 1 A 3 + a 2 ( A 1 A 2 + A 2 A 1 ) + a 3 A 1 3 0 = a 1 A 4 + a 2 ( A 1 A 3 + A 2 2 + A 3 A 1 ) + a 3 ( 3 ⋅ A 1 A 1 A 2 ) + a 4 A 1 4 ⋯ \begin{cases} 1=a_1A_1\\ 0=a_1A_2+a_2A_1^2\\ 0=a_1A_3+a_2(A_1A_2+A_2A_1)+a_3A_1^3\\ 0=a_1A_4+a_2(A_1A_3+A_2^2+A_3A_1)+a_3(3\cdot A_1A_1A_2)+a_4A_1^4\\ \cdots \end{cases} 1=a1A10=a1A2+a2A120=a1A3+a2(A1A2+A2A1)+a3A130=a1A4+a2(A1A3+A22+A3A1)+a3(3A1A1A2)+a4A14

3.实验涉及到数据和结果

       求得的最优值 a = 860.2245 a=860.2245 a=860.2245。恢复的图像中右边还是有点问题(可以看到它是整个图像循环向左平移了一部分,感兴趣的同学可以看一下matlab代码。)
在这里插入图片描述
在这里插入图片描述


4.附录:对应的matlab代码

%%%%%%%%%%%%%%%%%%%
%2020.09.16 李昕
%%%%%%%%%%%%%%%%%%%

clc, clear;
load image_bad
%展现原始图图像
figure();
image(abs(image_bad));
colormap(gray(256));

image_row_fft = fft(image_bad, [], 2);
[M,N] = size(image_row_fft);

%%利用枚举法画出a-E的曲线图,粗略确定a的范围
a_begin = 850;
a_end = 870;
delta = 0.05;
index = 1;
E_mat = [];
for a = a_begin:delta:a_end
    E_mat(index) = imageEntropy(a, N, image_row_fft, false);
    index = index + 1;
end
figure();
plot(a_begin:delta:a_end, E_mat);
% 利用枚举法结果图形画出a=860时恢复的图片
imageEntropy(860.05, N, image_row_fft, true);


%利用级数反演法求解最优图片熵值对应的a值,精确求解a的值

%从图形上看,它是一个多峰的函数,因此初始点的选取就很重要
%%%%初始值选取->优化求解结果
%%%%853->860.2245(求解结果对应极小值点) 
%%%%865-870->869.8797(求解结果对应极大值点) 
%%%%855->864.4170(求解结果对应极大值点)
%%%%当然有很多初始点求解的结果会发散

%虽然不同的初始值可以得到不同的结果,我们应该从中选取对应图片熵最小对应的a值
a = 853;
delta_a = 0.1;
cycle = 50;
for c = 1:cycle
    a_mat = zeros(1, 5);
    %1-4次导
    for plus_delta_a = 0:4
        a_mat(plus_delta_a+1) = imageEntropy(a+plus_delta_a*delta_a, N, image_row_fft, false); 
    end
    d1 = diff(a_mat, 1);
    d2 = diff(a_mat, 2);
    d3 = diff(a_mat, 3);
    d4 = diff(a_mat, 4);
    %利用PDF中的联立的公式
    a0 = d1(1) / delta_a;
    a1 = d2(1) / (delta_a^2);
    a2 = d3(1) / (2 * delta_a^3);
    a3 = d4(1) / (6 * delta_a^4);
    A1 = 1 / a1;
    A2 = -(a2*A1^2)/a1;
    A3 = -(a2*(A1*A2+A2*A1)+a3*A1^3)/a1;
    a = a + (A1* (-a0)^1+A2*(-a0)^2+A3*(-a0)^3)
end
%显示最优a值对应的图像
imageEntropy(a, N, image_row_fft, true);


%计算特定a值下的图片熵以及是否显示图片
function E = imageEntropy(a, N, image_row_fft, display)
    n = 1:N;
    phi_mat = exp((n./N).^2 * j * a);
    image_recover = ifft(image_row_fft.* phi_mat, [], 2);
    if display
       figure();
       image(abs(image_recover));
       colormap((gray(256)));
    end
    image_square = abs(image_recover).^2;
    En = sum(image_square);
    E = - sum((image_square/En).*log2(image_square/En));
end
在弹载SAR系统中,实现曲线轨迹下的运动补偿是提高前视成像质量的关键。为了深入理解这一问题,并探索有效的解决方案,推荐您参考《曲线轨迹弹载SAR前视成像:运动补偿算法》。本文不仅详细阐述了非线性频调变标算法(NCS)和级数反演法在运动补偿中的应用,还通过仿真验证了其有效性。 参考资源链接:[曲线轨迹弹载SAR前视成像:运动补偿算法](https://wenku.csdn.net/doc/3mymxjvy6e?spm=1055.2569.3001.10343) 在处理曲线轨迹下的运动补偿时,需要首先对加速度进行精确的分解。由于成像平面内的加速度是影响成像质量的主要因素,因此采用了矢量方法对这一部分加速度进行补偿。具体操作包括将加速度分解为前向加速度和径向加速度,再将径向加速度分解为成像平面内的加速度和垂直于成像平面的加速度。其中,成像平面内的加速度需要重点补偿,以减少由运动引起的图像失真。 接着,利用级数反演法来确定信号的二维频谱,这对于精确定位信号频率至关重要,以确保成像的准确性。通过级数反演法,可以有效处理加速度导致的距离徙动问题,从而减小信号频谱的偏移。 最后,结合非线性频调变标算法,对因加速度引起的大规模频移进行校正。NCS算法能够处理复杂的非线性频调,进一步提升成像质量,提高图像的分辨率和信噪比。 通过上述方法的结合使用,可以显著改善曲线轨迹下弹载SAR系统的前视成像效果,为军事侦察和遥感应用提供更高质量的成像解决方案。对于希望进一步掌握这些高级技术的读者,建议深入学习《曲线轨迹弹载SAR前视成像:运动补偿算法》,该资料详细介绍了相关理论和实际应用,对于解决当前问题具有直接的帮助,并为进一步的研究和实践提供了坚实的基础。 参考资源链接:[曲线轨迹弹载SAR前视成像:运动补偿算法](https://wenku.csdn.net/doc/3mymxjvy6e?spm=1055.2569.3001.10343)
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值