digitrevorder

Переставьте вход в инвертированный цифрой порядок

Синтаксис

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

Описание

digitrevorder полезен для того, чтобы сделать предзаказ вектора коэффициентов фильтра для использования в алгоритмах фильтрации частотного диапазона, в которые fft и ifft преобразовывают, вычисляются без инвертированного цифрой упорядоченного расположения для повышенной эффективности во время выполнения.

y = digitrevorder(x,r) возвращает входные данные в инвертированном цифрой порядке в векторном или матричном y. Реверсирование цифры вычисляется с помощью основы системы счисления (основа основания) r, который может быть любым целым числом от 2 до 36. Длина x должна быть целочисленной степенью r. Если x является матрицей, реверсирование цифры происходит на первой размерности x с размером, больше, чем 1. y одного размера как x.

[y,i] = digitrevorder(x,r) возвращает инвертированный цифрой векторный или матричный y и инвертированные цифрой индексы i, такой что   y = x(i). Вспомните, что матрицы MATLAB® используют индексацию на основе 1, таким образом, первый индекс y будет 1, не 0.

Следующая таблица показывает числа 0 до 15, соответствующие цифры и инвертированные цифрой числа с помощью основания базируются 4. Соответствующее основание базируется 2 биты, и инвертированные битом индексы также показывают.

Линейный индекс

Основывайте 4 цифры

Цифра - обратный

Цифра - обратный индекс

Основа 2 бита

Основывайте 2 обратных (bitrevorder)

Бит - обратный индекс

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

Примеры

свернуть все

Получите инвертированный цифрой, основание базируются 3, заказал вывод вектора, содержащего 9 значений. Получите тот же результат путем преобразования, чтобы базироваться 3 и инвертирования цифр.

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 

Смотрите также

| |

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