APP下载

基于改进Kalman 滤波l1 模加速算法的语音信号重构

2021-07-14李芳芳

关键词:范数重构矩阵

马 春,汪 庆,李 亚,李芳芳

(安徽中医药大学医药信息工程学院,安徽 合肥 230012)

现实中经常需要从噪声和抽样不足的数据中重建高维离散信号,从而求解欠定噪声方程组。为了实现精确重构,信号必须是稀疏的或高度可压缩的。在离散情况下,稀疏信号可能比环境维度还要少[1,2]。稀疏信号重构的优化方法主要有l1最小化[3−7]、基追踪[8](BP)、匹配追踪算法[9]以及贝叶斯算法[10]等。压缩感知(compressed sensing,CS)是一种计算信号处理方式[11−13],可以从很少的样本中准确地重构稀疏信号。CS 通过线性规划求解l1最小化问题来实现重构欠定方程组的稀疏向量。CS 已成功地集成到光学成像(如单像素相机)、磁共振成像(MRI)、计算机断层扫描(CT)和合成孔径雷达(SAR)等应用[1−2,13]中。

使用Kalman 滤波器可以保证从有噪声的测量中得到最优的重构效果[14−18]。文献[19−21]提出了利用Kalman 滤波器结构进行CS 稀疏信号重构的方法,这些方法保持了状态向量的维数与真实维数一致,因此,其重构迭代时间长、效率低。实际上,信号所在的子空间的维数可以很低。为此,本文提出利用l1最小化的方法构造信号维数的最佳表示。即采用Aitken 的delta-squared 过程外推法对Kalman 滤波的l1最小化(KML1)进行改进,提出了一种改进的基于Kalman 滤波的l1最小化加速算法(以下简称“加速算法”),以提高算法的精确度,缩短重构时间,并将加速算法应用于语音信号的重构。最后,本文比较了不同迭代次数、不同重构算法之间的区别。

1 压缩感知(CS)

且m<<n。令为s-稀疏信号。式(1)的目标是求解一个欠定线性方程组。

式中:A∈Cm×n为 感知或观测矩阵;∈Cm为含噪观测向量;R∈Cm×m为观测噪声协方差矩阵,且假设该矩阵服从零均值循环对称高斯分布;λ为拉格朗日乘子。

对于l1的重建,通过引入零空间属性(null space property,NSP)来验证l0最小化问题和l1最小化问题之间的等价性。NSP 保证了A的零空间中的所有向量都不会过于稀疏。矩阵的零空间被定义为由它投影到0 的向量集,即 N (A)=。令集合 [N]:={1,···,n}的 子集S,SC=:[N]S表示互补集。m×n矩阵A具 有s阶的零空间性质,如果对所有索引集|S|≤s满足则重构精确稀疏向量所需的最小测量次数[22]为

2 基于Kalman 滤波的l1最小化(KML1算法)

对于线性传感模型,Kalman 滤波器可以提供时变状态的最佳估计,同时,KML1 的时变状态也会根据线性模型更新。l1范数可以理解为稀疏状态向量的度量,并使用迭代扩展线性化Kalman 滤波器(iterative extension linearization Kalman filter,EKF)以递归方式逼近估计值[23−25]。

对观测矩阵A进行LQ 分解,即将矩阵A分解成A=LQ的形式,其中L是下三角阵,Q是酉(正交)阵。将L转化为单位下三角矩阵EN(A),即A的零空间生成基,这里A的零空间是 Cn的n-m维子空间。

用k表示迭代次数。在每一次迭代中,通过零空间基上的系数来计算要添加到解中的差分向量。非线性测量模型为

KML1 算法并不总是收敛于解l1的范数。对于维数较小的A,如n=64,可以观察到其收敛性;而对于大维数,如n=120,则不能精确地收敛于最小l1,如果 γ(k)(k→∞)逼 近1,则l1范数不再减小,这并不能保证此时已经达到最小l1标准。因此,在这种情况下,不能精确地重构。KML1 算法流程如图1 所示。

