Page 106 - 201806
P. 106

936                                                                                 2018 年 11 月


             ∆ (1, 1) V 的第一列作为更新后的稀疏系数。按照                      为帧数)。其次,利用 DCT得到一个n × n维的字典
                                  ˆ
             上述过程得到新的字典D。                                      D 1 (n 为帧长),则初始过完备字典 D = [D 1 D 1 ],
                                                               字典D 的维度为n × 2n,并对初始字典D 进行归一
             2.2 传统OMP算法的基本理论
                                                               化处理。
                 OMP 算法选择字典原子在信号投影上的最大
             值来表达原信号,每次选择的原子都与之前的原子                            3.2  基于K-SVD和改进OMP算法的字典更新
             正交。算法的具体流程如下:                                     3.2.1  OMP算法运算速度改进
                 步骤一 设置参数,假设含噪语音用 y 表示,字                           在传统的 OMP 算法中,其算法都是通过矩阵

             典为D,稀疏度为T,x为稀疏系数。                                 运算来实现的,想要进行算法运算速度的改进,可以
                 步骤二 初始化,设残差 r            (0)  = y,索引集         通过减少矩阵运算次数和维度来实现。这里就是将
             Λ = 0,迭代因子j = 1,最大迭代次数为k。迭代过                      求解原信号稀疏逼近的运算过程进行相应的矩阵
              0
             程如下:                                              变换,来减少原运算的次数和维度,从而提高 OMP
                 (1) 寻找残差 r    (j−1)  与字典 D 中的某列 d j 内         算法的运算速度。再利用最小二乘法求得x k 的j 阶
             积最大值所对应的下标λ,即                                     逼近,已知信号 y 和字典 D 求 x 的 k 稀疏逼近 x k ,
                                                             用矩阵可以表示为
                       λ = arg max ⟨r (j−1) , d j ⟩ .  (3)


                            j=1,··· ,N                                          +      T     T −1
                                                                        x k = D y = D (DD )       y.      (7)
                 (2) 更新索引集 Λ     (j) ,令 Λ (j) (j) = λ。更新字
                                                                   为了减少稀疏逼近x k 的计算量,运用所学的矩
             典的原子:
                                                               阵知识,可以将式(7)改写成
                         D (j)  = D(:, Λ (j) (1 : j)).  (4)                     +      T   T   −1
                                                                        x k = D y = D (D D)       y,      (8)
                 (3) 利用最小二乘法得到x k 的j 阶逼近:
                                                                      T
                                                               其中,D D 为对称的正定矩阵,在每次的字典更新

                       (j)         
      (j)
                      x   = argmin 
y − D   x k
 .      (5)    时都能找到一原子向量d,则新的字典可以表示为
                       k
                 (4) 更新残差:                                                       D = [D, d].              (9)
                                                                                 e
                      (j)        (j)  (j)                          用上面的新字典计算x k 时,表达式为
                     λ   = y − D   x   ; j = j + 1.     (6)
                                     k
                                                                                    e T e −1
                 (5) 判断迭代是否结束。如果j > k,则结束;否                                   x k = (D D)   y,           (10)
             则,从1循环。                                                                              
                                                                                           T
                                                                                                  T
                                                                           D T           D D D d
                 步骤三 输出x的k 稀疏逼近x k 。                             D D=         [ D d =              ,  (11)
                                                                                     ]
                                                                  e T e
                                                                                                 T
                                                                                           T
                 由以上流程可看出,OMP 算法只是用来得到                                     d T            d D d d
             原信号的最佳稀疏逼近,也就是尽可能地重构原信                            其中,D D 的集合乘积是由 D DD D、D d、
                                                                                             T
                                                                                                  T
                                                                                                          T
                                                                      e T e
             号。对于含噪语音,传统OMP算法只是重构出含噪                           d D 和d d四部分组成。D D 是上一次运算的结
                                                                                         T
                                                                T
                                                                        T
             语音,并不能达到去噪效果。为了能让OMP算法只                           果,因此就没必要每次都计算一遍,而只需对原来的
             重构出含噪语音中的干净语音,就要对其就行改进。                           矩阵更新一列和一行即可。D d和d D 互为转置,
                                                                                          T
                                                                                                T
             同时 OMP 算法是一种追踪算法,但与其他追踪算                          也只需计算其中一个就行。d d 是d 的二范数的平
                                                                                         T
             法相比,利用最小二乘法求解稀疏逼近,其运算速度                           方,可直接调用函数norm( )求得。这样就降低了原
             并不具有优势,针对这一问题,这里也将进行 OMP                          运算的计算次数和维度,从而提高了 OMP 算法的
             算法运算速度的改进。                                        运算速度。
                                                               3.2.2  K-SVD与改进OMP算法的字典更新
             3 改进的OMP算法的稀疏去噪
                                                                   本文将用第 3.1 节初始归一化后的过完备字典
             3.1 初始化                                           D 作为 K-SVD 算法的初始化字典,来训练干净语
                 首先,读入含噪语音存为y,将y 分帧处理,可得                       音。通过第 2.1 节中的 K-SVD 算法与第 3.2.1 节改
                                                                                                         ˆ
             一个维度为 n × m 的二维矩阵 A n×m (n 为帧长,m                  进的OMP算法相结合来获得干净语音的字典D。
   101   102   103   104   105   106   107   108   109   110   111