Main Content

digitrevorder

Permute la entrada en orden invertido por dígitos

Sintaxis

y = digitrevorder(x,r)
[y,i] = digitrevorder(x,r)

Descripción

es útil para preordenar un vector de coeficientes de filtro para su uso en algoritmos de filtrado de dominio de frecuencia, en los que las transformaciones y se calculan sin ordenar por dígitos invertidos para mejorar la eficiencia en tiempo de ejecución.digitrevorderfftifft

y = digitrevorder(x,r) devuelve los datos de entrada en orden invertido por dígitos en vector o matriz.y La inversión de dígitos se calcula utilizando la base del sistema numérico (base de radio), que puede ser cualquier entero de 2 a 36.r La longitud de debe ser una potencia entera de .xr Si es una matriz, la inversión de dígitos se produce en la primera dimensión de con un tamaño mayor que 1. es del mismo tamaño que .xxyx

[y,i] = digitrevorder(x,r) devuelve el vector o matriz invertido en dígitos y los índices invertidos por dígitos, de modo que .yiy = x(i) Recuerde que las matrices utilizan la indexación basada en 1, por lo que el primer índice de será 1, no 0.MATLAB®y

La tabla siguiente muestra los números del 0 al 15, los dígitos correspondientes y los números invertidos por dígitos utilizando radix base-4. También se muestran los índices de radio base-2 e índices invertidos en bits correspondientes.

Indice Lineal

Base-4 Dígitos

Digit- Invertido

Digit- Indice invertido

Base-2 Bits

Base-2 Invertido (bitrevorder)

Bit- Índice invertido

0

00

00

0

0000

0000

0

1

01

10

4

0001

1000

8

2

02

20

8

0010

0100

4

3

03

30

12

0011

1100

12

4

10

01

1

0100

0010

2

5

11

11

5

0101

1010

10

6

12

21

9

0110

0110

6

7

13

31

13

0111

1110

14

8

20

02

2

1000

0001

1

9

21

12

6

1001

1001

9

10

22

22

10

1010

0101

5

11

23

32

14

1011

1101

13

12

30

03

3

1100

0011

3

13

31

13

7

1101

1011

11

14

32

23

11

1110

0111

7

15

33

33

15

1111

1111

15

Ejemplos

contraer todo

Obtenga la salida ordenada radix base-3 con dígitos de un vector que contiene 9 valores. Obtenga el mismo resultado convirtiendo a la base 3 e invirtiendo los dígitos.

x = (0:8)';  y = digitrevorder(x,3);  c1 = dec2base(x,3); c2 = fliplr(c1); c3 = base2dec(c2,3);  T = table(x,y,c1,c2,c3)
T=9×5 table
    x    y    c1    c2    c3
    _    _    __    __    __

    0    0    00    00    0 
    1    3    01    10    3 
    2    6    02    20    6 
    3    1    10    01    1 
    4    4    11    11    4 
    5    7    12    21    7 
    6    2    20    02    2 
    7    5    21    12    5 
    8    8    22    22    8 

Consulte también

| |

Introducido antes de R2006a