图1 KML1 算法流程

3 改进的 l1模加速算法

3.1 Aitken delta-squared 过程分析

Aitken 的Δ2-基本过程是迭代交错解过程的可靠、高效的加速收敛方法[27]。它是一种典型的加速过程。如果所考虑的序列与几何序列足够相似,则该过程将导致收敛加速。Steffensen 方法就是将Aitken 方法的收敛速度迭代加速到二阶。

令uk为收敛于u的序列,如果式(8)成立,则序列收敛更快[27]。

3.2 基于Aitken 的delta-squared 过程外推法

使用外推过程从收敛序列uk构造出新的序列比 原始序列uk收敛更快。2 种外推方案如下。

Aitken 的delta-squared 过程外推法是在Aitken的Δ2-基本过程的基础上的改进,其具体流程如图2所示。

图2 基于Aitken 的delta-squared 过程外推法算法流程

3.3 改进的KML1 加速算法(加速算法)

扩展卡尔曼滤波EKF 包含了对附加测量噪声过程的假设,对于EKF 的实现来说,这个假设并不是必要条件。如果测量噪声v不是叠加噪声,则测 。测量量函数h(·)具 有的形式为值会随着函数状态和测量噪声而变化,因此得到的雅可比矩阵为。

加速算法具体流程如图3 所示。加速算法从KML1 的初始化开始,初始化变量r。根据3.1 节采用的Steffensen 方法,在KML1 中定义的变量,在每次迭代中都会更改,因此,在第2 步的迭代中,根据Aitken 的delta-squared 过程,使用改进的外推法式(11)的松弛参数ω来确定减少的测量值,即在图3 中执行当K=2时的图右侧分支的流程。

图3 改进KML1 加速算法流程

在第3 步迭代中,采用Steffensen 方法计算减少的测量值。从第3 步迭代开始,用Steffensen 方法在收敛序列上求得系数r,即在图3 中执行K≥3时 的图左侧分支的流程。此外,当k→∞时,Steffensen 方法使r(k) 趋于0,y˜值收敛于一个不等于0 的极限值,→x的估计值收敛到一个固定点。

4 语音信号实验及结果分析

本文实验采集了30 个实时语音信号,并将它们在小波域上进行稀疏化、归一化处理。采用Gauss 随机矩阵作为测量矩阵,分别对比在不同矩阵大小、稀疏度和迭代次数下的KML1 算法和加速算法的实验结果。实验通过l1范数恢复的最终值和均方误差(MSE)来比较2 种算法的优劣。

4.1 对比KML1 算法和加速算法的 l1范数重建语音信号的结果

本文在高维情况(n=128)下进行实验。实验分别取每个语音信号的128 个采样点,测量矩阵的大小为128×256,稀疏度s=30,迭代次数设置为1000。图4 示出KML1 算法、加速算法的实验结果与应该达到的真实l1范数的对比情况。由图可知:KML1 算法和加速算法的l1范数基本都会随着迭代次数的增加而减小;KML1 算法在280 次迭代左右的偏差最大,在迭代次数达到500 次后趋于平稳,收敛于5 左右,接近真实值;加速算法在迭代100 次之后收敛于4.88,达到与真实值4.82 接近的水平,并一直保持在这个状态。

图4 采样数n=128,l1模值的对比

由图4 还可以看出:KML1 算法的l1范数不能收敛到真实的l1范数;红线表示的通过加速算法获得的l1范数,经过100 次迭代后,不仅达到了真正的l1范数,并且均方误差MSE 值达到了2.1×10−4。

此外,本文还在低维情况(采样数n=64)下进行了实验。实验分别取每个语音信号的64 个采样点,迭代1 000 次,其结果如图5 所示。2 种算法的实验结果与真实值都比较接近,其中KML1 算法在迭代650 次左右达到准确值,迭代1 000 次的平均值为4.72,加速算法在迭代500 次达到准确值,迭代1 000 次的平均值为4.82,加速算法重构的效果更为精确。

图5 采样数n=64,l1 模值的对比

