✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
🔥 内容介绍
压缩感知是一种突破香农极限的信号处理技术,它通过对信号进行稀疏采样,即可重建出原信号。正交匹配追踪(OMP)算法是一种贪婪算法,用于解决压缩感知中的稀疏信号重建问题。本文将详细介绍 OMP 算法的原理、步骤和应用。
压缩感知简介
香农定理指出,信号的采样率必须至少是信号带宽的两倍,才能完美地重建信号。然而,在许多实际应用中,由于带宽限制或存储成本,无法以如此高的采样率对信号进行采样。压缩感知是一种突破香农极限的技术,它允许以远低于香农采样率对信号进行采样,并通过求解一个优化问题来重建信号。
压缩感知的关键思想是,许多自然信号在某个变换域中是稀疏的。这意味着信号的大部分能量集中在少数几个非零系数上。通过对信号进行稀疏采样,我们可以获得一个包含这些非零系数的采样值。然后,我们可以通过求解一个优化问题来找到这些非零系数,从而重建信号。
正交匹配追踪算法
正交匹配追踪(OMP)算法是一种贪婪算法,用于解决压缩感知中的稀疏信号重建问题。OMP 算法通过迭代地选择最相关的原子来逐个找到信号的非零系数。
OMP 算法步骤:
-
初始化:
-
设置残差信号为原始采样信号。
-
设置支持集为空集合。
-
-
迭代:
-
计算残差信号与字典中所有原子的相关性。
-
选择具有最大相关性的原子。
-
将选定的原子添加到支持集。
-
计算残差信号与支持集中所有原子的内积,并更新残差信号。
-
-
停止条件:
-
残差信号的范数小于给定的阈值。
-
达到最大迭代次数。
-
当满足以下条件之一时,停止迭代:
-
-
重建信号:
-
使用支持集中原子的系数重建信号。
-
OMP 算法的应用
OMP 算法广泛应用于各种领域,包括:
-
**图像压缩:**OMP 算法可用于压缩自然图像,这些图像在小波变换域中是稀疏的。
-
**信号处理:**OMP 算法可用于去噪、去混叠和信号分离。
-
**医学成像:**OMP 算法可用于重建磁共振成像(MRI)和计算机断层扫描(CT)图像。
-
**无线通信:**OMP 算法可用于信道估计和信号检测。
结论
正交匹配追踪(OMP)算法是一种强大的贪婪算法,用于解决压缩感知中的稀疏信号重建问题。OMP 算法简单易实现,并且在各种应用中表现良好。随着压缩感知技术的不断发展,OMP 算法将继续发挥重要的作用。
📣 部分代码
function nmse_plot(eta,NMSE_eqnorm,NMSE1,NMSE2,UpperBound_eqnorm,UpperBound1,UpperBound2)
figure
box on
plot(eta,10*log10(NMSE_eqnorm),'r-s','LineWidth',1.8,'MarkerSize',8,'MarkerEdgeColor','k','MarkerFaceColor','y')
hold on
plot(eta,10*log10(NMSE1),'r-','LineWidth',1.8)
plot(eta,10*log10(NMSE2),'r--','LineWidth',1.8)
plot(eta,10*log10(UpperBound_eqnorm),'b:s','LineWidth',1.8,'MarkerSize',8,'MarkerEdgeColor','k','MarkerFaceColor','y')
plot(eta,10*log10(UpperBound1),'b:','LineWidth',1.8)
plot(eta,10*log10(UpperBound2),'b-.','LineWidth',1.8)
xlim([5.99,24.001]);
ylim([-60,12]);
grid on
set(gca, 'FontName', 'Times new roman','FontSize',18)
legend({'$d_{\mathrm{max}}/ d_{\mathrm{min}} = 1$','$d_{\mathrm{max}}/ d_{\mathrm{min}} \approx 2.43$',...
'$d_{\mathrm{max}}/ d_{\mathrm{min}} \approx 2.83$','$d_{\mathrm{max}}/ d_{\mathrm{min}} \approx 1$',...
'$d_{\mathrm{max}}/ d_{\mathrm{min}} \approx 2.43$','$d_{\mathrm{max}}/ d_{\mathrm{min}} \approx 2.83$',...
},'Location','northeast','NumColumns',2,'Interpreter','latex','FontSize', 18)
legend show
xlabel('$\frac{\mathbf{x}_{\mathrm{min}}}{\sigma\sqrt{2\log(N)}}$','Interpreter','latex','FontSize', 22)
ylabel('Normalized MSE [dB]','FontSize', 18)
% creating the zoom-in inset
ax=axes;
set(ax,'units','normalized','position',[0.138,0.162,0.23,0.125])
box(ax,'on')
plot(eta,10*log10(NMSE_eqnorm),'r-s','LineWidth',1.8,'MarkerSize',8,'MarkerEdgeColor','k','MarkerFaceColor','y','parent',ax)
hold on
plot(eta,10*log10(NMSE1),'r-','LineWidth',1.8,'parent',ax)
plot(eta,10*log10(NMSE2),'r--','LineWidth',1.8,'parent',ax)
% set(ax,'xlim',[9.8,10.2],'ylim',[-44.75,-43])
set(ax,'xlim',[9.8,10.2],'ylim',[-44.5,-42.5])
set(gca, 'FontName', 'Times new roman','FontSize',16)
set(gca,'YTickLabel',[]);
set(gca,'XTickLabel',[]);
% -- Annotations --
% dim_rect = [.28 .3073 .054 .0324];
dim_rect = [.28 .313 .054 .0324];
annotation('rectangle',dim_rect,'FaceColor','blue','FaceAlpha',.2)
aa = annotation('line',[.13757 .28],[.287 0.3454]);
aa.LineWidth = 0.6;
aa.LineStyle = '-';
bb = annotation('line',[.368 .334],[.287 0.3454]);
bb.LineWidth = 0.6;
bb.LineStyle = '-';
% --
dim_ell_bound = [.192 .433 .05 .361];
annotation('ellipse',dim_ell_bound)
dim = [.3 .433 .4 .1];
str = 'Upper-bounds from Theorem 2';
cc = annotation('textbox',dim,'String',str);
cc.FontSize = 16;
cc.FontName = 'Times new roman';
cc.EdgeColor = 'none';
dd = annotation('arrow',[.242 .31],[.608 0.523]);
dd.LineWidth = 0.6;
dd.LineStyle = '-';
% --
dim_ell_emp = [.4655 .254 .02 .07];
annotation('ellipse',dim_ell_emp)
dim = [.53 .255 .3 .1];
str = 'Empirical NMSE';
ee = annotation('textbox',dim,'String',str);
ee.FontSize = 16;
ee.FontName = 'Times new roman';
ee.EdgeColor = 'none';
ff = annotation('arrow',[.483 .535],[.31 0.325]);
ff.LineWidth = 0.6;
ff.LineStyle = '-';
% export_fig(gcf,'FontMode','fixed','FontSize',10,'Color','nmse.pdf')
end
⛳️ 运行结果
🔗 参考文献
H. Masoumi, M. Verhaegen, and N. J. Myers, “Analysis of orthogonal matching pursuit for compressed sensing in practical settings,” in Proc. IEEE Statistical Signal Process. Workshop (SSP), pp. 170–174, 2023.
Link to the paper: https://arxiv.org/pdf/2302.04056.pdf
🎈 部分理论引用网络文献,若有侵权联系博主删除
🎁 关注我领取海量matlab电子书和数学建模资料
👇 私信完整代码和数据获取及论文数模仿真定制
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱船配载优化、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化
2 机器学习和深度学习方面
2.1 bp时序、回归预测和分类
2.2 ENS声神经网络时序、回归预测和分类
2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类
2.4 CNN/TCN卷积神经网络系列时序、回归预测和分类
2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类
2.7 ELMAN递归神经网络时序、回归\预测和分类
2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类
2.9 RBF径向基神经网络时序、回归预测和分类