压缩感知重构算法之正交匹配追踪算法(OMP)

算法的重构是压缩感知中重要的一步,是压缩感知的关键之处。因为重构算法关系着信号能否精确重建,国内外的研究学者致力于压缩感知的信号重建,并且取得了很大的进展,提出了很多的重构算法,每种算法都各有自己的优缺点,使用者可以根据自己的情况,选择适合自己的重构算法,大大增加了使用的灵活性,也为我们以后的研究提供了很大的方便。

压缩感知的重构算法主要分为三大类:

1.组合算法   2.贪婪算法  3.凸松弛算法

三种算法对比分析如下:

算法类别

定义

优缺点

具体算法

贪婪算法

贪婪算法首先选取合适的原子,再逐步进行递增,进而逼近信号矢量,利用这种过程进行

计算量和精度的要求居中,也是三种重构算法中应用最大的一种

(1)匹配追踪算法

(2)正交匹配追踪算法

(3)分段正交匹配追踪算法

(4)正则化正交匹配追踪算法

(5)稀疏自适应匹配追踪算法

组合算法

先是对信号进行结构采样,然后再通过对采样的数据进行分组测试,最后完成信号的重构

需要观测的样本数目比较多但运算的效率最高

(1) 傅里叶采样

(2) 链式追踪算法

(3)  HHS追踪算法

凸松弛算法

法,它将非凸问题转化为凸问题进行求解,即l0范数转化成l1范数并采用线性规划来求解

计算量大但是需要观测的数量少重构的时候精度高

(1)基追踪算法

(2)最小全变差算法

(3)内点法

(4)梯度投影算法

(5)凸集交替投影算法

本篇主要介绍正交匹配追踪算法(OMP)

1、OMP算法的原理

OMP算法是在MP算法的基础上进行改进的,沿用了MP算法的重构的思想,但是又对MP算法进行了改进,使得算法的效率更高,应用更加的广泛。

MP算法的信号分解中步骤中介绍:,这说明信号在已经选择的原子上的投影(等是右边第一项)是非正交的,还存在着残差,也就是说每次迭代的过程是次最优的,不是最优解,要想最终的迭代收敛,需要的迭代次数较多。OMP算法就是根据MP算法的不足之处加以改进,把所选择的原子首先通过Schimidt正交化处理,使得在达到迭代条件的时候需要的迭代次数较MP算法少,但是正交化的过程中会增加计算量。

OMP算法正交化原理:

2、OMP算法的流程图 

算法流程图如下:

 3、OMP算法的算法步骤

算法步骤如下:

 4、OMP算法的信号重构

本节对OMP算法进行重构,采用一维离散信号和二维lena信号对其进行信号重构,来观察OMP算法的重构功能。

(1)一维离散信号的OMP算法仿真

  本次仿真使用matlab随机生成的一维离散信号,稀疏度k=15,信号长度N=512,观测向量的长度M=128,那么采样率M/N=0.25,其中的观测矩阵是高斯随机矩阵。采用OMP算法对一维信号进行重构,重构图如1:

 图1:OMP算法重构一维信号

通过上面的重构可以得出,OMP算法对一维信号有很好的重构作用。

(2)二维lena图像的OMP算法重构

OMP算法对二维信号进行重构,在这里我们采取和MP算法二维信号重构的方法,也是先采取离散余弦变换(dct)使数据稀疏,算法重构结束之后再进行离散反余弦变换(idct),这样就转化为了我们所需要的。本次在matlab中的仿真,我们采用的是256X256的Lena的二维图像,M=180,N=256,稀疏度k=40,M/N=0.7,观测矩阵是高斯随机矩阵,采用OMP算法对二维图像进行重构,重构效果如图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/25469.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言---初识指针

1、指针是什么 指针是什么? 指针理解的2个要点: ​ 1、指针是内存中一个最小单元的编号,也就是地址。 ​ 2、平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量 总结:指针就是地址&#xff…

Kali-linux Arpspoof工具

Arpspoof是一个非常好的ARP欺骗的源代码程序。它的运行不会影响整个网络的通信,该工具通过替换传输中的数据从而达到对目标的欺骗。本节将介绍Arpspoof工具的 使用。 9.8.1 URL流量操纵攻击 URL流量操作非常类似于中间人攻击,通过目标主机将路由流量注…

Sentinel的另外三种流控模式(附代码详细介绍)

前言:大家好,我是小威,24届毕业生,在一家满意的公司实习。本篇文章将详细介绍Sentinel的其他三种流控模式,后续文章将详细介绍Sentinel的其他知识。 如果文章有什么需要改进的地方还请大佬不吝赐教👏&#…

vue面试题汇总

