当前位置: 首页 > news >正文

压缩感知重构之匹配追踪算法

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

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

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

三种算法对比分析如下:

算法类别

定义

优缺点

具体算法

贪婪算法

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

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

(1)匹配追踪算法

(2)正交匹配追踪算法

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

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

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

组合算法

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

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

(1) 傅里叶采样

(2) 链式追踪算法

(3)  HHS追踪算法

凸松弛算法

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

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

(1)基追踪算法

(2)最小全变差算法

(3)内点法

(4)梯度投影算法

(5)凸集交替投影算法

本篇主要分析匹配追踪算法(Matching Pursuit  MP)

匹配追踪算法是Mallat和ZHANG在小波分析的基础上提出的,是贪婪迭代算法中的比较基本的算法,有其显著的特点,是学习研究贪婪算法的基础。

1、MP算法的原理

 其中测量矩阵又称为过完备字典,每一列被称为一个原子,则测量矩阵中有n个原子,而y的长度为m,原子的个数远远大于信号的长度,即m<<n,因此测量矩阵又称为过完备字典。信号y在测量矩阵上进行分解,单位向量长度为1,要对过完备字典的原子进行归一化处理。

MP算法的基本思想:

从观测矩阵(过完备字典)中选择一个与信号y相关性最大(最匹配)的原子,也就是观测矩阵中的一列,构建信号的稀疏逼近,求出信号的残差,重复上面的操作,继续选择与信号残差最匹配的一个原子,如此反复迭代直到达到迭代次数,最后信号y就可以表示为这些原子的线性组合。

2、MP算法的理论框图

根据MP算法的原理,得出MP算法的理论图,这样更容易理解。

 3、MP算法的算法流程

根据MP算法的理论框图,现在写出MP算法的算法流程,这样让我们对MP算法有一个更加清晰的理解。

  4、MP算法的信号重构

分别通过对一维离散信号,二维Lena为例,进行MP算法的信号重构。

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

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

通过上面的重构可以得出,MP算法对一维信号有很好的重构效果。

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

        我们上面的研究知道MP算法对一维信号有很好的重构作用,但是算法不只是要在一维信号中有好的重构功能,还要能很好的重构二维信号才可以,这样应用的范围才会更大。我们知道压缩感知重构的是可压缩的稀疏信号,二维信号是不稀疏的,这就要在进行算法重构的时候进行一些处理,我们可以先采用离散余弦变换(dct)使数据稀疏,算法重构结束之后再进行离散反余弦变换(idct),这样就转化为了我们所需要的。本次在matlab中的仿真,我们采用的是256X256的Lena的二维图像,M=180,N=256,稀疏度k=40,M/N=0.7,观测矩阵是高斯随机矩阵,采用MP算法对二维图像进行重构,重构效果如图:

 采样率为0.7的时候,MP算法也能对二维图像进行精确重构。

相关文章:

压缩感知重构之匹配追踪算法

算法的重构是压缩感知中重要的一步&#xff0c;是压缩感知的关键之处。因为重构算法关系着信号能否精确重建&#xff0c;国内外的研究学者致力于压缩感知的信号重建&#xff0c;并且取得了很大的进展&#xff0c;提出了很多的重构算法&#xff0c;每种算法都各有自己的优缺点&a…...

【SpinalHDL快速入门】4.6、复合类型之Vec

文章目录 1.1、描述1.2、声明1.2.1、实例 1.3、运算符1.3.1、比较&#xff08;Comparison&#xff09;1.3.2、类型转换&#xff08;Type cast&#xff09;1.3.3、杂项&#xff08;Misc&#xff09;1.3.4、Lib辅助函数&#xff08;Lib helper functions&#xff09; 1.1、描述 …...

探访世优科技数字人虚拟直播产品体系 | 世优开放日再次成功举行

2023年5月30日&#xff0c;世优科技全栈技术产品体验活动&#xff08;第二期&#xff09;顺利落下帷幕。此次活动共邀请到30余位各行各业的嘉宾到场&#xff0c;在两个多小时的开放日活动中&#xff0c;世优科技全面展示数字人及虚拟直播领域的技术产品体系。来访嘉宾们全程体验…...

