问题建模

信号模型

假设我们有N个接收线圈,在空间位置(x,y)处:

  • 真实组织信号:$\rho(x,y)$(复数)
  • 第i个线圈的敏感性:$C_i(x,y)$(复数)
  • 第i个线圈接收到的信号:$S_i(x,y) = \rho(x,y) \cdot C_i(x,y) + n_i(x,y)$

其中$n_i(x,y)$是第i个线圈的噪声,假设:

  • 各通道噪声独立:$E[n_i n_j^*] = 0, i \neq j$
  • 噪声方差:$E[|n_i|^2] = \sigma^2$(假设各通道噪声功率相同)

线性合并

我们要找到最优权重$w_i$,使得合并后的信号:

$$\hat{\rho} = \sum_{i=1}^{N} w_i^* S_i$$

具有最大的信噪比。

SNR分析

合并后的信号功率

$$\text{Signal} = \left|\sum_{i=1}^{N} w_i^* S_i\right|^2 = \left|\sum_{i=1}^{N} w_i^* \rho C_i\right|^2 = |\rho|^2 \left|\sum_{i=1}^{N} w_i^* C_i\right|^2$$

合并后的噪声功率

由于各通道噪声独立:

$$\text{Noise} = E\left[\left|\sum_{i=1}^{N} w_i^* n_i\right|^2\right] = \sum_{i=1}^{N} |w_i|^2 E[|n_i|^2] = \sigma^2 \sum_{i=1}^{N} |w_i|^2$$

SNR表达式

$$\text{SNR} = \frac{|\rho|^2 \left|\sum_{i=1}^{N} w_i^* C_i\right|^2}{\sigma^2 \sum_{i=1}^{N} |w_i|^2}$$

由于$|\rho|^2$和$\sigma^2$是常数,我们要最大化:

$$f(\mathbf{w}) = \frac{\left|\sum_{i=1}^{N} w_i^* C_i\right|^2}{\sum_{i=1}^{N} |w_i|^2}$$

数学优化

向量表示

定义:

  • 权重向量:$\mathbf{w} = [w_1, w_2, …, w_N]^T$
  • 敏感性向量:$\mathbf{c} = [C_1, C_2, …, C_N]^T$

则目标函数变为:

$$f(\mathbf{w}) = \frac{|\mathbf{w}^H \mathbf{c}|^2}{\mathbf{w}^H \mathbf{w}}$$

其中$\mathbf{w}^H$表示$\mathbf{w}$的共轭转置。

拉格朗日乘数法

这是一个约束优化问题。我们可以固定分母$\mathbf{w}^H \mathbf{w} = \text{constant}$,最大化分子$|\mathbf{w}^H \mathbf{c}|^2$。

或者使用拉格朗日乘数法。令:

$$L = |\mathbf{w}^H \mathbf{c}|^2 - \lambda(\mathbf{w}^H \mathbf{w} - 1)$$

求导

注意$|\mathbf{w}^H \mathbf{c}|^2 = (\mathbf{w}^H \mathbf{c})(\mathbf{w}^H \mathbf{c})^* = (\mathbf{w}^H \mathbf{c})(\mathbf{c}^H \mathbf{w})$

对$\mathbf{w}^*$求偏导:

$$\frac{\partial L}{\partial \mathbf{w}^*} = \mathbf{c}(\mathbf{c}^H \mathbf{w}) - \lambda \mathbf{w} = 0$$

因此:

$$\mathbf{c}(\mathbf{c}^H \mathbf{w}) = \lambda \mathbf{w}$$

求解

这告诉我们$\mathbf{w}$与$\mathbf{c}$成正比:

$$\mathbf{w} = k \mathbf{c}$$

其中$k$是某个标量常数。

将此代入约束条件$\mathbf{w}^H \mathbf{w} = 1$:

$$|k|^2 \mathbf{c}^H \mathbf{c} = 1$$

所以:

$$k = \frac{1}{\sqrt{\mathbf{c}^H \mathbf{c}}} = \frac{1}{\sqrt{\sum_{i=1}^{N} |C_i|^2}}$$

最优权重

因此最优权重为:

$$\mathbf{w}_{\text{opt}} = \frac{\mathbf{c}}{\sqrt{\mathbf{c}^H \mathbf{c}}}$$

即:

$$w_i^* = \frac{C_i}{\sqrt{\sum_{j=1}^{N} |C_j|^2}}$$

取共轭得到:

$$w_i = \frac{C_i^*}{\sqrt{\sum_{j=1}^{N} |C_j|^2}}$$

最终合并公式

完整形式

$$\hat{\rho} = \sum_{i=1}^{N} w_i^* S_i = \sum_{i=1}^{N} \frac{C_i}{\sqrt{\sum_{j=1}^{N} |C_j|^2}} S_i$$

常用简化形式

在实践中,通常忽略归一化常数(因为它不影响相对信号强度),所以:

$$\hat{\rho} \propto \sum_{i=1}^{N} C_i^* S_i$$

这就是为什么要用 img .* conj(sens)

验证:最大SNR值

将最优权重代入SNR表达式:

$$\text{SNR}_{\max} = \frac{|\rho|^2 \left|\sum_{i=1}^{N} \frac{C_i^*}{\sqrt{\sum_j |C_j|^2}} C_i\right|^2}{\sigma^2 \sum_{i=1}^{N} \left|\frac{C_i}{\sqrt{\sum_j |C_j|^2}}\right|^2}$$
$$= \frac{|\rho|^2 \left|\frac{\sum_{i=1}^{N} |C_i|^2}{\sqrt{\sum_j |C_j|^2}}\right|^2}{\sigma^2 \frac{\sum_{i=1}^{N} |C_i|^2}{\sum_j |C_j|^2}}$$
$$= \frac{|\rho|^2 \sum_{i=1}^{N} |C_i|^2}{\sigma^2}$$

这确实是最大可能的SNR!

物理意义

  1. 权重正比于敏感性的共轭:$w_i \propto C_i^*$
  2. 相位对齐:共轭操作确保所有通道信号同相叠加
  3. 幅度加权:敏感性高的通道权重大
  4. 最优性:这是理论上能达到的最大SNR

MATLAB实现验证

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function combined = optimal_combine(coil_images, sens_maps)
    % 最优合并
    numerator = sum(coil_images .* conj(sens_maps), 3);
    denominator = sum(abs(sens_maps).^2, 3);
    combined = numerator ./ (denominator + eps);
end

% 验证SNR最大化
function verify_optimality()
    % 创建测试数据
    [Nx, Ny, Nc] = [64, 64, 8];
    true_image = phantom(Nx);
    sens_maps = generate_sensitivity_maps(Nx, Ny, Nc);
    
    % 添加噪声
    noise_level = 0.1;
    coil_images = bsxfun(@times, true_image, sens_maps) + ...
                  noise_level * (randn(Nx,Ny,Nc) + 1j*randn(Nx,Ny,Nc));
    
    % 最优合并
    opt_combined = optimal_combine(coil_images, sens_maps);
    
    % SOS合并对比
    sos_combined = sqrt(sum(abs(coil_images).^2, 3));
    
    % 计算SNR
    snr_opt = calculate_snr(opt_combined, true_image);
    snr_sos = calculate_snr(sos_combined, true_image);
    
    fprintf('Optimal combining SNR: %.2f dB\n', snr_opt);
    fprintf('SOS combining SNR: %.2f dB\n', snr_sos);
    fprintf('SNR improvement: %.2f dB\n', snr_opt - snr_sos);
end

这就是严格的数学证明!关键在于这是一个二次优化问题,最优解就是敏感性向量本身(归一化后)。