欢迎光临散文网 会员登陆 & 注册

基于随机解调的压缩感知 Matlab仿真

2023-07-22 10:46 作者:acuglor  | 我要投稿

目录

  • 压缩感知的数学描述

  • 基于随机解调的压缩感知理论推导

    • 信号相乘

    • 低通滤波

    • 低速采样

    • 计算感知矩阵

  • 信号重构 OMP算法

  • 仿真验证

压缩感知的数学描述

        压缩感知的过程可以简单描述为,通过某种方式对原始信号加工,然后对加工后的信号进行较少的采样,最后通过重构算法,从采样信号中恢复出完整的原始信号。

        这一过程要求原始信号具备某种稀疏性。将原始信号写为某些基向量的线性组合,如果大部分系数都是0则称该信号是稀疏的。

系数向量a=[a1, a2……an]中大部分元素是0,若有K个非零元素,则称信号x的稀疏度是K。

压缩感知的过程为

其中%5Cphi%20是观测矩阵,由测量系统决定也就是先前所说的“加工过程”,测量得到的信号y就是观测矩阵对原始信号x作用的结果,为了达到压缩的效果,%5Cphi%20应当是一个行数小于列数的矩阵。

Θ称为感知矩阵,由观测矩阵和稀疏基共同决定,信号重构的过程就是求解x的过程。这看起来似乎是不现实的,因为方程组中未知量的数目大于方程的数目。但是原始信号的稀疏性为其求解带来了可能。

        压缩感知最明显的优势就是降低对AD性能的要求,可以通过较低频率的采样得到高频的原始信号,某种意义上打破了奈奎斯特采样定理的限制。

基于随机解调的压缩感知理论推导

        随机解调时压缩感知框架下实现模拟信息转换的一种方法,能够将压缩感知理论从离散时间域扩展到连续时间域,显著降低信号采样速率。

随机解调系统流程如下:


      信号相乘

         原始信号x(t)具备稀疏性,是实现压缩感知的前提。即原始信号在某域展开后大部分系数均为0,若有K项不为0,则称原始信号稀疏度为K。例如,原始信号包含频率为3kHz与4kHz的正弦信号,则将其在频域展开后只有两项系数不为0,原信号的稀疏度为2。

        随机信号P(t)的幅值近似随机地跳变为1或-1,这种随即特性使其频谱近似于宽带白噪声,几乎覆盖整个频率轴。

乘法器实现地数学过程如下


        其中y1是乘法器输出地混频信号。

        在频域看待这一过程则有


式中,a_%7Bk%7D%20是原始信号的傅里叶系数,%5CPsi%20_%7Bk%7D是傅里叶变逆换的基向量。因为原始信号在频域是稀疏的,所以式子中N是有限的整数。

Y1和 P分别是混频信号和伪随机信号的傅里叶变换。这一时域相乘的过程可以等效为两信号在频域做卷积。

这样做的意义在于混频信号频谱中的每一点都包含着原始信号全部频谱信息。从最后的化简结果来解释这一点:混频信号的频谱中任意一点都包含了k从-N到N的全部,这为低频采样后的信号重构提供了可能。

        低通滤波

        前文已经解释过,混频信号频谱中每一点都包含了原始信号的全部傅里叶系数,因此滤除混频信号的高频成分,就可以用低速采样获取原始信号的信息。

滤波的数学过程为


其中y2是滤波后的信号,h是滤波器的冲激响应。    

        低速采样

        低速采样的过程可以描述为

        

上式就是将连续信号离散化的过程,离散化的采样信号可以写为


其中

信号重构的过程就是从y[m]中恢复出x(t)的过程。

        计算感知矩阵


其中%5Cbar%7B%5Comega%20%7D%20%3De%5E%5Cfrac%7Bj2%5Cpi%20%7D%7BN%7D%20,c是原始信号离散后的点数与低速采样信号点数的比例,形象的解释如下:


低速采样信号的采样间隔是,在这段时间里从原始信号中取了c点。c可以用n/m计算,

其中n是原始信号点数,m是低速采样信号点数。


信号重构 OMP算法

首先介绍算法的流程

输入参数:感知矩阵Θ、低频采样信号y、原始信号稀疏度K

输出参数:重构系数a

步骤1:初始化各参数,包括残差,支撑矩阵,计数变量

步骤2:计算感知矩阵每列向量与残差的内积,并找出内积最大位置,记录该位置,将该位置的列向量加入支撑矩阵A。

步骤3:求低频采样信号在支撑集上的投影得到逼近信号x(这里的x不是指前文中的原始信号),也即求解

                                                          

需要最小二乘法。

步骤4:更新残差,

                                                

初始残差

步骤5:计数变量加一,若小于等于K则回到步骤2;反之执行步骤6。

步骤6:输出重构系数x,及其在a向量中的位置。


对OMP算法的简单解释:

        初始残差就是低频采样信号y,y可以由感知矩阵列向量的线性组合得到,而且由于原始信号的稀疏性,这一线性组合中大多数系数都是0只有少部分非零,重构信号的过程其实就是求解这些非零系数的过程。

        换言之,我们希望知道,感知矩阵的每一列在y中的占比。初始残差与感知矩阵每一个列向量求内积的过程可以类比自相关,这一过程可以帮助我们判断哪一列的系数非零。之后将这一列加入支撑集用最小二乘法让支撑集逼近y,从而得到这一列对应的系数。

        更新残差的过程本质上是将y中已经确定的成分剔除,然后继续判断去掉刚才的那一列之后,感知矩阵的哪一列在y中占比最高,再将其加入支撑集,用最小二乘法求解对应的系数。不断重复这一过程直至得到全部系数。


仿真验证

        将频率为3000Hz、4000Hz的正余弦信号叠加,与混频信号相乘,通过低通滤波器,低频采样,得到采样信号。

尝试用OMP算法从采样信号中恢复出原始信号,并做对比

可以看到重构信号与原始信号几乎完全一致。

总结

        伪随机信号的频谱几乎遍布整个频率轴,这是一个很重要的性质。原始信号与为随机信号在时域相乘,也即在频域的卷积将原始信号的频谱信息隐藏在了混频信号的每一频率中。这为后续的解调信号创造了可能。低通滤波器保留混频信号的低频成分,从而可以使用较低的采样频率采样,但采样频率应该至少高于低通滤波器截止频率的两倍。

        OMP算法需要实先确定原始信号的稀疏度,导致这一算法可能并不实用。

        另外,虽然仿真结果很美好,但这一系统的硬件实现似乎不太容易。


代码放在云盘里了

压缩感知仿真 https://www.aliyundrive.com/s/f6uEVnhPJuM 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。




基于随机解调的压缩感知 Matlab仿真的评论 (共 条)

分享到微博请遵守国家法律