赞
踩
2023.12.16 在阅读OTFS相关论文的过程中,总是被数学知识绊住,因此在这里从通信小白的视角尝试理解一下基础的相关算法//部分内容有参考ChatGPT。
压缩感知(Compressed Sensing,CS)是一种用于信号处理的技术,它利用信号的稀疏性来从远少于Nyquist采样定理所需的样本数中重构信号。压缩感知的核心是解决一个优化问题,通常表述为以下形式:
min x ∥ x ∥ 0 subject to y = A x (1) \min_{\mathbf{x}} \|\mathbf{x}\|_0 \quad \text{subject to} \quad \mathbf{y} = \mathbf{A}\mathbf{x}\text \quad \text{(1)} xmin∥x∥0subject toy=Ax(1)
直接解决上述优化问题是NP难的,因此通常采用以下方法近似解决:
l 1 l_1 l1-范数松弛:
贪婪算法:
正交匹配追踪(OMP)算法是一种用于信号处理和稀疏信号重建的强大工具。它通过以下方式工作:首先,从字典中选择最相关的原子,然后使用它们来逼近目标信号。这种方法在多个领域都有广泛的应用,包括图像处理、压缩感知、和机器学习。
OMP算法就像是一位画家,试图用尽可能少的颜色来绘制一幅画。它首先选择最重要的颜色(原子),然后根据这些颜色逼近整幅画(目标信号)。这种方法可以在保持画面质量的同时(重构出的信号尽可能逼近原始信号),减少颜色的使用量。
过完备字典:字典中的原子数量多于信号的维度。在正交匹配追踪(OMP)算法中,过完备字典通常用于处理高维信号,其中信号的维度小于字典中的原子数量。这种情况下,信号无法由字典中的一个原子线性表示,需要通过组合多个原子来逼近信号。过完备字典的使用可以提高信号重建的灵活性,允许更精确地表示和重建信号,特别是在信号稀疏性较高的情况下。
稀疏表示:稀疏表示意味着,虽然你有非常多的原子可用,但是你只需要很少的一部分就能准确地表示一个特定的信号。这就好比用最少的词汇来准确表达一个复杂的想法。
初始化:首先,我们有一幅待绘制的画(目标信号)和一盘各种颜色的调色板(原子库)。
原子选择:然后,画家会挑选出最适合绘制当前部分画面的颜色(原子),通常是最能突出特征的颜色。
绘制:画家使用选中的颜色来绘制一部分画面,并观察结果。
更新:如果需要,画家会再次挑选颜色,绘制下一部分画面,然后不断重复这个过程,直到整幅画完成。
我们可以用数学公式来描述OMP算法。首先,我们有以下关系:
b = D x (1) \mathbf{b} = \mathbf{Dx} \quad \text{(1)} b=Dx(1)
其中, b \mathbf{b} b是目标信号, D \mathbf{D} D是原子库/过完备字典矩阵(每个列向量称为原子), x \mathbf{x} x是稀疏表示。
我们的目标是找到一个稀疏表示 x \mathbf{x} x,使得下面的目标函数最小化:
min x ∥ b − D x ∥ 2 2 subject to ∥ x ∥ 0 ≤ K (2) \min_{\mathbf{x}} \|\mathbf{b} - \mathbf{Dx}\|_2^2 \quad \text{subject to} \quad \|\mathbf{x}\|_0 \leq K \quad \text{(2)} xmin∥b−Dx∥22subject to∥x∥0≤K(2)
这个目标函数的意思是,我们要找到尽量少的原子 d i \mathbf{d}_i di的线性组合,使得与目标信号 y \mathbf{y} y的误差最小。
详细解释:
1.初始化:我们开始时什么都不知道,所以初始残差
r
0
\mathbf{r}^0
r0等于目标信号
b
\mathbf{b}
b,选中原子集合
Λ
0
\Lambda_0
Λ0为空,迭代次数
k
k
k为0。
5.原子选择:我们选择一个与当前残差最相关的原子,即内积
∣
⟨
a
j
,
r
k
−
1
⟩
∣
|\langle \mathbf{a}_j, \mathbf{r}_{k-1} \rangle|
∣⟨aj,rk−1⟩∣最大的原子
λ
k
\lambda_k
λk。
6. 更新选中原子集合:将选中的原子
λ
k
\lambda_k
λk加入选中原子集合
Λ
k
\Lambda^{k}
Λk中。
7. 求解最小二乘问题:通过最小二乘法求解稀疏表示
x
k
\mathbf{x}^{k}
xk。
8/9. 更新残差:更新残差
r
k
+
1
\mathbf{r}^{k+1}
rk+1,计算
y
\mathbf{y}
y与
D
Λ
k
+
1
x
k
+
1
\mathbf{D}_{\Lambda^{k+1}}\mathbf{x}^{k+1}
DΛk+1xk+1之间的差异。
迭代条件:如果未达到稀疏度
K
K
K或残差足够小,则增加迭代次数
k
k
k,重复步骤2-5。
该算法是一种迭代的贪婪策略,旨在从一个预先定义的过完备字典中选择原子来逐步构建信号的稀疏近似表示。在每次迭代中,算法选择与当前残差最相关的原子(即,使得该原子与残差的内积最大),构建一个稀疏逼近,并求出信号残差,然后继续选择与信号残差最匹配的原子,反复迭代。通过这种方式,MP算法能够逐步减少残差的能量,直到满足特定的停止条件,从而实现信号的有效稀疏分解。
OMP算法可以用于图像压缩。它选择一小部分重要的像素点(原子),并使用它们来重建整幅图像,从而减小图像文件的大小,同时保持图像质量。
通过选择最相关的图像特征(原子),重建图像以去除噪声,从而获得清晰的图像。
在信号处理中,OMP算法可以用于从嘈杂的测量中恢复原始信号。它帮助我们找到最相关的信号分量,从而更准确地还原原始信号。
OMP算法在稀疏表示学习中也有广泛应用。它可以用于特征选择,帮助机器学习模型识别最重要的特征。
%% 该代码来自chatgpt4.0,Cuby!在该基础上进行修改
% 初始化参数
N = 100; % 信号维度
M = 50; % 观测维度(测量矩阵A的行数)
K = 10; % 稀疏度:生成稀疏信号x,这里假设只有10个非零元素
% 生成稀疏信号 x
x = zeros(N, 1); % 初始化 x 为 N 维零向量
nonzero_indices = randperm(N, K); % 随机选择 K 个不同的索引
x(nonzero_indices) = randn(K, 1); % 将这些索引处的 x 值设为随机数
% 生成测量矩阵A
A = randn(M, N); % 测量矩阵用于从原始信号 x 中产生观测信号 y
% 生成测量信号y
y = A * x;
% 使用OMP算法恢复稀疏信号
x_hat = omp(A, y, M);
% 显示原始信号和估计信号
figure;
subplot(2, 1, 1);
stem(x, 'r', 'LineWidth', 1.5, 'MarkerSize', 5);
title('原始信号 x');
subplot(2, 1, 2);
stem(x_hat, 'b', 'LineWidth', 1.5, 'MarkerSize', 5);
title('估计信号 x_hat');
% 计算估计误差
mse = mean((x - x_hat).^2);
snr = 10 * log10(var(x) / mse);
relative_error = norm(x - x_hat) / norm(x);
% 打印误差结果
disp(['MSE: ', num2str(mse)]);
disp(['SNR: ', num2str(snr), ' dB']);
disp(['相对误差: ', num2str(relative_error)]);
% OMP算法实现
function x_hat = omp(A, y, M)
N = size(A, 2);
x_hat = zeros(N, 1);
residual = y;
selected_indices = [];
tolerance = 1e-6; % 设置残差阈值
for i = 1:M % 为避免过拟合,迭代次数不能超过观测数量
% 计算测量残差的投影
projections = abs(A' * residual);
% 选择最大投影对应的索引
[~, index] = max(projections);
% 添加选定的原子索引
selected_indices = [selected_indices, index];
% 更新估计的稀疏信号
x_hat(selected_indices) = A(:, selected_indices) \ y;
% 更新残差
residual = y - A * x_hat;
% 检查残差是否足够小//停止条件
if norm(residual) < tolerance
break;
end
end
end
仿真结果如下:
[1] J. Wang, S. Kwon and B. Shim, “Generalized Orthogonal Matching Pursuit,” in IEEE Transactions on Signal Processing, vol. 60, no. 12, pp. 6202-6216, Dec. 2012, doi: 10.1109/TSP.2012.2218810.
[2] https://angms.science/doc/RM/OMP.pdf
[3] Chatgpt 4.0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。