HTML篇CSS篇JS篇TypeScript篇前端面试题汇总大全(含答案超详细,HTML,JS,CSS汇总篇)-- 持续更新前端面试题汇总大全二(含答案超详细,Vue,TypeScript,React,Webpack 汇总篇&#xff09…

04_Cenos安装Docker

docker安装文档: ubuntu:https://docs.docker.com/engine/install/ubuntu/ centos:https://docs.docker.com/engine/install/centos/ debian:https://docs.docker.com/engine/install/debian/ cenos安装Docker前提: 必…

数据结构(C语言):顺序循环队列的基本操作

一、题目 设队列的元素类型为char,实现顺序循环队列的各种基本操作的程序: ① 初始化队列Q; ② 判断队列Q是否为空; ③ 入队操作。循环调用入队操作,将若干元素(不少于10个)入队&#xff1b…

优化带排序的分页查询

优化带排序的分页查询 浅分页: select user_no,user_name,socre from student order by score desc limit 5,20 深分页: select user_no,user_name,socre from student order by score desc limit 80000,20 因为偏移量深分页更大,所以深分页执…

【软件】无联网情况下安装Win11 / 华为电脑更换Win11系统后触摸屏、声卡失效物理解决方案

一、提前备份好电脑驱动(华为电脑更换Win11系统后触摸屏、声卡失效物理解决方案) 1.电脑驱动备份方法: 1)通过管理员身份打开命令提示符。 2)输入命令:dism /online /export-driver /destination:"D…

聊聊Go语言的控制语句

在高级编程语言中,控制流语句(control-flow statement)是一类用于控制程序执行流程的语句,以下简称为控制语句。它们可以根据条件或循环执行相应的代码块,或者跳转到指定位置执行代码。 常见的控制语句包括: 条件语句:…

10. python字典

文章目录 一、什么是字典二、访问键-值对三、添加、修改键-值对四、删除键-值对4.1 语句del4.2 方法pop() 五、创建空字典六、遍历字典6.1方法items()6.2方法keys()6.3方法values() 七、嵌套7.1 字典列表7.2 在字典中存储列表7.3 在字典中存储字典 一、什么是字典 #创建一个字…

电商服务智能解决方案

互联网时代,智能客服已成为电商企业客户服务、管理和运营的标配。面临大量客户咨询、订单流程等业务,传统人工客服工作时间有限、人员流动性大、人工成本持续上涨等,已经无法满足电商企业“数智化”转型的需求,这也促使AI成为电商…

SpringSecurity入门

简介 官网地址:https://spring.io/projects/spring-security#overview Spring家族当中,一个安全管理框架 Shiro也是一个安全框架,提供了很多安全功能。Shiro比较老,旧的项目当中,可能还在使用。上手还挺简单 在新项…

Zemax Lumerical | 二维光栅出瞳扩展系统优化

简介 本文提出并演示了一种以二维光栅耦出的光瞳扩展(EPE)系统优化和公差分析的仿真方法。 在这个工作流程中,我们将使用3个软件进行不同的工作 ,以实现优化系统的大目标。首先,我们使用 Lumerical 构建光栅模型并使用…

(双指针 ) 18. 四数之和 ——【Leetcode每日一题】

❓18. 四数之和 难度:中等 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重…

不愧是阿里,扣的真细。

铜三铁四已经过去了,今天的行情虽然没有以前好,但是相比去年来说也算是好了一些了。有一些人已经在这个招聘季拿到了不错的Offer了。 今天给大家分享一份面经,今天这位朋友的背景是Java五年本,2023年前被毕业后投入了面试大军怀抱…

融合改进Sine混沌映射的新型粒子群优化算法(NIPSO)-附代码

融合改进Sine混沌映射的新型粒子群优化算法(NIPSO) 文章目录 融合改进Sine混沌映射的新型粒子群优化算法(NIPSO)1.粒子群优化算法2. 改进粒子群优化算法2.1 改进的 Sine 混沌映射2.2 粒子群改进 3.实验结果4.参考文献5.Matlab代码6.Python代码 摘要:为了应对传统粒子…

OpenGl之摄像机

文章目录 摄像机/观察空间摄像机位置摄像机方向右轴上轴 Look At自由移动移动速度鼠标输入缩放摄像机源码 OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感觉&#xff…

第12届蓝桥杯Scratch省赛真题集锦

编程题 第 1 题 问答题 下雨 题目说明 编程实现: 下雨。 具体要求: 1).点击绿旗,角色与背景如下图所示呈现在对应位置; 2).小猫说:“快下雨了,赶快回家”,小狗说:“我再玩一会”; 3).开始下雨,雨滴持续下落, 4).小猫躲在亭子里,雨滴在小猫和亭子后落下, 5).小狗在雨中…

java-基础语法(二)

java-基础语法(二) 一、流程控制语句 1.1 流程控制语句分类 顺序结构 分支结构(if, switch) 循环 结构(for, while, do…while) 1.2 顺序结构 顺序结构执行流程图: 1.3 分支结构之if语句 if语句格式1 格式:if (关系表达式) {语句体; }执行流程&…

【Jenkins+Ant+Jmeter】持续集成接口测试平台搭建

一、环境准备: 1、JDK:Java Downloads | Oracle 2、Jmeter:Apache JMeter - Download Apache JMeter 3、Ant:Apache Ant - Binary Distributions 4、Jenkins:Jenkins 二、Jemter脚本准备: 1、脚本目录&a…