《基于压缩传感的匹配追踪重建算法研究》读书笔记
基于压缩传感的匹配追踪重建算法研究
1、压缩感知与传统数据获取和处理过程比较:
压缩感知理论表明,在对信号获取的同时,就对数据进行适当的压缩。
传统的数据获取和处理过程主要包括:采样、压缩、传输、解压缩,且采样过程必须满足奈奎斯特采样定律,这种方式采样数据量大,先采样再压缩,浪费大量的传感元,时间和存储空间,相较而下,压缩感知理论针对可稀疏表示的信号,将数据采集和数据压缩合二为一,在信号处理领域应用前景广阔。
2、基础理论介绍:
Candes 和 Donoh 在相关研究基础上于2006年正式提出了压缩传感的概念,设 x(n) 为传统采样所得到的N维数字信号, 如果它是一个K-稀疏(仅有K个非零元 K<<N)或是可压缩(通过变换可成为 K 稀疏〉的信号, 那么它在线性变换下仅用少量的系数即可很好地估计出来。 而通过压缩传感过程可直接得到M维信号 y(m) (M < N ), 它们之间的关系为:
(1)
该式也可以看作原信号x在 下的线性投影。 其中, 称为传感矩阵或测量矩阵, 大小为MxN。压缩传感过程如图 1-1 所示:
其中A I C(Analog-to-information Conversion)为模拟信息转换,通过AIC可以得到 y(m),之后通过重建算法即可重建数字信号 x(n)。因此,重建算法对于压缩传感采样过程准确性的验证和后期 x(n) 压缩之后的精确重构均有着重要的意义。 由于式(1)中 y 的维数远远低于 x 的维数,因此方程有无穷多个解,即该问题是不适定的,很难直接重建原始信号。
但若 x(n) 是K-稀疏的,则未知数的个数就会大大减少,这样就有很大可能使得方程有唯一解,即能够有 y(m) 重建 x(n)。
这种情况下的方程为:
或者 x(n) 可以通过变换变成K-稀疏信号,例如通过正交变换变成频域的稀疏信号,,s 为 下的稀疏信号。
这种情况下的方程变换为:
理论证明,可以通过求解下面的最优 范数问题,就能够从观测信号 y 中精确重构出未知信号 x:
或者:
Candes 指出当K、 M、 N之间满足 且矩阵 满足约束等距性条件RIP(Restricted Isometry Property)时,
x(n)即可置信重建。
通过以上的分析可以看到, 压缩传感的核心思想与传统信号采样方法对原始信号x先来样后压缩不同, 它由少量线性测量通过求解最优 范数问题得到 x ,突破了 Nyqusit 来样定理的瓶颈, 降低了对传感器件分辨率的要求,使得超高分辨率信号获取成为可能。 在压缩传感中,稀疏信号的重建是一个非常重要的问题。
3、简单谈谈有限等距性条件:
Baraniuk 给出约束等距性的等价条件是测量矩阵 和稀疏表示基 不相关,相关论文已经证明当 为高斯随机矩阵时,能较好地满足这一条件。因此,我们可以选择一个大小为 M*N 的高斯随机矩阵作为测量矩阵,其中每一个值都满足 的独立正态分布。 高斯测量矩阵的优点在于它几乎与任意稀疏信号都不相关, 因而所需的测量次数最小。 但缺点是矩阵元素所需存储空间很大,并且由 于其非结构化的本质导致其计算复杂。
4、压缩感知的应用
运用压缩传感原理, RICE 大学的 Baraniuk 等人成功研制了单像素相机。由于该相机直接获取的是M次随机线性测量值, 而不是获取原始信号的N(M <N)个像素值, 因此为低像素相机拍摄高质量图像提供了可能。
5、引出最小范数法:
信号重建算法是压缩传感理论关键的一部分, 是指由M维测量向量y重建出长度为N(M <N)的信号x的过程。Candes等证明了信号重建问题可以通过求解最小 范数问题加以解决,因为 范数最小使得结果尽可能地稀疏。但Donoho 指出, 求解最小 范数是一个NP-hard问题, 需要穷举x中非零值的所有 种排列可能, 因而无法直接求解。 鉴于此, 相关研究人员提出了一系列求得次最优解的算法,主要包括最小 范数法、贪婪迭代匹配追踪系列算法、迭代阙值法以及专门处理二维图像问题的最小全变分法等。
将 转化为:
, 即将 范数问题转化为范数问题,有文献已经证明二者是等价的。
6、信号重构算法:
重建算法的关键是如何从压缩传感得到的低维数据中精确地恢复出原始的高维数据, 因此对采样过程准确性的验证有着至关重要的意义。
OMP重构算法简介:
OMP算法本质思想是: 以贪婪迭代的方法选择 的列, 使得在每次迭代中所选择的列与当前的元余向量最大程度地相关, 从测量向量中减去相关部分并反复迭代, 直到迭代次数达到稀疏度K, 强制迭代停止。
核心算法步骤:
根据此步骤给出OMP重构算法的MATLAB代码(改自沙威大牛)并给出解释:
% 1-D信号压缩传感的实现(正交匹配追踪法Orthogonal Matching Pursuit)% 测量数M>=K*log(N/K),K是稀疏度,N信号长度,可以近乎完全重构clc;clear;close all;% 1. 时域测试信号生成K = 7; % 稀疏度(做FFT可以看出来)N = 256; % 信号长度M = 64; % 测量数(M>=K*log(N/K),至少40,但有出错的概率)f1 = 50; % 信号频率1f2 = 100; % 信号频率2f3 = 200; % 信号频率3f4 = 400; % 信号频率4fs = 800; % 采样频率ts = 1/fs; % 采样间隔Ts = 1:N; % 采样序列x = 0.3*cos(2*pi*f1*Ts*ts)+0.6*cos(2*pi*f2*Ts*ts)+0.1*cos(2*pi*f3*Ts*ts)+0.9*cos(2*pi*f4*Ts*ts); % 完整信号,由4个信号叠加而来% 2. 时域信号压缩传感Phi = randn(M,N); % 观测矩阵,(M*N)64*256的扁矩阵y = Phi*x.'; % 获得观测向量y,(M*1)% 3. 正交匹配追踪法重构信号(本质上是L_1范数最优化问题)m = 2*K; % 算法迭代次数(m>=K),设x是K-sparse的Psi = fft(eye(N,N))/sqrt(N); % 标准正交基字典(离散傅里叶变换标准正交基矩阵)x'=Psi'*s;(s = Psi*x')T = Phi*Psi'; % 恢复矩阵(测量矩阵*正交反变换矩阵)hat_s = zeros(1,N); % 待重构的谱域(变换域)向量(行向量1*N)Aug_t = []; % 增量矩阵(初始值为空矩阵)r_n = y; % 残差值product = zeros(1,N);for times = 1:m % 迭代次数for col = 1:N % 恢复矩阵的所有列向量product(col) = abs(T(:,col)'*r_n); % 恢复矩阵的列向量和残差的投影系数(内积值)end[val,pos] = max(product); % 最大投影系数对应的位置,即找到一个其标记看上去与收集到的数据相关的小波Aug_t = [Aug_t,T(:,pos)]; % 矩阵扩充T(:,pos) = zeros(M,1); % 选中的列置零(实质上应该去掉,为了简单我把它置零),在数据中去除这个标记的所有印迹aug_s = (Aug_t'*Aug_t)^(-1)*Aug_t'*y; % 最小二乘,使残差最小r_n = y-Aug_t*aug_s; % 残差pos_array(times) = pos; % 纪录最大投影系数的位置endhat_s(pos_array)=aug_s; % 重构的谱域向量hat_x=real(Psi'*hat_s.'); % 做逆傅里叶变换重构得到时域信号%% 4. 恢复信号和原始信号对比figure(1);hold on;plot(hat_x,'k.-') % 重建信号plot(x,'r') % 原始信号legend('Recovery','Original')norm(hat_x.'-x)/norm(x)
————————————————————————————————————————————————————
符号解释:
这些符号的具体叫法可见(个人觉得还是挺权威):
压缩感知回顾与展望
K为稀疏度
Phi为观测矩阵,又叫测量矩阵
Psi为正交基字典矩阵(x = Psi ' * s)(s = Psi * x) (x 为时域信号,s 为频域稀疏信号)
hat_s, 信号x在Psi域的稀疏表示,hat_s是K稀疏的,在程序中为行向量
T = Phi * Psi';为恢复矩阵,又叫CS信息算子(y = Phi * x = Phi * Psi' * s = T * s)
在程序中它们的关系为:hat_y = Phi * Psi' * hat_s' = T * hat_s';
Aug_t: M * times, 由矩阵T中与残差r_n最相关的列向量组成。
对代码的逐行解释,我就不做重复的工作了,见:
压缩感知“Hello World”代码初步学习
这篇文章后面讲解的很详细了。
下面给出上述代码运行结果:
————————————————————————————————————————————————————
不得不说文章的精华我还没有抓到,后面很多恢复算法,我都想去实现一下,作下比较。后面有时间继续更新吧,时间有点紧张。
《基于压缩传感的匹配追踪重建算法研究》读书笔记相关推荐
- 读书笔记 | 墨菲定律
1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...
- 读书笔记 | 墨菲定律(一)
1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...
- 洛克菲勒的38封信pdf下载_《洛克菲勒写给孩子的38封信》读书笔记
<洛克菲勒写给孩子的38封信>读书笔记 洛克菲勒写给孩子的38封信 第1封信:起点不决定终点 人人生而平等,但这种平等是权利与法律意义上的平等,与经济和文化优势无关 第2封信:运气靠策划 ...
- 股神大家了解多少?深度剖析股神巴菲特
股神巴菲特是金融界里的传奇,大家是否都对股神巴菲特感兴趣呢?大家对股神了解多少?小编最近在QR社区发现了<阿尔法狗与巴菲特>,里面记载了许多股神巴菲特的人生经历,今天小编简单说一说关于股神 ...
- 2014巴菲特股东大会及巴菲特创业分享
沃伦·巴菲特,这位传奇人物.在美国,巴菲特被称为"先知".在中国,他更多的被喻为"股神",巴菲特在11岁时第一次购买股票以来,白手起家缔造了一个千亿规模的 ...
- 《成为沃伦·巴菲特》笔记与感想
本文首发于微信公众帐号: 一界码农(The_hard_the_luckier) 无需授权即可转载: 甚至无需保留以上版权声明-- 沃伦·巴菲特传记的纪录片 http://www.bilibili.co ...
- 读书笔记002:托尼.巴赞之快速阅读
读书笔记002:托尼.巴赞之快速阅读 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<快速阅读>之后,我们就可以可以快速提高阅读速度,保持并改善理解嗯嗯管理,通过增进了解眼睛和大脑功能 ...
- 读书笔记001:托尼.巴赞之开动大脑
读书笔记001:托尼.巴赞之开动大脑 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<开动大脑>之后,我们就可以对我们的大脑有更多的了解:大脑可以进行比我们预期多得多的工作:我们可以最 ...
- 读书笔记003:托尼.巴赞之思维导图
读书笔记003:托尼.巴赞之思维导图 托尼.巴赞的<思维导图>一书,详细的介绍了思维发展的新概念--放射性思维:如何利用思维导图实施你的放射性思维,实现你的创造性思维,从而给出一种深刻的智 ...
- 产品读书《滚雪球:巴菲特和他的财富人生》
作者简介 艾丽斯.施罗德,曾经担任世界知名投行摩根士丹利的董事总经理,因为撰写研究报告与巴菲特相识.业务上的往来使得施罗德有更多的机会与巴菲特亲密接触,她不仅是巴菲特别的忘年交,她也是第一个向巴菲特建 ...
最新文章
- 年季度月周日控件html,基于bootstrap按年、季度、年月、年月日的日历插件(原创)...
- oracle易忘函数用法(3)
- Elasticsearch索引映射详解mapping.properties
- 我的第一个Github项目上线了
- 使用ABAP memory inspector分析product 搜索内存占用
- “神兽”出笼谁来管?多地试水暑期托管班
- 【clickhouse】Clickhouse 集成 presto
- 95-240-048-原理-State-StateBackend
- java 定时还款 技术_详解java定时任务
- PHP URL参数获取方式的四种例子
- [NOI2006]神奇口袋
- WPF 入门教程 TextBox详解
- 模块化开发RequireJS之shim配置
- 华米 Amazfit 跃我 GTR 4和GTS 4的区别
- Java 学习笔记(二十一)
- 【NOI2001】【SSL1384】 【TOI 1023】【POJ 1185】炮兵阵地
- abcd\110的字节数、字符长度以及字符
- 齐博x1 相关栏目名称的调用
- 计算机网络自顶向下第一章知识点总结(上)
- vue-tree-chart 组织架构-树形图-流程图(含鼠标右击事件)
热门文章
- Catalan数——卡特兰数
- 明天参加SmartClient讲座苏州站的来报个名,认识认识。
- qt 在移动的两点之间连线_几种移动端跨平台技术区别
- python导入数据画多列直方图_在python datafram中使用两列(值、计数)绘制直方图...
- android捕获方法,android捕获Home键的方法
- kicad绿油开窗_GitHub - OS-Q/S05: KiCad EDA
- php windows应用开发,开发老手谈Windows平台的PHP应用开发
- python划分代码_多分类评价指标python代码
- python pytest_Python项目的pytest初始化
- layui中laydate兼容ie_layui菜鸟教程--乐字节前端