Accelerating the pace of engineering and science

# Documentation Center

• Trials
• Product Updates

# dftmtx

Discrete Fourier transform matrix in Galois field

## Syntax

dm = dftmtx(alph)

## Description

dm = dftmtx(alph) returns a Galois array that represents the discrete Fourier transform operation on a Galois vector, with respect to the Galois scalar alph. The element alph is a primitive nth root of unity in the Galois field GF(2m) = GF(n+1); that is, n must be the smallest positive value of k for which alph^k equals 1. The discrete Fourier transform has size n and dm is an n-by-n array. The array dm represents the transform in the sense that dm times any length-n Galois column vector yields the transform of that vector.

 Note:   The inverse discrete Fourier transform matrix is dftmtx(1/alph).

## Examples

The example below illustrates the discrete Fourier transform and its inverse, with respect to the element gf(3,4). The example examines the first n powers of that element to make sure that only the nth power equals one. Afterward, the example transforms a random Galois vector, undoes the transform, and checks the result.

m = 4;
n = 2^m-1;
a = 3;
alph = gf(a,m);
mp = minpol(alph);
if (mp(1)==1 && isprimitive(mp)) % Check that alph has order n.
disp('alph is a primitive nth root of unity.')
dm = dftmtx(alph);
idm = dftmtx(1/alph);
x = gf(randi([0 2^m-1],n,1),m);
y = dm*x; % Transform x.
z = idm*y; % Recover x.
ck = isequal(x,z)
end

The output is

alph is a primitive nth root of unity.

ck =

1

## Limitations

The Galois field over which this function works must have 256 or fewer elements. In other words, alph must be a primitive nth root of unity in the Galois field GF(2m), where m is an integer between 1 and 8.

## More About

expand all

### Algorithms

The element dm(a,b) equals alph^((a-1)*(b-1)).

## See Also

Was this topic helpful?