filter (Galois field)

1-D цифровой фильтр по полю Галуа

Синтаксис

y = filter(b,a,x)
[y,zf] = filter(b,a,x)

Описание

y = filter(b,a,x) фильтрация данных в векторе x с фильтром, описанным вектором коэффициентов числителя b и вектор коэффициентов знаменателя a. Векторы b, a, и x должны быть векторами Галуа в том же поле. Если a(1) не равно 1, затем filter нормализует коэффициенты фильтра по a(1). В результате a(1) должно быть ненулевым.

Фильтр является прямой формой II Транспонированная реализация стандартного разностного уравнения, показанного здесь:

a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb) ...
                      - a(2)*y(n-1) - ... - a(na+1)*y(n-na)

[y,zf] = filter(b,a,x) возвращает конечные условия задержек фильтра в векторе Галуа zf. Длина вектора zf является max(size(a),size(b))-1.

Примеры

свернуть все

При использовании функции цифрового фильтра 1-D Галуа данные нормируются первым элементом вектора коэффициента знаменателя.

a = gf([2 3 5 7],3);
b = gf([1 3],3);
x = gf(randi([0,7],10,1),3);
filt_x = filter(b,a,x)
 
filt_x = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)
 
Array elements = 
 
   6
   6
   3
   4
   7
   4
   2
   2
   0
   5

Первый коэффициент вектора коэффициента знаменателя, a (1) = 2. Чтобы подтвердить нормализацию данных функцией, вручную нормализуйте отфильтрованные данные. Использование isequal чтобы сравнить выходы, мы видим, что они равны.

filt_x2 = a(1) * filter(b/a(1),a,x)
 
filt_x2 = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)
 
Array elements = 
 
   6
   6
   3
   4
   7
   4
   2
   2
   0
   5
isequal(filt_x,filt_x2)
ans = logical
   1

См. также

Представлено до R2006a