ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

cceps

複素ケプストラム解析

構文

xhat = cceps(x)
[xhat,nd] = cceps(x)
[xhat,nd,xhat1] = cceps(x)
[...] = cceps(x,n)

説明

ケプストラム解析は、音声処理やホモモルフィック フィルター処理において最も一般的に適用される、非線形の信号処理手法です (参考文献 [1])。

    メモ:   cceps は、実データに対してのみ使用できます。

xhat = cceps(x) では、フーリエ変換を使用して、実データ列 x の複素ケプストラム解析が返されます。入力は、線形位相項を適用することで、±π ラジアンで位相の不連続性がないように変更されます。つまり、必要であれば π ラジアンでゼロ位相をもつように、ゼロを付加した後にいくつかのサンプルが巡回的にシフトされます。

[xhat,nd] = cceps(x) では、複素ケプストラムを求める前に x に追加した巡回的な遅延のサンプル数 nd が返されます。

[xhat,nd,xhat1] = cceps(x) では、別の因数分解アルゴリズムを使って計算したもう 1 つの複素ケストラム xhat1 が返されます ([1][2])。この方法は有限時間信号にのみ適用できます。複素ケプストラムを計算するためのフーリエ法と因数分解法の比較については、以下の「アルゴリズム」の項を参照してください。

[...] = cceps(x,n) では、x が長さ n になるようにゼロが追加され、x に対する長さ n の複素ケプストラムが返されます。

すべて折りたたむ

cceps を使用したエコーの表示

この例では、cceps を使用してエコーを表示します。100 Hz でサンプリングされる、周波数 45 Hz の正弦を生成します。0.2 秒後に半分の振幅をもつエコーを追加します。信号の複素ケプストラムを計算します。0.2 秒の点にエコーが現れています。

Fs = 100;
t = 0:1/Fs:1.27;

s1 = sin(2*pi*45*t);
s2 = s1 + 0.5*[zeros(1,20) s1(1:108)];

c = cceps(s2);

plot(t,c)
xlabel('Time (s)')
title('Complex cepstrum')

詳細

すべて折りたたむ

アルゴリズム

cceps は、参考文献 [3] のアルゴリズム 7.1 を実装するものです。Fortran プログラムでは冗長な表現も、MATLAB® コードでは以下の 3 行で表せます。この 3 行が cceps の核をなしています。

h = fft(x);
logh = log(abs(h)) + sqrt(-1)*rcunwrap(angle(h));
y = real(ifft(logh));

    メモ:   上記のコード セグメントにおける rcunwrap は、unwrap の特殊な形であり、位相から直線を取り除くものです。rcunwrapcceps 内のローカル関数で、MATLAB のコマンド ラインからは使用できません。

以下の表では、フーリエ アルゴリズムと因数分解アルゴリズムの長所と短所を示します。

アルゴリズム長所短所
フーリエ任意の信号に対して使用可能位相の補正が必要。出力でエイリアスを使用。
因数分解位相の補正は不要。エイリアスはなし。短時間の信号にのみ使用可能。入力信号の Z 変換はすべて零点で、零点が単位円上にないことが必須。

一般に、これら 2 つのアルゴリズムの結果を使用して互いを検証することはできません。このような検証が可能なのは、入力データの最初の要素が正であり、データ列の Z 変換は零点のみで、これらすべての零点が単位円内にあり、入力データ列が長い (またはゼロが付加されている) 場合のみです。

参考文献

[1] Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck. Discrete-Time Signal Processing. Upper Saddle River, NJ: Prentice Hall, 1999, pp. 788–789.

[2] Steiglitz, K., and B. Dickinson. “Computation of the Complex Cepstrum by Factorization of the Z-transform.” Proceedings of the 1977 IEEE® International Conference on Acoustics, Speech and Signal Processing, pp. 723–726.

[3] Digital Signal Processing Committee of the IEEE Acoustics, Speech, and Signal Processing Society, eds. Programs for Digital Signal Processing. New York: IEEE Press, 1979.

参考

| | |

この情報は役に立ちましたか?