Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

filter (Galois field)

1-D digital filter over Galois field

Syntax

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

Description

y = filter(b,a,x) filters the data in the vector x with the filter described by numerator coefficient vector b and denominator coefficient vector a. The vectors b, a, and x must be Galois vectors in the same field. If a(1) is not equal to 1, filter normalizes the filter coefficients by a(1). As a result, a(1) must be nonzero.

The filter is a Direct Form II Transposed implementation of the standard difference equation shown here:

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) returns the final conditions of the filter delays in the Galois vector zf. The length of the vector zf is max(size(a),size(b))-1.

Examples

collapse all

When using the Galois 1-D digital filter function, the data is normalized by the first element of the denominator coefficient vector.

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

The first coefficient of the denominator coefficient vector, a(1) = 2. To confirm the function normalizes the data, manually normalize the filtered data. Using isequal to compare the outputs, we see they are equal.

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

See Also

Introduced before R2006a

Was this topic helpful?