导航:首页 > 源码编译 > iht算法

iht算法

发布时间:2023-03-30 12:06:27

① 求助各位高手,想做一个excel表格,用公式自动计算投资的盈亏情况,请问如何实现

可以在买入的价格使用负数表示,然后用数据透视表进行自动计算

压缩感知理论基本介绍

姓名:王鑫磊

学号:21011110262

学院:通信工程学院

【嵌牛导读】压缩感知是信号处理领域进入21世纪以来取得的最耀眼的成果之一,并在磁共振成像、图像处理等领域取得了有效应用。压缩感知理论在其复杂的数学表述背后蕴含着非常精妙的思想。基于一个有想象力的思路,辅以严格的数学证明,压缩感知实现了神奇的效果,突破了信号处理领域的金科玉律——奈奎斯特采样定律。即,在信号采样的过程中,用很少的采样点,实现了和全采样一样的效果。

【嵌牛鼻子】压缩感知,欠采样,稀疏恢复

【嵌牛提问】压缩感知相比奈奎斯特采样定律的主要突破是什么?

【嵌牛正文】

1.CS的初步理解

    CS是一个针对信号采样的技术,是在采样过程中完成数据压缩的过程。我们知道在对模拟信号按一定采样频率进行采样并得到数字信号的过程中,要想完整保留原始信号中的信息,采样频率必须大于信号中最高频率的2倍(奈奎斯特采样定理)。但Candes等人又提出了,如果信号在频域是稀疏的,那么它可以由远低于采样定理要求的采样点重建恢复。Nyquist定理中的采样为等间距采样,若采样频率低必然会引起混叠,如果不等间距采样呢?如果是随机采样呢?随机采样必然会发生频谱泄露,但泄露会均匀分布在整个频域且泄露值都较小,而最大的几个峰值可以通过设置阈值检测出来,从而有了恢复出原始信号的可能。

    图1展示了一原始的模拟信号在频域是稀疏的,仅由三个频率分量组成,为了得到数字信号,首先要在时域对其进行采样,根据压缩感知理论,可以在时域进行随机亚采样,之后得到的频谱会产生如图所示的泄露,但可以通过阈值检测求出原始信号的真实频率分量,从而恢复出原始信号。

2. CS的数学模型

    CS有两个前提条件:

假设:x是长度为N的原信号,稀疏度为k,它是未知的;Φ为测量矩阵,对应采样过程,也就是压缩的过程,如随机采样,是已知的;采样后的结果为:y=Φx,也是已知的;因此压缩感知问题是:在已知测量值y和测量矩阵Φ的基础上,求解原信号x的过程。然而一般信号x本身并不稀疏,需要在某种稀疏基上进行稀疏表示,即x=Ψs, 其中s为稀疏向量,即为所求的稀疏信号;Ψ为稀疏基矩阵,也叫稀疏变换矩阵,如傅里叶变换。

于是最终问题表示为:

                                                                                  y = ΦΨs = Θs                                                                                      (1)

已知y,Φ,Ψ,求s, Θ称为感知矩阵。感知矩阵需要满足约束等距原则(RIP),因此需要测量矩阵Φ和稀疏基Ψ满足不相关,即采样过程与稀疏过程不相关。Candes等人又找到了独立同分布的高斯随机测量矩阵可以称为普适的压缩感知测量矩阵,于是满足高斯分布的随机测量矩阵就成了CS最常用的观测矩阵。

3. CS的常用方法

已知(1)方程有无数解,因此需要通过增加约束来得到唯一解。方程是稀疏的,因此我们需要找到这个方程里所有解中最稀疏的内个就行了。

求解上述方程一般有三种思路:凸优化算法,贪婪算法,贝叶斯理论。CS常用算法有:

基追踪重构算法 (Basis Pursuit, BP):BP算法是一种凸优化方法。

正交匹配追踪算法 (OMP):OMP属于贪婪算法。

阈值迭代算法 : 包括软阈值迭代(ISTA)和迭代硬阈值(IHT)。ISTA的一种改进方法为快速阈值迭代(FISTA)。

【嵌牛参考】

[1]. Dandes, E. J. . “Near-optimal signal recovery from random projections.” Universal encoding strategies IEEE Transactions on Information Theory 52(2006).

[2]. Donoho, D. L. . “Compressed sensing.” IEEE Transactions on Information Theory 52.4(2006):1289-1306.

③ 由于c++中没有实现如python中的string.split()和list.length()的方法,所以我自己写了两个程序,但有问题

很简单的问题啊,你仔细想一下,python的split切分出来的字符串数组是什么类型呢?list类型的啊!比如
x="abc def hgij"
x.split() 返肢枣禅回 ['abc', 'def', 'hgij']

那在C++中我也会整一个std::list啊,
std::list<string&>岩扮 mystrlist;
来了一个字符串x
string x="abc def hgij"
pos1=x.find_first_not_of( ' ', pos2 );
截取到一段字符历尘串之后
string y = x.substr( pos1, pos2-pos1 )
插入到list里面
mystrlist.push_back( y )
完事之后就可以对mystrlist做你想做的操纵了
mystrlist.size()

阅读全文

与iht算法相关的资料

热点内容
反编译后怎么找到服务器地址 浏览:975
保险app上哪里买 浏览:808
关于缅北的电影有哪些 浏览:146
看片网站不下载 浏览:397
win端口重启命令 浏览:579
哪部电影有分娩镜头 浏览:29
韩国R级朴银狐 浏览:237
在沈阳做app推广地址在哪里好 浏览:208
vue项目获取组件源码 浏览:10
朝鲜抗日战争电影 浏览:951
姜银惠全部5部影片 浏览:278
龙游花丛全文阅读300 浏览:522
教授的妻子是房产中介的外国电影 浏览:953
法国LOVE电影,在线 浏览:599
艺术家的解压方式 浏览:290
如何分段压缩文件 浏览:139
java秒转分钟 浏览:108
生活中的玛丽主演 浏览:264
紫牛程序员电子书 浏览:67
每个软件自带编译器吗 浏览:818