Перестановка входных данных в обратном порядке
y = digitrevorder(x,r)
[y,i] = digitrevorder(x,r)
digitrevorder полезен для предварительного упорядочения вектора коэффициентов фильтра для использования в алгоритмах фильтрации частотной области, в которых fft и ifft преобразования вычисляются без обратного упорядочения цифр для повышения эффективности выполнения.
y = digitrevorder(x,r) возвращает входные данные в обратном порядке в векторе или матрице y. Реверсирование цифр вычисляется с использованием базы системы счисления (radix base) 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, соответствующие цифры и цифры, обращенные с помощью radix base-4. Также показаны соответствующие биты radix base-2 и индексы с реверсированием битов.
Линейный индекс | Base-4 Цифры | Цифровая - реверсированная | Цифровой реверсированный индекс | Base-2 Биты | Base-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 |
bitrevorder | fft | ifft