Rev 49 | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 2 | mjames | 1 | /* ---------------------------------------------------------------------- |
| 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. |
||
| 3 | * |
||
| 4 | * $Date: 19. March 2015 |
||
| 5 | * $Revision: V.1.4.5 |
||
| 6 | * |
||
| 7 | * Project: CMSIS DSP Library |
||
| 8 | * Title: arm_common_tables.c |
||
| 9 | * |
||
| 10 | * Description: This file has common tables like fft twiddle factors, Bitreverse, reciprocal etc which are used across different functions |
||
| 11 | * |
||
| 12 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 |
||
| 13 | * |
||
| 14 | * Redistribution and use in source and binary forms, with or without |
||
| 15 | * modification, are permitted provided that the following conditions |
||
| 16 | * are met: |
||
| 17 | * - Redistributions of source code must retain the above copyright |
||
| 18 | * notice, this list of conditions and the following disclaimer. |
||
| 19 | * - Redistributions in binary form must reproduce the above copyright |
||
| 20 | * notice, this list of conditions and the following disclaimer in |
||
| 21 | * the documentation and/or other materials provided with the |
||
| 22 | * distribution. |
||
| 23 | * - Neither the name of ARM LIMITED nor the names of its contributors |
||
| 24 | * may be used to endorse or promote products derived from this |
||
| 25 | * software without specific prior written permission. |
||
| 26 | * |
||
| 27 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||
| 28 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||
| 29 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
||
| 30 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
||
| 31 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
||
| 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
||
| 33 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
||
| 34 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
||
| 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
||
| 36 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
||
| 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
||
| 38 | * POSSIBILITY OF SUCH DAMAGE. |
||
| 39 | * -------------------------------------------------------------------- */ |
||
| 40 | |||
| 41 | |||
| 42 | #include "arm_math.h" |
||
| 43 | #include "arm_common_tables.h" |
||
| 44 | |||
| 45 | /** |
||
| 46 | * @ingroup groupTransforms |
||
| 47 | */ |
||
| 48 | |||
| 49 | /** |
||
| 50 | * @addtogroup CFFT_CIFFT Complex FFT Tables |
||
| 51 | * @{ |
||
| 52 | */ |
||
| 53 | |||
| 54 | /** |
||
| 55 | * \par |
||
| 56 | * Pseudo code for Generation of Bit reversal Table is |
||
| 57 | * \par |
||
| 58 | * <pre>for(l=1;l <= N/4;l++) |
||
| 59 | * { |
||
| 60 | * for(i=0;i<logN2;i++) |
||
| 61 | * { |
||
| 62 | * a[i]=l&(1<<i); |
||
| 63 | * } |
||
| 64 | * for(j=0; j<logN2; j++) |
||
| 65 | * { |
||
| 66 | * if (a[j]!=0) |
||
| 67 | * y[l]+=(1<<((logN2-1)-j)); |
||
| 68 | * } |
||
| 69 | * y[l] = y[l] >> 1; |
||
| 70 | * } </pre> |
||
| 71 | * \par |
||
| 72 | * where N = 4096 logN2 = 12 |
||
| 73 | * \par |
||
| 74 | * N is the maximum FFT Size supported |
||
| 75 | */ |
||
| 76 | |||
| 77 | /* |
||
| 78 | * @brief Table for bit reversal process |
||
| 79 | */ |
||
| 80 | const uint16_t armBitRevTable[1024] = { |
||
| 81 | 0x400, 0x200, 0x600, 0x100, 0x500, 0x300, 0x700, 0x80, 0x480, 0x280, |
||
| 82 | 0x680, 0x180, 0x580, 0x380, 0x780, 0x40, 0x440, 0x240, 0x640, 0x140, |
||
| 83 | 0x540, 0x340, 0x740, 0xc0, 0x4c0, 0x2c0, 0x6c0, 0x1c0, 0x5c0, 0x3c0, |
||
| 84 | 0x7c0, 0x20, 0x420, 0x220, 0x620, 0x120, 0x520, 0x320, 0x720, 0xa0, |
||
| 85 | 0x4a0, 0x2a0, 0x6a0, 0x1a0, 0x5a0, 0x3a0, 0x7a0, 0x60, 0x460, 0x260, |
||
| 86 | 0x660, 0x160, 0x560, 0x360, 0x760, 0xe0, 0x4e0, 0x2e0, 0x6e0, 0x1e0, |
||
| 87 | 0x5e0, 0x3e0, 0x7e0, 0x10, 0x410, 0x210, 0x610, 0x110, 0x510, 0x310, |
||
| 88 | 0x710, 0x90, 0x490, 0x290, 0x690, 0x190, 0x590, 0x390, 0x790, 0x50, |
||
| 89 | 0x450, 0x250, 0x650, 0x150, 0x550, 0x350, 0x750, 0xd0, 0x4d0, 0x2d0, |
||
| 90 | 0x6d0, 0x1d0, 0x5d0, 0x3d0, 0x7d0, 0x30, 0x430, 0x230, 0x630, 0x130, |
||
| 91 | 0x530, 0x330, 0x730, 0xb0, 0x4b0, 0x2b0, 0x6b0, 0x1b0, 0x5b0, 0x3b0, |
||
| 92 | 0x7b0, 0x70, 0x470, 0x270, 0x670, 0x170, 0x570, 0x370, 0x770, 0xf0, |
||
| 93 | 0x4f0, 0x2f0, 0x6f0, 0x1f0, 0x5f0, 0x3f0, 0x7f0, 0x8, 0x408, 0x208, |
||
| 94 | 0x608, 0x108, 0x508, 0x308, 0x708, 0x88, 0x488, 0x288, 0x688, 0x188, |
||
| 95 | 0x588, 0x388, 0x788, 0x48, 0x448, 0x248, 0x648, 0x148, 0x548, 0x348, |
||
| 96 | 0x748, 0xc8, 0x4c8, 0x2c8, 0x6c8, 0x1c8, 0x5c8, 0x3c8, 0x7c8, 0x28, |
||
| 97 | 0x428, 0x228, 0x628, 0x128, 0x528, 0x328, 0x728, 0xa8, 0x4a8, 0x2a8, |
||
| 98 | 0x6a8, 0x1a8, 0x5a8, 0x3a8, 0x7a8, 0x68, 0x468, 0x268, 0x668, 0x168, |
||
| 99 | 0x568, 0x368, 0x768, 0xe8, 0x4e8, 0x2e8, 0x6e8, 0x1e8, 0x5e8, 0x3e8, |
||
| 100 | 0x7e8, 0x18, 0x418, 0x218, 0x618, 0x118, 0x518, 0x318, 0x718, 0x98, |
||
| 101 | 0x498, 0x298, 0x698, 0x198, 0x598, 0x398, 0x798, 0x58, 0x458, 0x258, |
||
| 102 | 0x658, 0x158, 0x558, 0x358, 0x758, 0xd8, 0x4d8, 0x2d8, 0x6d8, 0x1d8, |
||
| 103 | 0x5d8, 0x3d8, 0x7d8, 0x38, 0x438, 0x238, 0x638, 0x138, 0x538, 0x338, |
||
| 104 | 0x738, 0xb8, 0x4b8, 0x2b8, 0x6b8, 0x1b8, 0x5b8, 0x3b8, 0x7b8, 0x78, |
||
| 105 | 0x478, 0x278, 0x678, 0x178, 0x578, 0x378, 0x778, 0xf8, 0x4f8, 0x2f8, |
||
| 106 | 0x6f8, 0x1f8, 0x5f8, 0x3f8, 0x7f8, 0x4, 0x404, 0x204, 0x604, 0x104, |
||
| 107 | 0x504, 0x304, 0x704, 0x84, 0x484, 0x284, 0x684, 0x184, 0x584, 0x384, |
||
| 108 | 0x784, 0x44, 0x444, 0x244, 0x644, 0x144, 0x544, 0x344, 0x744, 0xc4, |
||
| 109 | 0x4c4, 0x2c4, 0x6c4, 0x1c4, 0x5c4, 0x3c4, 0x7c4, 0x24, 0x424, 0x224, |
||
| 110 | 0x624, 0x124, 0x524, 0x324, 0x724, 0xa4, 0x4a4, 0x2a4, 0x6a4, 0x1a4, |
||
| 111 | 0x5a4, 0x3a4, 0x7a4, 0x64, 0x464, 0x264, 0x664, 0x164, 0x564, 0x364, |
||
| 112 | 0x764, 0xe4, 0x4e4, 0x2e4, 0x6e4, 0x1e4, 0x5e4, 0x3e4, 0x7e4, 0x14, |
||
| 113 | 0x414, 0x214, 0x614, 0x114, 0x514, 0x314, 0x714, 0x94, 0x494, 0x294, |
||
| 114 | 0x694, 0x194, 0x594, 0x394, 0x794, 0x54, 0x454, 0x254, 0x654, 0x154, |
||
| 115 | 0x554, 0x354, 0x754, 0xd4, 0x4d4, 0x2d4, 0x6d4, 0x1d4, 0x5d4, 0x3d4, |
||
| 116 | 0x7d4, 0x34, 0x434, 0x234, 0x634, 0x134, 0x534, 0x334, 0x734, 0xb4, |
||
| 117 | 0x4b4, 0x2b4, 0x6b4, 0x1b4, 0x5b4, 0x3b4, 0x7b4, 0x74, 0x474, 0x274, |
||
| 118 | 0x674, 0x174, 0x574, 0x374, 0x774, 0xf4, 0x4f4, 0x2f4, 0x6f4, 0x1f4, |
||
| 119 | 0x5f4, 0x3f4, 0x7f4, 0xc, 0x40c, 0x20c, 0x60c, 0x10c, 0x50c, 0x30c, |
||
| 120 | 0x70c, 0x8c, 0x48c, 0x28c, 0x68c, 0x18c, 0x58c, 0x38c, 0x78c, 0x4c, |
||
| 121 | 0x44c, 0x24c, 0x64c, 0x14c, 0x54c, 0x34c, 0x74c, 0xcc, 0x4cc, 0x2cc, |
||
| 122 | 0x6cc, 0x1cc, 0x5cc, 0x3cc, 0x7cc, 0x2c, 0x42c, 0x22c, 0x62c, 0x12c, |
||
| 123 | 0x52c, 0x32c, 0x72c, 0xac, 0x4ac, 0x2ac, 0x6ac, 0x1ac, 0x5ac, 0x3ac, |
||
| 124 | 0x7ac, 0x6c, 0x46c, 0x26c, 0x66c, 0x16c, 0x56c, 0x36c, 0x76c, 0xec, |
||
| 125 | 0x4ec, 0x2ec, 0x6ec, 0x1ec, 0x5ec, 0x3ec, 0x7ec, 0x1c, 0x41c, 0x21c, |
||
| 126 | 0x61c, 0x11c, 0x51c, 0x31c, 0x71c, 0x9c, 0x49c, 0x29c, 0x69c, 0x19c, |
||
| 127 | 0x59c, 0x39c, 0x79c, 0x5c, 0x45c, 0x25c, 0x65c, 0x15c, 0x55c, 0x35c, |
||
| 128 | 0x75c, 0xdc, 0x4dc, 0x2dc, 0x6dc, 0x1dc, 0x5dc, 0x3dc, 0x7dc, 0x3c, |
||
| 129 | 0x43c, 0x23c, 0x63c, 0x13c, 0x53c, 0x33c, 0x73c, 0xbc, 0x4bc, 0x2bc, |
||
| 130 | 0x6bc, 0x1bc, 0x5bc, 0x3bc, 0x7bc, 0x7c, 0x47c, 0x27c, 0x67c, 0x17c, |
||
| 131 | 0x57c, 0x37c, 0x77c, 0xfc, 0x4fc, 0x2fc, 0x6fc, 0x1fc, 0x5fc, 0x3fc, |
||
| 132 | 0x7fc, 0x2, 0x402, 0x202, 0x602, 0x102, 0x502, 0x302, 0x702, 0x82, |
||
| 133 | 0x482, 0x282, 0x682, 0x182, 0x582, 0x382, 0x782, 0x42, 0x442, 0x242, |
||
| 134 | 0x642, 0x142, 0x542, 0x342, 0x742, 0xc2, 0x4c2, 0x2c2, 0x6c2, 0x1c2, |
||
| 135 | 0x5c2, 0x3c2, 0x7c2, 0x22, 0x422, 0x222, 0x622, 0x122, 0x522, 0x322, |
||
| 136 | 0x722, 0xa2, 0x4a2, 0x2a2, 0x6a2, 0x1a2, 0x5a2, 0x3a2, 0x7a2, 0x62, |
||
| 137 | 0x462, 0x262, 0x662, 0x162, 0x562, 0x362, 0x762, 0xe2, 0x4e2, 0x2e2, |
||
| 138 | 0x6e2, 0x1e2, 0x5e2, 0x3e2, 0x7e2, 0x12, 0x412, 0x212, 0x612, 0x112, |
||
| 139 | 0x512, 0x312, 0x712, 0x92, 0x492, 0x292, 0x692, 0x192, 0x592, 0x392, |
||
| 140 | 0x792, 0x52, 0x452, 0x252, 0x652, 0x152, 0x552, 0x352, 0x752, 0xd2, |
||
| 141 | 0x4d2, 0x2d2, 0x6d2, 0x1d2, 0x5d2, 0x3d2, 0x7d2, 0x32, 0x432, 0x232, |
||
| 142 | 0x632, 0x132, 0x532, 0x332, 0x732, 0xb2, 0x4b2, 0x2b2, 0x6b2, 0x1b2, |
||
| 143 | 0x5b2, 0x3b2, 0x7b2, 0x72, 0x472, 0x272, 0x672, 0x172, 0x572, 0x372, |
||
| 144 | 0x772, 0xf2, 0x4f2, 0x2f2, 0x6f2, 0x1f2, 0x5f2, 0x3f2, 0x7f2, 0xa, |
||
| 145 | 0x40a, 0x20a, 0x60a, 0x10a, 0x50a, 0x30a, 0x70a, 0x8a, 0x48a, 0x28a, |
||
| 146 | 0x68a, 0x18a, 0x58a, 0x38a, 0x78a, 0x4a, 0x44a, 0x24a, 0x64a, 0x14a, |
||
| 147 | 0x54a, 0x34a, 0x74a, 0xca, 0x4ca, 0x2ca, 0x6ca, 0x1ca, 0x5ca, 0x3ca, |
||
| 148 | 0x7ca, 0x2a, 0x42a, 0x22a, 0x62a, 0x12a, 0x52a, 0x32a, 0x72a, 0xaa, |
||
| 149 | 0x4aa, 0x2aa, 0x6aa, 0x1aa, 0x5aa, 0x3aa, 0x7aa, 0x6a, 0x46a, 0x26a, |
||
| 150 | 0x66a, 0x16a, 0x56a, 0x36a, 0x76a, 0xea, 0x4ea, 0x2ea, 0x6ea, 0x1ea, |
||
| 151 | 0x5ea, 0x3ea, 0x7ea, 0x1a, 0x41a, 0x21a, 0x61a, 0x11a, 0x51a, 0x31a, |
||
| 152 | 0x71a, 0x9a, 0x49a, 0x29a, 0x69a, 0x19a, 0x59a, 0x39a, 0x79a, 0x5a, |
||
| 153 | 0x45a, 0x25a, 0x65a, 0x15a, 0x55a, 0x35a, 0x75a, 0xda, 0x4da, 0x2da, |
||
| 154 | 0x6da, 0x1da, 0x5da, 0x3da, 0x7da, 0x3a, 0x43a, 0x23a, 0x63a, 0x13a, |
||
| 155 | 0x53a, 0x33a, 0x73a, 0xba, 0x4ba, 0x2ba, 0x6ba, 0x1ba, 0x5ba, 0x3ba, |
||
| 156 | 0x7ba, 0x7a, 0x47a, 0x27a, 0x67a, 0x17a, 0x57a, 0x37a, 0x77a, 0xfa, |
||
| 157 | 0x4fa, 0x2fa, 0x6fa, 0x1fa, 0x5fa, 0x3fa, 0x7fa, 0x6, 0x406, 0x206, |
||
| 158 | 0x606, 0x106, 0x506, 0x306, 0x706, 0x86, 0x486, 0x286, 0x686, 0x186, |
||
| 159 | 0x586, 0x386, 0x786, 0x46, 0x446, 0x246, 0x646, 0x146, 0x546, 0x346, |
||
| 160 | 0x746, 0xc6, 0x4c6, 0x2c6, 0x6c6, 0x1c6, 0x5c6, 0x3c6, 0x7c6, 0x26, |
||
| 161 | 0x426, 0x226, 0x626, 0x126, 0x526, 0x326, 0x726, 0xa6, 0x4a6, 0x2a6, |
||
| 162 | 0x6a6, 0x1a6, 0x5a6, 0x3a6, 0x7a6, 0x66, 0x466, 0x266, 0x666, 0x166, |
||
| 163 | 0x566, 0x366, 0x766, 0xe6, 0x4e6, 0x2e6, 0x6e6, 0x1e6, 0x5e6, 0x3e6, |
||
| 164 | 0x7e6, 0x16, 0x416, 0x216, 0x616, 0x116, 0x516, 0x316, 0x716, 0x96, |
||
| 165 | 0x496, 0x296, 0x696, 0x196, 0x596, 0x396, 0x796, 0x56, 0x456, 0x256, |
||
| 166 | 0x656, 0x156, 0x556, 0x356, 0x756, 0xd6, 0x4d6, 0x2d6, 0x6d6, 0x1d6, |
||
| 167 | 0x5d6, 0x3d6, 0x7d6, 0x36, 0x436, 0x236, 0x636, 0x136, 0x536, 0x336, |
||
| 168 | 0x736, 0xb6, 0x4b6, 0x2b6, 0x6b6, 0x1b6, 0x5b6, 0x3b6, 0x7b6, 0x76, |
||
| 169 | 0x476, 0x276, 0x676, 0x176, 0x576, 0x376, 0x776, 0xf6, 0x4f6, 0x2f6, |
||
| 170 | 0x6f6, 0x1f6, 0x5f6, 0x3f6, 0x7f6, 0xe, 0x40e, 0x20e, 0x60e, 0x10e, |
||
| 171 | 0x50e, 0x30e, 0x70e, 0x8e, 0x48e, 0x28e, 0x68e, 0x18e, 0x58e, 0x38e, |
||
| 172 | 0x78e, 0x4e, 0x44e, 0x24e, 0x64e, 0x14e, 0x54e, 0x34e, 0x74e, 0xce, |
||
| 173 | 0x4ce, 0x2ce, 0x6ce, 0x1ce, 0x5ce, 0x3ce, 0x7ce, 0x2e, 0x42e, 0x22e, |
||
| 174 | 0x62e, 0x12e, 0x52e, 0x32e, 0x72e, 0xae, 0x4ae, 0x2ae, 0x6ae, 0x1ae, |
||
| 175 | 0x5ae, 0x3ae, 0x7ae, 0x6e, 0x46e, 0x26e, 0x66e, 0x16e, 0x56e, 0x36e, |
||
| 176 | 0x76e, 0xee, 0x4ee, 0x2ee, 0x6ee, 0x1ee, 0x5ee, 0x3ee, 0x7ee, 0x1e, |
||
| 177 | 0x41e, 0x21e, 0x61e, 0x11e, 0x51e, 0x31e, 0x71e, 0x9e, 0x49e, 0x29e, |
||
| 178 | 0x69e, 0x19e, 0x59e, 0x39e, 0x79e, 0x5e, 0x45e, 0x25e, 0x65e, 0x15e, |
||
| 179 | 0x55e, 0x35e, 0x75e, 0xde, 0x4de, 0x2de, 0x6de, 0x1de, 0x5de, 0x3de, |
||
| 180 | 0x7de, 0x3e, 0x43e, 0x23e, 0x63e, 0x13e, 0x53e, 0x33e, 0x73e, 0xbe, |
||
| 181 | 0x4be, 0x2be, 0x6be, 0x1be, 0x5be, 0x3be, 0x7be, 0x7e, 0x47e, 0x27e, |
||
| 182 | 0x67e, 0x17e, 0x57e, 0x37e, 0x77e, 0xfe, 0x4fe, 0x2fe, 0x6fe, 0x1fe, |
||
| 183 | 0x5fe, 0x3fe, 0x7fe, 0x1 |
||
| 184 | }; |
||
| 185 | |||
| 186 | |||
| 187 | /* |
||
| 188 | * @brief Floating-point Twiddle factors Table Generation |
||
| 189 | */ |
||
| 190 | |||
| 191 | /** |
||
| 192 | * \par |
||
| 193 | * Example code for Floating-point Twiddle factors Generation: |
||
| 194 | * \par |
||
| 195 | * <pre>for(i = 0; i< N/; i++) |
||
| 196 | * { |
||
| 197 | * twiddleCoef[2*i]= cos(i * 2*PI/(float)N); |
||
| 198 | * twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 199 | * } </pre> |
||
| 200 | * \par |
||
| 201 | * where N = 16 and PI = 3.14159265358979 |
||
| 202 | * \par |
||
| 203 | * Cos and Sin values are in interleaved fashion |
||
| 204 | * |
||
| 205 | */ |
||
| 206 | const float32_t twiddleCoef_16[32] = { |
||
| 207 | 1.000000000f, 0.000000000f, |
||
| 208 | 0.923879533f, 0.382683432f, |
||
| 209 | 0.707106781f, 0.707106781f, |
||
| 210 | 0.382683432f, 0.923879533f, |
||
| 211 | 0.000000000f, 1.000000000f, |
||
| 212 | -0.382683432f, 0.923879533f, |
||
| 213 | -0.707106781f, 0.707106781f, |
||
| 214 | -0.923879533f, 0.382683432f, |
||
| 215 | -1.000000000f, 0.000000000f, |
||
| 216 | -0.923879533f, -0.382683432f, |
||
| 217 | -0.707106781f, -0.707106781f, |
||
| 218 | -0.382683432f, -0.923879533f, |
||
| 219 | -0.000000000f, -1.000000000f, |
||
| 220 | 0.382683432f, -0.923879533f, |
||
| 221 | 0.707106781f, -0.707106781f, |
||
| 222 | 0.923879533f, -0.382683432f |
||
| 223 | }; |
||
| 224 | |||
| 225 | /** |
||
| 226 | * \par |
||
| 227 | * Example code for Floating-point Twiddle factors Generation: |
||
| 228 | * \par |
||
| 229 | * <pre>for(i = 0; i< N/; i++) |
||
| 230 | * { |
||
| 231 | * twiddleCoef[2*i]= cos(i * 2*PI/(float)N); |
||
| 232 | * twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 233 | * } </pre> |
||
| 234 | * \par |
||
| 235 | * where N = 32 and PI = 3.14159265358979 |
||
| 236 | * \par |
||
| 237 | * Cos and Sin values are in interleaved fashion |
||
| 238 | * |
||
| 239 | */ |
||
| 240 | const float32_t twiddleCoef_32[64] = { |
||
| 241 | 1.000000000f, 0.000000000f, |
||
| 242 | 0.980785280f, 0.195090322f, |
||
| 243 | 0.923879533f, 0.382683432f, |
||
| 244 | 0.831469612f, 0.555570233f, |
||
| 245 | 0.707106781f, 0.707106781f, |
||
| 246 | 0.555570233f, 0.831469612f, |
||
| 247 | 0.382683432f, 0.923879533f, |
||
| 248 | 0.195090322f, 0.980785280f, |
||
| 249 | 0.000000000f, 1.000000000f, |
||
| 250 | -0.195090322f, 0.980785280f, |
||
| 251 | -0.382683432f, 0.923879533f, |
||
| 252 | -0.555570233f, 0.831469612f, |
||
| 253 | -0.707106781f, 0.707106781f, |
||
| 254 | -0.831469612f, 0.555570233f, |
||
| 255 | -0.923879533f, 0.382683432f, |
||
| 256 | -0.980785280f, 0.195090322f, |
||
| 257 | -1.000000000f, 0.000000000f, |
||
| 258 | -0.980785280f, -0.195090322f, |
||
| 259 | -0.923879533f, -0.382683432f, |
||
| 260 | -0.831469612f, -0.555570233f, |
||
| 261 | -0.707106781f, -0.707106781f, |
||
| 262 | -0.555570233f, -0.831469612f, |
||
| 263 | -0.382683432f, -0.923879533f, |
||
| 264 | -0.195090322f, -0.980785280f, |
||
| 265 | -0.000000000f, -1.000000000f, |
||
| 266 | 0.195090322f, -0.980785280f, |
||
| 267 | 0.382683432f, -0.923879533f, |
||
| 268 | 0.555570233f, -0.831469612f, |
||
| 269 | 0.707106781f, -0.707106781f, |
||
| 270 | 0.831469612f, -0.555570233f, |
||
| 271 | 0.923879533f, -0.382683432f, |
||
| 272 | 0.980785280f, -0.195090322f |
||
| 273 | }; |
||
| 274 | |||
| 275 | /** |
||
| 276 | * \par |
||
| 277 | * Example code for Floating-point Twiddle factors Generation: |
||
| 278 | * \par |
||
| 279 | * <pre>for(i = 0; i< N/; i++) |
||
| 280 | * { |
||
| 281 | * twiddleCoef[2*i]= cos(i * 2*PI/(float)N); |
||
| 282 | * twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 283 | * } </pre> |
||
| 284 | * \par |
||
| 285 | * where N = 64 and PI = 3.14159265358979 |
||
| 286 | * \par |
||
| 287 | * Cos and Sin values are in interleaved fashion |
||
| 288 | * |
||
| 289 | */ |
||
| 290 | const float32_t twiddleCoef_64[128] = { |
||
| 291 | 1.000000000f, 0.000000000f, |
||
| 292 | 0.995184727f, 0.098017140f, |
||
| 293 | 0.980785280f, 0.195090322f, |
||
| 294 | 0.956940336f, 0.290284677f, |
||
| 295 | 0.923879533f, 0.382683432f, |
||
| 296 | 0.881921264f, 0.471396737f, |
||
| 297 | 0.831469612f, 0.555570233f, |
||
| 298 | 0.773010453f, 0.634393284f, |
||
| 299 | 0.707106781f, 0.707106781f, |
||
| 300 | 0.634393284f, 0.773010453f, |
||
| 301 | 0.555570233f, 0.831469612f, |
||
| 302 | 0.471396737f, 0.881921264f, |
||
| 303 | 0.382683432f, 0.923879533f, |
||
| 304 | 0.290284677f, 0.956940336f, |
||
| 305 | 0.195090322f, 0.980785280f, |
||
| 306 | 0.098017140f, 0.995184727f, |
||
| 307 | 0.000000000f, 1.000000000f, |
||
| 308 | -0.098017140f, 0.995184727f, |
||
| 309 | -0.195090322f, 0.980785280f, |
||
| 310 | -0.290284677f, 0.956940336f, |
||
| 311 | -0.382683432f, 0.923879533f, |
||
| 312 | -0.471396737f, 0.881921264f, |
||
| 313 | -0.555570233f, 0.831469612f, |
||
| 314 | -0.634393284f, 0.773010453f, |
||
| 315 | -0.707106781f, 0.707106781f, |
||
| 316 | -0.773010453f, 0.634393284f, |
||
| 317 | -0.831469612f, 0.555570233f, |
||
| 318 | -0.881921264f, 0.471396737f, |
||
| 319 | -0.923879533f, 0.382683432f, |
||
| 320 | -0.956940336f, 0.290284677f, |
||
| 321 | -0.980785280f, 0.195090322f, |
||
| 322 | -0.995184727f, 0.098017140f, |
||
| 323 | -1.000000000f, 0.000000000f, |
||
| 324 | -0.995184727f, -0.098017140f, |
||
| 325 | -0.980785280f, -0.195090322f, |
||
| 326 | -0.956940336f, -0.290284677f, |
||
| 327 | -0.923879533f, -0.382683432f, |
||
| 328 | -0.881921264f, -0.471396737f, |
||
| 329 | -0.831469612f, -0.555570233f, |
||
| 330 | -0.773010453f, -0.634393284f, |
||
| 331 | -0.707106781f, -0.707106781f, |
||
| 332 | -0.634393284f, -0.773010453f, |
||
| 333 | -0.555570233f, -0.831469612f, |
||
| 334 | -0.471396737f, -0.881921264f, |
||
| 335 | -0.382683432f, -0.923879533f, |
||
| 336 | -0.290284677f, -0.956940336f, |
||
| 337 | -0.195090322f, -0.980785280f, |
||
| 338 | -0.098017140f, -0.995184727f, |
||
| 339 | -0.000000000f, -1.000000000f, |
||
| 340 | 0.098017140f, -0.995184727f, |
||
| 341 | 0.195090322f, -0.980785280f, |
||
| 342 | 0.290284677f, -0.956940336f, |
||
| 343 | 0.382683432f, -0.923879533f, |
||
| 344 | 0.471396737f, -0.881921264f, |
||
| 345 | 0.555570233f, -0.831469612f, |
||
| 346 | 0.634393284f, -0.773010453f, |
||
| 347 | 0.707106781f, -0.707106781f, |
||
| 348 | 0.773010453f, -0.634393284f, |
||
| 349 | 0.831469612f, -0.555570233f, |
||
| 350 | 0.881921264f, -0.471396737f, |
||
| 351 | 0.923879533f, -0.382683432f, |
||
| 352 | 0.956940336f, -0.290284677f, |
||
| 353 | 0.980785280f, -0.195090322f, |
||
| 354 | 0.995184727f, -0.098017140f |
||
| 355 | }; |
||
| 356 | |||
| 357 | /** |
||
| 358 | * \par |
||
| 359 | * Example code for Floating-point Twiddle factors Generation: |
||
| 360 | * \par |
||
| 361 | * <pre>for(i = 0; i< N/; i++) |
||
| 362 | * { |
||
| 363 | * twiddleCoef[2*i]= cos(i * 2*PI/(float)N); |
||
| 364 | * twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 365 | * } </pre> |
||
| 366 | * \par |
||
| 367 | * where N = 128 and PI = 3.14159265358979 |
||
| 368 | * \par |
||
| 369 | * Cos and Sin values are in interleaved fashion |
||
| 370 | * |
||
| 371 | */ |
||
| 372 | |||
| 373 | const float32_t twiddleCoef_128[256] = { |
||
| 374 | 1.000000000f , 0.000000000f , |
||
| 375 | 0.998795456f , 0.049067674f , |
||
| 376 | 0.995184727f , 0.098017140f , |
||
| 377 | 0.989176510f , 0.146730474f , |
||
| 378 | 0.980785280f , 0.195090322f , |
||
| 379 | 0.970031253f , 0.242980180f , |
||
| 380 | 0.956940336f , 0.290284677f , |
||
| 381 | 0.941544065f , 0.336889853f , |
||
| 382 | 0.923879533f , 0.382683432f , |
||
| 383 | 0.903989293f , 0.427555093f , |
||
| 384 | 0.881921264f , 0.471396737f , |
||
| 385 | 0.857728610f , 0.514102744f , |
||
| 386 | 0.831469612f , 0.555570233f , |
||
| 387 | 0.803207531f , 0.595699304f , |
||
| 388 | 0.773010453f , 0.634393284f , |
||
| 389 | 0.740951125f , 0.671558955f , |
||
| 390 | 0.707106781f , 0.707106781f , |
||
| 391 | 0.671558955f , 0.740951125f , |
||
| 392 | 0.634393284f , 0.773010453f , |
||
| 393 | 0.595699304f , 0.803207531f , |
||
| 394 | 0.555570233f , 0.831469612f , |
||
| 395 | 0.514102744f , 0.857728610f , |
||
| 396 | 0.471396737f , 0.881921264f , |
||
| 397 | 0.427555093f , 0.903989293f , |
||
| 398 | 0.382683432f , 0.923879533f , |
||
| 399 | 0.336889853f , 0.941544065f , |
||
| 400 | 0.290284677f , 0.956940336f , |
||
| 401 | 0.242980180f , 0.970031253f , |
||
| 402 | 0.195090322f , 0.980785280f , |
||
| 403 | 0.146730474f , 0.989176510f , |
||
| 404 | 0.098017140f , 0.995184727f , |
||
| 405 | 0.049067674f , 0.998795456f , |
||
| 406 | 0.000000000f , 1.000000000f , |
||
| 407 | -0.049067674f , 0.998795456f , |
||
| 408 | -0.098017140f , 0.995184727f , |
||
| 409 | -0.146730474f , 0.989176510f , |
||
| 410 | -0.195090322f , 0.980785280f , |
||
| 411 | -0.242980180f , 0.970031253f , |
||
| 412 | -0.290284677f , 0.956940336f , |
||
| 413 | -0.336889853f , 0.941544065f , |
||
| 414 | -0.382683432f , 0.923879533f , |
||
| 415 | -0.427555093f , 0.903989293f , |
||
| 416 | -0.471396737f , 0.881921264f , |
||
| 417 | -0.514102744f , 0.857728610f , |
||
| 418 | -0.555570233f , 0.831469612f , |
||
| 419 | -0.595699304f , 0.803207531f , |
||
| 420 | -0.634393284f , 0.773010453f , |
||
| 421 | -0.671558955f , 0.740951125f , |
||
| 422 | -0.707106781f , 0.707106781f , |
||
| 423 | -0.740951125f , 0.671558955f , |
||
| 424 | -0.773010453f , 0.634393284f , |
||
| 425 | -0.803207531f , 0.595699304f , |
||
| 426 | -0.831469612f , 0.555570233f , |
||
| 427 | -0.857728610f , 0.514102744f , |
||
| 428 | -0.881921264f , 0.471396737f , |
||
| 429 | -0.903989293f , 0.427555093f , |
||
| 430 | -0.923879533f , 0.382683432f , |
||
| 431 | -0.941544065f , 0.336889853f , |
||
| 432 | -0.956940336f , 0.290284677f , |
||
| 433 | -0.970031253f , 0.242980180f , |
||
| 434 | -0.980785280f , 0.195090322f , |
||
| 435 | -0.989176510f , 0.146730474f , |
||
| 436 | -0.995184727f , 0.098017140f , |
||
| 437 | -0.998795456f , 0.049067674f , |
||
| 438 | -1.000000000f , 0.000000000f , |
||
| 439 | -0.998795456f , -0.049067674f , |
||
| 440 | -0.995184727f , -0.098017140f , |
||
| 441 | -0.989176510f , -0.146730474f , |
||
| 442 | -0.980785280f , -0.195090322f , |
||
| 443 | -0.970031253f , -0.242980180f , |
||
| 444 | -0.956940336f , -0.290284677f , |
||
| 445 | -0.941544065f , -0.336889853f , |
||
| 446 | -0.923879533f , -0.382683432f , |
||
| 447 | -0.903989293f , -0.427555093f , |
||
| 448 | -0.881921264f , -0.471396737f , |
||
| 449 | -0.857728610f , -0.514102744f , |
||
| 450 | -0.831469612f , -0.555570233f , |
||
| 451 | -0.803207531f , -0.595699304f , |
||
| 452 | -0.773010453f , -0.634393284f , |
||
| 453 | -0.740951125f , -0.671558955f , |
||
| 454 | -0.707106781f , -0.707106781f , |
||
| 455 | -0.671558955f , -0.740951125f , |
||
| 456 | -0.634393284f , -0.773010453f , |
||
| 457 | -0.595699304f , -0.803207531f , |
||
| 458 | -0.555570233f , -0.831469612f , |
||
| 459 | -0.514102744f , -0.857728610f , |
||
| 460 | -0.471396737f , -0.881921264f , |
||
| 461 | -0.427555093f , -0.903989293f , |
||
| 462 | -0.382683432f , -0.923879533f , |
||
| 463 | -0.336889853f , -0.941544065f , |
||
| 464 | -0.290284677f , -0.956940336f , |
||
| 465 | -0.242980180f , -0.970031253f , |
||
| 466 | -0.195090322f , -0.980785280f , |
||
| 467 | -0.146730474f , -0.989176510f , |
||
| 468 | -0.098017140f , -0.995184727f , |
||
| 469 | -0.049067674f , -0.998795456f , |
||
| 470 | -0.000000000f , -1.000000000f , |
||
| 471 | 0.049067674f , -0.998795456f , |
||
| 472 | 0.098017140f , -0.995184727f , |
||
| 473 | 0.146730474f , -0.989176510f , |
||
| 474 | 0.195090322f , -0.980785280f , |
||
| 475 | 0.242980180f , -0.970031253f , |
||
| 476 | 0.290284677f , -0.956940336f , |
||
| 477 | 0.336889853f , -0.941544065f , |
||
| 478 | 0.382683432f , -0.923879533f , |
||
| 479 | 0.427555093f , -0.903989293f , |
||
| 480 | 0.471396737f , -0.881921264f , |
||
| 481 | 0.514102744f , -0.857728610f , |
||
| 482 | 0.555570233f , -0.831469612f , |
||
| 483 | 0.595699304f , -0.803207531f , |
||
| 484 | 0.634393284f , -0.773010453f , |
||
| 485 | 0.671558955f , -0.740951125f , |
||
| 486 | 0.707106781f , -0.707106781f , |
||
| 487 | 0.740951125f , -0.671558955f , |
||
| 488 | 0.773010453f , -0.634393284f , |
||
| 489 | 0.803207531f , -0.595699304f , |
||
| 490 | 0.831469612f , -0.555570233f , |
||
| 491 | 0.857728610f , -0.514102744f , |
||
| 492 | 0.881921264f , -0.471396737f , |
||
| 493 | 0.903989293f , -0.427555093f , |
||
| 494 | 0.923879533f , -0.382683432f , |
||
| 495 | 0.941544065f , -0.336889853f , |
||
| 496 | 0.956940336f , -0.290284677f , |
||
| 497 | 0.970031253f , -0.242980180f , |
||
| 498 | 0.980785280f , -0.195090322f , |
||
| 499 | 0.989176510f , -0.146730474f , |
||
| 500 | 0.995184727f , -0.098017140f , |
||
| 501 | 0.998795456f , -0.049067674f |
||
| 502 | }; |
||
| 503 | |||
| 504 | /** |
||
| 505 | * \par |
||
| 506 | * Example code for Floating-point Twiddle factors Generation: |
||
| 507 | * \par |
||
| 508 | * <pre>for(i = 0; i< N/; i++) |
||
| 509 | * { |
||
| 510 | * twiddleCoef[2*i]= cos(i * 2*PI/(float)N); |
||
| 511 | * twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 512 | * } </pre> |
||
| 513 | * \par |
||
| 514 | * where N = 256 and PI = 3.14159265358979 |
||
| 515 | * \par |
||
| 516 | * Cos and Sin values are in interleaved fashion |
||
| 517 | * |
||
| 518 | *//** |
||
| 519 | * \par |
||
| 520 | * Example code for Floating-point Twiddle factors Generation: |
||
| 521 | * \par |
||
| 522 | * <pre>for(i = 0; i< N/; i++) |
||
| 523 | * { |
||
| 524 | * twiddleCoef[2*i]= cos(i * 2*PI/(float)N); |
||
| 525 | * twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 526 | * } </pre> |
||
| 527 | * \par |
||
| 528 | * where N = 512 and PI = 3.14159265358979 |
||
| 529 | * \par |
||
| 530 | * Cos and Sin values are in interleaved fashion |
||
| 531 | * |
||
| 532 | *//** |
||
| 533 | * \par |
||
| 534 | * Example code for Floating-point Twiddle factors Generation: |
||
| 535 | * \par |
||
| 536 | * <pre>for(i = 0; i< N/; i++) |
||
| 537 | * { |
||
| 538 | * twiddleCoef[2*i]= cos(i * 2*PI/(float)N); |
||
| 539 | * twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 540 | * } </pre> |
||
| 541 | * \par |
||
| 542 | * where N = 1024 and PI = 3.14159265358979 |
||
| 543 | * \par |
||
| 544 | * Cos and Sin values are in interleaved fashion |
||
| 545 | * |
||
| 546 | *//** |
||
| 547 | * \par |
||
| 548 | * Example code for Floating-point Twiddle factors Generation: |
||
| 549 | * \par |
||
| 550 | * <pre>for(i = 0; i< N/; i++) |
||
| 551 | * { |
||
| 552 | * twiddleCoef[2*i]= cos(i * 2*PI/(float)N); |
||
| 553 | * twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 554 | * } </pre> |
||
| 555 | * \par |
||
| 556 | * where N = 2048 and PI = 3.14159265358979 |
||
| 557 | * \par |
||
| 558 | * Cos and Sin values are in interleaved fashion |
||
| 559 | * |
||
| 560 | *//** |
||
| 561 | * \par |
||
| 562 | * Example code for Floating-point Twiddle factors Generation: |
||
| 563 | * \par |
||
| 564 | * <pre>for(i = 0; i< N/; i++) |
||
| 565 | * { |
||
| 566 | * twiddleCoef[2*i]= cos(i * 2*PI/(float)N); |
||
| 567 | * twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 568 | * } </pre> |
||
| 569 | * \par |
||
| 570 | * where N = 4096 and PI = 3.14159265358979 |
||
| 571 | * \par |
||
| 572 | * Cos and Sin values are in interleaved fashion |
||
| 573 | * |
||
| 574 | *//* |
||
| 575 | * @brief Q31 Twiddle factors Table |
||
| 576 | */ |
||
| 577 | |||
| 578 | |||
| 579 | /** |
||
| 580 | * \par |
||
| 581 | * Example code for Q31 Twiddle factors Generation:: |
||
| 582 | * \par |
||
| 583 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 584 | * { |
||
| 585 | * twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N); |
||
| 586 | * twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 587 | * } </pre> |
||
| 588 | * \par |
||
| 589 | * where N = 16 and PI = 3.14159265358979 |
||
| 590 | * \par |
||
| 591 | * Cos and Sin values are interleaved fashion |
||
| 592 | * \par |
||
| 593 | * Convert Floating point to Q31(Fixed point 1.31): |
||
| 594 | * round(twiddleCoefQ31(i) * pow(2, 31)) |
||
| 595 | * |
||
| 596 | */ |
||
| 597 | const q31_t twiddleCoef_16_q31[24] = { |
||
| 598 | 0x7FFFFFFF, 0x00000000, |
||
| 599 | 0x7641AF3C, 0x30FBC54D, |
||
| 600 | 0x5A82799A, 0x5A82799A, |
||
| 601 | 0x30FBC54D, 0x7641AF3C, |
||
| 602 | 0x00000000, 0x7FFFFFFF, |
||
| 603 | 0xCF043AB2, 0x7641AF3C, |
||
| 604 | 0xA57D8666, 0x5A82799A, |
||
| 605 | 0x89BE50C3, 0x30FBC54D, |
||
| 606 | 0x80000000, 0x00000000, |
||
| 607 | 0x89BE50C3, 0xCF043AB2, |
||
| 608 | 0xA57D8666, 0xA57D8666, |
||
| 609 | 0xCF043AB2, 0x89BE50C3 |
||
| 610 | }; |
||
| 611 | |||
| 612 | /** |
||
| 613 | * \par |
||
| 614 | * Example code for Q31 Twiddle factors Generation:: |
||
| 615 | * \par |
||
| 616 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 617 | * { |
||
| 618 | * twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N); |
||
| 619 | * twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 620 | * } </pre> |
||
| 621 | * \par |
||
| 622 | * where N = 32 and PI = 3.14159265358979 |
||
| 623 | * \par |
||
| 624 | * Cos and Sin values are interleaved fashion |
||
| 625 | * \par |
||
| 626 | * Convert Floating point to Q31(Fixed point 1.31): |
||
| 627 | * round(twiddleCoefQ31(i) * pow(2, 31)) |
||
| 628 | * |
||
| 629 | */ |
||
| 630 | const q31_t twiddleCoef_32_q31[48] = { |
||
| 631 | 0x7FFFFFFF, 0x00000000, |
||
| 632 | 0x7D8A5F3F, 0x18F8B83C, |
||
| 633 | 0x7641AF3C, 0x30FBC54D, |
||
| 634 | 0x6A6D98A4, 0x471CECE6, |
||
| 635 | 0x5A82799A, 0x5A82799A, |
||
| 636 | 0x471CECE6, 0x6A6D98A4, |
||
| 637 | 0x30FBC54D, 0x7641AF3C, |
||
| 638 | 0x18F8B83C, 0x7D8A5F3F, |
||
| 639 | 0x00000000, 0x7FFFFFFF, |
||
| 640 | 0xE70747C3, 0x7D8A5F3F, |
||
| 641 | 0xCF043AB2, 0x7641AF3C, |
||
| 642 | 0xB8E31319, 0x6A6D98A4, |
||
| 643 | 0xA57D8666, 0x5A82799A, |
||
| 644 | 0x9592675B, 0x471CECE6, |
||
| 645 | 0x89BE50C3, 0x30FBC54D, |
||
| 646 | 0x8275A0C0, 0x18F8B83C, |
||
| 647 | 0x80000000, 0x00000000, |
||
| 648 | 0x8275A0C0, 0xE70747C3, |
||
| 649 | 0x89BE50C3, 0xCF043AB2, |
||
| 650 | 0x9592675B, 0xB8E31319, |
||
| 651 | 0xA57D8666, 0xA57D8666, |
||
| 652 | 0xB8E31319, 0x9592675B, |
||
| 653 | 0xCF043AB2, 0x89BE50C3, |
||
| 654 | 0xE70747C3, 0x8275A0C0 |
||
| 655 | }; |
||
| 656 | |||
| 657 | /** |
||
| 658 | * \par |
||
| 659 | * Example code for Q31 Twiddle factors Generation:: |
||
| 660 | * \par |
||
| 661 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 662 | * { |
||
| 663 | * twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N); |
||
| 664 | * twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 665 | * } </pre> |
||
| 666 | * \par |
||
| 667 | * where N = 64 and PI = 3.14159265358979 |
||
| 668 | * \par |
||
| 669 | * Cos and Sin values are interleaved fashion |
||
| 670 | * \par |
||
| 671 | * Convert Floating point to Q31(Fixed point 1.31): |
||
| 672 | * round(twiddleCoefQ31(i) * pow(2, 31)) |
||
| 673 | * |
||
| 674 | */ |
||
| 675 | const q31_t twiddleCoef_64_q31[96] = { |
||
| 676 | 0x7FFFFFFF, 0x00000000, |
||
| 677 | 0x7F62368F, 0x0C8BD35E, |
||
| 678 | 0x7D8A5F3F, 0x18F8B83C, |
||
| 679 | 0x7A7D055B, 0x25280C5D, |
||
| 680 | 0x7641AF3C, 0x30FBC54D, |
||
| 681 | 0x70E2CBC6, 0x3C56BA70, |
||
| 682 | 0x6A6D98A4, 0x471CECE6, |
||
| 683 | 0x62F201AC, 0x5133CC94, |
||
| 684 | 0x5A82799A, 0x5A82799A, |
||
| 685 | 0x5133CC94, 0x62F201AC, |
||
| 686 | 0x471CECE6, 0x6A6D98A4, |
||
| 687 | 0x3C56BA70, 0x70E2CBC6, |
||
| 688 | 0x30FBC54D, 0x7641AF3C, |
||
| 689 | 0x25280C5D, 0x7A7D055B, |
||
| 690 | 0x18F8B83C, 0x7D8A5F3F, |
||
| 691 | 0x0C8BD35E, 0x7F62368F, |
||
| 692 | 0x00000000, 0x7FFFFFFF, |
||
| 693 | 0xF3742CA1, 0x7F62368F, |
||
| 694 | 0xE70747C3, 0x7D8A5F3F, |
||
| 695 | 0xDAD7F3A2, 0x7A7D055B, |
||
| 696 | 0xCF043AB2, 0x7641AF3C, |
||
| 697 | 0xC3A9458F, 0x70E2CBC6, |
||
| 698 | 0xB8E31319, 0x6A6D98A4, |
||
| 699 | 0xAECC336B, 0x62F201AC, |
||
| 700 | 0xA57D8666, 0x5A82799A, |
||
| 701 | 0x9D0DFE53, 0x5133CC94, |
||
| 702 | 0x9592675B, 0x471CECE6, |
||
| 703 | 0x8F1D343A, 0x3C56BA70, |
||
| 704 | 0x89BE50C3, 0x30FBC54D, |
||
| 705 | 0x8582FAA4, 0x25280C5D, |
||
| 706 | 0x8275A0C0, 0x18F8B83C, |
||
| 707 | 0x809DC970, 0x0C8BD35E, |
||
| 708 | 0x80000000, 0x00000000, |
||
| 709 | 0x809DC970, 0xF3742CA1, |
||
| 710 | 0x8275A0C0, 0xE70747C3, |
||
| 711 | 0x8582FAA4, 0xDAD7F3A2, |
||
| 712 | 0x89BE50C3, 0xCF043AB2, |
||
| 713 | 0x8F1D343A, 0xC3A9458F, |
||
| 714 | 0x9592675B, 0xB8E31319, |
||
| 715 | 0x9D0DFE53, 0xAECC336B, |
||
| 716 | 0xA57D8666, 0xA57D8666, |
||
| 717 | 0xAECC336B, 0x9D0DFE53, |
||
| 718 | 0xB8E31319, 0x9592675B, |
||
| 719 | 0xC3A9458F, 0x8F1D343A, |
||
| 720 | 0xCF043AB2, 0x89BE50C3, |
||
| 721 | 0xDAD7F3A2, 0x8582FAA4, |
||
| 722 | 0xE70747C3, 0x8275A0C0, |
||
| 723 | 0xF3742CA1, 0x809DC970 |
||
| 724 | }; |
||
| 725 | |||
| 726 | /** |
||
| 727 | * \par |
||
| 728 | * Example code for Q31 Twiddle factors Generation:: |
||
| 729 | * \par |
||
| 730 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 731 | * { |
||
| 732 | * twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N); |
||
| 733 | * twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 734 | * } </pre> |
||
| 735 | * \par |
||
| 736 | * where N = 128 and PI = 3.14159265358979 |
||
| 737 | * \par |
||
| 738 | * Cos and Sin values are interleaved fashion |
||
| 739 | * \par |
||
| 740 | * Convert Floating point to Q31(Fixed point 1.31): |
||
| 741 | * round(twiddleCoefQ31(i) * pow(2, 31)) |
||
| 742 | * |
||
| 743 | */ |
||
| 744 | const q31_t twiddleCoef_128_q31[192] = { |
||
| 745 | 0x7FFFFFFF, 0x00000000, |
||
| 746 | 0x7FD8878D, 0x0647D97C, |
||
| 747 | 0x7F62368F, 0x0C8BD35E, |
||
| 748 | 0x7E9D55FC, 0x12C8106E, |
||
| 749 | 0x7D8A5F3F, 0x18F8B83C, |
||
| 750 | 0x7C29FBEE, 0x1F19F97B, |
||
| 751 | 0x7A7D055B, 0x25280C5D, |
||
| 752 | 0x78848413, 0x2B1F34EB, |
||
| 753 | 0x7641AF3C, 0x30FBC54D, |
||
| 754 | 0x73B5EBD0, 0x36BA2013, |
||
| 755 | 0x70E2CBC6, 0x3C56BA70, |
||
| 756 | 0x6DCA0D14, 0x41CE1E64, |
||
| 757 | 0x6A6D98A4, 0x471CECE6, |
||
| 758 | 0x66CF811F, 0x4C3FDFF3, |
||
| 759 | 0x62F201AC, 0x5133CC94, |
||
| 760 | 0x5ED77C89, 0x55F5A4D2, |
||
| 761 | 0x5A82799A, 0x5A82799A, |
||
| 762 | 0x55F5A4D2, 0x5ED77C89, |
||
| 763 | 0x5133CC94, 0x62F201AC, |
||
| 764 | 0x4C3FDFF3, 0x66CF811F, |
||
| 765 | 0x471CECE6, 0x6A6D98A4, |
||
| 766 | 0x41CE1E64, 0x6DCA0D14, |
||
| 767 | 0x3C56BA70, 0x70E2CBC6, |
||
| 768 | 0x36BA2013, 0x73B5EBD0, |
||
| 769 | 0x30FBC54D, 0x7641AF3C, |
||
| 770 | 0x2B1F34EB, 0x78848413, |
||
| 771 | 0x25280C5D, 0x7A7D055B, |
||
| 772 | 0x1F19F97B, 0x7C29FBEE, |
||
| 773 | 0x18F8B83C, 0x7D8A5F3F, |
||
| 774 | 0x12C8106E, 0x7E9D55FC, |
||
| 775 | 0x0C8BD35E, 0x7F62368F, |
||
| 776 | 0x0647D97C, 0x7FD8878D, |
||
| 777 | |||
| 778 | 0xF9B82683, 0x7FD8878D, |
||
| 779 | 0xF3742CA1, 0x7F62368F, |
||
| 780 | 0xED37EF91, 0x7E9D55FC, |
||
| 781 | 0xE70747C3, 0x7D8A5F3F, |
||
| 782 | 0xE0E60684, 0x7C29FBEE, |
||
| 783 | 0xDAD7F3A2, 0x7A7D055B, |
||
| 784 | 0xD4E0CB14, 0x78848413, |
||
| 785 | 0xCF043AB2, 0x7641AF3C, |
||
| 786 | 0xC945DFEC, 0x73B5EBD0, |
||
| 787 | 0xC3A9458F, 0x70E2CBC6, |
||
| 788 | 0xBE31E19B, 0x6DCA0D14, |
||
| 789 | 0xB8E31319, 0x6A6D98A4, |
||
| 790 | 0xB3C0200C, 0x66CF811F, |
||
| 791 | 0xAECC336B, 0x62F201AC, |
||
| 792 | 0xAA0A5B2D, 0x5ED77C89, |
||
| 793 | 0xA57D8666, 0x5A82799A, |
||
| 794 | 0xA1288376, 0x55F5A4D2, |
||
| 795 | 0x9D0DFE53, 0x5133CC94, |
||
| 796 | 0x99307EE0, 0x4C3FDFF3, |
||
| 797 | 0x9592675B, 0x471CECE6, |
||
| 798 | 0x9235F2EB, 0x41CE1E64, |
||
| 799 | 0x8F1D343A, 0x3C56BA70, |
||
| 800 | 0x8C4A142F, 0x36BA2013, |
||
| 801 | 0x89BE50C3, 0x30FBC54D, |
||
| 802 | 0x877B7BEC, 0x2B1F34EB, |
||
| 803 | 0x8582FAA4, 0x25280C5D, |
||
| 804 | 0x83D60411, 0x1F19F97B, |
||
| 805 | 0x8275A0C0, 0x18F8B83C, |
||
| 806 | 0x8162AA03, 0x12C8106E, |
||
| 807 | 0x809DC970, 0x0C8BD35E, |
||
| 808 | 0x80277872, 0x0647D97C, |
||
| 809 | 0x80000000, 0x00000000, |
||
| 810 | 0x80277872, 0xF9B82683, |
||
| 811 | 0x809DC970, 0xF3742CA1, |
||
| 812 | 0x8162AA03, 0xED37EF91, |
||
| 813 | 0x8275A0C0, 0xE70747C3, |
||
| 814 | 0x83D60411, 0xE0E60684, |
||
| 815 | 0x8582FAA4, 0xDAD7F3A2, |
||
| 816 | 0x877B7BEC, 0xD4E0CB14, |
||
| 817 | 0x89BE50C3, 0xCF043AB2, |
||
| 818 | 0x8C4A142F, 0xC945DFEC, |
||
| 819 | 0x8F1D343A, 0xC3A9458F, |
||
| 820 | 0x9235F2EB, 0xBE31E19B, |
||
| 821 | 0x9592675B, 0xB8E31319, |
||
| 822 | 0x99307EE0, 0xB3C0200C, |
||
| 823 | 0x9D0DFE53, 0xAECC336B, |
||
| 824 | 0xA1288376, 0xAA0A5B2D, |
||
| 825 | 0xA57D8666, 0xA57D8666, |
||
| 826 | 0xAA0A5B2D, 0xA1288376, |
||
| 827 | 0xAECC336B, 0x9D0DFE53, |
||
| 828 | 0xB3C0200C, 0x99307EE0, |
||
| 829 | 0xB8E31319, 0x9592675B, |
||
| 830 | 0xBE31E19B, 0x9235F2EB, |
||
| 831 | 0xC3A9458F, 0x8F1D343A, |
||
| 832 | 0xC945DFEC, 0x8C4A142F, |
||
| 833 | 0xCF043AB2, 0x89BE50C3, |
||
| 834 | 0xD4E0CB14, 0x877B7BEC, |
||
| 835 | 0xDAD7F3A2, 0x8582FAA4, |
||
| 836 | 0xE0E60684, 0x83D60411, |
||
| 837 | 0xE70747C3, 0x8275A0C0, |
||
| 838 | 0xED37EF91, 0x8162AA03, |
||
| 839 | 0xF3742CA1, 0x809DC970, |
||
| 840 | 0xF9B82683, 0x80277872 |
||
| 841 | }; |
||
| 842 | |||
| 843 | /** |
||
| 844 | * \par |
||
| 845 | * Example code for Q31 Twiddle factors Generation:: |
||
| 846 | * \par |
||
| 847 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 848 | * { |
||
| 849 | * twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N); |
||
| 850 | * twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 851 | * } </pre> |
||
| 852 | * \par |
||
| 853 | * where N = 256 and PI = 3.14159265358979 |
||
| 854 | * \par |
||
| 855 | * Cos and Sin values are interleaved fashion |
||
| 856 | * \par |
||
| 857 | * Convert Floating point to Q31(Fixed point 1.31): |
||
| 858 | * round(twiddleCoefQ31(i) * pow(2, 31)) |
||
| 859 | * |
||
| 860 | */ |
||
| 861 | const q31_t twiddleCoef_256_q31[384] = { |
||
| 862 | 0x7FFFFFFF, 0x00000000, |
||
| 863 | 0x7FF62182, 0x03242ABF, |
||
| 864 | 0x7FD8878D, 0x0647D97C, |
||
| 865 | 0x7FA736B4, 0x096A9049, |
||
| 866 | 0x7F62368F, 0x0C8BD35E, |
||
| 867 | 0x7F0991C3, 0x0FAB272B, |
||
| 868 | 0x7E9D55FC, 0x12C8106E, |
||
| 869 | 0x7E1D93E9, 0x15E21444, |
||
| 870 | 0x7D8A5F3F, 0x18F8B83C, |
||
| 871 | 0x7CE3CEB1, 0x1C0B826A, |
||
| 872 | 0x7C29FBEE, 0x1F19F97B, |
||
| 873 | 0x7B5D039D, 0x2223A4C5, |
||
| 874 | 0x7A7D055B, 0x25280C5D, |
||
| 875 | 0x798A23B1, 0x2826B928, |
||
| 876 | 0x78848413, 0x2B1F34EB, |
||
| 877 | 0x776C4EDB, 0x2E110A62, |
||
| 878 | 0x7641AF3C, 0x30FBC54D, |
||
| 879 | 0x7504D345, 0x33DEF287, |
||
| 880 | 0x73B5EBD0, 0x36BA2013, |
||
| 881 | 0x72552C84, 0x398CDD32, |
||
| 882 | 0x70E2CBC6, 0x3C56BA70, |
||
| 883 | 0x6F5F02B1, 0x3F1749B7, |
||
| 884 | 0x6DCA0D14, 0x41CE1E64, |
||
| 885 | 0x6C242960, 0x447ACD50, |
||
| 886 | 0x6A6D98A4, 0x471CECE6, |
||
| 887 | 0x68A69E81, 0x49B41533, |
||
| 888 | 0x66CF811F, 0x4C3FDFF3, |
||
| 889 | 0x64E88926, 0x4EBFE8A4, |
||
| 890 | 0x62F201AC, 0x5133CC94, |
||
| 891 | 0x60EC3830, 0x539B2AEF, |
||
| 892 | 0x5ED77C89, 0x55F5A4D2, |
||
| 893 | 0x5CB420DF, 0x5842DD54, |
||
| 894 | 0x5A82799A, 0x5A82799A, |
||
| 895 | 0x5842DD54, 0x5CB420DF, |
||
| 896 | 0x55F5A4D2, 0x5ED77C89, |
||
| 897 | 0x539B2AEF, 0x60EC3830, |
||
| 898 | 0x5133CC94, 0x62F201AC, |
||
| 899 | 0x4EBFE8A4, 0x64E88926, |
||
| 900 | 0x4C3FDFF3, 0x66CF811F, |
||
| 901 | 0x49B41533, 0x68A69E81, |
||
| 902 | 0x471CECE6, 0x6A6D98A4, |
||
| 903 | 0x447ACD50, 0x6C242960, |
||
| 904 | 0x41CE1E64, 0x6DCA0D14, |
||
| 905 | 0x3F1749B7, 0x6F5F02B1, |
||
| 906 | 0x3C56BA70, 0x70E2CBC6, |
||
| 907 | 0x398CDD32, 0x72552C84, |
||
| 908 | 0x36BA2013, 0x73B5EBD0, |
||
| 909 | 0x33DEF287, 0x7504D345, |
||
| 910 | 0x30FBC54D, 0x7641AF3C, |
||
| 911 | 0x2E110A62, 0x776C4EDB, |
||
| 912 | 0x2B1F34EB, 0x78848413, |
||
| 913 | 0x2826B928, 0x798A23B1, |
||
| 914 | 0x25280C5D, 0x7A7D055B, |
||
| 915 | 0x2223A4C5, 0x7B5D039D, |
||
| 916 | 0x1F19F97B, 0x7C29FBEE, |
||
| 917 | 0x1C0B826A, 0x7CE3CEB1, |
||
| 918 | 0x18F8B83C, 0x7D8A5F3F, |
||
| 919 | 0x15E21444, 0x7E1D93E9, |
||
| 920 | 0x12C8106E, 0x7E9D55FC, |
||
| 921 | 0x0FAB272B, 0x7F0991C3, |
||
| 922 | 0x0C8BD35E, 0x7F62368F, |
||
| 923 | 0x096A9049, 0x7FA736B4, |
||
| 924 | 0x0647D97C, 0x7FD8878D, |
||
| 925 | 0x03242ABF, 0x7FF62182, |
||
| 926 | 0x00000000, 0x7FFFFFFF, |
||
| 927 | 0xFCDBD541, 0x7FF62182, |
||
| 928 | 0xF9B82683, 0x7FD8878D, |
||
| 929 | 0xF6956FB6, 0x7FA736B4, |
||
| 930 | 0xF3742CA1, 0x7F62368F, |
||
| 931 | 0xF054D8D4, 0x7F0991C3, |
||
| 932 | 0xED37EF91, 0x7E9D55FC, |
||
| 933 | 0xEA1DEBBB, 0x7E1D93E9, |
||
| 934 | 0xE70747C3, 0x7D8A5F3F, |
||
| 935 | 0xE3F47D95, 0x7CE3CEB1, |
||
| 936 | 0xE0E60684, 0x7C29FBEE, |
||
| 937 | 0xDDDC5B3A, 0x7B5D039D, |
||
| 938 | 0xDAD7F3A2, 0x7A7D055B, |
||
| 939 | 0xD7D946D7, 0x798A23B1, |
||
| 940 | 0xD4E0CB14, 0x78848413, |
||
| 941 | 0xD1EEF59E, 0x776C4EDB, |
||
| 942 | 0xCF043AB2, 0x7641AF3C, |
||
| 943 | 0xCC210D78, 0x7504D345, |
||
| 944 | 0xC945DFEC, 0x73B5EBD0, |
||
| 945 | 0xC67322CD, 0x72552C84, |
||
| 946 | 0xC3A9458F, 0x70E2CBC6, |
||
| 947 | 0xC0E8B648, 0x6F5F02B1, |
||
| 948 | 0xBE31E19B, 0x6DCA0D14, |
||
| 949 | 0xBB8532AF, 0x6C242960, |
||
| 950 | 0xB8E31319, 0x6A6D98A4, |
||
| 951 | 0xB64BEACC, 0x68A69E81, |
||
| 952 | 0xB3C0200C, 0x66CF811F, |
||
| 953 | 0xB140175B, 0x64E88926, |
||
| 954 | 0xAECC336B, 0x62F201AC, |
||
| 955 | 0xAC64D510, 0x60EC3830, |
||
| 956 | 0xAA0A5B2D, 0x5ED77C89, |
||
| 957 | 0xA7BD22AB, 0x5CB420DF, |
||
| 958 | 0xA57D8666, 0x5A82799A, |
||
| 959 | 0xA34BDF20, 0x5842DD54, |
||
| 960 | 0xA1288376, 0x55F5A4D2, |
||
| 961 | 0x9F13C7D0, 0x539B2AEF, |
||
| 962 | 0x9D0DFE53, 0x5133CC94, |
||
| 963 | 0x9B1776D9, 0x4EBFE8A4, |
||
| 964 | 0x99307EE0, 0x4C3FDFF3, |
||
| 965 | 0x9759617E, 0x49B41533, |
||
| 966 | 0x9592675B, 0x471CECE6, |
||
| 967 | 0x93DBD69F, 0x447ACD50, |
||
| 968 | 0x9235F2EB, 0x41CE1E64, |
||
| 969 | 0x90A0FD4E, 0x3F1749B7, |
||
| 970 | 0x8F1D343A, 0x3C56BA70, |
||
| 971 | 0x8DAAD37B, 0x398CDD32, |
||
| 972 | 0x8C4A142F, 0x36BA2013, |
||
| 973 | 0x8AFB2CBA, 0x33DEF287, |
||
| 974 | 0x89BE50C3, 0x30FBC54D, |
||
| 975 | 0x8893B124, 0x2E110A62, |
||
| 976 | 0x877B7BEC, 0x2B1F34EB, |
||
| 977 | 0x8675DC4E, 0x2826B928, |
||
| 978 | 0x8582FAA4, 0x25280C5D, |
||
| 979 | 0x84A2FC62, 0x2223A4C5, |
||
| 980 | 0x83D60411, 0x1F19F97B, |
||
| 981 | 0x831C314E, 0x1C0B826A, |
||
| 982 | 0x8275A0C0, 0x18F8B83C, |
||
| 983 | 0x81E26C16, 0x15E21444, |
||
| 984 | 0x8162AA03, 0x12C8106E, |
||
| 985 | 0x80F66E3C, 0x0FAB272B, |
||
| 986 | 0x809DC970, 0x0C8BD35E, |
||
| 987 | 0x8058C94C, 0x096A9049, |
||
| 988 | 0x80277872, 0x0647D97C, |
||
| 989 | 0x8009DE7D, 0x03242ABF, |
||
| 990 | 0x80000000, 0x00000000, |
||
| 991 | 0x8009DE7D, 0xFCDBD541, |
||
| 992 | 0x80277872, 0xF9B82683, |
||
| 993 | 0x8058C94C, 0xF6956FB6, |
||
| 994 | 0x809DC970, 0xF3742CA1, |
||
| 995 | 0x80F66E3C, 0xF054D8D4, |
||
| 996 | 0x8162AA03, 0xED37EF91, |
||
| 997 | 0x81E26C16, 0xEA1DEBBB, |
||
| 998 | 0x8275A0C0, 0xE70747C3, |
||
| 999 | 0x831C314E, 0xE3F47D95, |
||
| 1000 | 0x83D60411, 0xE0E60684, |
||
| 1001 | 0x84A2FC62, 0xDDDC5B3A, |
||
| 1002 | 0x8582FAA4, 0xDAD7F3A2, |
||
| 1003 | 0x8675DC4E, 0xD7D946D7, |
||
| 1004 | 0x877B7BEC, 0xD4E0CB14, |
||
| 1005 | 0x8893B124, 0xD1EEF59E, |
||
| 1006 | 0x89BE50C3, 0xCF043AB2, |
||
| 1007 | 0x8AFB2CBA, 0xCC210D78, |
||
| 1008 | 0x8C4A142F, 0xC945DFEC, |
||
| 1009 | 0x8DAAD37B, 0xC67322CD, |
||
| 1010 | 0x8F1D343A, 0xC3A9458F, |
||
| 1011 | 0x90A0FD4E, 0xC0E8B648, |
||
| 1012 | 0x9235F2EB, 0xBE31E19B, |
||
| 1013 | 0x93DBD69F, 0xBB8532AF, |
||
| 1014 | 0x9592675B, 0xB8E31319, |
||
| 1015 | 0x9759617E, 0xB64BEACC, |
||
| 1016 | 0x99307EE0, 0xB3C0200C, |
||
| 1017 | 0x9B1776D9, 0xB140175B, |
||
| 1018 | 0x9D0DFE53, 0xAECC336B, |
||
| 1019 | 0x9F13C7D0, 0xAC64D510, |
||
| 1020 | 0xA1288376, 0xAA0A5B2D, |
||
| 1021 | 0xA34BDF20, 0xA7BD22AB, |
||
| 1022 | 0xA57D8666, 0xA57D8666, |
||
| 1023 | 0xA7BD22AB, 0xA34BDF20, |
||
| 1024 | 0xAA0A5B2D, 0xA1288376, |
||
| 1025 | 0xAC64D510, 0x9F13C7D0, |
||
| 1026 | 0xAECC336B, 0x9D0DFE53, |
||
| 1027 | 0xB140175B, 0x9B1776D9, |
||
| 1028 | 0xB3C0200C, 0x99307EE0, |
||
| 1029 | 0xB64BEACC, 0x9759617E, |
||
| 1030 | 0xB8E31319, 0x9592675B, |
||
| 1031 | 0xBB8532AF, 0x93DBD69F, |
||
| 1032 | 0xBE31E19B, 0x9235F2EB, |
||
| 1033 | 0xC0E8B648, 0x90A0FD4E, |
||
| 1034 | 0xC3A9458F, 0x8F1D343A, |
||
| 1035 | 0xC67322CD, 0x8DAAD37B, |
||
| 1036 | 0xC945DFEC, 0x8C4A142F, |
||
| 1037 | 0xCC210D78, 0x8AFB2CBA, |
||
| 1038 | 0xCF043AB2, 0x89BE50C3, |
||
| 1039 | 0xD1EEF59E, 0x8893B124, |
||
| 1040 | 0xD4E0CB14, 0x877B7BEC, |
||
| 1041 | 0xD7D946D7, 0x8675DC4E, |
||
| 1042 | 0xDAD7F3A2, 0x8582FAA4, |
||
| 1043 | 0xDDDC5B3A, 0x84A2FC62, |
||
| 1044 | 0xE0E60684, 0x83D60411, |
||
| 1045 | 0xE3F47D95, 0x831C314E, |
||
| 1046 | 0xE70747C3, 0x8275A0C0, |
||
| 1047 | 0xEA1DEBBB, 0x81E26C16, |
||
| 1048 | 0xED37EF91, 0x8162AA03, |
||
| 1049 | 0xF054D8D4, 0x80F66E3C, |
||
| 1050 | 0xF3742CA1, 0x809DC970, |
||
| 1051 | 0xF6956FB6, 0x8058C94C, |
||
| 1052 | 0xF9B82683, 0x80277872, |
||
| 1053 | 0xFCDBD541, 0x8009DE7D |
||
| 1054 | }; |
||
| 1055 | |||
| 1056 | /** |
||
| 1057 | * \par |
||
| 1058 | * Example code for Q31 Twiddle factors Generation:: |
||
| 1059 | * \par |
||
| 1060 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 1061 | * { |
||
| 1062 | * twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N); |
||
| 1063 | * twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 1064 | * } </pre> |
||
| 1065 | * \par |
||
| 1066 | * where N = 512 and PI = 3.14159265358979 |
||
| 1067 | * \par |
||
| 1068 | * Cos and Sin values are interleaved fashion |
||
| 1069 | * \par |
||
| 1070 | * Convert Floating point to Q31(Fixed point 1.31): |
||
| 1071 | * round(twiddleCoefQ31(i) * pow(2, 31)) |
||
| 1072 | * |
||
| 1073 | *//** |
||
| 1074 | * \par |
||
| 1075 | * Example code for Q31 Twiddle factors Generation:: |
||
| 1076 | * \par |
||
| 1077 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 1078 | * { |
||
| 1079 | * twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N); |
||
| 1080 | * twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 1081 | * } </pre> |
||
| 1082 | * \par |
||
| 1083 | * where N = 1024 and PI = 3.14159265358979 |
||
| 1084 | * \par |
||
| 1085 | * Cos and Sin values are interleaved fashion |
||
| 1086 | * \par |
||
| 1087 | * Convert Floating point to Q31(Fixed point 1.31): |
||
| 1088 | * round(twiddleCoefQ31(i) * pow(2, 31)) |
||
| 1089 | * |
||
| 1090 | *//** |
||
| 1091 | * \par |
||
| 1092 | * Example code for Q31 Twiddle factors Generation:: |
||
| 1093 | * \par |
||
| 1094 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 1095 | * { |
||
| 1096 | * twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N); |
||
| 1097 | * twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 1098 | * } </pre> |
||
| 1099 | * \par |
||
| 1100 | * where N = 2048 and PI = 3.14159265358979 |
||
| 1101 | * \par |
||
| 1102 | * Cos and Sin values are interleaved fashion |
||
| 1103 | * \par |
||
| 1104 | * Convert Floating point to Q31(Fixed point 1.31): |
||
| 1105 | * round(twiddleCoefQ31(i) * pow(2, 31)) |
||
| 1106 | * |
||
| 1107 | *//** |
||
| 1108 | * \par |
||
| 1109 | * Example code for Q31 Twiddle factors Generation:: |
||
| 1110 | * \par |
||
| 1111 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 1112 | * { |
||
| 1113 | * twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N); |
||
| 1114 | * twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 1115 | * } </pre> |
||
| 1116 | * \par |
||
| 1117 | * where N = 4096 and PI = 3.14159265358979 |
||
| 1118 | * \par |
||
| 1119 | * Cos and Sin values are interleaved fashion |
||
| 1120 | * \par |
||
| 1121 | * Convert Floating point to Q31(Fixed point 1.31): |
||
| 1122 | * round(twiddleCoefQ31(i) * pow(2, 31)) |
||
| 1123 | * |
||
| 1124 | *//* |
||
| 1125 | * @brief q15 Twiddle factors Table |
||
| 1126 | */ |
||
| 1127 | |||
| 1128 | |||
| 1129 | /** |
||
| 1130 | * \par |
||
| 1131 | * Example code for q15 Twiddle factors Generation:: |
||
| 1132 | * \par |
||
| 1133 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 1134 | * { |
||
| 1135 | * twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N); |
||
| 1136 | * twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 1137 | * } </pre> |
||
| 1138 | * \par |
||
| 1139 | * where N = 16 and PI = 3.14159265358979 |
||
| 1140 | * \par |
||
| 1141 | * Cos and Sin values are interleaved fashion |
||
| 1142 | * \par |
||
| 1143 | * Convert Floating point to q15(Fixed point 1.15): |
||
| 1144 | * round(twiddleCoefq15(i) * pow(2, 15)) |
||
| 1145 | * |
||
| 1146 | */ |
||
| 1147 | const q15_t twiddleCoef_16_q15[24] = { |
||
| 1148 | 0x7FFF, 0x0000, |
||
| 1149 | 0x7641, 0x30FB, |
||
| 1150 | 0x5A82, 0x5A82, |
||
| 1151 | 0x30FB, 0x7641, |
||
| 1152 | 0x0000, 0x7FFF, |
||
| 1153 | 0xCF04, 0x7641, |
||
| 1154 | 0xA57D, 0x5A82, |
||
| 1155 | 0x89BE, 0x30FB, |
||
| 1156 | 0x8000, 0x0000, |
||
| 1157 | 0x89BE, 0xCF04, |
||
| 1158 | 0xA57D, 0xA57D, |
||
| 1159 | 0xCF04, 0x89BE |
||
| 1160 | }; |
||
| 1161 | |||
| 1162 | /** |
||
| 1163 | * \par |
||
| 1164 | * Example code for q15 Twiddle factors Generation:: |
||
| 1165 | * \par |
||
| 1166 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 1167 | * { |
||
| 1168 | * twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N); |
||
| 1169 | * twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 1170 | * } </pre> |
||
| 1171 | * \par |
||
| 1172 | * where N = 32 and PI = 3.14159265358979 |
||
| 1173 | * \par |
||
| 1174 | * Cos and Sin values are interleaved fashion |
||
| 1175 | * \par |
||
| 1176 | * Convert Floating point to q15(Fixed point 1.15): |
||
| 1177 | * round(twiddleCoefq15(i) * pow(2, 15)) |
||
| 1178 | * |
||
| 1179 | */ |
||
| 1180 | const q15_t twiddleCoef_32_q15[48] = { |
||
| 1181 | 0x7FFF, 0x0000, |
||
| 1182 | 0x7D8A, 0x18F8, |
||
| 1183 | 0x7641, 0x30FB, |
||
| 1184 | 0x6A6D, 0x471C, |
||
| 1185 | 0x5A82, 0x5A82, |
||
| 1186 | 0x471C, 0x6A6D, |
||
| 1187 | 0x30FB, 0x7641, |
||
| 1188 | 0x18F8, 0x7D8A, |
||
| 1189 | 0x0000, 0x7FFF, |
||
| 1190 | 0xE707, 0x7D8A, |
||
| 1191 | 0xCF04, 0x7641, |
||
| 1192 | 0xB8E3, 0x6A6D, |
||
| 1193 | 0xA57D, 0x5A82, |
||
| 1194 | 0x9592, 0x471C, |
||
| 1195 | 0x89BE, 0x30FB, |
||
| 1196 | 0x8275, 0x18F8, |
||
| 1197 | 0x8000, 0x0000, |
||
| 1198 | 0x8275, 0xE707, |
||
| 1199 | 0x89BE, 0xCF04, |
||
| 1200 | 0x9592, 0xB8E3, |
||
| 1201 | 0xA57D, 0xA57D, |
||
| 1202 | 0xB8E3, 0x9592, |
||
| 1203 | 0xCF04, 0x89BE, |
||
| 1204 | 0xE707, 0x8275 |
||
| 1205 | }; |
||
| 1206 | |||
| 1207 | /** |
||
| 1208 | * \par |
||
| 1209 | * Example code for q15 Twiddle factors Generation:: |
||
| 1210 | * \par |
||
| 1211 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 1212 | * { |
||
| 1213 | * twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N); |
||
| 1214 | * twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 1215 | * } </pre> |
||
| 1216 | * \par |
||
| 1217 | * where N = 64 and PI = 3.14159265358979 |
||
| 1218 | * \par |
||
| 1219 | * Cos and Sin values are interleaved fashion |
||
| 1220 | * \par |
||
| 1221 | * Convert Floating point to q15(Fixed point 1.15): |
||
| 1222 | * round(twiddleCoefq15(i) * pow(2, 15)) |
||
| 1223 | * |
||
| 1224 | */ |
||
| 1225 | const q15_t twiddleCoef_64_q15[96] = { |
||
| 1226 | 0x7FFF, 0x0000, |
||
| 1227 | 0x7F62, 0x0C8B, |
||
| 1228 | 0x7D8A, 0x18F8, |
||
| 1229 | 0x7A7D, 0x2528, |
||
| 1230 | 0x7641, 0x30FB, |
||
| 1231 | 0x70E2, 0x3C56, |
||
| 1232 | 0x6A6D, 0x471C, |
||
| 1233 | 0x62F2, 0x5133, |
||
| 1234 | 0x5A82, 0x5A82, |
||
| 1235 | 0x5133, 0x62F2, |
||
| 1236 | 0x471C, 0x6A6D, |
||
| 1237 | 0x3C56, 0x70E2, |
||
| 1238 | 0x30FB, 0x7641, |
||
| 1239 | 0x2528, 0x7A7D, |
||
| 1240 | 0x18F8, 0x7D8A, |
||
| 1241 | 0x0C8B, 0x7F62, |
||
| 1242 | 0x0000, 0x7FFF, |
||
| 1243 | 0xF374, 0x7F62, |
||
| 1244 | 0xE707, 0x7D8A, |
||
| 1245 | 0xDAD7, 0x7A7D, |
||
| 1246 | 0xCF04, 0x7641, |
||
| 1247 | 0xC3A9, 0x70E2, |
||
| 1248 | 0xB8E3, 0x6A6D, |
||
| 1249 | 0xAECC, 0x62F2, |
||
| 1250 | 0xA57D, 0x5A82, |
||
| 1251 | 0x9D0D, 0x5133, |
||
| 1252 | 0x9592, 0x471C, |
||
| 1253 | 0x8F1D, 0x3C56, |
||
| 1254 | 0x89BE, 0x30FB, |
||
| 1255 | 0x8582, 0x2528, |
||
| 1256 | 0x8275, 0x18F8, |
||
| 1257 | 0x809D, 0x0C8B, |
||
| 1258 | 0x8000, 0x0000, |
||
| 1259 | 0x809D, 0xF374, |
||
| 1260 | 0x8275, 0xE707, |
||
| 1261 | 0x8582, 0xDAD7, |
||
| 1262 | 0x89BE, 0xCF04, |
||
| 1263 | 0x8F1D, 0xC3A9, |
||
| 1264 | 0x9592, 0xB8E3, |
||
| 1265 | 0x9D0D, 0xAECC, |
||
| 1266 | 0xA57D, 0xA57D, |
||
| 1267 | 0xAECC, 0x9D0D, |
||
| 1268 | 0xB8E3, 0x9592, |
||
| 1269 | 0xC3A9, 0x8F1D, |
||
| 1270 | 0xCF04, 0x89BE, |
||
| 1271 | 0xDAD7, 0x8582, |
||
| 1272 | 0xE707, 0x8275, |
||
| 1273 | 0xF374, 0x809D |
||
| 1274 | }; |
||
| 1275 | |||
| 1276 | /** |
||
| 1277 | * \par |
||
| 1278 | * Example code for q15 Twiddle factors Generation:: |
||
| 1279 | * \par |
||
| 1280 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 1281 | * { |
||
| 1282 | * twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N); |
||
| 1283 | * twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 1284 | * } </pre> |
||
| 1285 | * \par |
||
| 1286 | * where N = 128 and PI = 3.14159265358979 |
||
| 1287 | * \par |
||
| 1288 | * Cos and Sin values are interleaved fashion |
||
| 1289 | * \par |
||
| 1290 | * Convert Floating point to q15(Fixed point 1.15): |
||
| 1291 | * round(twiddleCoefq15(i) * pow(2, 15)) |
||
| 1292 | * |
||
| 1293 | */ |
||
| 1294 | const q15_t twiddleCoef_128_q15[192] = { |
||
| 1295 | 0x7FFF, 0x0000, |
||
| 1296 | 0x7FD8, 0x0647, |
||
| 1297 | 0x7F62, 0x0C8B, |
||
| 1298 | 0x7E9D, 0x12C8, |
||
| 1299 | 0x7D8A, 0x18F8, |
||
| 1300 | 0x7C29, 0x1F19, |
||
| 1301 | 0x7A7D, 0x2528, |
||
| 1302 | 0x7884, 0x2B1F, |
||
| 1303 | 0x7641, 0x30FB, |
||
| 1304 | 0x73B5, 0x36BA, |
||
| 1305 | 0x70E2, 0x3C56, |
||
| 1306 | 0x6DCA, 0x41CE, |
||
| 1307 | 0x6A6D, 0x471C, |
||
| 1308 | 0x66CF, 0x4C3F, |
||
| 1309 | 0x62F2, 0x5133, |
||
| 1310 | 0x5ED7, 0x55F5, |
||
| 1311 | 0x5A82, 0x5A82, |
||
| 1312 | 0x55F5, 0x5ED7, |
||
| 1313 | 0x5133, 0x62F2, |
||
| 1314 | 0x4C3F, 0x66CF, |
||
| 1315 | 0x471C, 0x6A6D, |
||
| 1316 | 0x41CE, 0x6DCA, |
||
| 1317 | 0x3C56, 0x70E2, |
||
| 1318 | 0x36BA, 0x73B5, |
||
| 1319 | 0x30FB, 0x7641, |
||
| 1320 | 0x2B1F, 0x7884, |
||
| 1321 | 0x2528, 0x7A7D, |
||
| 1322 | 0x1F19, 0x7C29, |
||
| 1323 | 0x18F8, 0x7D8A, |
||
| 1324 | 0x12C8, 0x7E9D, |
||
| 1325 | 0x0C8B, 0x7F62, |
||
| 1326 | 0x0647, 0x7FD8, |
||
| 1327 | 0x0000, 0x7FFF, |
||
| 1328 | 0xF9B8, 0x7FD8, |
||
| 1329 | 0xF374, 0x7F62, |
||
| 1330 | 0xED37, 0x7E9D, |
||
| 1331 | 0xE707, 0x7D8A, |
||
| 1332 | 0xE0E6, 0x7C29, |
||
| 1333 | 0xDAD7, 0x7A7D, |
||
| 1334 | 0xD4E0, 0x7884, |
||
| 1335 | 0xCF04, 0x7641, |
||
| 1336 | 0xC945, 0x73B5, |
||
| 1337 | 0xC3A9, 0x70E2, |
||
| 1338 | 0xBE31, 0x6DCA, |
||
| 1339 | 0xB8E3, 0x6A6D, |
||
| 1340 | 0xB3C0, 0x66CF, |
||
| 1341 | 0xAECC, 0x62F2, |
||
| 1342 | 0xAA0A, 0x5ED7, |
||
| 1343 | 0xA57D, 0x5A82, |
||
| 1344 | 0xA128, 0x55F5, |
||
| 1345 | 0x9D0D, 0x5133, |
||
| 1346 | 0x9930, 0x4C3F, |
||
| 1347 | 0x9592, 0x471C, |
||
| 1348 | 0x9235, 0x41CE, |
||
| 1349 | 0x8F1D, 0x3C56, |
||
| 1350 | 0x8C4A, 0x36BA, |
||
| 1351 | 0x89BE, 0x30FB, |
||
| 1352 | 0x877B, 0x2B1F, |
||
| 1353 | 0x8582, 0x2528, |
||
| 1354 | 0x83D6, 0x1F19, |
||
| 1355 | 0x8275, 0x18F8, |
||
| 1356 | 0x8162, 0x12C8, |
||
| 1357 | 0x809D, 0x0C8B, |
||
| 1358 | 0x8027, 0x0647, |
||
| 1359 | 0x8000, 0x0000, |
||
| 1360 | 0x8027, 0xF9B8, |
||
| 1361 | 0x809D, 0xF374, |
||
| 1362 | 0x8162, 0xED37, |
||
| 1363 | 0x8275, 0xE707, |
||
| 1364 | 0x83D6, 0xE0E6, |
||
| 1365 | 0x8582, 0xDAD7, |
||
| 1366 | 0x877B, 0xD4E0, |
||
| 1367 | 0x89BE, 0xCF04, |
||
| 1368 | 0x8C4A, 0xC945, |
||
| 1369 | 0x8F1D, 0xC3A9, |
||
| 1370 | 0x9235, 0xBE31, |
||
| 1371 | 0x9592, 0xB8E3, |
||
| 1372 | 0x9930, 0xB3C0, |
||
| 1373 | 0x9D0D, 0xAECC, |
||
| 1374 | 0xA128, 0xAA0A, |
||
| 1375 | 0xA57D, 0xA57D, |
||
| 1376 | 0xAA0A, 0xA128, |
||
| 1377 | 0xAECC, 0x9D0D, |
||
| 1378 | 0xB3C0, 0x9930, |
||
| 1379 | 0xB8E3, 0x9592, |
||
| 1380 | 0xBE31, 0x9235, |
||
| 1381 | 0xC3A9, 0x8F1D, |
||
| 1382 | 0xC945, 0x8C4A, |
||
| 1383 | 0xCF04, 0x89BE, |
||
| 1384 | 0xD4E0, 0x877B, |
||
| 1385 | 0xDAD7, 0x8582, |
||
| 1386 | 0xE0E6, 0x83D6, |
||
| 1387 | 0xE707, 0x8275, |
||
| 1388 | 0xED37, 0x8162, |
||
| 1389 | 0xF374, 0x809D, |
||
| 1390 | 0xF9B8, 0x8027 |
||
| 1391 | }; |
||
| 1392 | |||
| 1393 | /** |
||
| 1394 | * \par |
||
| 1395 | * Example code for q15 Twiddle factors Generation:: |
||
| 1396 | * \par |
||
| 1397 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 1398 | * { |
||
| 1399 | * twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N); |
||
| 1400 | * twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 1401 | * } </pre> |
||
| 1402 | * \par |
||
| 1403 | * where N = 256 and PI = 3.14159265358979 |
||
| 1404 | * \par |
||
| 1405 | * Cos and Sin values are interleaved fashion |
||
| 1406 | * \par |
||
| 1407 | * Convert Floating point to q15(Fixed point 1.15): |
||
| 1408 | * round(twiddleCoefq15(i) * pow(2, 15)) |
||
| 1409 | * |
||
| 1410 | */ |
||
| 1411 | const q15_t twiddleCoef_256_q15[384] = { |
||
| 1412 | 0x7FFF, 0x0000, |
||
| 1413 | 0x7FF6, 0x0324, |
||
| 1414 | 0x7FD8, 0x0647, |
||
| 1415 | 0x7FA7, 0x096A, |
||
| 1416 | 0x7F62, 0x0C8B, |
||
| 1417 | 0x7F09, 0x0FAB, |
||
| 1418 | 0x7E9D, 0x12C8, |
||
| 1419 | 0x7E1D, 0x15E2, |
||
| 1420 | 0x7D8A, 0x18F8, |
||
| 1421 | 0x7CE3, 0x1C0B, |
||
| 1422 | 0x7C29, 0x1F19, |
||
| 1423 | 0x7B5D, 0x2223, |
||
| 1424 | 0x7A7D, 0x2528, |
||
| 1425 | 0x798A, 0x2826, |
||
| 1426 | 0x7884, 0x2B1F, |
||
| 1427 | 0x776C, 0x2E11, |
||
| 1428 | 0x7641, 0x30FB, |
||
| 1429 | 0x7504, 0x33DE, |
||
| 1430 | 0x73B5, 0x36BA, |
||
| 1431 | 0x7255, 0x398C, |
||
| 1432 | 0x70E2, 0x3C56, |
||
| 1433 | 0x6F5F, 0x3F17, |
||
| 1434 | 0x6DCA, 0x41CE, |
||
| 1435 | 0x6C24, 0x447A, |
||
| 1436 | 0x6A6D, 0x471C, |
||
| 1437 | 0x68A6, 0x49B4, |
||
| 1438 | 0x66CF, 0x4C3F, |
||
| 1439 | 0x64E8, 0x4EBF, |
||
| 1440 | 0x62F2, 0x5133, |
||
| 1441 | 0x60EC, 0x539B, |
||
| 1442 | 0x5ED7, 0x55F5, |
||
| 1443 | 0x5CB4, 0x5842, |
||
| 1444 | 0x5A82, 0x5A82, |
||
| 1445 | 0x5842, 0x5CB4, |
||
| 1446 | 0x55F5, 0x5ED7, |
||
| 1447 | 0x539B, 0x60EC, |
||
| 1448 | 0x5133, 0x62F2, |
||
| 1449 | 0x4EBF, 0x64E8, |
||
| 1450 | 0x4C3F, 0x66CF, |
||
| 1451 | 0x49B4, 0x68A6, |
||
| 1452 | 0x471C, 0x6A6D, |
||
| 1453 | 0x447A, 0x6C24, |
||
| 1454 | 0x41CE, 0x6DCA, |
||
| 1455 | 0x3F17, 0x6F5F, |
||
| 1456 | 0x3C56, 0x70E2, |
||
| 1457 | 0x398C, 0x7255, |
||
| 1458 | 0x36BA, 0x73B5, |
||
| 1459 | 0x33DE, 0x7504, |
||
| 1460 | 0x30FB, 0x7641, |
||
| 1461 | 0x2E11, 0x776C, |
||
| 1462 | 0x2B1F, 0x7884, |
||
| 1463 | 0x2826, 0x798A, |
||
| 1464 | 0x2528, 0x7A7D, |
||
| 1465 | 0x2223, 0x7B5D, |
||
| 1466 | 0x1F19, 0x7C29, |
||
| 1467 | 0x1C0B, 0x7CE3, |
||
| 1468 | 0x18F8, 0x7D8A, |
||
| 1469 | 0x15E2, 0x7E1D, |
||
| 1470 | 0x12C8, 0x7E9D, |
||
| 1471 | 0x0FAB, 0x7F09, |
||
| 1472 | 0x0C8B, 0x7F62, |
||
| 1473 | 0x096A, 0x7FA7, |
||
| 1474 | 0x0647, 0x7FD8, |
||
| 1475 | 0x0324, 0x7FF6, |
||
| 1476 | 0x0000, 0x7FFF, |
||
| 1477 | 0xFCDB, 0x7FF6, |
||
| 1478 | 0xF9B8, 0x7FD8, |
||
| 1479 | 0xF695, 0x7FA7, |
||
| 1480 | 0xF374, 0x7F62, |
||
| 1481 | 0xF054, 0x7F09, |
||
| 1482 | 0xED37, 0x7E9D, |
||
| 1483 | 0xEA1D, 0x7E1D, |
||
| 1484 | 0xE707, 0x7D8A, |
||
| 1485 | 0xE3F4, 0x7CE3, |
||
| 1486 | 0xE0E6, 0x7C29, |
||
| 1487 | 0xDDDC, 0x7B5D, |
||
| 1488 | 0xDAD7, 0x7A7D, |
||
| 1489 | 0xD7D9, 0x798A, |
||
| 1490 | 0xD4E0, 0x7884, |
||
| 1491 | 0xD1EE, 0x776C, |
||
| 1492 | 0xCF04, 0x7641, |
||
| 1493 | 0xCC21, 0x7504, |
||
| 1494 | 0xC945, 0x73B5, |
||
| 1495 | 0xC673, 0x7255, |
||
| 1496 | 0xC3A9, 0x70E2, |
||
| 1497 | 0xC0E8, 0x6F5F, |
||
| 1498 | 0xBE31, 0x6DCA, |
||
| 1499 | 0xBB85, 0x6C24, |
||
| 1500 | 0xB8E3, 0x6A6D, |
||
| 1501 | 0xB64B, 0x68A6, |
||
| 1502 | 0xB3C0, 0x66CF, |
||
| 1503 | 0xB140, 0x64E8, |
||
| 1504 | 0xAECC, 0x62F2, |
||
| 1505 | 0xAC64, 0x60EC, |
||
| 1506 | 0xAA0A, 0x5ED7, |
||
| 1507 | 0xA7BD, 0x5CB4, |
||
| 1508 | 0xA57D, 0x5A82, |
||
| 1509 | 0xA34B, 0x5842, |
||
| 1510 | 0xA128, 0x55F5, |
||
| 1511 | 0x9F13, 0x539B, |
||
| 1512 | 0x9D0D, 0x5133, |
||
| 1513 | 0x9B17, 0x4EBF, |
||
| 1514 | 0x9930, 0x4C3F, |
||
| 1515 | 0x9759, 0x49B4, |
||
| 1516 | 0x9592, 0x471C, |
||
| 1517 | 0x93DB, 0x447A, |
||
| 1518 | 0x9235, 0x41CE, |
||
| 1519 | 0x90A0, 0x3F17, |
||
| 1520 | 0x8F1D, 0x3C56, |
||
| 1521 | 0x8DAA, 0x398C, |
||
| 1522 | 0x8C4A, 0x36BA, |
||
| 1523 | 0x8AFB, 0x33DE, |
||
| 1524 | 0x89BE, 0x30FB, |
||
| 1525 | 0x8893, 0x2E11, |
||
| 1526 | 0x877B, 0x2B1F, |
||
| 1527 | 0x8675, 0x2826, |
||
| 1528 | 0x8582, 0x2528, |
||
| 1529 | 0x84A2, 0x2223, |
||
| 1530 | 0x83D6, 0x1F19, |
||
| 1531 | 0x831C, 0x1C0B, |
||
| 1532 | 0x8275, 0x18F8, |
||
| 1533 | 0x81E2, 0x15E2, |
||
| 1534 | 0x8162, 0x12C8, |
||
| 1535 | 0x80F6, 0x0FAB, |
||
| 1536 | 0x809D, 0x0C8B, |
||
| 1537 | 0x8058, 0x096A, |
||
| 1538 | 0x8027, 0x0647, |
||
| 1539 | 0x8009, 0x0324, |
||
| 1540 | 0x8000, 0x0000, |
||
| 1541 | 0x8009, 0xFCDB, |
||
| 1542 | 0x8027, 0xF9B8, |
||
| 1543 | 0x8058, 0xF695, |
||
| 1544 | 0x809D, 0xF374, |
||
| 1545 | 0x80F6, 0xF054, |
||
| 1546 | 0x8162, 0xED37, |
||
| 1547 | 0x81E2, 0xEA1D, |
||
| 1548 | 0x8275, 0xE707, |
||
| 1549 | 0x831C, 0xE3F4, |
||
| 1550 | 0x83D6, 0xE0E6, |
||
| 1551 | 0x84A2, 0xDDDC, |
||
| 1552 | 0x8582, 0xDAD7, |
||
| 1553 | 0x8675, 0xD7D9, |
||
| 1554 | 0x877B, 0xD4E0, |
||
| 1555 | 0x8893, 0xD1EE, |
||
| 1556 | 0x89BE, 0xCF04, |
||
| 1557 | 0x8AFB, 0xCC21, |
||
| 1558 | 0x8C4A, 0xC945, |
||
| 1559 | 0x8DAA, 0xC673, |
||
| 1560 | 0x8F1D, 0xC3A9, |
||
| 1561 | 0x90A0, 0xC0E8, |
||
| 1562 | 0x9235, 0xBE31, |
||
| 1563 | 0x93DB, 0xBB85, |
||
| 1564 | 0x9592, 0xB8E3, |
||
| 1565 | 0x9759, 0xB64B, |
||
| 1566 | 0x9930, 0xB3C0, |
||
| 1567 | 0x9B17, 0xB140, |
||
| 1568 | 0x9D0D, 0xAECC, |
||
| 1569 | 0x9F13, 0xAC64, |
||
| 1570 | 0xA128, 0xAA0A, |
||
| 1571 | 0xA34B, 0xA7BD, |
||
| 1572 | 0xA57D, 0xA57D, |
||
| 1573 | 0xA7BD, 0xA34B, |
||
| 1574 | 0xAA0A, 0xA128, |
||
| 1575 | 0xAC64, 0x9F13, |
||
| 1576 | 0xAECC, 0x9D0D, |
||
| 1577 | 0xB140, 0x9B17, |
||
| 1578 | 0xB3C0, 0x9930, |
||
| 1579 | 0xB64B, 0x9759, |
||
| 1580 | 0xB8E3, 0x9592, |
||
| 1581 | 0xBB85, 0x93DB, |
||
| 1582 | 0xBE31, 0x9235, |
||
| 1583 | 0xC0E8, 0x90A0, |
||
| 1584 | 0xC3A9, 0x8F1D, |
||
| 1585 | 0xC673, 0x8DAA, |
||
| 1586 | 0xC945, 0x8C4A, |
||
| 1587 | 0xCC21, 0x8AFB, |
||
| 1588 | 0xCF04, 0x89BE, |
||
| 1589 | 0xD1EE, 0x8893, |
||
| 1590 | 0xD4E0, 0x877B, |
||
| 1591 | 0xD7D9, 0x8675, |
||
| 1592 | 0xDAD7, 0x8582, |
||
| 1593 | 0xDDDC, 0x84A2, |
||
| 1594 | 0xE0E6, 0x83D6, |
||
| 1595 | 0xE3F4, 0x831C, |
||
| 1596 | 0xE707, 0x8275, |
||
| 1597 | 0xEA1D, 0x81E2, |
||
| 1598 | 0xED37, 0x8162, |
||
| 1599 | 0xF054, 0x80F6, |
||
| 1600 | 0xF374, 0x809D, |
||
| 1601 | 0xF695, 0x8058, |
||
| 1602 | 0xF9B8, 0x8027, |
||
| 1603 | 0xFCDB, 0x8009 |
||
| 1604 | }; |
||
| 1605 | |||
| 1606 | /** |
||
| 1607 | * \par |
||
| 1608 | * Example code for q15 Twiddle factors Generation:: |
||
| 1609 | * \par |
||
| 1610 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 1611 | * { |
||
| 1612 | * twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N); |
||
| 1613 | * twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 1614 | * } </pre> |
||
| 1615 | * \par |
||
| 1616 | * where N = 512 and PI = 3.14159265358979 |
||
| 1617 | * \par |
||
| 1618 | * Cos and Sin values are interleaved fashion |
||
| 1619 | * \par |
||
| 1620 | * Convert Floating point to q15(Fixed point 1.15): |
||
| 1621 | * round(twiddleCoefq15(i) * pow(2, 15)) |
||
| 1622 | * |
||
| 1623 | */ |
||
| 1624 | const q15_t twiddleCoef_512_q15[768] = { |
||
| 1625 | 0x7FFF, 0x0000, |
||
| 1626 | 0x7FFD, 0x0192, |
||
| 1627 | 0x7FF6, 0x0324, |
||
| 1628 | 0x7FE9, 0x04B6, |
||
| 1629 | 0x7FD8, 0x0647, |
||
| 1630 | 0x7FC2, 0x07D9, |
||
| 1631 | 0x7FA7, 0x096A, |
||
| 1632 | 0x7F87, 0x0AFB, |
||
| 1633 | 0x7F62, 0x0C8B, |
||
| 1634 | 0x7F38, 0x0E1B, |
||
| 1635 | 0x7F09, 0x0FAB, |
||
| 1636 | 0x7ED5, 0x1139, |
||
| 1637 | 0x7E9D, 0x12C8, |
||
| 1638 | 0x7E5F, 0x1455, |
||
| 1639 | 0x7E1D, 0x15E2, |
||
| 1640 | 0x7DD6, 0x176D, |
||
| 1641 | 0x7D8A, 0x18F8, |
||
| 1642 | 0x7D39, 0x1A82, |
||
| 1643 | 0x7CE3, 0x1C0B, |
||
| 1644 | 0x7C89, 0x1D93, |
||
| 1645 | 0x7C29, 0x1F19, |
||
| 1646 | 0x7BC5, 0x209F, |
||
| 1647 | 0x7B5D, 0x2223, |
||
| 1648 | 0x7AEF, 0x23A6, |
||
| 1649 | 0x7A7D, 0x2528, |
||
| 1650 | 0x7A05, 0x26A8, |
||
| 1651 | 0x798A, 0x2826, |
||
| 1652 | 0x7909, 0x29A3, |
||
| 1653 | 0x7884, 0x2B1F, |
||
| 1654 | 0x77FA, 0x2C98, |
||
| 1655 | 0x776C, 0x2E11, |
||
| 1656 | 0x76D9, 0x2F87, |
||
| 1657 | 0x7641, 0x30FB, |
||
| 1658 | 0x75A5, 0x326E, |
||
| 1659 | 0x7504, 0x33DE, |
||
| 1660 | 0x745F, 0x354D, |
||
| 1661 | 0x73B5, 0x36BA, |
||
| 1662 | 0x7307, 0x3824, |
||
| 1663 | 0x7255, 0x398C, |
||
| 1664 | 0x719E, 0x3AF2, |
||
| 1665 | 0x70E2, 0x3C56, |
||
| 1666 | 0x7023, 0x3DB8, |
||
| 1667 | 0x6F5F, 0x3F17, |
||
| 1668 | 0x6E96, 0x4073, |
||
| 1669 | 0x6DCA, 0x41CE, |
||
| 1670 | 0x6CF9, 0x4325, |
||
| 1671 | 0x6C24, 0x447A, |
||
| 1672 | 0x6B4A, 0x45CD, |
||
| 1673 | 0x6A6D, 0x471C, |
||
| 1674 | 0x698C, 0x4869, |
||
| 1675 | 0x68A6, 0x49B4, |
||
| 1676 | 0x67BD, 0x4AFB, |
||
| 1677 | 0x66CF, 0x4C3F, |
||
| 1678 | 0x65DD, 0x4D81, |
||
| 1679 | 0x64E8, 0x4EBF, |
||
| 1680 | 0x63EF, 0x4FFB, |
||
| 1681 | 0x62F2, 0x5133, |
||
| 1682 | 0x61F1, 0x5269, |
||
| 1683 | 0x60EC, 0x539B, |
||
| 1684 | 0x5FE3, 0x54CA, |
||
| 1685 | 0x5ED7, 0x55F5, |
||
| 1686 | 0x5DC7, 0x571D, |
||
| 1687 | 0x5CB4, 0x5842, |
||
| 1688 | 0x5B9D, 0x5964, |
||
| 1689 | 0x5A82, 0x5A82, |
||
| 1690 | 0x5964, 0x5B9D, |
||
| 1691 | 0x5842, 0x5CB4, |
||
| 1692 | 0x571D, 0x5DC7, |
||
| 1693 | 0x55F5, 0x5ED7, |
||
| 1694 | 0x54CA, 0x5FE3, |
||
| 1695 | 0x539B, 0x60EC, |
||
| 1696 | 0x5269, 0x61F1, |
||
| 1697 | 0x5133, 0x62F2, |
||
| 1698 | 0x4FFB, 0x63EF, |
||
| 1699 | 0x4EBF, 0x64E8, |
||
| 1700 | 0x4D81, 0x65DD, |
||
| 1701 | 0x4C3F, 0x66CF, |
||
| 1702 | 0x4AFB, 0x67BD, |
||
| 1703 | 0x49B4, 0x68A6, |
||
| 1704 | 0x4869, 0x698C, |
||
| 1705 | 0x471C, 0x6A6D, |
||
| 1706 | 0x45CD, 0x6B4A, |
||
| 1707 | 0x447A, 0x6C24, |
||
| 1708 | 0x4325, 0x6CF9, |
||
| 1709 | 0x41CE, 0x6DCA, |
||
| 1710 | 0x4073, 0x6E96, |
||
| 1711 | 0x3F17, 0x6F5F, |
||
| 1712 | 0x3DB8, 0x7023, |
||
| 1713 | 0x3C56, 0x70E2, |
||
| 1714 | 0x3AF2, 0x719E, |
||
| 1715 | 0x398C, 0x7255, |
||
| 1716 | 0x3824, 0x7307, |
||
| 1717 | 0x36BA, 0x73B5, |
||
| 1718 | 0x354D, 0x745F, |
||
| 1719 | 0x33DE, 0x7504, |
||
| 1720 | 0x326E, 0x75A5, |
||
| 1721 | 0x30FB, 0x7641, |
||
| 1722 | 0x2F87, 0x76D9, |
||
| 1723 | 0x2E11, 0x776C, |
||
| 1724 | 0x2C98, 0x77FA, |
||
| 1725 | 0x2B1F, 0x7884, |
||
| 1726 | 0x29A3, 0x7909, |
||
| 1727 | 0x2826, 0x798A, |
||
| 1728 | 0x26A8, 0x7A05, |
||
| 1729 | 0x2528, 0x7A7D, |
||
| 1730 | 0x23A6, 0x7AEF, |
||
| 1731 | 0x2223, 0x7B5D, |
||
| 1732 | 0x209F, 0x7BC5, |
||
| 1733 | 0x1F19, 0x7C29, |
||
| 1734 | 0x1D93, 0x7C89, |
||
| 1735 | 0x1C0B, 0x7CE3, |
||
| 1736 | 0x1A82, 0x7D39, |
||
| 1737 | 0x18F8, 0x7D8A, |
||
| 1738 | 0x176D, 0x7DD6, |
||
| 1739 | 0x15E2, 0x7E1D, |
||
| 1740 | 0x1455, 0x7E5F, |
||
| 1741 | 0x12C8, 0x7E9D, |
||
| 1742 | 0x1139, 0x7ED5, |
||
| 1743 | 0x0FAB, 0x7F09, |
||
| 1744 | 0x0E1B, 0x7F38, |
||
| 1745 | 0x0C8B, 0x7F62, |
||
| 1746 | 0x0AFB, 0x7F87, |
||
| 1747 | 0x096A, 0x7FA7, |
||
| 1748 | 0x07D9, 0x7FC2, |
||
| 1749 | 0x0647, 0x7FD8, |
||
| 1750 | 0x04B6, 0x7FE9, |
||
| 1751 | 0x0324, 0x7FF6, |
||
| 1752 | 0x0192, 0x7FFD, |
||
| 1753 | 0x0000, 0x7FFF, |
||
| 1754 | 0xFE6D, 0x7FFD, |
||
| 1755 | 0xFCDB, 0x7FF6, |
||
| 1756 | 0xFB49, 0x7FE9, |
||
| 1757 | 0xF9B8, 0x7FD8, |
||
| 1758 | 0xF826, 0x7FC2, |
||
| 1759 | 0xF695, 0x7FA7, |
||
| 1760 | 0xF504, 0x7F87, |
||
| 1761 | 0xF374, 0x7F62, |
||
| 1762 | 0xF1E4, 0x7F38, |
||
| 1763 | 0xF054, 0x7F09, |
||
| 1764 | 0xEEC6, 0x7ED5, |
||
| 1765 | 0xED37, 0x7E9D, |
||
| 1766 | 0xEBAA, 0x7E5F, |
||
| 1767 | 0xEA1D, 0x7E1D, |
||
| 1768 | 0xE892, 0x7DD6, |
||
| 1769 | 0xE707, 0x7D8A, |
||
| 1770 | 0xE57D, 0x7D39, |
||
| 1771 | 0xE3F4, 0x7CE3, |
||
| 1772 | 0xE26C, 0x7C89, |
||
| 1773 | 0xE0E6, 0x7C29, |
||
| 1774 | 0xDF60, 0x7BC5, |
||
| 1775 | 0xDDDC, 0x7B5D, |
||
| 1776 | 0xDC59, 0x7AEF, |
||
| 1777 | 0xDAD7, 0x7A7D, |
||
| 1778 | 0xD957, 0x7A05, |
||
| 1779 | 0xD7D9, 0x798A, |
||
| 1780 | 0xD65C, 0x7909, |
||
| 1781 | 0xD4E0, 0x7884, |
||
| 1782 | 0xD367, 0x77FA, |
||
| 1783 | 0xD1EE, 0x776C, |
||
| 1784 | 0xD078, 0x76D9, |
||
| 1785 | 0xCF04, 0x7641, |
||
| 1786 | 0xCD91, 0x75A5, |
||
| 1787 | 0xCC21, 0x7504, |
||
| 1788 | 0xCAB2, 0x745F, |
||
| 1789 | 0xC945, 0x73B5, |
||
| 1790 | 0xC7DB, 0x7307, |
||
| 1791 | 0xC673, 0x7255, |
||
| 1792 | 0xC50D, 0x719E, |
||
| 1793 | 0xC3A9, 0x70E2, |
||
| 1794 | 0xC247, 0x7023, |
||
| 1795 | 0xC0E8, 0x6F5F, |
||
| 1796 | 0xBF8C, 0x6E96, |
||
| 1797 | 0xBE31, 0x6DCA, |
||
| 1798 | 0xBCDA, 0x6CF9, |
||
| 1799 | 0xBB85, 0x6C24, |
||
| 1800 | 0xBA32, 0x6B4A, |
||
| 1801 | 0xB8E3, 0x6A6D, |
||
| 1802 | 0xB796, 0x698C, |
||
| 1803 | 0xB64B, 0x68A6, |
||
| 1804 | 0xB504, 0x67BD, |
||
| 1805 | 0xB3C0, 0x66CF, |
||
| 1806 | 0xB27E, 0x65DD, |
||
| 1807 | 0xB140, 0x64E8, |
||
| 1808 | 0xB004, 0x63EF, |
||
| 1809 | 0xAECC, 0x62F2, |
||
| 1810 | 0xAD96, 0x61F1, |
||
| 1811 | 0xAC64, 0x60EC, |
||
| 1812 | 0xAB35, 0x5FE3, |
||
| 1813 | 0xAA0A, 0x5ED7, |
||
| 1814 | 0xA8E2, 0x5DC7, |
||
| 1815 | 0xA7BD, 0x5CB4, |
||
| 1816 | 0xA69B, 0x5B9D, |
||
| 1817 | 0xA57D, 0x5A82, |
||
| 1818 | 0xA462, 0x5964, |
||
| 1819 | 0xA34B, 0x5842, |
||
| 1820 | 0xA238, 0x571D, |
||
| 1821 | 0xA128, 0x55F5, |
||
| 1822 | 0xA01C, 0x54CA, |
||
| 1823 | 0x9F13, 0x539B, |
||
| 1824 | 0x9E0E, 0x5269, |
||
| 1825 | 0x9D0D, 0x5133, |
||
| 1826 | 0x9C10, 0x4FFB, |
||
| 1827 | 0x9B17, 0x4EBF, |
||
| 1828 | 0x9A22, 0x4D81, |
||
| 1829 | 0x9930, 0x4C3F, |
||
| 1830 | 0x9842, 0x4AFB, |
||
| 1831 | 0x9759, 0x49B4, |
||
| 1832 | 0x9673, 0x4869, |
||
| 1833 | 0x9592, 0x471C, |
||
| 1834 | 0x94B5, 0x45CD, |
||
| 1835 | 0x93DB, 0x447A, |
||
| 1836 | 0x9306, 0x4325, |
||
| 1837 | 0x9235, 0x41CE, |
||
| 1838 | 0x9169, 0x4073, |
||
| 1839 | 0x90A0, 0x3F17, |
||
| 1840 | 0x8FDC, 0x3DB8, |
||
| 1841 | 0x8F1D, 0x3C56, |
||
| 1842 | 0x8E61, 0x3AF2, |
||
| 1843 | 0x8DAA, 0x398C, |
||
| 1844 | 0x8CF8, 0x3824, |
||
| 1845 | 0x8C4A, 0x36BA, |
||
| 1846 | 0x8BA0, 0x354D, |
||
| 1847 | 0x8AFB, 0x33DE, |
||
| 1848 | 0x8A5A, 0x326E, |
||
| 1849 | 0x89BE, 0x30FB, |
||
| 1850 | 0x8926, 0x2F87, |
||
| 1851 | 0x8893, 0x2E11, |
||
| 1852 | 0x8805, 0x2C98, |
||
| 1853 | 0x877B, 0x2B1F, |
||
| 1854 | 0x86F6, 0x29A3, |
||
| 1855 | 0x8675, 0x2826, |
||
| 1856 | 0x85FA, 0x26A8, |
||
| 1857 | 0x8582, 0x2528, |
||
| 1858 | 0x8510, 0x23A6, |
||
| 1859 | 0x84A2, 0x2223, |
||
| 1860 | 0x843A, 0x209F, |
||
| 1861 | 0x83D6, 0x1F19, |
||
| 1862 | 0x8376, 0x1D93, |
||
| 1863 | 0x831C, 0x1C0B, |
||
| 1864 | 0x82C6, 0x1A82, |
||
| 1865 | 0x8275, 0x18F8, |
||
| 1866 | 0x8229, 0x176D, |
||
| 1867 | 0x81E2, 0x15E2, |
||
| 1868 | 0x81A0, 0x1455, |
||
| 1869 | 0x8162, 0x12C8, |
||
| 1870 | 0x812A, 0x1139, |
||
| 1871 | 0x80F6, 0x0FAB, |
||
| 1872 | 0x80C7, 0x0E1B, |
||
| 1873 | 0x809D, 0x0C8B, |
||
| 1874 | 0x8078, 0x0AFB, |
||
| 1875 | 0x8058, 0x096A, |
||
| 1876 | 0x803D, 0x07D9, |
||
| 1877 | 0x8027, 0x0647, |
||
| 1878 | 0x8016, 0x04B6, |
||
| 1879 | 0x8009, 0x0324, |
||
| 1880 | 0x8002, 0x0192, |
||
| 1881 | 0x8000, 0x0000, |
||
| 1882 | 0x8002, 0xFE6D, |
||
| 1883 | 0x8009, 0xFCDB, |
||
| 1884 | 0x8016, 0xFB49, |
||
| 1885 | 0x8027, 0xF9B8, |
||
| 1886 | 0x803D, 0xF826, |
||
| 1887 | 0x8058, 0xF695, |
||
| 1888 | 0x8078, 0xF504, |
||
| 1889 | 0x809D, 0xF374, |
||
| 1890 | 0x80C7, 0xF1E4, |
||
| 1891 | 0x80F6, 0xF054, |
||
| 1892 | 0x812A, 0xEEC6, |
||
| 1893 | 0x8162, 0xED37, |
||
| 1894 | 0x81A0, 0xEBAA, |
||
| 1895 | 0x81E2, 0xEA1D, |
||
| 1896 | 0x8229, 0xE892, |
||
| 1897 | 0x8275, 0xE707, |
||
| 1898 | 0x82C6, 0xE57D, |
||
| 1899 | 0x831C, 0xE3F4, |
||
| 1900 | 0x8376, 0xE26C, |
||
| 1901 | 0x83D6, 0xE0E6, |
||
| 1902 | 0x843A, 0xDF60, |
||
| 1903 | 0x84A2, 0xDDDC, |
||
| 1904 | 0x8510, 0xDC59, |
||
| 1905 | 0x8582, 0xDAD7, |
||
| 1906 | 0x85FA, 0xD957, |
||
| 1907 | 0x8675, 0xD7D9, |
||
| 1908 | 0x86F6, 0xD65C, |
||
| 1909 | 0x877B, 0xD4E0, |
||
| 1910 | 0x8805, 0xD367, |
||
| 1911 | 0x8893, 0xD1EE, |
||
| 1912 | 0x8926, 0xD078, |
||
| 1913 | 0x89BE, 0xCF04, |
||
| 1914 | 0x8A5A, 0xCD91, |
||
| 1915 | 0x8AFB, 0xCC21, |
||
| 1916 | 0x8BA0, 0xCAB2, |
||
| 1917 | 0x8C4A, 0xC945, |
||
| 1918 | 0x8CF8, 0xC7DB, |
||
| 1919 | 0x8DAA, 0xC673, |
||
| 1920 | 0x8E61, 0xC50D, |
||
| 1921 | 0x8F1D, 0xC3A9, |
||
| 1922 | 0x8FDC, 0xC247, |
||
| 1923 | 0x90A0, 0xC0E8, |
||
| 1924 | 0x9169, 0xBF8C, |
||
| 1925 | 0x9235, 0xBE31, |
||
| 1926 | 0x9306, 0xBCDA, |
||
| 1927 | 0x93DB, 0xBB85, |
||
| 1928 | 0x94B5, 0xBA32, |
||
| 1929 | 0x9592, 0xB8E3, |
||
| 1930 | 0x9673, 0xB796, |
||
| 1931 | 0x9759, 0xB64B, |
||
| 1932 | 0x9842, 0xB504, |
||
| 1933 | 0x9930, 0xB3C0, |
||
| 1934 | 0x9A22, 0xB27E, |
||
| 1935 | 0x9B17, 0xB140, |
||
| 1936 | 0x9C10, 0xB004, |
||
| 1937 | 0x9D0D, 0xAECC, |
||
| 1938 | 0x9E0E, 0xAD96, |
||
| 1939 | 0x9F13, 0xAC64, |
||
| 1940 | 0xA01C, 0xAB35, |
||
| 1941 | 0xA128, 0xAA0A, |
||
| 1942 | 0xA238, 0xA8E2, |
||
| 1943 | 0xA34B, 0xA7BD, |
||
| 1944 | 0xA462, 0xA69B, |
||
| 1945 | 0xA57D, 0xA57D, |
||
| 1946 | 0xA69B, 0xA462, |
||
| 1947 | 0xA7BD, 0xA34B, |
||
| 1948 | 0xA8E2, 0xA238, |
||
| 1949 | 0xAA0A, 0xA128, |
||
| 1950 | 0xAB35, 0xA01C, |
||
| 1951 | 0xAC64, 0x9F13, |
||
| 1952 | 0xAD96, 0x9E0E, |
||
| 1953 | 0xAECC, 0x9D0D, |
||
| 1954 | 0xB004, 0x9C10, |
||
| 1955 | 0xB140, 0x9B17, |
||
| 1956 | 0xB27E, 0x9A22, |
||
| 1957 | 0xB3C0, 0x9930, |
||
| 1958 | 0xB504, 0x9842, |
||
| 1959 | 0xB64B, 0x9759, |
||
| 1960 | 0xB796, 0x9673, |
||
| 1961 | 0xB8E3, 0x9592, |
||
| 1962 | 0xBA32, 0x94B5, |
||
| 1963 | 0xBB85, 0x93DB, |
||
| 1964 | 0xBCDA, 0x9306, |
||
| 1965 | 0xBE31, 0x9235, |
||
| 1966 | 0xBF8C, 0x9169, |
||
| 1967 | 0xC0E8, 0x90A0, |
||
| 1968 | 0xC247, 0x8FDC, |
||
| 1969 | 0xC3A9, 0x8F1D, |
||
| 1970 | 0xC50D, 0x8E61, |
||
| 1971 | 0xC673, 0x8DAA, |
||
| 1972 | 0xC7DB, 0x8CF8, |
||
| 1973 | 0xC945, 0x8C4A, |
||
| 1974 | 0xCAB2, 0x8BA0, |
||
| 1975 | 0xCC21, 0x8AFB, |
||
| 1976 | 0xCD91, 0x8A5A, |
||
| 1977 | 0xCF04, 0x89BE, |
||
| 1978 | 0xD078, 0x8926, |
||
| 1979 | 0xD1EE, 0x8893, |
||
| 1980 | 0xD367, 0x8805, |
||
| 1981 | 0xD4E0, 0x877B, |
||
| 1982 | 0xD65C, 0x86F6, |
||
| 1983 | 0xD7D9, 0x8675, |
||
| 1984 | 0xD957, 0x85FA, |
||
| 1985 | 0xDAD7, 0x8582, |
||
| 1986 | 0xDC59, 0x8510, |
||
| 1987 | 0xDDDC, 0x84A2, |
||
| 1988 | 0xDF60, 0x843A, |
||
| 1989 | 0xE0E6, 0x83D6, |
||
| 1990 | 0xE26C, 0x8376, |
||
| 1991 | 0xE3F4, 0x831C, |
||
| 1992 | 0xE57D, 0x82C6, |
||
| 1993 | 0xE707, 0x8275, |
||
| 1994 | 0xE892, 0x8229, |
||
| 1995 | 0xEA1D, 0x81E2, |
||
| 1996 | 0xEBAA, 0x81A0, |
||
| 1997 | 0xED37, 0x8162, |
||
| 1998 | 0xEEC6, 0x812A, |
||
| 1999 | 0xF054, 0x80F6, |
||
| 2000 | 0xF1E4, 0x80C7, |
||
| 2001 | 0xF374, 0x809D, |
||
| 2002 | 0xF504, 0x8078, |
||
| 2003 | 0xF695, 0x8058, |
||
| 2004 | 0xF826, 0x803D, |
||
| 2005 | 0xF9B8, 0x8027, |
||
| 2006 | 0xFB49, 0x8016, |
||
| 2007 | 0xFCDB, 0x8009, |
||
| 2008 | 0xFE6D, 0x8002 |
||
| 2009 | }; |
||
| 2010 | |||
| 2011 | /** |
||
| 2012 | * \par |
||
| 2013 | * Example code for q15 Twiddle factors Generation:: |
||
| 2014 | * \par |
||
| 2015 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 2016 | * { |
||
| 2017 | * twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N); |
||
| 2018 | * twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 2019 | * } </pre> |
||
| 2020 | * \par |
||
| 2021 | * where N = 1024 and PI = 3.14159265358979 |
||
| 2022 | * \par |
||
| 2023 | * Cos and Sin values are interleaved fashion |
||
| 2024 | * \par |
||
| 2025 | * Convert Floating point to q15(Fixed point 1.15): |
||
| 2026 | * round(twiddleCoefq15(i) * pow(2, 15)) |
||
| 2027 | * |
||
| 2028 | *//** |
||
| 2029 | * \par |
||
| 2030 | * Example code for q15 Twiddle factors Generation:: |
||
| 2031 | * \par |
||
| 2032 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 2033 | * { |
||
| 2034 | * twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N); |
||
| 2035 | * twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 2036 | * } </pre> |
||
| 2037 | * \par |
||
| 2038 | * where N = 2048 and PI = 3.14159265358979 |
||
| 2039 | * \par |
||
| 2040 | * Cos and Sin values are interleaved fashion |
||
| 2041 | * \par |
||
| 2042 | * Convert Floating point to q15(Fixed point 1.15): |
||
| 2043 | * round(twiddleCoefq15(i) * pow(2, 15)) |
||
| 2044 | * |
||
| 2045 | *//** |
||
| 2046 | * \par |
||
| 2047 | * Example code for q15 Twiddle factors Generation:: |
||
| 2048 | * \par |
||
| 2049 | * <pre>for(i = 0; i< 3N/4; i++) |
||
| 2050 | * { |
||
| 2051 | * twiddleCoefq15[2*i]= cos(i * 2*PI/(float)N); |
||
| 2052 | * twiddleCoefq15[2*i+1]= sin(i * 2*PI/(float)N); |
||
| 2053 | * } </pre> |
||
| 2054 | * \par |
||
| 2055 | * where N = 4096 and PI = 3.14159265358979 |
||
| 2056 | * \par |
||
| 2057 | * Cos and Sin values are interleaved fashion |
||
| 2058 | * \par |
||
| 2059 | * Convert Floating point to q15(Fixed point 1.15): |
||
| 2060 | * round(twiddleCoefq15(i) * pow(2, 15)) |
||
| 2061 | * |
||
| 2062 | *//** |
||
| 2063 | * @} end of CFFT_CIFFT group |
||
| 2064 | */ |
||
| 2065 | |||
| 2066 | /* |
||
| 2067 | * @brief Q15 table for reciprocal |
||
| 2068 | */ |
||
| 2069 | const q15_t ALIGN4 armRecipTableQ15[64] = { |
||
| 2070 | 0x7F03, 0x7D13, 0x7B31, 0x795E, 0x7798, 0x75E0, |
||
| 2071 | 0x7434, 0x7294, 0x70FF, 0x6F76, 0x6DF6, 0x6C82, |
||
| 2072 | 0x6B16, 0x69B5, 0x685C, 0x670C, 0x65C4, 0x6484, |
||
| 2073 | 0x634C, 0x621C, 0x60F3, 0x5FD0, 0x5EB5, 0x5DA0, |
||
| 2074 | 0x5C91, 0x5B88, 0x5A85, 0x5988, 0x5890, 0x579E, |
||
| 2075 | 0x56B0, 0x55C8, 0x54E4, 0x5405, 0x532B, 0x5255, |
||
| 2076 | 0x5183, 0x50B6, 0x4FEC, 0x4F26, 0x4E64, 0x4DA6, |
||
| 2077 | 0x4CEC, 0x4C34, 0x4B81, 0x4AD0, 0x4A23, 0x4978, |
||
| 2078 | 0x48D1, 0x482D, 0x478C, 0x46ED, 0x4651, 0x45B8, |
||
| 2079 | 0x4521, 0x448D, 0x43FC, 0x436C, 0x42DF, 0x4255, |
||
| 2080 | 0x41CC, 0x4146, 0x40C2, 0x4040 |
||
| 2081 | }; |
||
| 2082 | |||
| 2083 | /* |
||
| 2084 | * @brief Q31 table for reciprocal |
||
| 2085 | */ |
||
| 2086 | const q31_t armRecipTableQ31[64] = { |
||
| 2087 | 0x7F03F03F, 0x7D137420, 0x7B31E739, 0x795E9F94, 0x7798FD29, 0x75E06928, |
||
| 2088 | 0x7434554D, 0x72943B4B, 0x70FF9C40, 0x6F760031, 0x6DF6F593, 0x6C8210E3, |
||
| 2089 | 0x6B16EC3A, 0x69B526F6, 0x685C655F, 0x670C505D, 0x65C4952D, 0x6484E519, |
||
| 2090 | 0x634CF53E, 0x621C7E4F, 0x60F33C61, 0x5FD0EEB3, 0x5EB55785, 0x5DA03BEB, |
||
| 2091 | 0x5C9163A1, 0x5B8898E6, 0x5A85A85A, 0x598860DF, 0x58909373, 0x579E1318, |
||
| 2092 | 0x56B0B4B8, 0x55C84F0B, 0x54E4BA80, 0x5405D124, 0x532B6E8F, 0x52556FD0, |
||
| 2093 | 0x5183B35A, 0x50B618F3, 0x4FEC81A2, 0x4F26CFA2, 0x4E64E64E, 0x4DA6AA1D, |
||
| 2094 | 0x4CEC008B, 0x4C34D010, 0x4B810016, 0x4AD078EF, 0x4A2323C4, 0x4978EA96, |
||
| 2095 | 0x48D1B827, 0x482D77FE, 0x478C1657, 0x46ED801D, 0x4651A2E5, 0x45B86CE2, |
||
| 2096 | 0x4521CCE1, 0x448DB244, 0x43FC0CFA, 0x436CCD78, 0x42DFE4B4, 0x42554426, |
||
| 2097 | 0x41CCDDB6, 0x4146A3C6, 0x40C28923, 0x40408102 |
||
| 2098 | }; |
||
| 2099 | |||
| 2100 | const uint16_t armBitRevIndexTable16[ARMBITREVINDEXTABLE__16_TABLE_LENGTH] = |
||
| 2101 | { |
||
| 2102 | //8x2, size 20 |
||
| 2103 | 8,64, 24,72, 16,64, 40,80, 32,64, 56,88, 48,72, 88,104, 72,96, 104,112 |
||
| 2104 | }; |
||
| 2105 | |||
| 2106 | const uint16_t armBitRevIndexTable32[ARMBITREVINDEXTABLE__32_TABLE_LENGTH] = |
||
| 2107 | { |
||
| 2108 | //8x4, size 48 |
||
| 2109 | 8,64, 16,128, 24,192, 32,64, 40,72, 48,136, 56,200, 64,128, 72,80, 88,208, |
||
| 2110 | 80,144, 96,192, 104,208, 112,152, 120,216, 136,192, 144,160, 168,208, |
||
| 2111 | 152,224, 176,208, 184,232, 216,240, 200,224, 232,240 |
||
| 2112 | }; |
||
| 2113 | |||
| 2114 | const uint16_t armBitRevIndexTable64[ARMBITREVINDEXTABLE__64_TABLE_LENGTH] = |
||
| 2115 | { |
||
| 2116 | //radix 8, size 56 |
||
| 2117 | 8,64, 16,128, 24,192, 32,256, 40,320, 48,384, 56,448, 80,136, 88,200, |
||
| 2118 | 96,264, 104,328, 112,392, 120,456, 152,208, 160,272, 168,336, 176,400, |
||
| 2119 | 184,464, 224,280, 232,344, 240,408, 248,472, 296,352, 304,416, 312,480, |
||
| 2120 | 368,424, 376,488, 440,496 |
||
| 2121 | }; |
||
| 2122 | |||
| 2123 | const uint16_t armBitRevIndexTable128[ARMBITREVINDEXTABLE_128_TABLE_LENGTH] = |
||
| 2124 | { |
||
| 2125 | //8x2, size 208 |
||
| 2126 | 8,512, 16,64, 24,576, 32,128, 40,640, 48,192, 56,704, 64,256, 72,768, |
||
| 2127 | 80,320, 88,832, 96,384, 104,896, 112,448, 120,960, 128,512, 136,520, |
||
| 2128 | 144,768, 152,584, 160,520, 168,648, 176,200, 184,712, 192,264, 200,776, |
||
| 2129 | 208,328, 216,840, 224,392, 232,904, 240,456, 248,968, 264,528, 272,320, |
||
| 2130 | 280,592, 288,768, 296,656, 304,328, 312,720, 328,784, 344,848, 352,400, |
||
| 2131 | 360,912, 368,464, 376,976, 384,576, 392,536, 400,832, 408,600, 416,584, |
||
| 2132 | 424,664, 432,840, 440,728, 448,592, 456,792, 464,848, 472,856, 480,600, |
||
| 2133 | 488,920, 496,856, 504,984, 520,544, 528,576, 536,608, 552,672, 560,608, |
||
| 2134 | 568,736, 576,768, 584,800, 592,832, 600,864, 608,800, 616,928, 624,864, |
||
| 2135 | 632,992, 648,672, 656,896, 664,928, 688,904, 696,744, 704,896, 712,808, |
||
| 2136 | 720,912, 728,872, 736,928, 744,936, 752,920, 760,1000, 776,800, 784,832, |
||
| 2137 | 792,864, 808,904, 816,864, 824,920, 840,864, 856,880, 872,944, 888,1008, |
||
| 2138 | 904,928, 912,960, 920,992, 944,968, 952,1000, 968,992, 984,1008 |
||
| 2139 | }; |
||
| 2140 | |||
| 2141 | const uint16_t armBitRevIndexTable256[ARMBITREVINDEXTABLE_256_TABLE_LENGTH] = |
||
| 2142 | { |
||
| 2143 | //8x4, size 440 |
||
| 2144 | 8,512, 16,1024, 24,1536, 32,64, 40,576, 48,1088, 56,1600, 64,128, 72,640, |
||
| 2145 | 80,1152, 88,1664, 96,192, 104,704, 112,1216, 120,1728, 128,256, 136,768, |
||
| 2146 | 144,1280, 152,1792, 160,320, 168,832, 176,1344, 184,1856, 192,384, |
||
| 2147 | 200,896, 208,1408, 216,1920, 224,448, 232,960, 240,1472, 248,1984, |
||
| 2148 | 256,512, 264,520, 272,1032, 280,1544, 288,640, 296,584, 304,1096, 312,1608, |
||
| 2149 | 320,768, 328,648, 336,1160, 344,1672, 352,896, 360,712, 368,1224, 376,1736, |
||
| 2150 | 384,520, 392,776, 400,1288, 408,1800, 416,648, 424,840, 432,1352, 440,1864, |
||
| 2151 | 448,776, 456,904, 464,1416, 472,1928, 480,904, 488,968, 496,1480, 504,1992, |
||
| 2152 | 520,528, 512,1024, 528,1040, 536,1552, 544,1152, 552,592, 560,1104, |
||
| 2153 | 568,1616, 576,1280, 584,656, 592,1168, 600,1680, 608,1408, 616,720, |
||
| 2154 | 624,1232, 632,1744, 640,1032, 648,784, 656,1296, 664,1808, 672,1160, |
||
| 2155 | 680,848, 688,1360, 696,1872, 704,1288, 712,912, 720,1424, 728,1936, |
||
| 2156 | 736,1416, 744,976, 752,1488, 760,2000, 768,1536, 776,1552, 784,1048, |
||
| 2157 | 792,1560, 800,1664, 808,1680, 816,1112, 824,1624, 832,1792, 840,1808, |
||
| 2158 | 848,1176, 856,1688, 864,1920, 872,1936, 880,1240, 888,1752, 896,1544, |
||
| 2159 | 904,1560, 912,1304, 920,1816, 928,1672, 936,1688, 944,1368, 952,1880, |
||
| 2160 | 960,1800, 968,1816, 976,1432, 984,1944, 992,1928, 1000,1944, 1008,1496, |
||
| 2161 | 1016,2008, 1032,1152, 1040,1056, 1048,1568, 1064,1408, 1072,1120, |
||
| 2162 | 1080,1632, 1088,1536, 1096,1160, 1104,1184, 1112,1696, 1120,1552, |
||
| 2163 | 1128,1416, 1136,1248, 1144,1760, 1160,1664, 1168,1312, 1176,1824, |
||
| 2164 | 1184,1544, 1192,1920, 1200,1376, 1208,1888, 1216,1568, 1224,1672, |
||
| 2165 | 1232,1440, 1240,1952, 1248,1560, 1256,1928, 1264,1504, 1272,2016, |
||
| 2166 | 1288,1312, 1296,1408, 1304,1576, 1320,1424, 1328,1416, 1336,1640, |
||
| 2167 | 1344,1792, 1352,1824, 1360,1920, 1368,1704, 1376,1800, 1384,1432, |
||
| 2168 | 1392,1928, 1400,1768, 1416,1680, 1432,1832, 1440,1576, 1448,1936, |
||
| 2169 | 1456,1832, 1464,1896, 1472,1808, 1480,1688, 1488,1936, 1496,1960, |
||
| 2170 | 1504,1816, 1512,1944, 1520,1944, 1528,2024, 1560,1584, 1592,1648, |
||
| 2171 | 1600,1792, 1608,1920, 1616,1800, 1624,1712, 1632,1808, 1640,1936, |
||
| 2172 | 1648,1816, 1656,1776, 1672,1696, 1688,1840, 1704,1952, 1712,1928, |
||
| 2173 | 1720,1904, 1728,1824, 1736,1952, 1744,1832, 1752,1968, 1760,1840, |
||
| 2174 | 1768,1960, 1776,1944, 1784,2032, 1864,1872, 1848,1944, 1872,1888, |
||
| 2175 | 1880,1904, 1888,1984, 1896,2000, 1912,2032, 1904,2016, 1976,2032, |
||
| 2176 | 1960,1968, 2008,2032, 1992,2016, 2024,2032 |
||
| 2177 | }; |
||
| 2178 | |||
| 2179 | const uint16_t armBitRevIndexTable512[ARMBITREVINDEXTABLE_512_TABLE_LENGTH] = |
||
| 2180 | { |
||
| 2181 | //radix 8, size 448 |
||
| 2182 | 8,512, 16,1024, 24,1536, 32,2048, 40,2560, 48,3072, 56,3584, 72,576, |
||
| 2183 | 80,1088, 88,1600, 96,2112, 104,2624, 112,3136, 120,3648, 136,640, 144,1152, |
||
| 2184 | 152,1664, 160,2176, 168,2688, 176,3200, 184,3712, 200,704, 208,1216, |
||
| 2185 | 216,1728, 224,2240, 232,2752, 240,3264, 248,3776, 264,768, 272,1280, |
||
| 2186 | 280,1792, 288,2304, 296,2816, 304,3328, 312,3840, 328,832, 336,1344, |
||
| 2187 | 344,1856, 352,2368, 360,2880, 368,3392, 376,3904, 392,896, 400,1408, |
||
| 2188 | 408,1920, 416,2432, 424,2944, 432,3456, 440,3968, 456,960, 464,1472, |
||
| 2189 | 472,1984, 480,2496, 488,3008, 496,3520, 504,4032, 528,1032, 536,1544, |
||
| 2190 | 544,2056, 552,2568, 560,3080, 568,3592, 592,1096, 600,1608, 608,2120, |
||
| 2191 | 616,2632, 624,3144, 632,3656, 656,1160, 664,1672, 672,2184, 680,2696, |
||
| 2192 | 688,3208, 696,3720, 720,1224, 728,1736, 736,2248, 744,2760, 752,3272, |
||
| 2193 | 760,3784, 784,1288, 792,1800, 800,2312, 808,2824, 816,3336, 824,3848, |
||
| 2194 | 848,1352, 856,1864, 864,2376, 872,2888, 880,3400, 888,3912, 912,1416, |
||
| 2195 | 920,1928, 928,2440, 936,2952, 944,3464, 952,3976, 976,1480, 984,1992, |
||
| 2196 | 992,2504, 1000,3016, 1008,3528, 1016,4040, 1048,1552, 1056,2064, 1064,2576, |
||
| 2197 | 1072,3088, 1080,3600, 1112,1616, 1120,2128, 1128,2640, 1136,3152, |
||
| 2198 | 1144,3664, 1176,1680, 1184,2192, 1192,2704, 1200,3216, 1208,3728, |
||
| 2199 | 1240,1744, 1248,2256, 1256,2768, 1264,3280, 1272,3792, 1304,1808, |
||
| 2200 | 1312,2320, 1320,2832, 1328,3344, 1336,3856, 1368,1872, 1376,2384, |
||
| 2201 | 1384,2896, 1392,3408, 1400,3920, 1432,1936, 1440,2448, 1448,2960, |
||
| 2202 | 1456,3472, 1464,3984, 1496,2000, 1504,2512, 1512,3024, 1520,3536, |
||
| 2203 | 1528,4048, 1568,2072, 1576,2584, 1584,3096, 1592,3608, 1632,2136, |
||
| 2204 | 1640,2648, 1648,3160, 1656,3672, 1696,2200, 1704,2712, 1712,3224, |
||
| 2205 | 1720,3736, 1760,2264, 1768,2776, 1776,3288, 1784,3800, 1824,2328, |
||
| 2206 | 1832,2840, 1840,3352, 1848,3864, 1888,2392, 1896,2904, 1904,3416, |
||
| 2207 | 1912,3928, 1952,2456, 1960,2968, 1968,3480, 1976,3992, 2016,2520, |
||
| 2208 | 2024,3032, 2032,3544, 2040,4056, 2088,2592, 2096,3104, 2104,3616, |
||
| 2209 | 2152,2656, 2160,3168, 2168,3680, 2216,2720, 2224,3232, 2232,3744, |
||
| 2210 | 2280,2784, 2288,3296, 2296,3808, 2344,2848, 2352,3360, 2360,3872, |
||
| 2211 | 2408,2912, 2416,3424, 2424,3936, 2472,2976, 2480,3488, 2488,4000, |
||
| 2212 | 2536,3040, 2544,3552, 2552,4064, 2608,3112, 2616,3624, 2672,3176, |
||
| 2213 | 2680,3688, 2736,3240, 2744,3752, 2800,3304, 2808,3816, 2864,3368, |
||
| 2214 | 2872,3880, 2928,3432, 2936,3944, 2992,3496, 3000,4008, 3056,3560, |
||
| 2215 | 3064,4072, 3128,3632, 3192,3696, 3256,3760, 3320,3824, 3384,3888, |
||
| 2216 | 3448,3952, 3512,4016, 3576,4080 |
||
| 2217 | }; |
||
| 2218 | |||
| 2219 | const uint16_t armBitRevIndexTable1024[ARMBITREVINDEXTABLE1024_TABLE_LENGTH] = |
||
| 2220 | { |
||
| 2221 | //8x2, size 1800//8x2, size 3808//radix 8, size 4032//radix 4, size 12 |
||
| 2222 | 8,64, 16,32, 24,96, 40,80, 56,112, 88,104 |
||
| 2223 | }; |
||
| 2224 | |||
| 2225 | const uint16_t armBitRevIndexTable_fixed_32[ARMBITREVINDEXTABLE_FIXED___32_TABLE_LENGTH] = |
||
| 2226 | { |
||
| 2227 | //4x2, size 24 |
||
| 2228 | 8,128, 16,64, 24,192, 40,160, 48,96, 56,224, 72,144, |
||
| 2229 | 88,208, 104,176, 120,240, 152,200, 184,232 |
||
| 2230 | }; |
||
| 2231 | |||
| 2232 | const uint16_t armBitRevIndexTable_fixed_64[ARMBITREVINDEXTABLE_FIXED___64_TABLE_LENGTH] = |
||
| 2233 | { |
||
| 2234 | //radix 4, size 56 |
||
| 2235 | 8,256, 16,128, 24,384, 32,64, 40,320, 48,192, 56,448, 72,288, 80,160, 88,416, 104,352, |
||
| 2236 | 112,224, 120,480, 136,272, 152,400, 168,336, 176,208, 184,464, 200,304, 216,432, |
||
| 2237 | 232,368, 248,496, 280,392, 296,328, 312,456, 344,424, 376,488, 440,472 |
||
| 2238 | }; |
||
| 2239 | |||
| 2240 | const uint16_t armBitRevIndexTable_fixed_128[ARMBITREVINDEXTABLE_FIXED__128_TABLE_LENGTH] = |
||
| 2241 | { |
||
| 2242 | //4x2, size 112 |
||
| 2243 | 8,512, 16,256, 24,768, 32,128, 40,640, 48,384, 56,896, 72,576, 80,320, 88,832, 96,192, |
||
| 2244 | 104,704, 112,448, 120,960, 136,544, 144,288, 152,800, 168,672, 176,416, 184,928, 200,608, |
||
| 2245 | 208,352, 216,864, 232,736, 240,480, 248,992, 264,528, 280,784, 296,656, 304,400, 312,912, |
||
| 2246 | 328,592, 344,848, 360,720, 368,464, 376,976, 392,560, 408,816, 424,688, 440,944, 456,624, |
||
| 2247 | 472,880, 488,752, 504,1008, 536,776, 552,648, 568,904, 600,840, 616,712, 632,968, |
||
| 2248 | 664,808, 696,936, 728,872, 760,1000, 824,920, 888,984 |
||
| 2249 | }; |
||
| 2250 | |||
| 2251 | const uint16_t armBitRevIndexTable_fixed_256[ARMBITREVINDEXTABLE_FIXED__256_TABLE_LENGTH] = |
||
| 2252 | { |
||
| 2253 | //radix 4, size 240 |
||
| 2254 | 8,1024, 16,512, 24,1536, 32,256, 40,1280, 48,768, 56,1792, 64,128, 72,1152, 80,640, |
||
| 2255 | 88,1664, 96,384, 104,1408, 112,896, 120,1920, 136,1088, 144,576, 152,1600, 160,320, |
||
| 2256 | 168,1344, 176,832, 184,1856, 200,1216, 208,704, 216,1728, 224,448, 232,1472, 240,960, |
||
| 2257 | 248,1984, 264,1056, 272,544, 280,1568, 296,1312, 304,800, 312,1824, 328,1184, 336,672, |
||
| 2258 | 344,1696, 352,416, 360,1440, 368,928, 376,1952, 392,1120, 400,608, 408,1632, 424,1376, |
||
| 2259 | 432,864, 440,1888, 456,1248, 464,736, 472,1760, 488,1504, 496,992, 504,2016, 520,1040, |
||
| 2260 | 536,1552, 552,1296, 560,784, 568,1808, 584,1168, 592,656, 600,1680, 616,1424, 624,912, |
||
| 2261 | 632,1936, 648,1104, 664,1616, 680,1360, 688,848, 696,1872, 712,1232, 728,1744, 744,1488, |
||
| 2262 | 752,976, 760,2000, 776,1072, 792,1584, 808,1328, 824,1840, 840,1200, 856,1712, 872,1456, |
||
| 2263 | 880,944, 888,1968, 904,1136, 920,1648, 936,1392, 952,1904, 968,1264, 984,1776, 1000,1520, |
||
| 2264 | 1016,2032, 1048,1544, 1064,1288, 1080,1800, 1096,1160, 1112,1672, 1128,1416, 1144,1928, |
||
| 2265 | 1176,1608, 1192,1352, 1208,1864, 1240,1736, 1256,1480, 1272,1992, 1304,1576, 1336,1832, |
||
| 2266 | 1368,1704, 1384,1448, 1400,1960, 1432,1640, 1464,1896, 1496,1768, 1528,2024, 1592,1816, |
||
| 2267 | 1624,1688, 1656,1944, 1720,1880, 1784,2008, 1912,1976 |
||
| 2268 | }; |
||
| 2269 | |||
| 2270 | const uint16_t armBitRevIndexTable_fixed_512[ARMBITREVINDEXTABLE_FIXED__512_TABLE_LENGTH] = |
||
| 2271 | { |
||
| 2272 | //4x2, size 480 |
||
| 2273 | 8,2048, 16,1024, 24,3072, 32,512, 40,2560, 48,1536, 56,3584, 64,256, 72,2304, 80,1280, |
||
| 2274 | 88,3328, 96,768, 104,2816, 112,1792, 120,3840, 136,2176, 144,1152, 152,3200, 160,640, |
||
| 2275 | 168,2688, 176,1664, 184,3712, 192,384, 200,2432, 208,1408, 216,3456, 224,896, 232,2944, |
||
| 2276 | 240,1920, 248,3968, 264,2112, 272,1088, 280,3136, 288,576, 296,2624, 304,1600, 312,3648, |
||
| 2277 | 328,2368, 336,1344, 344,3392, 352,832, 360,2880, 368,1856, 376,3904, 392,2240, 400,1216, |
||
| 2278 | 408,3264, 416,704, 424,2752, 432,1728, 440,3776, 456,2496, 464,1472, 472,3520, 480,960, |
||
| 2279 | 488,3008, 496,1984, 504,4032, 520,2080, 528,1056, 536,3104, 552,2592, 560,1568, 568,3616, |
||
| 2280 | 584,2336, 592,1312, 600,3360, 608,800, 616,2848, 624,1824, 632,3872, 648,2208, 656,1184, |
||
| 2281 | 664,3232, 680,2720, 688,1696, 696,3744, 712,2464, 720,1440, 728,3488, 736,928, 744,2976, |
||
| 2282 | 752,1952, 760,4000, 776,2144, 784,1120, 792,3168, 808,2656, 816,1632, 824,3680, 840,2400, |
||
| 2283 | 848,1376, 856,3424, 872,2912, 880,1888, 888,3936, 904,2272, 912,1248, 920,3296, 936,2784, |
||
| 2284 | 944,1760, 952,3808, 968,2528, 976,1504, 984,3552, 1000,3040, 1008,2016, 1016,4064, |
||
| 2285 | 1032,2064, 1048,3088, 1064,2576, 1072,1552, 1080,3600, 1096,2320, 1104,1296, 1112,3344, |
||
| 2286 | 1128,2832, 1136,1808, 1144,3856, 1160,2192, 1176,3216, 1192,2704, 1200,1680, 1208,3728, |
||
| 2287 | 1224,2448, 1232,1424, 1240,3472, 1256,2960, 1264,1936, 1272,3984, 1288,2128, 1304,3152, |
||
| 2288 | 1320,2640, 1328,1616, 1336,3664, 1352,2384, 1368,3408, 1384,2896, 1392,1872, 1400,3920, |
||
| 2289 | 1416,2256, 1432,3280, 1448,2768, 1456,1744, 1464,3792, 1480,2512, 1496,3536, 1512,3024, |
||
| 2290 | 1520,2000, 1528,4048, 1544,2096, 1560,3120, 1576,2608, 1592,3632, 1608,2352, 1624,3376, |
||
| 2291 | 1640,2864, 1648,1840, 1656,3888, 1672,2224, 1688,3248, 1704,2736, 1720,3760, 1736,2480, |
||
| 2292 | 1752,3504, 1768,2992, 1776,1968, 1784,4016, 1800,2160, 1816,3184, 1832,2672, 1848,3696, |
||
| 2293 | 1864,2416, 1880,3440, 1896,2928, 1912,3952, 1928,2288, 1944,3312, 1960,2800, 1976,3824, |
||
| 2294 | 1992,2544, 2008,3568, 2024,3056, 2040,4080, 2072,3080, 2088,2568, 2104,3592, 2120,2312, |
||
| 2295 | 2136,3336, 2152,2824, 2168,3848, 2200,3208, 2216,2696, 2232,3720, 2248,2440, 2264,3464, |
||
| 2296 | 2280,2952, 2296,3976, 2328,3144, 2344,2632, 2360,3656, 2392,3400, 2408,2888, 2424,3912, |
||
| 2297 | 2456,3272, 2472,2760, 2488,3784, 2520,3528, 2536,3016, 2552,4040, 2584,3112, 2616,3624, |
||
| 2298 | 2648,3368, 2664,2856, 2680,3880, 2712,3240, 2744,3752, 2776,3496, 2792,2984, 2808,4008, |
||
| 2299 | 2840,3176, 2872,3688, 2904,3432, 2936,3944, 2968,3304, 3000,3816, 3032,3560, 3064,4072, |
||
| 2300 | 3128,3608, 3160,3352, 3192,3864, 3256,3736, 3288,3480, 3320,3992, 3384,3672, 3448,3928, |
||
| 2301 | 3512,3800, 3576,4056, 3704,3896, 3832,4024 |
||
| 2302 | }; |
||
| 2303 | |||
| 2304 | const uint16_t armBitRevIndexTable_fixed_1024[ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH] = |
||
| 2305 | { |
||
| 2306 | //radix 4, size 992 |
||
| 2307 | 8,4096, 16,2048, 24,6144, 32,1024, 40,5120, 48,3072, 56,7168, 64,512, 72,4608, |
||
| 2308 | 80,2560, 88,6656, 96,1536, 104,5632, 112,3584, 120,7680, 128,256, 136,4352, |
||
| 2309 | 144,2304, 152,6400, 160,1280, 168,5376, 176,3328, 184,7424, 192,768, 200,4864, |
||
| 2310 | 208,2816, 216,6912, 224,1792, 232,5888, 240,3840, 248,7936, 264,4224, 272,2176, |
||
| 2311 | 280,6272, 288,1152, 296,5248, 304,3200, 312,7296, 320,640, 328,4736, 336,2688, |
||
| 2312 | 344,6784, 352,1664, 360,5760, 368,3712, 376,7808, 392,4480, 400,2432, 408,6528, |
||
| 2313 | 416,1408, 424,5504, 432,3456, 440,7552, 448,896, 456,4992, 464,2944, 472,7040, |
||
| 2314 | 480,1920, 488,6016, 496,3968, 504,8064, 520,4160, 528,2112, 536,6208, 544,1088, |
||
| 2315 | 552,5184, 560,3136, 568,7232, 584,4672, 592,2624, 600,6720, 608,1600, 616,5696, |
||
| 2316 | 624,3648, 632,7744, 648,4416, 656,2368, 664,6464, 672,1344, 680,5440, 688,3392, |
||
| 2317 | 696,7488, 704,832, 712,4928, 720,2880, 728,6976, 736,1856, 744,5952, 752,3904, |
||
| 2318 | 760,8000, 776,4288, 784,2240, 792,6336, 800,1216, 808,5312, 816,3264, 824,7360, |
||
| 2319 | 840,4800, 848,2752, 856,6848, 864,1728, 872,5824, 880,3776, 888,7872, 904,4544, |
||
| 2320 | 912,2496, 920,6592, 928,1472, 936,5568, 944,3520, 952,7616, 968,5056, 976,3008, |
||
| 2321 | 984,7104, 992,1984, 1000,6080, 1008,4032, 1016,8128, 1032,4128, 1040,2080, |
||
| 2322 | 1048,6176, 1064,5152, 1072,3104, 1080,7200, 1096,4640, 1104,2592, 1112,6688, |
||
| 2323 | 1120,1568, 1128,5664, 1136,3616, 1144,7712, 1160,4384, 1168,2336, 1176,6432, |
||
| 2324 | 1184,1312, 1192,5408, 1200,3360, 1208,7456, 1224,4896, 1232,2848, 1240,6944, |
||
| 2325 | 1248,1824, 1256,5920, 1264,3872, 1272,7968, 1288,4256, 1296,2208, 1304,6304, |
||
| 2326 | 1320,5280, 1328,3232, 1336,7328, 1352,4768, 1360,2720, 1368,6816, 1376,1696, |
||
| 2327 | 1384,5792, 1392,3744, 1400,7840, 1416,4512, 1424,2464, 1432,6560, 1448,5536, |
||
| 2328 | 1456,3488, 1464,7584, 1480,5024, 1488,2976, 1496,7072, 1504,1952, 1512,6048, |
||
| 2329 | 1520,4000, 1528,8096, 1544,4192, 1552,2144, 1560,6240, 1576,5216, 1584,3168, |
||
| 2330 | 1592,7264, 1608,4704, 1616,2656, 1624,6752, 1640,5728, 1648,3680, 1656,7776, |
||
| 2331 | 1672,4448, 1680,2400, 1688,6496, 1704,5472, 1712,3424, 1720,7520, 1736,4960, |
||
| 2332 | 1744,2912, 1752,7008, 1760,1888, 1768,5984, 1776,3936, 1784,8032, 1800,4320, |
||
| 2333 | 1808,2272, 1816,6368, 1832,5344, 1840,3296, 1848,7392, 1864,4832, 1872,2784, |
||
| 2334 | 1880,6880, 1896,5856, 1904,3808, 1912,7904, 1928,4576, 1936,2528, 1944,6624, |
||
| 2335 | 1960,5600, 1968,3552, 1976,7648, 1992,5088, 2000,3040, 2008,7136, 2024,6112, |
||
| 2336 | 2032,4064, 2040,8160, 2056,4112, 2072,6160, 2088,5136, 2096,3088, 2104,7184, |
||
| 2337 | 2120,4624, 2128,2576, 2136,6672, 2152,5648, 2160,3600, 2168,7696, 2184,4368, |
||
| 2338 | 2192,2320, 2200,6416, 2216,5392, 2224,3344, 2232,7440, 2248,4880, 2256,2832, |
||
| 2339 | 2264,6928, 2280,5904, 2288,3856, 2296,7952, 2312,4240, 2328,6288, 2344,5264, |
||
| 2340 | 2352,3216, 2360,7312, 2376,4752, 2384,2704, 2392,6800, 2408,5776, 2416,3728, |
||
| 2341 | 2424,7824, 2440,4496, 2456,6544, 2472,5520, 2480,3472, 2488,7568, 2504,5008, |
||
| 2342 | 2512,2960, 2520,7056, 2536,6032, 2544,3984, 2552,8080, 2568,4176, 2584,6224, |
||
| 2343 | 2600,5200, 2608,3152, 2616,7248, 2632,4688, 2648,6736, 2664,5712, 2672,3664, |
||
| 2344 | 2680,7760, 2696,4432, 2712,6480, 2728,5456, 2736,3408, 2744,7504, 2760,4944, |
||
| 2345 | 2768,2896, 2776,6992, 2792,5968, 2800,3920, 2808,8016, 2824,4304, 2840,6352, |
||
| 2346 | 2856,5328, 2864,3280, 2872,7376, 2888,4816, 2904,6864, 2920,5840, 2928,3792, |
||
| 2347 | 2936,7888, 2952,4560, 2968,6608, 2984,5584, 2992,3536, 3000,7632, 3016,5072, |
||
| 2348 | |||
| 2349 | 3128,7216, 3144,4656, 3160,6704, 3176,5680, 3184,3632, 3192,7728, 3208,4400, |
||
| 2350 | 3224,6448, 3240,5424, 3248,3376, 3256,7472, 3272,4912, 3288,6960, 3304,5936, |
||
| 2351 | 3312,3888, 3320,7984, 3336,4272, 3352,6320, 3368,5296, 3384,7344, 3400,4784, |
||
| 2352 | 3416,6832, 3432,5808, 3440,3760, 3448,7856, 3464,4528, 3480,6576, 3496,5552, |
||
| 2353 | 3512,7600, 3528,5040, 3544,7088, 3560,6064, 3568,4016, 3576,8112, 3592,4208, |
||
| 2354 | 3608,6256, 3624,5232, 3640,7280, 3656,4720, 3672,6768, 3688,5744, 3704,7792, |
||
| 2355 | 3720,4464, 3736,6512, 3752,5488, 3768,7536, 3784,4976, 3800,7024, 3816,6000, |
||
| 2356 | 3824,3952, 3832,8048, 3848,4336, 3864,6384, 3880,5360, 3896,7408, 3912,4848, |
||
| 2357 | 3928,6896, 3944,5872, 3960,7920, 3976,4592, 3992,6640, 4008,5616, 4024,7664, |
||
| 2358 | 4040,5104, 4056,7152, 4072,6128, 4088,8176, 4120,6152, 4136,5128, 4152,7176, |
||
| 2359 | 4168,4616, 4184,6664, 4200,5640, 4216,7688, 4232,4360, 4248,6408, 4264,5384, |
||
| 2360 | 4280,7432, 4296,4872, 4312,6920, 4328,5896, 4344,7944, 4376,6280, 4392,5256, |
||
| 2361 | 4408,7304, 4424,4744, 4440,6792, 4456,5768, 4472,7816, 4504,6536, 4520,5512, |
||
| 2362 | 4536,7560, 4552,5000, 4568,7048, 4584,6024, 4600,8072, 4632,6216, 4648,5192, |
||
| 2363 | 4664,7240, 4696,6728, 4712,5704, 4728,7752, 4760,6472, 4776,5448, 4792,7496, |
||
| 2364 | 4808,4936, 4824,6984, 4840,5960, 4856,8008, 4888,6344, 4904,5320, 4920,7368, |
||
| 2365 | 4952,6856, 4968,5832, 4984,7880, 5016,6600, 5032,5576, 5048,7624, 5080,7112, |
||
| 2366 | 5096,6088, 5112,8136, 5144,6184, 5176,7208, 5208,6696, 5224,5672, 5240,7720, |
||
| 2367 | 5272,6440, 5288,5416, 5304,7464, 5336,6952, 5352,5928, 5368,7976, 5400,6312, |
||
| 2368 | 5432,7336, 5464,6824, 5480,5800, 5496,7848, 5528,6568, 5560,7592, 5592,7080, |
||
| 2369 | 5608,6056, 5624,8104, 5656,6248, 5688,7272, 5720,6760, 5752,7784, 5784,6504, |
||
| 2370 | 5816,7528, 5848,7016, 5864,5992, 5880,8040, 5912,6376, 5944,7400, 5976,6888, |
||
| 2371 | 6008,7912, 6040,6632, 6072,7656, 6104,7144, 6136,8168, 6200,7192, 6232,6680, |
||
| 2372 | 6264,7704, 6296,6424, 6328,7448, 6360,6936, 6392,7960, 6456,7320, 6488,6808, |
||
| 2373 | 6520,7832, 6584,7576, 6616,7064, 6648,8088, 6712,7256, 6776,7768, 6840,7512, |
||
| 2374 | 6872,7000, 6904,8024, 6968,7384, 7032,7896, 7096,7640, 7160,8152, 7288,7736, |
||
| 2375 | 7352,7480, 7416,7992, 7544,7864, 7672,8120, 7928,8056 |
||
| 2376 | }; |
||
| 2377 | |||
| 2378 | const uint16_t armBitRevIndexTable_fixed_2048[ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH] = |
||
| 2379 | { |
||
| 2380 | //4x2, size 1984//radix 4, size 4032/** |
||
| 2381 | * \par |
||
| 2382 | * Example code for Floating-point RFFT Twiddle factors Generation: |
||
| 2383 | * \par |
||
| 2384 | * <pre>TW = exp(2*pi*i*[0:L/2-1]/L - pi/2*i).' </pre> |
||
| 2385 | * \par |
||
| 2386 | * Real and Imag values are in interleaved fashion |
||
| 2387 | *//** |
||
| 2388 | * \par |
||
| 2389 | * Example code for the generation of the floating-point sine table: |
||
| 2390 | * <pre> |
||
| 2391 | * tableSize = 512; |
||
| 2392 | * for(n = 0; n < (tableSize + 1); n++) |
||
| 2393 | * { |
||
| 2394 | * sinTable[n]=sin(2*pi*n/tableSize); |
||
| 2395 | * }</pre> |
||
| 2396 | * \par |
||
| 2397 | * where pi value is 3.14159265358979 |
||
| 2398 | */ |
||
| 2399 | |||
| 2400 | const float32_t sinTable_f32[FAST_MATH_TABLE_SIZE + 1] = { |
||
| 2401 | 0.00000000f, 0.01227154f, 0.02454123f, 0.03680722f, 0.04906767f, 0.06132074f, |
||
| 2402 | 0.07356456f, 0.08579731f, 0.09801714f, 0.11022221f, 0.12241068f, 0.13458071f, |
||
| 2403 | 0.14673047f, 0.15885814f, 0.17096189f, 0.18303989f, 0.19509032f, 0.20711138f, |
||
| 2404 | 0.21910124f, 0.23105811f, 0.24298018f, 0.25486566f, 0.26671276f, 0.27851969f, |
||
| 2405 | 0.29028468f, 0.30200595f, 0.31368174f, 0.32531029f, 0.33688985f, 0.34841868f, |
||
| 2406 | 0.35989504f, 0.37131719f, 0.38268343f, 0.39399204f, 0.40524131f, 0.41642956f, |
||
| 2407 | 0.42755509f, 0.43861624f, 0.44961133f, 0.46053871f, 0.47139674f, 0.48218377f, |
||
| 2408 | 0.49289819f, 0.50353838f, 0.51410274f, 0.52458968f, 0.53499762f, 0.54532499f, |
||
| 2409 | 0.55557023f, 0.56573181f, 0.57580819f, 0.58579786f, 0.59569930f, 0.60551104f, |
||
| 2410 | 0.61523159f, 0.62485949f, 0.63439328f, 0.64383154f, 0.65317284f, 0.66241578f, |
||
| 2411 | 0.67155895f, 0.68060100f, 0.68954054f, 0.69837625f, 0.70710678f, 0.71573083f, |
||
| 2412 | 0.72424708f, 0.73265427f, 0.74095113f, 0.74913639f, 0.75720885f, 0.76516727f, |
||
| 2413 | 0.77301045f, 0.78073723f, 0.78834643f, 0.79583690f, 0.80320753f, 0.81045720f, |
||
| 2414 | 0.81758481f, 0.82458930f, 0.83146961f, 0.83822471f, 0.84485357f, 0.85135519f, |
||
| 2415 | 0.85772861f, 0.86397286f, 0.87008699f, 0.87607009f, 0.88192126f, 0.88763962f, |
||
| 2416 | 0.89322430f, 0.89867447f, 0.90398929f, 0.90916798f, 0.91420976f, 0.91911385f, |
||
| 2417 | 0.92387953f, 0.92850608f, 0.93299280f, 0.93733901f, 0.94154407f, 0.94560733f, |
||
| 2418 | 0.94952818f, 0.95330604f, 0.95694034f, 0.96043052f, 0.96377607f, 0.96697647f, |
||
| 2419 | 0.97003125f, 0.97293995f, 0.97570213f, 0.97831737f, 0.98078528f, 0.98310549f, |
||
| 2420 | 0.98527764f, 0.98730142f, 0.98917651f, 0.99090264f, 0.99247953f, 0.99390697f, |
||
| 2421 | 0.99518473f, 0.99631261f, 0.99729046f, 0.99811811f, 0.99879546f, 0.99932238f, |
||
| 2422 | 0.99969882f, 0.99992470f, 1.00000000f, 0.99992470f, 0.99969882f, 0.99932238f, |
||
| 2423 | 0.99879546f, 0.99811811f, 0.99729046f, 0.99631261f, 0.99518473f, 0.99390697f, |
||
| 2424 | 0.99247953f, 0.99090264f, 0.98917651f, 0.98730142f, 0.98527764f, 0.98310549f, |
||
| 2425 | 0.98078528f, 0.97831737f, 0.97570213f, 0.97293995f, 0.97003125f, 0.96697647f, |
||
| 2426 | 0.96377607f, 0.96043052f, 0.95694034f, 0.95330604f, 0.94952818f, 0.94560733f, |
||
| 2427 | 0.94154407f, 0.93733901f, 0.93299280f, 0.92850608f, 0.92387953f, 0.91911385f, |
||
| 2428 | 0.91420976f, 0.90916798f, 0.90398929f, 0.89867447f, 0.89322430f, 0.88763962f, |
||
| 2429 | 0.88192126f, 0.87607009f, 0.87008699f, 0.86397286f, 0.85772861f, 0.85135519f, |
||
| 2430 | 0.84485357f, 0.83822471f, 0.83146961f, 0.82458930f, 0.81758481f, 0.81045720f, |
||
| 2431 | 0.80320753f, 0.79583690f, 0.78834643f, 0.78073723f, 0.77301045f, 0.76516727f, |
||
| 2432 | 0.75720885f, 0.74913639f, 0.74095113f, 0.73265427f, 0.72424708f, 0.71573083f, |
||
| 2433 | 0.70710678f, 0.69837625f, 0.68954054f, 0.68060100f, 0.67155895f, 0.66241578f, |
||
| 2434 | 0.65317284f, 0.64383154f, 0.63439328f, 0.62485949f, 0.61523159f, 0.60551104f, |
||
| 2435 | 0.59569930f, 0.58579786f, 0.57580819f, 0.56573181f, 0.55557023f, 0.54532499f, |
||
| 2436 | 0.53499762f, 0.52458968f, 0.51410274f, 0.50353838f, 0.49289819f, 0.48218377f, |
||
| 2437 | 0.47139674f, 0.46053871f, 0.44961133f, 0.43861624f, 0.42755509f, 0.41642956f, |
||
| 2438 | 0.40524131f, 0.39399204f, 0.38268343f, 0.37131719f, 0.35989504f, 0.34841868f, |
||
| 2439 | 0.33688985f, 0.32531029f, 0.31368174f, 0.30200595f, 0.29028468f, 0.27851969f, |
||
| 2440 | 0.26671276f, 0.25486566f, 0.24298018f, 0.23105811f, 0.21910124f, 0.20711138f, |
||
| 2441 | 0.19509032f, 0.18303989f, 0.17096189f, 0.15885814f, 0.14673047f, 0.13458071f, |
||
| 2442 | 0.12241068f, 0.11022221f, 0.09801714f, 0.08579731f, 0.07356456f, 0.06132074f, |
||
| 2443 | 0.04906767f, 0.03680722f, 0.02454123f, 0.01227154f, 0.00000000f, -0.01227154f, |
||
| 2444 | -0.02454123f, -0.03680722f, -0.04906767f, -0.06132074f, -0.07356456f, |
||
| 2445 | -0.08579731f, -0.09801714f, -0.11022221f, -0.12241068f, -0.13458071f, |
||
| 2446 | -0.14673047f, -0.15885814f, -0.17096189f, -0.18303989f, -0.19509032f, |
||
| 2447 | -0.20711138f, -0.21910124f, -0.23105811f, -0.24298018f, -0.25486566f, |
||
| 2448 | -0.26671276f, -0.27851969f, -0.29028468f, -0.30200595f, -0.31368174f, |
||
| 2449 | -0.32531029f, -0.33688985f, -0.34841868f, -0.35989504f, -0.37131719f, |
||
| 2450 | -0.38268343f, -0.39399204f, -0.40524131f, -0.41642956f, -0.42755509f, |
||
| 2451 | -0.43861624f, -0.44961133f, -0.46053871f, -0.47139674f, -0.48218377f, |
||
| 2452 | -0.49289819f, -0.50353838f, -0.51410274f, -0.52458968f, -0.53499762f, |
||
| 2453 | -0.54532499f, -0.55557023f, -0.56573181f, -0.57580819f, -0.58579786f, |
||
| 2454 | -0.59569930f, -0.60551104f, -0.61523159f, -0.62485949f, -0.63439328f, |
||
| 2455 | -0.64383154f, -0.65317284f, -0.66241578f, -0.67155895f, -0.68060100f, |
||
| 2456 | -0.68954054f, -0.69837625f, -0.70710678f, -0.71573083f, -0.72424708f, |
||
| 2457 | -0.73265427f, -0.74095113f, -0.74913639f, -0.75720885f, -0.76516727f, |
||
| 2458 | -0.77301045f, -0.78073723f, -0.78834643f, -0.79583690f, -0.80320753f, |
||
| 2459 | -0.81045720f, -0.81758481f, -0.82458930f, -0.83146961f, -0.83822471f, |
||
| 2460 | -0.84485357f, -0.85135519f, -0.85772861f, -0.86397286f, -0.87008699f, |
||
| 2461 | -0.87607009f, -0.88192126f, -0.88763962f, -0.89322430f, -0.89867447f, |
||
| 2462 | -0.90398929f, -0.90916798f, -0.91420976f, -0.91911385f, -0.92387953f, |
||
| 2463 | -0.92850608f, -0.93299280f, -0.93733901f, -0.94154407f, -0.94560733f, |
||
| 2464 | -0.94952818f, -0.95330604f, -0.95694034f, -0.96043052f, -0.96377607f, |
||
| 2465 | -0.96697647f, -0.97003125f, -0.97293995f, -0.97570213f, -0.97831737f, |
||
| 2466 | -0.98078528f, -0.98310549f, -0.98527764f, -0.98730142f, -0.98917651f, |
||
| 2467 | -0.99090264f, -0.99247953f, -0.99390697f, -0.99518473f, -0.99631261f, |
||
| 2468 | -0.99729046f, -0.99811811f, -0.99879546f, -0.99932238f, -0.99969882f, |
||
| 2469 | -0.99992470f, -1.00000000f, -0.99992470f, -0.99969882f, -0.99932238f, |
||
| 2470 | -0.99879546f, -0.99811811f, -0.99729046f, -0.99631261f, -0.99518473f, |
||
| 2471 | -0.99390697f, -0.99247953f, -0.99090264f, -0.98917651f, -0.98730142f, |
||
| 2472 | -0.98527764f, -0.98310549f, -0.98078528f, -0.97831737f, -0.97570213f, |
||
| 2473 | -0.97293995f, -0.97003125f, -0.96697647f, -0.96377607f, -0.96043052f, |
||
| 2474 | -0.95694034f, -0.95330604f, -0.94952818f, -0.94560733f, -0.94154407f, |
||
| 2475 | -0.93733901f, -0.93299280f, -0.92850608f, -0.92387953f, -0.91911385f, |
||
| 2476 | -0.91420976f, -0.90916798f, -0.90398929f, -0.89867447f, -0.89322430f, |
||
| 2477 | -0.88763962f, -0.88192126f, -0.87607009f, -0.87008699f, -0.86397286f, |
||
| 2478 | -0.85772861f, -0.85135519f, -0.84485357f, -0.83822471f, -0.83146961f, |
||
| 2479 | -0.82458930f, -0.81758481f, -0.81045720f, -0.80320753f, -0.79583690f, |
||
| 2480 | -0.78834643f, -0.78073723f, -0.77301045f, -0.76516727f, -0.75720885f, |
||
| 2481 | -0.74913639f, -0.74095113f, -0.73265427f, -0.72424708f, -0.71573083f, |
||
| 2482 | -0.70710678f, -0.69837625f, -0.68954054f, -0.68060100f, -0.67155895f, |
||
| 2483 | -0.66241578f, -0.65317284f, -0.64383154f, -0.63439328f, -0.62485949f, |
||
| 2484 | -0.61523159f, -0.60551104f, -0.59569930f, -0.58579786f, -0.57580819f, |
||
| 2485 | -0.56573181f, -0.55557023f, -0.54532499f, -0.53499762f, -0.52458968f, |
||
| 2486 | -0.51410274f, -0.50353838f, -0.49289819f, -0.48218377f, -0.47139674f, |
||
| 2487 | -0.46053871f, -0.44961133f, -0.43861624f, -0.42755509f, -0.41642956f, |
||
| 2488 | -0.40524131f, -0.39399204f, -0.38268343f, -0.37131719f, -0.35989504f, |
||
| 2489 | -0.34841868f, -0.33688985f, -0.32531029f, -0.31368174f, -0.30200595f, |
||
| 2490 | -0.29028468f, -0.27851969f, -0.26671276f, -0.25486566f, -0.24298018f, |
||
| 2491 | -0.23105811f, -0.21910124f, -0.20711138f, -0.19509032f, -0.18303989f, |
||
| 2492 | -0.17096189f, -0.15885814f, -0.14673047f, -0.13458071f, -0.12241068f, |
||
| 2493 | -0.11022221f, -0.09801714f, -0.08579731f, -0.07356456f, -0.06132074f, |
||
| 2494 | -0.04906767f, -0.03680722f, -0.02454123f, -0.01227154f, -0.00000000f |
||
| 2495 | }; |
||
| 2496 | |||
| 2497 | /** |
||
| 2498 | * \par |
||
| 2499 | * Table values are in Q31 (1.31 fixed-point format) and generation is done in |
||
| 2500 | * three steps. First, generate sin values in floating point: |
||
| 2501 | * <pre> |
||
| 2502 | * tableSize = 512; |
||
| 2503 | * for(n = 0; n < (tableSize + 1); n++) |
||
| 2504 | * { |
||
| 2505 | * sinTable[n]= sin(2*pi*n/tableSize); |
||
| 2506 | * } </pre> |
||
| 2507 | * where pi value is 3.14159265358979 |
||
| 2508 | * \par |
||
| 2509 | * Second, convert floating-point to Q31 (Fixed point): |
||
| 2510 | * (sinTable[i] * pow(2, 31)) |
||
| 2511 | * \par |
||
| 2512 | * Finally, round to the nearest integer value: |
||
| 2513 | * sinTable[i] += (sinTable[i] > 0 ? 0.5 :-0.5); |
||
| 2514 | */ |
||
| 2515 | const q31_t sinTable_q31[FAST_MATH_TABLE_SIZE + 1] = { |
||
| 2516 | 0x00000000, 0x01921D20, 0x03242ABF, 0x04B6195D, 0x0647D97C, 0x07D95B9E, |
||
| 2517 | 0x096A9049, 0x0AFB6805, 0x0C8BD35E, 0x0E1BC2E4, 0x0FAB272B, 0x1139F0CF, |
||
| 2518 | 0x12C8106F, 0x145576B1, 0x15E21445, 0x176DD9DE, 0x18F8B83C, 0x1A82A026, |
||
| 2519 | 0x1C0B826A, 0x1D934FE5, 0x1F19F97B, 0x209F701C, 0x2223A4C5, 0x23A6887F, |
||
| 2520 | 0x25280C5E, 0x26A82186, 0x2826B928, 0x29A3C485, 0x2B1F34EB, 0x2C98FBBA, |
||
| 2521 | 0x2E110A62, 0x2F875262, 0x30FBC54D, 0x326E54C7, 0x33DEF287, 0x354D9057, |
||
| 2522 | 0x36BA2014, 0x382493B0, 0x398CDD32, 0x3AF2EEB7, 0x3C56BA70, 0x3DB832A6, |
||
| 2523 | 0x3F1749B8, 0x4073F21D, 0x41CE1E65, 0x4325C135, 0x447ACD50, 0x45CD358F, |
||
| 2524 | 0x471CECE7, 0x4869E665, 0x49B41533, 0x4AFB6C98, 0x4C3FDFF4, 0x4D8162C4, |
||
| 2525 | 0x4EBFE8A5, 0x4FFB654D, 0x5133CC94, 0x5269126E, 0x539B2AF0, 0x54CA0A4B, |
||
| 2526 | 0x55F5A4D2, 0x571DEEFA, 0x5842DD54, 0x59646498, 0x5A82799A, 0x5B9D1154, |
||
| 2527 | 0x5CB420E0, 0x5DC79D7C, 0x5ED77C8A, 0x5FE3B38D, 0x60EC3830, 0x61F1003F, |
||
| 2528 | 0x62F201AC, 0x63EF3290, 0x64E88926, 0x65DDFBD3, 0x66CF8120, 0x67BD0FBD, |
||
| 2529 | 0x68A69E81, 0x698C246C, 0x6A6D98A4, 0x6B4AF279, 0x6C242960, 0x6CF934FC, |
||
| 2530 | 0x6DCA0D14, 0x6E96A99D, 0x6F5F02B2, 0x7023109A, 0x70E2CBC6, 0x719E2CD2, |
||
| 2531 | 0x72552C85, 0x7307C3D0, 0x73B5EBD1, 0x745F9DD1, 0x7504D345, 0x75A585CF, |
||
| 2532 | 0x7641AF3D, 0x76D94989, 0x776C4EDB, 0x77FAB989, 0x78848414, 0x7909A92D, |
||
| 2533 | 0x798A23B1, 0x7A05EEAD, 0x7A7D055B, 0x7AEF6323, 0x7B5D039E, 0x7BC5E290, |
||
| 2534 | 0x7C29FBEE, 0x7C894BDE, 0x7CE3CEB2, 0x7D3980EC, 0x7D8A5F40, 0x7DD6668F, |
||
| 2535 | 0x7E1D93EA, 0x7E5FE493, 0x7E9D55FC, 0x7ED5E5C6, 0x7F0991C4, 0x7F3857F6, |
||
| 2536 | 0x7F62368F, 0x7F872BF3, 0x7FA736B4, 0x7FC25596, 0x7FD8878E, 0x7FE9CBC0, |
||
| 2537 | 0x7FF62182, 0x7FFD885A, 0x7FFFFFFF, 0x7FFD885A, 0x7FF62182, 0x7FE9CBC0, |
||
| 2538 | 0x7FD8878E, 0x7FC25596, 0x7FA736B4, 0x7F872BF3, 0x7F62368F, 0x7F3857F6, |
||
| 2539 | 0x7F0991C4, 0x7ED5E5C6, 0x7E9D55FC, 0x7E5FE493, 0x7E1D93EA, 0x7DD6668F, |
||
| 2540 | 0x7D8A5F40, 0x7D3980EC, 0x7CE3CEB2, 0x7C894BDE, 0x7C29FBEE, 0x7BC5E290, |
||
| 2541 | 0x7B5D039E, 0x7AEF6323, 0x7A7D055B, 0x7A05EEAD, 0x798A23B1, 0x7909A92D, |
||
| 2542 | 0x78848414, 0x77FAB989, 0x776C4EDB, 0x76D94989, 0x7641AF3D, 0x75A585CF, |
||
| 2543 | 0x7504D345, 0x745F9DD1, 0x73B5EBD1, 0x7307C3D0, 0x72552C85, 0x719E2CD2, |
||
| 2544 | 0x70E2CBC6, 0x7023109A, 0x6F5F02B2, 0x6E96A99D, 0x6DCA0D14, 0x6CF934FC, |
||
| 2545 | 0x6C242960, 0x6B4AF279, 0x6A6D98A4, 0x698C246C, 0x68A69E81, 0x67BD0FBD, |
||
| 2546 | 0x66CF8120, 0x65DDFBD3, 0x64E88926, 0x63EF3290, 0x62F201AC, 0x61F1003F, |
||
| 2547 | 0x60EC3830, 0x5FE3B38D, 0x5ED77C8A, 0x5DC79D7C, 0x5CB420E0, 0x5B9D1154, |
||
| 2548 | 0x5A82799A, 0x59646498, 0x5842DD54, 0x571DEEFA, 0x55F5A4D2, 0x54CA0A4B, |
||
| 2549 | 0x539B2AF0, 0x5269126E, 0x5133CC94, 0x4FFB654D, 0x4EBFE8A5, 0x4D8162C4, |
||
| 2550 | 0x4C3FDFF4, 0x4AFB6C98, 0x49B41533, 0x4869E665, 0x471CECE7, 0x45CD358F, |
||
| 2551 | 0x447ACD50, 0x4325C135, 0x41CE1E65, 0x4073F21D, 0x3F1749B8, 0x3DB832A6, |
||
| 2552 | 0x3C56BA70, 0x3AF2EEB7, 0x398CDD32, 0x382493B0, 0x36BA2014, 0x354D9057, |
||
| 2553 | 0x33DEF287, 0x326E54C7, 0x30FBC54D, 0x2F875262, 0x2E110A62, 0x2C98FBBA, |
||
| 2554 | 0x2B1F34EB, 0x29A3C485, 0x2826B928, 0x26A82186, 0x25280C5E, 0x23A6887F, |
||
| 2555 | 0x2223A4C5, 0x209F701C, 0x1F19F97B, 0x1D934FE5, 0x1C0B826A, 0x1A82A026, |
||
| 2556 | 0x18F8B83C, 0x176DD9DE, 0x15E21445, 0x145576B1, 0x12C8106F, 0x1139F0CF, |
||
| 2557 | 0x0FAB272B, 0x0E1BC2E4, 0x0C8BD35E, 0x0AFB6805, 0x096A9049, 0x07D95B9E, |
||
| 2558 | 0x0647D97C, 0x04B6195D, 0x03242ABF, 0x01921D20, 0x00000000, 0xFE6DE2E0, |
||
| 2559 | 0xFCDBD541, 0xFB49E6A3, 0xF9B82684, 0xF826A462, 0xF6956FB7, 0xF50497FB, |
||
| 2560 | 0xF3742CA2, 0xF1E43D1C, 0xF054D8D5, 0xEEC60F31, 0xED37EF91, 0xEBAA894F, |
||
| 2561 | 0xEA1DEBBB, 0xE8922622, 0xE70747C4, 0xE57D5FDA, 0xE3F47D96, 0xE26CB01B, |
||
| 2562 | 0xE0E60685, 0xDF608FE4, 0xDDDC5B3B, 0xDC597781, 0xDAD7F3A2, 0xD957DE7A, |
||
| 2563 | 0xD7D946D8, 0xD65C3B7B, 0xD4E0CB15, 0xD3670446, 0xD1EEF59E, 0xD078AD9E, |
||
| 2564 | 0xCF043AB3, 0xCD91AB39, 0xCC210D79, 0xCAB26FA9, 0xC945DFEC, 0xC7DB6C50, |
||
| 2565 | 0xC67322CE, 0xC50D1149, 0xC3A94590, 0xC247CD5A, 0xC0E8B648, 0xBF8C0DE3, |
||
| 2566 | 0xBE31E19B, 0xBCDA3ECB, 0xBB8532B0, 0xBA32CA71, 0xB8E31319, 0xB796199B, |
||
| 2567 | 0xB64BEACD, 0xB5049368, 0xB3C0200C, 0xB27E9D3C, 0xB140175B, 0xB0049AB3, |
||
| 2568 | 0xAECC336C, 0xAD96ED92, 0xAC64D510, 0xAB35F5B5, 0xAA0A5B2E, 0xA8E21106, |
||
| 2569 | 0xA7BD22AC, 0xA69B9B68, 0xA57D8666, 0xA462EEAC, 0xA34BDF20, 0xA2386284, |
||
| 2570 | 0xA1288376, 0xA01C4C73, 0x9F13C7D0, 0x9E0EFFC1, 0x9D0DFE54, 0x9C10CD70, |
||
| 2571 | 0x9B1776DA, 0x9A22042D, 0x99307EE0, 0x9842F043, 0x9759617F, 0x9673DB94, |
||
| 2572 | 0x9592675C, 0x94B50D87, 0x93DBD6A0, 0x9306CB04, 0x9235F2EC, 0x91695663, |
||
| 2573 | 0x90A0FD4E, 0x8FDCEF66, 0x8F1D343A, 0x8E61D32E, 0x8DAAD37B, 0x8CF83C30, |
||
| 2574 | 0x8C4A142F, 0x8BA0622F, 0x8AFB2CBB, 0x8A5A7A31, 0x89BE50C3, 0x8926B677, |
||
| 2575 | 0x8893B125, 0x88054677, 0x877B7BEC, 0x86F656D3, 0x8675DC4F, 0x85FA1153, |
||
| 2576 | 0x8582FAA5, 0x85109CDD, 0x84A2FC62, 0x843A1D70, 0x83D60412, 0x8376B422, |
||
| 2577 | 0x831C314E, 0x82C67F14, 0x8275A0C0, 0x82299971, 0x81E26C16, 0x81A01B6D, |
||
| 2578 | 0x8162AA04, 0x812A1A3A, 0x80F66E3C, 0x80C7A80A, 0x809DC971, 0x8078D40D, |
||
| 2579 | 0x8058C94C, 0x803DAA6A, 0x80277872, 0x80163440, 0x8009DE7E, 0x800277A6, |
||
| 2580 | 0x80000000, 0x800277A6, 0x8009DE7E, 0x80163440, 0x80277872, 0x803DAA6A, |
||
| 2581 | 0x8058C94C, 0x8078D40D, 0x809DC971, 0x80C7A80A, 0x80F66E3C, 0x812A1A3A, |
||
| 2582 | 0x8162AA04, 0x81A01B6D, 0x81E26C16, 0x82299971, 0x8275A0C0, 0x82C67F14, |
||
| 2583 | 0x831C314E, 0x8376B422, 0x83D60412, 0x843A1D70, 0x84A2FC62, 0x85109CDD, |
||
| 2584 | 0x8582FAA5, 0x85FA1153, 0x8675DC4F, 0x86F656D3, 0x877B7BEC, 0x88054677, |
||
| 2585 | 0x8893B125, 0x8926B677, 0x89BE50C3, 0x8A5A7A31, 0x8AFB2CBB, 0x8BA0622F, |
||
| 2586 | 0x8C4A142F, 0x8CF83C30, 0x8DAAD37B, 0x8E61D32E, 0x8F1D343A, 0x8FDCEF66, |
||
| 2587 | 0x90A0FD4E, 0x91695663, 0x9235F2EC, 0x9306CB04, 0x93DBD6A0, 0x94B50D87, |
||
| 2588 | 0x9592675C, 0x9673DB94, 0x9759617F, 0x9842F043, 0x99307EE0, 0x9A22042D, |
||
| 2589 | 0x9B1776DA, 0x9C10CD70, 0x9D0DFE54, 0x9E0EFFC1, 0x9F13C7D0, 0xA01C4C73, |
||
| 2590 | 0xA1288376, 0xA2386284, 0xA34BDF20, 0xA462EEAC, 0xA57D8666, 0xA69B9B68, |
||
| 2591 | 0xA7BD22AC, 0xA8E21106, 0xAA0A5B2E, 0xAB35F5B5, 0xAC64D510, 0xAD96ED92, |
||
| 2592 | 0xAECC336C, 0xB0049AB3, 0xB140175B, 0xB27E9D3C, 0xB3C0200C, 0xB5049368, |
||
| 2593 | 0xB64BEACD, 0xB796199B, 0xB8E31319, 0xBA32CA71, 0xBB8532B0, 0xBCDA3ECB, |
||
| 2594 | 0xBE31E19B, 0xBF8C0DE3, 0xC0E8B648, 0xC247CD5A, 0xC3A94590, 0xC50D1149, |
||
| 2595 | 0xC67322CE, 0xC7DB6C50, 0xC945DFEC, 0xCAB26FA9, 0xCC210D79, 0xCD91AB39, |
||
| 2596 | 0xCF043AB3, 0xD078AD9E, 0xD1EEF59E, 0xD3670446, 0xD4E0CB15, 0xD65C3B7B, |
||
| 2597 | 0xD7D946D8, 0xD957DE7A, 0xDAD7F3A2, 0xDC597781, 0xDDDC5B3B, 0xDF608FE4, |
||
| 2598 | 0xE0E60685, 0xE26CB01B, 0xE3F47D96, 0xE57D5FDA, 0xE70747C4, 0xE8922622, |
||
| 2599 | 0xEA1DEBBB, 0xEBAA894F, 0xED37EF91, 0xEEC60F31, 0xF054D8D5, 0xF1E43D1C, |
||
| 2600 | 0xF3742CA2, 0xF50497FB, 0xF6956FB7, 0xF826A462, 0xF9B82684, 0xFB49E6A3, |
||
| 2601 | 0xFCDBD541, 0xFE6DE2E0, 0x00000000 |
||
| 2602 | }; |
||
| 2603 | |||
| 2604 | /** |
||
| 2605 | * \par |
||
| 2606 | * Table values are in Q15 (1.15 fixed-point format) and generation is done in |
||
| 2607 | * three steps. First, generate sin values in floating point: |
||
| 2608 | * <pre> |
||
| 2609 | * tableSize = 512; |
||
| 2610 | * for(n = 0; n < (tableSize + 1); n++) |
||
| 2611 | * { |
||
| 2612 | * sinTable[n]= sin(2*pi*n/tableSize); |
||
| 2613 | * } </pre> |
||
| 2614 | * where pi value is 3.14159265358979 |
||
| 2615 | * \par |
||
| 2616 | * Second, convert floating-point to Q15 (Fixed point): |
||
| 2617 | * (sinTable[i] * pow(2, 15)) |
||
| 2618 | * \par |
||
| 2619 | * Finally, round to the nearest integer value: |
||
| 2620 | * sinTable[i] += (sinTable[i] > 0 ? 0.5 :-0.5); |
||
| 2621 | */ |
||
| 2622 | const q15_t sinTable_q15[FAST_MATH_TABLE_SIZE + 1] = { |
||
| 2623 | 0x0000, 0x0192, 0x0324, 0x04B6, 0x0648, 0x07D9, 0x096B, 0x0AFB, 0x0C8C, 0x0E1C, 0x0FAB, 0x113A, 0x12C8, |
||
| 2624 | 0x1455, 0x15E2, 0x176E, 0x18F9, 0x1A83, 0x1C0C, 0x1D93, 0x1F1A, 0x209F, 0x2224, 0x23A7, 0x2528, 0x26A8, |
||
| 2625 | 0x2827, 0x29A4, 0x2B1F, 0x2C99, 0x2E11, 0x2F87, 0x30FC, 0x326E, 0x33DF, 0x354E, 0x36BA, 0x3825, 0x398D, |
||
| 2626 | 0x3AF3, 0x3C57, 0x3DB8, 0x3F17, 0x4074, 0x41CE, 0x4326, 0x447B, 0x45CD, 0x471D, 0x486A, 0x49B4, 0x4AFB, |
||
| 2627 | 0x4C40, 0x4D81, 0x4EC0, 0x4FFB, 0x5134, 0x5269, 0x539B, 0x54CA, 0x55F6, 0x571E, 0x5843, 0x5964, 0x5A82, |
||
| 2628 | 0x5B9D, 0x5CB4, 0x5DC8, 0x5ED7, 0x5FE4, 0x60EC, 0x61F1, 0x62F2, 0x63EF, 0x64E9, 0x65DE, 0x66D0, 0x67BD, |
||
| 2629 | 0x68A7, 0x698C, 0x6A6E, 0x6B4B, 0x6C24, 0x6CF9, 0x6DCA, 0x6E97, 0x6F5F, 0x7023, 0x70E3, 0x719E, 0x7255, |
||
| 2630 | 0x7308, 0x73B6, 0x7460, 0x7505, 0x75A6, 0x7642, 0x76D9, 0x776C, 0x77FB, 0x7885, 0x790A, 0x798A, 0x7A06, |
||
| 2631 | 0x7A7D, 0x7AEF, 0x7B5D, 0x7BC6, 0x7C2A, 0x7C89, 0x7CE4, 0x7D3A, 0x7D8A, 0x7DD6, 0x7E1E, 0x7E60, 0x7E9D, |
||
| 2632 | 0x7ED6, 0x7F0A, 0x7F38, 0x7F62, 0x7F87, 0x7FA7, 0x7FC2, 0x7FD9, 0x7FEA, 0x7FF6, 0x7FFE, 0x7FFF, 0x7FFE, |
||
| 2633 | 0x7FF6, 0x7FEA, 0x7FD9, 0x7FC2, 0x7FA7, 0x7F87, 0x7F62, 0x7F38, 0x7F0A, 0x7ED6, 0x7E9D, 0x7E60, 0x7E1E, |
||
| 2634 | 0x7DD6, 0x7D8A, 0x7D3A, 0x7CE4, 0x7C89, 0x7C2A, 0x7BC6, 0x7B5D, 0x7AEF, 0x7A7D, 0x7A06, 0x798A, 0x790A, |
||
| 2635 | 0x7885, 0x77FB, 0x776C, 0x76D9, 0x7642, 0x75A6, 0x7505, 0x7460, 0x73B6, 0x7308, 0x7255, 0x719E, 0x70E3, |
||
| 2636 | 0x7023, 0x6F5F, 0x6E97, 0x6DCA, 0x6CF9, 0x6C24, 0x6B4B, 0x6A6E, 0x698C, 0x68A7, 0x67BD, 0x66D0, 0x65DE, |
||
| 2637 | 0x64E9, 0x63EF, 0x62F2, 0x61F1, 0x60EC, 0x5FE4, 0x5ED7, 0x5DC8, 0x5CB4, 0x5B9D, 0x5A82, 0x5964, 0x5843, |
||
| 2638 | 0x571E, 0x55F6, 0x54CA, 0x539B, 0x5269, 0x5134, 0x4FFB, 0x4EC0, 0x4D81, 0x4C40, 0x4AFB, 0x49B4, 0x486A, |
||
| 2639 | 0x471D, 0x45CD, 0x447B, 0x4326, 0x41CE, 0x4074, 0x3F17, 0x3DB8, 0x3C57, 0x3AF3, 0x398D, 0x3825, 0x36BA, |
||
| 2640 | 0x354E, 0x33DF, 0x326E, 0x30FC, 0x2F87, 0x2E11, 0x2C99, 0x2B1F, 0x29A4, 0x2827, 0x26A8, 0x2528, 0x23A7, |
||
| 2641 | 0x2224, 0x209F, 0x1F1A, 0x1D93, 0x1C0C, 0x1A83, 0x18F9, 0x176E, 0x15E2, 0x1455, 0x12C8, 0x113A, 0x0FAB, |
||
| 2642 | 0x0E1C, 0x0C8C, 0x0AFB, 0x096B, 0x07D9, 0x0648, 0x04B6, 0x0324, 0x0192, 0x0000, 0xFE6E, 0xFCDC, 0xFB4A, |
||
| 2643 | 0xF9B8, 0xF827, 0xF695, 0xF505, 0xF374, 0xF1E4, 0xF055, 0xEEC6, 0xED38, 0xEBAB, 0xEA1E, 0xE892, 0xE707, |
||
| 2644 | 0xE57D, 0xE3F4, 0xE26D, 0xE0E6, 0xDF61, 0xDDDC, 0xDC59, 0xDAD8, 0xD958, 0xD7D9, 0xD65C, 0xD4E1, 0xD367, |
||
| 2645 | 0xD1EF, 0xD079, 0xCF04, 0xCD92, 0xCC21, 0xCAB2, 0xC946, 0xC7DB, 0xC673, 0xC50D, 0xC3A9, 0xC248, 0xC0E9, |
||
| 2646 | 0xBF8C, 0xBE32, 0xBCDA, 0xBB85, 0xBA33, 0xB8E3, 0xB796, 0xB64C, 0xB505, 0xB3C0, 0xB27F, 0xB140, 0xB005, |
||
| 2647 | 0xAECC, 0xAD97, 0xAC65, 0xAB36, 0xAA0A, 0xA8E2, 0xA7BD, 0xA69C, 0xA57E, 0xA463, 0xA34C, 0xA238, 0xA129, |
||
| 2648 | 0xA01C, 0x9F14, 0x9E0F, 0x9D0E, 0x9C11, 0x9B17, 0x9A22, 0x9930, 0x9843, 0x9759, 0x9674, 0x9592, 0x94B5, |
||
| 2649 | 0x93DC, 0x9307, 0x9236, 0x9169, 0x90A1, 0x8FDD, 0x8F1D, 0x8E62, 0x8DAB, 0x8CF8, 0x8C4A, 0x8BA0, 0x8AFB, |
||
| 2650 | 0x8A5A, 0x89BE, 0x8927, 0x8894, 0x8805, 0x877B, 0x86F6, 0x8676, 0x85FA, 0x8583, 0x8511, 0x84A3, 0x843A, |
||
| 2651 | 0x83D6, 0x8377, 0x831C, 0x82C6, 0x8276, 0x822A, 0x81E2, 0x81A0, 0x8163, 0x812A, 0x80F6, 0x80C8, 0x809E, |
||
| 2652 | 0x8079, 0x8059, 0x803E, 0x8027, 0x8016, 0x800A, 0x8002, 0x8000, 0x8002, 0x800A, 0x8016, 0x8027, 0x803E, |
||
| 2653 | 0x8059, 0x8079, 0x809E, 0x80C8, 0x80F6, 0x812A, 0x8163, 0x81A0, 0x81E2, 0x822A, 0x8276, 0x82C6, 0x831C, |
||
| 2654 | 0x8377, 0x83D6, 0x843A, 0x84A3, 0x8511, 0x8583, 0x85FA, 0x8676, 0x86F6, 0x877B, 0x8805, 0x8894, 0x8927, |
||
| 2655 | 0x89BE, 0x8A5A, 0x8AFB, 0x8BA0, 0x8C4A, 0x8CF8, 0x8DAB, 0x8E62, 0x8F1D, 0x8FDD, 0x90A1, 0x9169, 0x9236, |
||
| 2656 | 0x9307, 0x93DC, 0x94B5, 0x9592, 0x9674, 0x9759, 0x9843, 0x9930, 0x9A22, 0x9B17, 0x9C11, 0x9D0E, 0x9E0F, |
||
| 2657 | 0x9F14, 0xA01C, 0xA129, 0xA238, 0xA34C, 0xA463, 0xA57E, 0xA69C, 0xA7BD, 0xA8E2, 0xAA0A, 0xAB36, 0xAC65, |
||
| 2658 | 0xAD97, 0xAECC, 0xB005, 0xB140, 0xB27F, 0xB3C0, 0xB505, 0xB64C, 0xB796, 0xB8E3, 0xBA33, 0xBB85, 0xBCDA, |
||
| 2659 | 0xBE32, 0xBF8C, 0xC0E9, 0xC248, 0xC3A9, 0xC50D, 0xC673, 0xC7DB, 0xC946, 0xCAB2, 0xCC21, 0xCD92, 0xCF04, |
||
| 2660 | 0xD079, 0xD1EF, 0xD367, 0xD4E1, 0xD65C, 0xD7D9, 0xD958, 0xDAD8, 0xDC59, 0xDDDC, 0xDF61, 0xE0E6, 0xE26D, |
||
| 2661 | 0xE3F4, 0xE57D, 0xE707, 0xE892, 0xEA1E, 0xEBAB, 0xED38, 0xEEC6, 0xF055, 0xF1E4, 0xF374, 0xF505, 0xF695, |
||
| 2662 | 0xF827, 0xF9B8, 0xFB4A, 0xFCDC, 0xFE6E, 0x0000 |
||
| 2663 | }; |
||
| 2664 | |||
| 2665 |