综合实验结果,表明加速算法比KML1 算法更精确地重构了。KML1 并不能一直收敛于解的真实l1范 数,因此无法获得精确的解。使用加速算法重建语音信号,不仅收敛速度更快,而且可以收敛到最接近原始信号的解。

4.2 重构算法对比

对采集到的语音信号,选取长度n=500,并在小波域进行稀疏化后,随机生成一个s-稀疏信号∈Cn,每个非零复数的实部和虚部都是从零均值和单位方差的i.i.d.(独立同分布)正态分布中提取的,然后对所得的进行l2归一化处理。测量矩阵采用随机Toeplitz 矩阵。实验分别采用KML1 算法、加速算法以及传统的正交匹配追踪(OMP)算法对稀疏归一化之后的信号进行重构,其结果如图6 所示。从图中可以看出,加速算法与原始信号的相似度最高。

图6 3 种重构算法对选取的语音信号重构的对比

本文通过对信号进行1000 次和3000 次迭代的重构误差评估来衡量不同重构算法的性能。重构误差的评估采用平均均方误差MSE 的值来衡量,如图7 所示,具体的MSE 对比值如表1 所示。重构时间的评估结果如图8 所示。

图7 3 种重构算法的均方误差对比

表1 3 种重构算法迭代1 000 次和3 000 次的均方误差和重构时间对比

图8 3 种重构算法的时间对比

从图7 可以看出:红色线表示的加速算法重构的均方误差最低;绿色线表示的KML1 算法略高;蓝色线表示的OMP 算法的均方误差值相对最高。迭代3000 次的均方误差和重构时间的具体对比数据如表1 所示。

由表1 可以看出:3000 次迭代之后,加速算法在时间上的优势非常明显,OMP 算法的重构时间比加速算法高近20 倍,并且MSE 的值也比加速算法多近2.5 倍;通过1000 次和3000 次的迭代结果发现,迭代次数越多,KML1 算法和加速算法的MSE 值越低,重构信号的准确率越高,而OMP 算法的MSE 跟迭代次数的关系并不很明显。

由图7 和表1 可知,在1000 次和3000 次迭代的情况下,采用KML1 算法和加速算法对信号进行重构的恢复误差变化并不是特别明显,变化值分别为0.1×10−4和1.4×10−4,基本可以忽略不计。

实验还分别对比了稀疏度从5 到90 不同情况下3 种重构算法的误差率,即真实信号与重构信号的误差,如图9 所示。在迭代次数均为100 次、稀疏度s<35 时,KLM1 算法和加速算法重构信号的误差接近0,但随着稀疏度的增加,加速算法的稳定性较KML1 算法更好。加速算法的均方误差为0.002 5,KML1 算法的均方误差为0.002 8,OMP 算法的误差率最大。

图9 不同稀疏度下3 种重构算法的误差率对比

综合实验结果,表明加速算法是一种稳定的算法,改变稀疏度s或测量数量m,对恢复误差的影响很小。

5 结论

本文通过Kalman 滤波器来实现线性约束l1最小化,提出了改进的KML1 加速算法,保证了在稀疏度s未知的情况下对语音信号的精确重建。实验分别对传统OMP 算法、KML1 算法以及加速算法进行了对比,其结果表明:本文的加速算法对语音信号恢复的精确度更高,恢复的时间也缩短很多,与OMP 算法相比,具有更稳定的恢复效果;在信号维数非常低的情况下,KML1 算法和加速算法的结果并没有显著差异,随着维数的增加,加速算法的收敛速度更快,并且可以收敛到优化问题的精确解。

猜你喜欢

范数重构矩阵
“双减”能否重构教育生态?
基于同伦l0范数最小化重建的三维动态磁共振成像
长城叙事的重构
基于干扰重构和盲源分离的混合极化抗SMSP干扰
用四维的理念重构当代诗歌
多项式理论在矩阵求逆中的应用
基于加权核范数与范数的鲁棒主成分分析
基于非凸[lp]范数和G?范数的图像去模糊模型
矩阵
矩阵