问题建模
信号模型
假设我们有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!
物理意义
- 权重正比于敏感性的共轭:$w_i \propto C_i^*$
- 相位对齐:共轭操作确保所有通道信号同相叠加
- 幅度加权:敏感性高的通道权重大
- 最优性:这是理论上能达到的最大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
|
这就是严格的数学证明!关键在于这是一个二次优化问题,最优解就是敏感性向量本身(归一化后)。