bitrevorder
Переставляет биты входных данных в обратном порядке.
| Библиотека |
|
Аргументы
Входные аргументы
#
x —
входные данные
вектор | матрица
Details
Входные данные, заданные как вектор или матрица. Длина или количество строк x должны быть целой степенью числа 2. Если x — матрица, то перестановка битов происходит в первом измерении x, размер которого больше 1.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
Выходные аргументы
#
i —
индексы переставленных битов
вектор | матрица
Details
Индексы переставленных битов, возвращаемые в виде вектора или матрицы. Индексация начинается с 1.
Примеры
Обратный порядок битов в векторе
Details
Зададим входной вектор. Получим вектор, содержащий биты в обратном порядке и их индексы.
import EngeeDSP.Functions: bitrevorder
x = (0:7)'
y, i = bitrevorder(x)
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 4 5
2 2 3
3 6 7
4 1 2
5 5 6
6 3 4
7 7 8
Дополнительно
Биты в обратном порядке
Details
Функция bitrevorder полезна для предварительной настройки коэффициентов фильтра, что позволяет избежать необходимости использования обратного порядка битов в вычислениях fft или ifft.
Обратный порядок битов может повысить эффективность выполнения внешних приложений или моделей Engee. Функции fft и ifft обрабатывают линейные входные и выходные данные.
Использование bitrevorder эквивалентно использованию digitrevorder в системе счисления с основанием 2.
|
В этой таблице представлены числа от 0 до 7, соответствующие им биты, биты в обратном порядке и соответствующие индексы.
| Линейный индекс | Биты | Биты в обратном порядке | Индексы битов в обратном порядке |
|---|---|---|---|
0 |
000 |
000 |
0 |
1 |
001 |
100 |
4 |
2 |
010 |
010 |
2 |
3 |
011 |
110 |
6 |
4 |
100 |
001 |
1 |
5 |
101 |
101 |
5 |
6 |
110 |
011 |
3 |
7 |
111 |
111 |
7 |