论文摘要
信号稀疏分解以其简洁、稀疏、灵活的优良特性成功的应用到信号处理的诸多方面中,成为信号处理研究的热点之一。匹配追踪算法实现简单、便于理解,在稀疏分解诸算法中算法复杂度最低,是信号稀疏分解中运用最广泛的算法。但即使这样,基于MP的信号稀疏分解依然面临分解速度慢、算法复杂度高、计算耗时长的问题。与CPU相比,GPU对大量数据的处理能力更加出色。GPU的存储器带宽也较CPU更有优势。GPU为大量数据的运算提供了新的解决方案,特别是CUDA的提出,使GPU有向通用计算机发展的趋势。针对CPU实现信号MP稀疏分解出现的问题,本文采用NVIDIA公司发布的统一运算设备架构CUDA来进行信号稀疏分解的GPU加速,提高信号稀疏分解的运算速度。首先本文介绍了一维信号稀疏分解的基本原理,特别是基于MP的信号稀疏分解算法思想。接着阐述了NVIDIA公司的GPU产品CUDA,并从硬件和软件两方面介绍了CUDA编程模型、存储器模型、软件体系、执行模式等。然后针对基于MP的信号稀疏分解分解速度慢的缺点,对其采用GPU进行加速来实现。在实现的过程中,本文提出了符合硬件特性的内积运算并行方案及改进方案。与CUDA库函数中的内积运算函数进行比较,内积并行方案的运算效率更出色。该方案成功应用到基于MP的信号稀疏分解中的原子能量运算、信号或其残差与冗余字典中原子的内积运算中。基于CUDA平台,本文对局部运算中冗余字典生成并行实现,提高了字典中原子的生成速度。实验表明,与CPU串行运算相比,在待分解信号长度为8192时,GPU实现基于MP的信号稀疏分解,加速比可达37.10倍。最后针对GPU实现基于MP的信号稀疏分解存在冗余字典过大的问题,对基于FFT的信号MP稀疏分解算法采用GPU进行加速。在实现过程中,本文对冗余子字典、快速傅里叶变换及其反变换等局部运算进行GPU并行实现。同时本文提出的内积并行运算方案成功运用于字典中原子的能量计算中。实验表明,在待分解信号长度为16384时,GPU加速基于FFT的信号MP稀疏分解的速度是CPU串行实现的12.29倍。