有奖励!2023陕西省首台(套)重大技术装备产品项目申报条件、认定材料

本文整理了2023陕西省首台&#xff08;套&#xff09;重大技术装备产品项目申报条件&#xff0c;认定材料等相关内容&#xff0c;感兴趣的朋友快跟小编一起来看看吧&#xff01; 一、重点支持方向及领域 重点支持方向及领域&#xff1a;高档工业母机、电力装备、大型矿山和冶金…...

2023/6/6总结

CSS 如果想要实现背景颜色渐变效果&#xff1a; left是从左边开始&#xff0c;如果想要对角线比如&#xff0c;左上角就是left top&#xff0c;渐变效果始终是沿着一条线来实现的。 下面是跟着视频教学用flex布局写的一个移动端网页&#xff1a; html代码&#xff1a; <!…...

api习题

// 1 整数或者小数 // String a"378.000"; // String rex"[1-9]\\d*|[0-9]|*\\.[0-9]*"; // System.out.println(a.matches(rex)); // 2 只能输入数字&#xff1a; // String rex"\\b*"; // 3 只能输入n位的数字&#xff1a; // String r…...

(STL之string)string类的用法详解

string类成员函数PART1 成员函数(构造函数拷贝构造函数)&#xff1a;string 函数原型&#xff1a; string(); string (const string& str); string (const string& str, size_t pos, size_t len npos); string (const char* s); string (const char* s, size_t n)…...

基于RT-Thread快速上手SD NAND 虚拟文件系统

SD NAND 也称之为贴片式TF卡&#xff0c;贴片式SD卡&#xff0c;采用标准的SDIO接口&#xff0c;兼容SPI接口。下图所示为CS 新一代CS SD NAND NP1GCR01-AOW 大小为128M&#xff0c;对比128M的SD卡&#xff0c;可以看到贴片SD卡尺寸更小&#xff0c;不要SD卡座&#xff0c;占…...

性能测试实战

目录 一、创建线程组与http(s)请求1、JMeter关键词2、创建线程组3、线程组参数举例说明案例1:模拟5个用户,同时访问百度案例2:模拟5个用户,同时访问百度,并且循环2次案例3:模拟5个线程,持续执行10秒的时间案例4:模拟10秒启动10个线程,循环执行20秒4、创建http请求a、操…...

【PWN · 总结】system返回shell(‘/bin/sh‘、‘sh‘、$(0))

pwn题中要通过system/excute等返回shell&#xff0c;进而cat flag。今天遇到一题&#xff0c;参数$(0)也可返回&#xff0c;有必要记录一下。 目录 前言 一、/bin/sh 1.strings 2.IDA 3.pwntools 4.ROPgadget 5.libc中寻找 二、sh 三、$(0) exp IDA查看机器码 …...

《庄子》笔记

庄子 前述&#xff1a;庄子&#xff0c;战国时宋国人。 1.鲲鹏&#xff1a;胸襟宽广&#xff0c;高远&#xff0c;无界限。 2.寒蝉和灵龟&#xff1a;小年的悲哀。 3.小麻雀的得意&#xff1a;境界不同&#xff0c;又有什么可比性呢。 4.列子随风而行&#xff1a;得大道者&…...

五、VBO、EBO 和 VAO

五、VBO、EBO 和 VAO VBO、EBO 和 VAO&#xff1a; VBO&#xff08;Vertex Buffer Object&#xff09;是指顶点缓冲区对象&#xff0c;而 EBO&#xff08;Element Buffer Object&#xff09;是指图元索引缓冲区对象&#xff0c;VAO 是顶点数据的缓冲区对象&#xff0c;VAO 和…...

数据库期末复习(7.2)查询优化

查询优化的概述 商用数据库花了很多的资金投入到查询优化。 查询优化的分类 逻辑查询优化 物理查询优化 比逻辑查询计划多了怎么去执行的方式,为的是数据操作速度更快 逻辑查询优化的三种关键技术 在科学研究的道路上我们往往不是一帆风顺的,人的认识也是局限的,但是我…...

