Main Content

fwht

Rápida transformación Walsh-Hadamard

Sintaxis

y = fwht(x)
y = fwht(x,n)
y = fwht(x,n,ordering)

Descripción

y = fwht(x) devuelve los coeficientes de la transformación discreta Walsh-Hadamard de la entrada.x Si es una matriz, el FWHT se calcula en cada columna de .xx El FWHT sólo funciona en señales con una longitud igual a una potencia de 2. Si la longitud de es menor que una potencia de 2, su longitud se rellena con ceros a la siguiente mayor potencia de dos antes del procesamiento.x

y = fwht(x,n) devuelve la transformación Walsh-Hadamard discreta de puntos, donde debe ser una potencia de 2. y debe tener la misma longitud.nnxn Si es más largo que , se trunca; si es más corto que , está acolchado con ceros.xnxxnx

y = fwht(x,n,ordering) especifica el orden que se utilizará para los coeficientes de transformación devueltos de Walsh-Hadamard. Para especificar el orden, debe especificar un valor para la longitud o, para utilizar el comportamiento predeterminado, especifique un vector vacío ( ) para .n[]n Los valores válidos para el pedido son los siguientes:

OrdenarDescripción
'sequency'Coeficientes en orden de aumento del valor de secuenciación, donde cada fila tiene un cruce cero adicional. Este es el orden predeterminado.
'hadamard'Coeficientes en orden Hadamard normal.
'dyadic'Coeficientes en orden de código gris, donde se produce un cambio de un solo bit de un coeficiente al siguiente.

Para obtener más información sobre las funciones Walsh y el pedido, consulte .Walsh-Hadamard Transform

Ejemplos

contraer todo

Este ejemplo muestra una señal de entrada simple y su transformación Walsh-Hadamard.

x = [19 -1 11 -9 -7 13 -15 5]; y = fwht(x)
y = 1×8

     2     3     0     4     0     0    10     0

contiene valores distintos de cero en las ubicaciones 0, 1, 3 y 6.y Forme las funciones Walsh con los valores de secuencia 0, 1, 3 y 6 para volver a crear x.

w0 = [1 1 1 1 1 1 1 1]; w1 = [1 1 1 1 -1 -1 -1 -1]; w3 = [1 1 -1 -1 1 1 -1 -1]; w6 = [1 -1 1 -1 -1 1 -1 1]; w = y(0+1)*w0 + y(1+1)*w1 + y(3+1)*w3 + y(6+1)*w6
w = 1×8

    19    -1    11    -9    -7    13   -15     5

Algoritmos

El algoritmo de transformación rápido Walsh-Hadamard es similar al algoritmo Cooley-Tukey utilizado para el FFT. Ambos utilizan una estructura de mariposa para determinar los coeficientes de transformación. Consulte las referencias para obtener más información.

Referencias

[1] Beauchamp, Kenneth G. Applications of Walsh and Related Functions: With an Introduction to Sequency Theory. London: Academic Press, 1984.

[2] Beer, Tom. “Walsh Transforms.” American Journal of Physics. Vol. 49, 1981, pp. 466–472.

Consulte también

| | | |

Introducido en R2008b