ドキュメンテーション

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

latcfilt

ラティスとラティス-ラダー フィルターの実装

構文


[f,g] = latcfilt(k,x)
[f,g] = latcfilt(k,v,x)
[f,g] = latcfilt(k,1,x)
[f,g,zf] = latcfilt(...,'ic',zi)
[f,g,zf] = latcfilt(...,dim)

説明

データをフィルター処理する場合、ラティス係数では以下のいずれかを表現できます。

  • FIR フィルター

  • 全極 IIR フィルター

  • オールパス IIR フィルター

  • 一般的な IIR フィルター

[f,g] = latcfilt(k,x) では、ベクトル k の FIR ラティス係数を使用して x がフィルター処理されます。f は順方向のラティス フィルター処理結果で、g は逆方向のフィルター処理の結果です。|k|1 の場合、f は最小位相出力、g は最大位相出力になります。

kx がベクトルの場合、結果は (信号) ベクトルになります。次の規則に従って、行列引数を使用することができます。

  • x が行列で、k がベクトルの場合、x の各列は k で指定したラティス フィルターで処理されます。

  • x がベクトルで、k が行列の場合、k の各列を使用して x をフィルター処理し、信号行列が返されます。

  • xk が同じ列数をもつ行列の場合、ki 列目を使用して xi 列目がフィルター処理されます。信号行列が返されます。

[f,g] = latcfilt(k,v,x) では、IIR ラティス係数 k とラダー係数 v を使用して x がフィルター処理されます。ここで、kv はベクトルでなければなりません。x は信号行列にすることができます。

[f,g] = latcfilt(k,1,x) では、k で指定された IIR ラティスを使用して、x がフィルター処理されます。ここで、kx はベクトルまたは行列です。f は全極ラティス フィルター処理の結果、g はオールパス フィルター処理の結果です。

[f,g,zf] = latcfilt(...,'ic',zi) は、ラティス状態の初期条件を指定する長さ k のベクトル zi を受け入れます。出力 zf は、ラティス状態の最終条件を指定する長さ k のベクトルです。

[f,g,zf] = latcfilt(...,dim) では、x が次元 dim に沿ってフィルター処理されます。値 dim を指定するには、FIR ラティス係数 k がベクトルで、それ以前の入力パラメーターをすべて正しい順序で指定しなければなりません。パラメーターを指定しない場合は、空ベクトル [ ] を使用します。zf では、x の形状にかかわらず、最終条件が列として返されます。

すべて折りたたむ

512 サンプルのホワイト ガウス ノイズを含む信号を生成します。

x = randn(512,1);

データを FIR ラティス フィルターでフィルター処理します。ラティス フィルターが 3 次移動平均フィルターと等価になるように反射係数を指定します。

[f,g] = latcfilt([1/2 1],x);

個別のプロットにラティス フィルターの最大位相出力と最小位相出力をプロットします。

subplot(2,1,1)
plot(f)
title('Maximum-Phase Output')

subplot(2,1,2)
plot(g)
title('Minimum-Phase Output')

R2006a より前に導入

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