深入探索:在std::thread中创建并管理QEventLoop的全面指南

深入探索&#xff1a;在std::thread中创建并管理QEventLoop的全面指南 1. 前言&#xff1a;理解QEventLoop和std::thread的基本概念1.1 QEventLoop的基本概念和工作原理1.2 std::thread的基本概念和工作原理1.3 QTimer的基本概念和工作原理 2. 在std::thread中创建QEventLoop&a…...

【Netty】Netty中的超时处理与心跳机制(十九)

文章目录 前言一、超时监测二、IdleStateHandler类三、ReadTimeoutHandler类四、WriteTimeoutHandler类五、实现心跳机制5.1. 定义心跳处理器5.2. 定义 ChannelInitializer5.3. 编写服务器5.4. 测试 结语 前言 回顾Netty系列文章&#xff1a; Netty 概述&#xff08;一&#…...

尚硅谷大数据hadoop教程_mapReduce

p67 课程介绍 p68概述 p69 mapreduce核心思想 p70 wordcount源码 序列化类型 mapReduce三类进程 p71 编程规范 用户编写的程序分成三个部分&#xff1a;Mapper、Reducer和Driver。 P72 wordcount需求案例分析 p 73 -78 案例环境准备 &#xff08;1&#xff09;创建maven…...

一键启停脚本

在/root 目录下创建bin文件夹再创建你的文件 文件里面写如下命令 #!/bin/bash if [ $# -lt 1 ] then echo "No Args Input..." exit ; fi case $1 in "start") echo " 启动集群 " echo " --------------- 启动 -------…...

20230604_Hadoop命令操作练习

20230604_Hadoop命令操作示例 再HDFS中创建文件夹&#xff1a;/itcast/it heima&#xff0c;如存在请删除&#xff08;跳过回收站&#xff09;。 hdfs dfs -mkdir -p /itcast/itheima上传/etc/hosts文件到hdfs的/itcast/itheima内。 hadoop fs -put /etc/hosts /itcast/itheima…...

hashCode 与 equals(重要)?

hashCode () 作用是获取哈希码&#xff0c;也称为散列码&#xff0c;实际上是返回一个int 整数&#xff0c;哈希码作用是确定该对象在哈希表中的索引位置&#xff1b;hashCode() 定义在JDK的Object.java中&#xff0c;意味着Java中的任何类都包含有hashCode() 函数。 散列表存…...

华为OD机试(2023.5新题) 需要打开多少监控器(java,py,c++,js)

华为OD机试真题目录:真题目录 本文章提供java、python、c++、jsNode四种代码 题目描述 某长方形停车场,每个车位上方都有对应监控器,当且仅当在当前车位或者前后左右四个方向任意一个车位范围停车时,监控器才需要打开 给出某一时刻停车场的停车分布,请统计最少需要打开…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...

xmind转换为markdown

文章目录 解锁思维导图新姿势&#xff1a;将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件&#xff08;ZIP处理&#xff09;2.解析JSON数据结构3&#xff1a;递归转换树形结构4&#xff1a;Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...

算术操作符与类型转换:从基础到精通

目录 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符&#xff1a;、-、*、/、% 赋值操作符&#xff1a;和复合赋值 单⽬操作符&#xff1a;、--、、- 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...

Monorepo架构: Nx Cloud 扩展能力与缓存加速

借助 Nx Cloud 实现项目协同与加速构建 1 &#xff09; 缓存工作原理分析 在了解了本地缓存和远程缓存之后&#xff0c;我们来探究缓存是如何工作的。以计算文件的哈希串为例&#xff0c;若后续运行任务时文件哈希串未变&#xff0c;系统会直接使用对应的输出和制品文件。 2 …...

HTML中各种标签的作用

一、HTML文件主要标签结构及说明 1. <&#xff01;DOCTYPE html> 作用&#xff1a;声明文档类型&#xff0c;告知浏览器这是 HTML5 文档。 必须&#xff1a;是。 2. <html lang“zh”>. </html> 作用&#xff1a;包裹整个网页内容&#xff0c;lang"z…...