Документация Engee

digitrevorder

Переставляет цифры входных данных в обратном порядке.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • y, i = digitrevorder(x, r) — возвращает цифры входных данных x в обратном порядке и их индексы i, так что y = x(i). Перестановка цифр производится с использованием основания системы счисления r.

Аргументы

Входные аргументы

# x — входные данные
вектор | матрица

Details

Входные данные, заданные как вектор или матрица. Длина x должна быть целой степенью числа r. Если x — матрица, то перестановка цифр происходит в первом измерении x, размер которого больше 1.

# r — основание системы счисления
целое число

Details

Основание системы счисления, заданное как целое число в диапазоне [2, 36].

Выходные аргументы

# y — цифры входных данных в обратном порядке
вектор | матрица

Details

Цифры входных данных в обратном порядке, возвращаемые в виде вектора или матрицы. Аргумент y имеет тот же размер, что и x.

# i — индексы переставленных цифр
вектор | матрица

Details

Индексы переставленных цифр, возвращаемые в виде вектора или матрицы. Индексация начинается с 1.

Примеры

Цифры в обратном порядке в системе счисления с основанием 3

Details

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

import EngeeDSP.Functions: digitrevorder

x = (0:8)'

y, i = digitrevorder(x,3)

println("x\ty\tj")
println("__________________")
for j in 1:length(x)
    println(x[j],"\t",y[j],"\t", i[j])
end
x	y	j
__________________
0	0	1
1	3	4
2	6	7
3	1	2
4	4	5
5	7	8
6	2	3
7	5	6
8	8	9

Дополнительно

Цифры в обратном порядке

Details

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

Линейный индекс Цифры по основанию 4 Цифры в обратном порядке Индексы цифр в обратном порядке Биты по основанию 2 Биты в обратном порядке Индексы бит в обратном порядке

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

Советы

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