Фильтрация данных с помощью многочленов над простым полем Галуа
y = gffilter(b,a,x)
y = gffilter(b,a,x,p)
Примечание
Эта функция выполняет вычисления в GF (pm), где p является простым. Для работы в GF (2m) используйте filter функция с массивами Galois. Дополнительные сведения см. в разделе Фильтрация.
y = gffilter(b,a,x) фильтрация данных в векторе x с фильтром, описанным векторами b и a. Векторы b, a и x должно быть в GF (2), то есть быть двоичным иy также находится в GF (2).
y = gffilter(b,a,x,p) фильтрация данных x с использованием фильтра, описанного векторами a и b. y - отфильтрованные данные в GF (p). p является простым числом, и все записи a и b находятся в диапазоне от 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])
