前日までで、MSの代わりにCDF(2,2)を使うのは有効ではないというのが分かった。LRの信号は一般にズレており、線形予測のような局所的な予測はうまくいかない。周波数特性としてもずれがある。 従って1チャンネルの信号に対してウェーブレットを適用する道を探る。 次はどうするか。
単にCDF(2,2)で帯域分割して各帯域でLPC/適応フィルタするのは安直すぎるし工夫の余地がない。 もっと何か理論的な工夫は及ばないか?考えてみる。
リフティングによって何が変わるのかをまだ観察してなかったかも。
- 適応的にリフティング係数を設定する
- 予測・更新フィルタを両方ともSAにしちゃうとか。
- CDF(2,2)通した後の信号の特性
- 分かり切ってることだが、2次までのモーメントが消えてる。
- 信号の統計量(平均、分散、自己相関、L1ノルム、エントロピー)はどのように変化するか?
- 高域と低域で分けて考える。
- プリエンファシスをリフティングに置き換えることの是非。
- 例えばHaarは直流成分(0次モーメント)を完全に消す。
- 変換域適応と同じになると思う。
2.が大事に思える。地味に論じている文献ないし。 リフティング後の信号の性質は、NoteBook上でいろいろ見てみるのが良さそう。
というわけで実装を進めている。Haar, CDFは良さそうだけど、ドベシィの実装は
- DESIGN AND IMPLEMENTATION OF LIFTING BASED DAUBECHIES WAVELET TRANSFORMS USING ALGEBRAIC INTEGERS の22pあたりを参照。
CDF9/7については実装あり
- 2D CDF 9/7 Wavelet Forward and Inverse Transform (lifting implementation)
- dwt97.c - Fast discrete biorthogonal CDF 9/7 wavelet forward and inverse transform (lifting implementation) マージで予測・更新の度にループ回している。。。。
CDF(1,1)(=Haar), CDF(2,2), CDF(3,1), CDF(4,2)と実装してみたが、どうもprimal liftingの次数を上げていくと良好な結果になる。良好というのは、
- 高域成分の分散、L1ノルム、エントロピー減少(自己相関はほぼ0に)
- 低域成分の分散、L1ノルム減少((3,1), (4,2)で顕著)
より次数を上げたCDFを実装して観察してみる。音声では次数を上げた方が良いのかもしれないという示唆。