日拱一卒之格林函数/共轭转置

格林函数与共轭转置解析

日拱一卒之格林函数/共轭转置

比较吐血的是,前一阵子理解的东西又又又吐出来了,难道是年纪大了?

稍后做一下回顾好了,既然理解过,应该再捡起来不难吧,可能学习的过程不就是个不断重复的过程,孔老夫子都说过,温故而知新,做好笔记,以后没事多翻翻。

关于格林函数

定义的解释

主要回答了一个标准问题: “如果在位置 A 发生了一个单位强度(强度=1)的脉冲,位置 B 会收到什么样的信号?” 它只跟位置频率有关,跟实际有没有源、源有多强无关。哪怕没有源,格林函数依然客观存在。

数学本质:它是“传播算子”

数学本质:它是“传播算子”

在数学上,格林函数是一个线性映射

场(b)=格林函数(G)×源强度(x)\text{场} (b) = \text{格林函数} (G) \times \text{源强度} (x)(b)=格林函数(G)×源强度(x)

线性叠加:因为电磁波满足线性叠加原理,所以我们可以把复杂的源拆成一个个像素点,分别算传播,最后加起来。这就是为什么它能写成矩阵乘法

物理特征:涟漪与衰减

在二维或三维空间中,格林函数(时谐场)通常表现为:

  1. 幅度(模值 **∣G∣|G|G**​ :随着距离 rrr 增加而衰减(比如二维是 1/r1/\sqrt{r}1/r)。离得越远,信号越弱。
  2. 相位(实部 **Re(G)\text{Re}(G)Re(G)**​ :随着距离 rrr 增加而震荡。表现为向外扩散的波纹(涟漪)。
  3. 奇点:在源的位置(r=0r=0r=0),格林函数的值趋于无穷大(或极大值),因为源头能量最强。

格林函数就是空间中“单位波源”产生的“标准波纹”,它是连接“源(因)”和“场(果)”的数学桥梁。

个人理解,其实对于点源来说,格林函数就是这个点源在空间内的场分布,而现实世界不存在理想点源,而场刚好满足线性叠加,所以就是很多点源在空间中场的叠加。

那么。。。画个图感受一下。这个就是点源的格林函数,主要包含了幅度相位。

image

深刻一点,多个点源的效果:

image

笑一个吧,格林函数就是这么个意思。

关于共轭转置

格林函数,代表了点源的场,那么。。。它的共轭转置代表什么呢?

简单来说,利用格林函数的共轭转置(G∗G^*G)反推源,本质上利用的是 “相位补偿”“同相叠加” 原理。在物理上,这被称为时间反转(Time Reversal)相位共轭(Phase Conjugation)

通俗理解:时间反转(倒放录像)

想象在池塘中间(源位置 SSS)扔了一颗石头:

  1. **正向 (GGG**​ ) :涟漪从中心扩散到岸边。岸边的多个传感器记录下了波动的信号。

    不同位置的传感器,收到信号的时间(相位)是不同的。离得近的先收到,离得远的后收到。

  2. **反向推导 (G∗G^*G**​ ) :现在我们想根据岸边的记录找到中心 SSS

    • G∗G^*G 的作用:相当于把岸边传感器录下的视频倒着放
    • 波纹从岸边出发,向中心收缩。
    • 关键点:只有在真正的源位置 SSS,所有倒流回来的波纹才会同时到达,能量叠加到最大(形成一个巨浪)。
    • 在其他错误的位置,有的波纹先到,有的后到,互相抵消(干涉),能量很弱。

G∗G^*G 就是让信号“原路返回”,在源头处发生建设性干涉(Constructive Interference)

数学机制

假设只有一个源 xxx,一个接收器。

  • 正向传播:信号经过距离 RRR 传播,产生相位滞后 θ=kR\theta = kRθ=kR

    接收信号 b=1⋅e−jθ \text{接收信号} \, b = 1 \cdot e^{-j\theta} 接收信号b=1ejθ

    (这里 e−jθe^{-j\theta}ejθ 就是格林函数 GGG 的简化版)

现在要反推源在哪里。遍历空间中每一个可能的点,试探它是不是源。

  • 猜测点 A(也就是真实的源位置)

    它的格林函数 GA=e−jθG_A = e^{-j\theta}GA=ejθ。它的共轭转置 GA∗=e+jθG_A^* = e^{+j\theta}GA=e+jθ(注意符号变正了,代表负延迟,即时间提前)。

    计算成像

    I=GA∗⋅b=e+jθ⋅e−jθ=e0=1 I = G_A^* \cdot b = e^{+j\theta} \cdot e^{-j\theta} = e^0 = \mathbf{1} I=GAb=e+jθejθ=e0=1

    结果是实数且最大! 相位完全抵消了。

  • 猜测点 B(错误的位置)

    假设它对应的相位是 ϕ\phiϕ(与 θ\thetaθ 不同)。它的格林函数 GB=e−jϕG_B = e^{-j\phi}GB=ejϕ。它的共轭转置 GB∗=e+jϕG_B^* = e^{+j\phi}GB=e+jϕ

    计算成像

    I=GB∗⋅b=e+jϕ⋅e−jθ=ej(ϕ−θ) I = G_B^* \cdot b = e^{+j\phi} \cdot e^{-j\theta} = e^{j(\phi-\theta)} I=GBb=e+jϕejθ=ej(ϕθ)

    结果是一个复数,且如果有很多接收器叠加,这些乱七八糟的相位会互相抵消,模值很小。

MATLAB 极简演示:反向投影成像

clc; clear; close all;

%% 1. 场景设置
f = 1e9; c = 3e8; lambda = c/f; k = 2*pi/lambda;

% 定义成像区域 (猜测源可能在的地方)
L = 4; N = 80;
x_grid = linspace(-L/2, L/2, N);
y_grid = linspace(-L/2, L/2, N);
[X, Y] = meshgrid(x_grid, y_grid);
rx_grid = X(:); ry_grid = Y(:);
Num_pixels = length(rx_grid);

% 定义真实的源位置 (在右上角)
True_Source_Pos = [0.8, 0.8]; 

% 定义接收天线 (围成一圈)
theta = linspace(0, 2*pi, 30); % 30个天线
R_ant = 1.8;
Ant_x = R_ant * cos(theta(1:end-1))'; 
Ant_y = R_ant * sin(theta(1:end-1))';
Num_Ant = length(Ant_x);

%% 2. 正向过程 (生成测量数据 b)
% 计算真源到所有天线的距离
dist_true = sqrt((Ant_x - True_Source_Pos(1)).^2 + (Ant_y - True_Source_Pos(2)).^2);
% 测量到的信号 (Green Function * 1)
b_measured = (-1j/4) * besselh(0, 2, k * dist_true); 
% 给信号加一点噪声 (模拟真实环境)
b_measured = b_measured + 0.1 * (randn(size(b_measured)) + 1j*randn(size(b_measured)));

%% 3. 反向过程 (利用 G* 成像)
fprintf('正在利用 G* 进行反向聚焦...\n');

% 第一步:构建所有猜测点的格林函数矩阵 G_guess
% 矩阵大小:[天线数量 x 像素数量]
dx = Ant_x - rx_grid';  % 利用广播机制
dy = Ant_y - ry_grid';
dist_guess = sqrt(dx.^2 + dy.^2);
G_guess = (-1j/4) * besselh(0, 2, k * dist_guess);

% 第二步:核心算法!反向投影 (Back Projection)
% Image = G_guess' * b_measured
% 这里 G_guess' 就是共轭转置 G*
% 物理含义:把测量数据 b,按照共轭相位,加权分配回每一个像素点
Image_Vector = G_guess' * b_measured;

% 变回 2D 图片
Image_Recon = reshape(abs(Image_Vector), N, N);

%% 4. 绘图
figure('Color', 'w', 'Position', [100, 100, 1000, 400]);

subplot(1, 2, 1);
plot(Ant_x, Ant_y, 'kv', 'MarkerFaceColor', 'y', 'MarkerSize', 8); hold on;
plot(True_Source_Pos(1), True_Source_Pos(2), 'ro', 'MarkerFaceColor', 'r', 'MarkerSize', 10);
axis equal; grid on; xlim([-L/2 L/2]); ylim([-L/2 L/2]);
title('真实场景');
legend('接收天线', '真实源位置');

subplot(1, 2, 2);
imagesc(x_grid, y_grid, Image_Recon);
hold on;
plot(Ant_x, Ant_y, 'kv', 'MarkerFaceColor', 'y', 'MarkerSize', 5);
colormap hot; colorbar; axis equal;
title('G* 反向推导结果 (能量聚焦)');
xlabel('x'); ylabel('y');

sgtitle('利用格林函数共轭转置 (G*) 寻找源');

结果:

image

额,像极了现在脑子里的一团脑花。。

原因一个是噪声太大了,另外一个是接收单元数过少,不太好看到,重新优化一下:

image

这个,就是反向投影算法的基本雏形。

那么,为什么共轭转置能够代表时间上的反转呢?

一句话核心答案:在频域物理中,相位(Phase)就是时间。共轭操作(Conjugate)把相位的符号取反了,就等于把时间倒流了。

**“jjj**​ ” 代表了什么? 在物理和工程(特别是电磁学)中,描述一个波动信号(比如正弦波)时,喜欢用欧拉公式:

ej(ωt−ϕ) e^{j(\omega t - \phi)} ej(ωtϕ)

这里有两个关键变量:

  1. ωt\omega tωt:代表时间的流逝(时钟在走)。
  2. −ϕ-\phiϕ:代表延迟(Lag)

关键点来了:

  • 当波从源头传到远处时,需要花时间,所以会产生延迟

  • 在数学上, **“延迟”表现为负的相位(−jϕ-j\phijϕ**​

    比如:格林函数 G∝e−jkRG \propto e^{-jkR}GejkR。那个负号(−-)就代表“过去发生的”、“滞后的”。

对格林函数 GGG共轭(Conjugate) 操作。共轭的定义是:把虚部符号取反(jjj 变成 −j-jj−j-jj 变成 +j+j+j)。

如果 G=e−jkRG = e^{-jkR}G=ejkR(代表延迟、向外扩散),那么 G∗=e+jkRG^* = e^{+jkR}G=e+jkR

这个 +jkR+jkR+jkR 意味着什么?

  • 在数学上:它代表正相位
  • 在物理上:它代表超前(Lead) ,或者叫负延迟
  • 在时间轴上: “负延迟”就是“时间倒流”。

共轭转置不仅仅是共轭,还有转置

  • 原矩阵 GGG **(M×NM \times NM×N**​ ) :输入是源(NNN),输出是天线(MMM)。路径方向: →\rightarrow 天线
  • 转置矩阵 GTG^TGT **(N×MN \times MN×M**​ ) :输入变成了天线(MMM),输出变成了源(NNN)。路径方向:天线 →\rightarrow

为什么 G∗⋅bG^* \cdot bGb 能找到源?

两者结合起来,看看执行 Image = G' * b 时发生了什么:

假设接收到的信号 bbb 是经过正向传播来的:

b=e−jkR⏟传播造成的延迟⋅源信号 b = \underbrace{e^{-jkR}}_{\text{传播造成的延迟}} \cdot \text{源信号} b=传播造成的延迟ejkR源信号

现在你用 G∗G^*G 去乘它:

结果=e+jkR⏟共轭(时间倒流)⋅(e−jkR⋅源信号)⏟接收信号 \text{结果} = \underbrace{e^{+jkR}}_{\text{共轭(时间倒流)}} \cdot \underbrace{(e^{-jkR} \cdot \text{源信号})}_{\text{接收信号}} 结果=共轭(时间倒流)e+jkR接收信号(ejkR源信号)

根据指数运算规则 (eA⋅eB=eA+Be^A \cdot e^B = e^{A+B}eAeB=eA+B):

结果=e(+jkR−jkR)⋅源信号=e0⋅源信号=1⋅源信号 \text{结果} = e^{(+jkR - jkR)} \cdot \text{源信号} = e^0 \cdot \text{源信号} = \mathbf{1} \cdot \text{源信号} 结果=e(+jkRjkR)源信号=e0源信号=1源信号

于是:

  1. 正向传播带来的相位滞后−jkR-jkRjkR),被共轭算子带来的相位超前+jkR+jkR+jkR)完美抵消了。
  2. 净相位 = 0。这意味着时间被重置回了 t=0t=0t=0 的时刻。
  3. 这就好比:信号刚传出去跑了 100 米,你按了一个按钮,它又退回了 100 米,刚好回到出发点。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值