Main Content

gffilter (prime Galois field)

ガロア素体における多項式を使用したデータのフィルター処理

構文

y = gffilter(b,a,x)
y = gffilter(b,a,x,p)

説明

メモ

この関数は、p が素数のとき、GF(pm) の計算を行います。GF(2m) で実行するには、ガロア配列に対して関数 filter を使用します。詳細については、Filteringを参照してください。

y = gffilter(b,a,x) は、ベクトル ba で記述されるフィルターでベクトル x 内のデータをフィルター処理します。ベクトル ba、および x は GF(2) 内に存在しなければなりません。つまり、バイナリでなければなりません。さらに y も GF(2) 内に存在します。

y = gffilter(b,a,x,p) は、ベクトル ab で記述されるフィルターを使用してデータ x をフィルター処理します。y は、GF(p) のフィルター処理されたデータです。p は素数で、ab のすべてのエントリは 0 ~ p-1 の間です。

フィルターの定義により、y は、以下の差分方程式を解きます。

a(1)y(n) = b(1)x(n)+b(2)x(n-1)+b(3)x(n-2)+...+b(B+1)x(n-B) 
                     -a(2)y(n-1)-a(3)y(n-2)-...-a(A+1)y(n-A)

ここで

  • A+1 は、次のベクトルの長さです。a

  • B+1 は、次のベクトルの長さです。b

  • n は、1 とベクトル x の長さの間で変化します。

ベクトル a は、次数 na の多項式を表します。

a(1)+a(2)x+a(3)x^2+...+a(A+1)x^A 

あるフィルターのインパルス応答が下記のコード、およびダイアグラムで与えられます。

b = [1 0 0 1 0 1 0 1];
a = [1 0 1 1];
y = gffilter(b,a,[1,zeros(1,19)]);
stem(y);
axis([0 20 -.1 1.1])

バージョン履歴

R2006a より前に導入

参考

|