1 /* ----------------------------------------------------------------------
2 * Copyright (C) 2010 ARM Limited. All rights reserved.
7 * Project: CMSIS DSP Library
8 * Title: arm_rfft_init_q31.c
10 * Description: RFFT & RIFFT Q31 initialisation function
12 * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
14 * Version 1.0.10 2011/7/15
15 * Big Endian support added and Merged M0 and M3/M4 Source code.
17 * Version 1.0.3 2010/11/29
18 * Re-organized the CMSIS folders and updated documentation.
20 * Version 1.0.2 2010/11/11
21 * Documentation updated.
23 * Version 1.0.1 2010/10/05
24 * Production release and review comments incorporated.
26 * Version 1.0.0 2010/09/20
27 * Production release and review comments incorporated
29 * Version 0.0.7 2010/06/10
30 * Misra-C changes done
31 * -------------------------------------------------------------------- */
36 * @ingroup groupTransforms
40 * @addtogroup RFFT_RIFFT
46 * Generation floating point realCoefAQ31 array:
49 * <pre>for (i = 0; i < n; i++)
51 * pATable[2 * i] = 0.5 * (1.0 - sin (2 * PI / (double) (2 * n) * (double) i));
52 * pATable[2 * i + 1] = 0.5 * (-1.0 * cos (2 * PI / (double) (2 * n) * (double) i));
55 * Convert to fixed point Q31 format
56 * round(pATable[i] * pow(2, 31))
60 const q31_t realCoefAQ31[1024] = {
61 0x40000000, 0xc0000000, 0x3f9b783c, 0xc0004ef5,
62 0x3f36f170, 0xc0013bd3, 0x3ed26c94, 0xc002c697,
63 0x3e6deaa1, 0xc004ef3f, 0x3e096c8d, 0xc007b5c4,
64 0x3da4f351, 0xc00b1a20, 0x3d407fe6, 0xc00f1c4a,
65 0x3cdc1342, 0xc013bc39, 0x3c77ae5e, 0xc018f9e1,
66 0x3c135231, 0xc01ed535, 0x3baeffb3, 0xc0254e27,
67 0x3b4ab7db, 0xc02c64a6, 0x3ae67ba2, 0xc03418a2,
68 0x3a824bfd, 0xc03c6a07, 0x3a1e29e5, 0xc04558c0,
69 0x39ba1651, 0xc04ee4b8, 0x39561237, 0xc0590dd8,
70 0x38f21e8e, 0xc063d405, 0x388e3c4d, 0xc06f3726,
71 0x382a6c6a, 0xc07b371e, 0x37c6afdc, 0xc087d3d0,
72 0x37630799, 0xc0950d1d, 0x36ff7496, 0xc0a2e2e3,
73 0x369bf7c9, 0xc0b15502, 0x36389228, 0xc0c06355,
74 0x35d544a7, 0xc0d00db6, 0x3572103d, 0xc0e05401,
75 0x350ef5de, 0xc0f1360b, 0x34abf67e, 0xc102b3ac,
76 0x34491311, 0xc114ccb9, 0x33e64c8c, 0xc1278104,
77 0x3383a3e2, 0xc13ad060, 0x33211a07, 0xc14eba9d,
78 0x32beafed, 0xc1633f8a, 0x325c6688, 0xc1785ef4,
79 0x31fa3ecb, 0xc18e18a7, 0x319839a6, 0xc1a46c6e,
80 0x3136580d, 0xc1bb5a11, 0x30d49af1, 0xc1d2e158,
81 0x30730342, 0xc1eb0209, 0x301191f3, 0xc203bbe8,
82 0x2fb047f2, 0xc21d0eb8, 0x2f4f2630, 0xc236fa3b,
83 0x2eee2d9d, 0xc2517e31, 0x2e8d5f29, 0xc26c9a58,
84 0x2e2cbbc1, 0xc2884e6e, 0x2dcc4454, 0xc2a49a2e,
85 0x2d6bf9d1, 0xc2c17d52, 0x2d0bdd25, 0xc2def794,
86 0x2cabef3d, 0xc2fd08a9, 0x2c4c3106, 0xc31bb049,
87 0x2beca36c, 0xc33aee27, 0x2b8d475b, 0xc35ac1f7,
88 0x2b2e1dbe, 0xc37b2b6a, 0x2acf277f, 0xc39c2a2f,
89 0x2a70658a, 0xc3bdbdf6, 0x2a11d8c8, 0xc3dfe66c,
90 0x29b38223, 0xc402a33c, 0x29556282, 0xc425f410,
91 0x28f77acf, 0xc449d892, 0x2899cbf1, 0xc46e5069,
92 0x283c56cf, 0xc4935b3c, 0x27df1c50, 0xc4b8f8ad,
93 0x27821d59, 0xc4df2862, 0x27255ad1, 0xc505e9fb,
94 0x26c8d59c, 0xc52d3d18, 0x266c8e9f, 0xc555215a,
95 0x261086bc, 0xc57d965d, 0x25b4bed8, 0xc5a69bbe,
96 0x255937d5, 0xc5d03118, 0x24fdf294, 0xc5fa5603,
97 0x24a2eff6, 0xc6250a18, 0x244830dd, 0xc6504ced,
98 0x23edb628, 0xc67c1e18, 0x239380b6, 0xc6a87d2d,
99 0x23399167, 0xc6d569be, 0x22dfe917, 0xc702e35c,
100 0x228688a4, 0xc730e997, 0x222d70eb, 0xc75f7bfe,
101 0x21d4a2c8, 0xc78e9a1d, 0x217c1f15, 0xc7be4381,
102 0x2123e6ad, 0xc7ee77b3, 0x20cbfa6a, 0xc81f363d,
103 0x20745b24, 0xc8507ea7, 0x201d09b4, 0xc8825077,
104 0x1fc606f1, 0xc8b4ab32, 0x1f6f53b3, 0xc8e78e5b,
105 0x1f18f0ce, 0xc91af976, 0x1ec2df18, 0xc94eec03,
106 0x1e6d1f65, 0xc9836582, 0x1e17b28a, 0xc9b86572,
107 0x1dc29958, 0xc9edeb50, 0x1d6dd4a2, 0xca23f698,
108 0x1d196538, 0xca5a86c4, 0x1cc54bec, 0xca919b4e,
109 0x1c71898d, 0xcac933ae, 0x1c1e1ee9, 0xcb014f5b,
110 0x1bcb0cce, 0xcb39edca, 0x1b785409, 0xcb730e70,
111 0x1b25f566, 0xcbacb0bf, 0x1ad3f1b1, 0xcbe6d42b,
112 0x1a8249b4, 0xcc217822, 0x1a30fe38, 0xcc5c9c14,
113 0x19e01006, 0xcc983f70, 0x198f7fe6, 0xccd461a2,
114 0x193f4e9e, 0xcd110216, 0x18ef7cf4, 0xcd4e2037,
115 0x18a00bae, 0xcd8bbb6d, 0x1850fb8e, 0xcdc9d320,
116 0x18024d59, 0xce0866b8, 0x17b401d1, 0xce47759a,
117 0x176619b6, 0xce86ff2a, 0x171895c9, 0xcec702cb,
118 0x16cb76c9, 0xcf077fe1, 0x167ebd74, 0xcf4875ca,
119 0x16326a88, 0xcf89e3e8, 0x15e67ec1, 0xcfcbc999,
120 0x159afadb, 0xd00e2639, 0x154fdf8f, 0xd050f926,
121 0x15052d97, 0xd09441bb, 0x14bae5ab, 0xd0d7ff51,
122 0x14710883, 0xd11c3142, 0x142796d5, 0xd160d6e5,
123 0x13de9156, 0xd1a5ef90, 0x1395f8ba, 0xd1eb7a9a,
124 0x134dcdb4, 0xd2317756, 0x130610f7, 0xd277e518,
125 0x12bec333, 0xd2bec333, 0x1277e518, 0xd30610f7,
126 0x12317756, 0xd34dcdb4, 0x11eb7a9a, 0xd395f8ba,
127 0x11a5ef90, 0xd3de9156, 0x1160d6e5, 0xd42796d5,
128 0x111c3142, 0xd4710883, 0x10d7ff51, 0xd4bae5ab,
129 0x109441bb, 0xd5052d97, 0x1050f926, 0xd54fdf8f,
130 0x100e2639, 0xd59afadb, 0xfcbc999, 0xd5e67ec1,
131 0xf89e3e8, 0xd6326a88, 0xf4875ca, 0xd67ebd74,
132 0xf077fe1, 0xd6cb76c9, 0xec702cb, 0xd71895c9,
133 0xe86ff2a, 0xd76619b6, 0xe47759a, 0xd7b401d1,
134 0xe0866b8, 0xd8024d59, 0xdc9d320, 0xd850fb8e,
135 0xd8bbb6d, 0xd8a00bae, 0xd4e2037, 0xd8ef7cf4,
136 0xd110216, 0xd93f4e9e, 0xcd461a2, 0xd98f7fe6,
137 0xc983f70, 0xd9e01006, 0xc5c9c14, 0xda30fe38,
138 0xc217822, 0xda8249b4, 0xbe6d42b, 0xdad3f1b1,
139 0xbacb0bf, 0xdb25f566, 0xb730e70, 0xdb785409,
140 0xb39edca, 0xdbcb0cce, 0xb014f5b, 0xdc1e1ee9,
141 0xac933ae, 0xdc71898d, 0xa919b4e, 0xdcc54bec,
142 0xa5a86c4, 0xdd196538, 0xa23f698, 0xdd6dd4a2,
143 0x9edeb50, 0xddc29958, 0x9b86572, 0xde17b28a,
144 0x9836582, 0xde6d1f65, 0x94eec03, 0xdec2df18,
145 0x91af976, 0xdf18f0ce, 0x8e78e5b, 0xdf6f53b3,
146 0x8b4ab32, 0xdfc606f1, 0x8825077, 0xe01d09b4,
147 0x8507ea7, 0xe0745b24, 0x81f363d, 0xe0cbfa6a,
148 0x7ee77b3, 0xe123e6ad, 0x7be4381, 0xe17c1f15,
149 0x78e9a1d, 0xe1d4a2c8, 0x75f7bfe, 0xe22d70eb,
150 0x730e997, 0xe28688a4, 0x702e35c, 0xe2dfe917,
151 0x6d569be, 0xe3399167, 0x6a87d2d, 0xe39380b6,
152 0x67c1e18, 0xe3edb628, 0x6504ced, 0xe44830dd,
153 0x6250a18, 0xe4a2eff6, 0x5fa5603, 0xe4fdf294,
154 0x5d03118, 0xe55937d5, 0x5a69bbe, 0xe5b4bed8,
155 0x57d965d, 0xe61086bc, 0x555215a, 0xe66c8e9f,
156 0x52d3d18, 0xe6c8d59c, 0x505e9fb, 0xe7255ad1,
157 0x4df2862, 0xe7821d59, 0x4b8f8ad, 0xe7df1c50,
158 0x4935b3c, 0xe83c56cf, 0x46e5069, 0xe899cbf1,
159 0x449d892, 0xe8f77acf, 0x425f410, 0xe9556282,
160 0x402a33c, 0xe9b38223, 0x3dfe66c, 0xea11d8c8,
161 0x3bdbdf6, 0xea70658a, 0x39c2a2f, 0xeacf277f,
162 0x37b2b6a, 0xeb2e1dbe, 0x35ac1f7, 0xeb8d475b,
163 0x33aee27, 0xebeca36c, 0x31bb049, 0xec4c3106,
164 0x2fd08a9, 0xecabef3d, 0x2def794, 0xed0bdd25,
165 0x2c17d52, 0xed6bf9d1, 0x2a49a2e, 0xedcc4454,
166 0x2884e6e, 0xee2cbbc1, 0x26c9a58, 0xee8d5f29,
167 0x2517e31, 0xeeee2d9d, 0x236fa3b, 0xef4f2630,
168 0x21d0eb8, 0xefb047f2, 0x203bbe8, 0xf01191f3,
169 0x1eb0209, 0xf0730342, 0x1d2e158, 0xf0d49af1,
170 0x1bb5a11, 0xf136580d, 0x1a46c6e, 0xf19839a6,
171 0x18e18a7, 0xf1fa3ecb, 0x1785ef4, 0xf25c6688,
172 0x1633f8a, 0xf2beafed, 0x14eba9d, 0xf3211a07,
173 0x13ad060, 0xf383a3e2, 0x1278104, 0xf3e64c8c,
174 0x114ccb9, 0xf4491311, 0x102b3ac, 0xf4abf67e,
175 0xf1360b, 0xf50ef5de, 0xe05401, 0xf572103d,
176 0xd00db6, 0xf5d544a7, 0xc06355, 0xf6389228,
177 0xb15502, 0xf69bf7c9, 0xa2e2e3, 0xf6ff7496,
178 0x950d1d, 0xf7630799, 0x87d3d0, 0xf7c6afdc,
179 0x7b371e, 0xf82a6c6a, 0x6f3726, 0xf88e3c4d,
180 0x63d405, 0xf8f21e8e, 0x590dd8, 0xf9561237,
181 0x4ee4b8, 0xf9ba1651, 0x4558c0, 0xfa1e29e5,
182 0x3c6a07, 0xfa824bfd, 0x3418a2, 0xfae67ba2,
183 0x2c64a6, 0xfb4ab7db, 0x254e27, 0xfbaeffb3,
184 0x1ed535, 0xfc135231, 0x18f9e1, 0xfc77ae5e,
185 0x13bc39, 0xfcdc1342, 0xf1c4a, 0xfd407fe6,
186 0xb1a20, 0xfda4f351, 0x7b5c4, 0xfe096c8d,
187 0x4ef3f, 0xfe6deaa1, 0x2c697, 0xfed26c94,
188 0x13bd3, 0xff36f170, 0x4ef5, 0xff9b783c,
189 0x0, 0x0, 0x4ef5, 0x6487c4,
190 0x13bd3, 0xc90e90, 0x2c697, 0x12d936c,
191 0x4ef3f, 0x192155f, 0x7b5c4, 0x1f69373,
192 0xb1a20, 0x25b0caf, 0xf1c4a, 0x2bf801a,
193 0x13bc39, 0x323ecbe, 0x18f9e1, 0x38851a2,
194 0x1ed535, 0x3ecadcf, 0x254e27, 0x451004d,
195 0x2c64a6, 0x4b54825, 0x3418a2, 0x519845e,
196 0x3c6a07, 0x57db403, 0x4558c0, 0x5e1d61b,
197 0x4ee4b8, 0x645e9af, 0x590dd8, 0x6a9edc9,
198 0x63d405, 0x70de172, 0x6f3726, 0x771c3b3,
199 0x7b371e, 0x7d59396, 0x87d3d0, 0x8395024,
200 0x950d1d, 0x89cf867, 0xa2e2e3, 0x9008b6a,
201 0xb15502, 0x9640837, 0xc06355, 0x9c76dd8,
202 0xd00db6, 0xa2abb59, 0xe05401, 0xa8defc3,
203 0xf1360b, 0xaf10a22, 0x102b3ac, 0xb540982,
204 0x114ccb9, 0xbb6ecef, 0x1278104, 0xc19b374,
205 0x13ad060, 0xc7c5c1e, 0x14eba9d, 0xcdee5f9,
206 0x1633f8a, 0xd415013, 0x1785ef4, 0xda39978,
207 0x18e18a7, 0xe05c135, 0x1a46c6e, 0xe67c65a,
208 0x1bb5a11, 0xec9a7f3, 0x1d2e158, 0xf2b650f,
209 0x1eb0209, 0xf8cfcbe, 0x203bbe8, 0xfee6e0d,
210 0x21d0eb8, 0x104fb80e, 0x236fa3b, 0x10b0d9d0,
211 0x2517e31, 0x1111d263, 0x26c9a58, 0x1172a0d7,
212 0x2884e6e, 0x11d3443f, 0x2a49a2e, 0x1233bbac,
213 0x2c17d52, 0x1294062f, 0x2def794, 0x12f422db,
214 0x2fd08a9, 0x135410c3, 0x31bb049, 0x13b3cefa,
215 0x33aee27, 0x14135c94, 0x35ac1f7, 0x1472b8a5,
216 0x37b2b6a, 0x14d1e242, 0x39c2a2f, 0x1530d881,
217 0x3bdbdf6, 0x158f9a76, 0x3dfe66c, 0x15ee2738,
218 0x402a33c, 0x164c7ddd, 0x425f410, 0x16aa9d7e,
219 0x449d892, 0x17088531, 0x46e5069, 0x1766340f,
220 0x4935b3c, 0x17c3a931, 0x4b8f8ad, 0x1820e3b0,
221 0x4df2862, 0x187de2a7, 0x505e9fb, 0x18daa52f,
222 0x52d3d18, 0x19372a64, 0x555215a, 0x19937161,
223 0x57d965d, 0x19ef7944, 0x5a69bbe, 0x1a4b4128,
224 0x5d03118, 0x1aa6c82b, 0x5fa5603, 0x1b020d6c,
225 0x6250a18, 0x1b5d100a, 0x6504ced, 0x1bb7cf23,
226 0x67c1e18, 0x1c1249d8, 0x6a87d2d, 0x1c6c7f4a,
227 0x6d569be, 0x1cc66e99, 0x702e35c, 0x1d2016e9,
228 0x730e997, 0x1d79775c, 0x75f7bfe, 0x1dd28f15,
229 0x78e9a1d, 0x1e2b5d38, 0x7be4381, 0x1e83e0eb,
230 0x7ee77b3, 0x1edc1953, 0x81f363d, 0x1f340596,
231 0x8507ea7, 0x1f8ba4dc, 0x8825077, 0x1fe2f64c,
232 0x8b4ab32, 0x2039f90f, 0x8e78e5b, 0x2090ac4d,
233 0x91af976, 0x20e70f32, 0x94eec03, 0x213d20e8,
234 0x9836582, 0x2192e09b, 0x9b86572, 0x21e84d76,
235 0x9edeb50, 0x223d66a8, 0xa23f698, 0x22922b5e,
236 0xa5a86c4, 0x22e69ac8, 0xa919b4e, 0x233ab414,
237 0xac933ae, 0x238e7673, 0xb014f5b, 0x23e1e117,
238 0xb39edca, 0x2434f332, 0xb730e70, 0x2487abf7,
239 0xbacb0bf, 0x24da0a9a, 0xbe6d42b, 0x252c0e4f,
240 0xc217822, 0x257db64c, 0xc5c9c14, 0x25cf01c8,
241 0xc983f70, 0x261feffa, 0xcd461a2, 0x2670801a,
242 0xd110216, 0x26c0b162, 0xd4e2037, 0x2710830c,
243 0xd8bbb6d, 0x275ff452, 0xdc9d320, 0x27af0472,
244 0xe0866b8, 0x27fdb2a7, 0xe47759a, 0x284bfe2f,
245 0xe86ff2a, 0x2899e64a, 0xec702cb, 0x28e76a37,
246 0xf077fe1, 0x29348937, 0xf4875ca, 0x2981428c,
247 0xf89e3e8, 0x29cd9578, 0xfcbc999, 0x2a19813f,
248 0x100e2639, 0x2a650525, 0x1050f926, 0x2ab02071,
249 0x109441bb, 0x2afad269, 0x10d7ff51, 0x2b451a55,
250 0x111c3142, 0x2b8ef77d, 0x1160d6e5, 0x2bd8692b,
251 0x11a5ef90, 0x2c216eaa, 0x11eb7a9a, 0x2c6a0746,
252 0x12317756, 0x2cb2324c, 0x1277e518, 0x2cf9ef09,
253 0x12bec333, 0x2d413ccd, 0x130610f7, 0x2d881ae8,
254 0x134dcdb4, 0x2dce88aa, 0x1395f8ba, 0x2e148566,
255 0x13de9156, 0x2e5a1070, 0x142796d5, 0x2e9f291b,
256 0x14710883, 0x2ee3cebe, 0x14bae5ab, 0x2f2800af,
257 0x15052d97, 0x2f6bbe45, 0x154fdf8f, 0x2faf06da,
258 0x159afadb, 0x2ff1d9c7, 0x15e67ec1, 0x30343667,
259 0x16326a88, 0x30761c18, 0x167ebd74, 0x30b78a36,
260 0x16cb76c9, 0x30f8801f, 0x171895c9, 0x3138fd35,
261 0x176619b6, 0x317900d6, 0x17b401d1, 0x31b88a66,
262 0x18024d59, 0x31f79948, 0x1850fb8e, 0x32362ce0,
263 0x18a00bae, 0x32744493, 0x18ef7cf4, 0x32b1dfc9,
264 0x193f4e9e, 0x32eefdea, 0x198f7fe6, 0x332b9e5e,
265 0x19e01006, 0x3367c090, 0x1a30fe38, 0x33a363ec,
266 0x1a8249b4, 0x33de87de, 0x1ad3f1b1, 0x34192bd5,
267 0x1b25f566, 0x34534f41, 0x1b785409, 0x348cf190,
268 0x1bcb0cce, 0x34c61236, 0x1c1e1ee9, 0x34feb0a5,
269 0x1c71898d, 0x3536cc52, 0x1cc54bec, 0x356e64b2,
270 0x1d196538, 0x35a5793c, 0x1d6dd4a2, 0x35dc0968,
271 0x1dc29958, 0x361214b0, 0x1e17b28a, 0x36479a8e,
272 0x1e6d1f65, 0x367c9a7e, 0x1ec2df18, 0x36b113fd,
273 0x1f18f0ce, 0x36e5068a, 0x1f6f53b3, 0x371871a5,
274 0x1fc606f1, 0x374b54ce, 0x201d09b4, 0x377daf89,
275 0x20745b24, 0x37af8159, 0x20cbfa6a, 0x37e0c9c3,
276 0x2123e6ad, 0x3811884d, 0x217c1f15, 0x3841bc7f,
277 0x21d4a2c8, 0x387165e3, 0x222d70eb, 0x38a08402,
278 0x228688a4, 0x38cf1669, 0x22dfe917, 0x38fd1ca4,
279 0x23399167, 0x392a9642, 0x239380b6, 0x395782d3,
280 0x23edb628, 0x3983e1e8, 0x244830dd, 0x39afb313,
281 0x24a2eff6, 0x39daf5e8, 0x24fdf294, 0x3a05a9fd,
282 0x255937d5, 0x3a2fcee8, 0x25b4bed8, 0x3a596442,
283 0x261086bc, 0x3a8269a3, 0x266c8e9f, 0x3aaadea6,
284 0x26c8d59c, 0x3ad2c2e8, 0x27255ad1, 0x3afa1605,
285 0x27821d59, 0x3b20d79e, 0x27df1c50, 0x3b470753,
286 0x283c56cf, 0x3b6ca4c4, 0x2899cbf1, 0x3b91af97,
287 0x28f77acf, 0x3bb6276e, 0x29556282, 0x3bda0bf0,
288 0x29b38223, 0x3bfd5cc4, 0x2a11d8c8, 0x3c201994,
289 0x2a70658a, 0x3c42420a, 0x2acf277f, 0x3c63d5d1,
290 0x2b2e1dbe, 0x3c84d496, 0x2b8d475b, 0x3ca53e09,
291 0x2beca36c, 0x3cc511d9, 0x2c4c3106, 0x3ce44fb7,
292 0x2cabef3d, 0x3d02f757, 0x2d0bdd25, 0x3d21086c,
293 0x2d6bf9d1, 0x3d3e82ae, 0x2dcc4454, 0x3d5b65d2,
294 0x2e2cbbc1, 0x3d77b192, 0x2e8d5f29, 0x3d9365a8,
295 0x2eee2d9d, 0x3dae81cf, 0x2f4f2630, 0x3dc905c5,
296 0x2fb047f2, 0x3de2f148, 0x301191f3, 0x3dfc4418,
297 0x30730342, 0x3e14fdf7, 0x30d49af1, 0x3e2d1ea8,
298 0x3136580d, 0x3e44a5ef, 0x319839a6, 0x3e5b9392,
299 0x31fa3ecb, 0x3e71e759, 0x325c6688, 0x3e87a10c,
300 0x32beafed, 0x3e9cc076, 0x33211a07, 0x3eb14563,
301 0x3383a3e2, 0x3ec52fa0, 0x33e64c8c, 0x3ed87efc,
302 0x34491311, 0x3eeb3347, 0x34abf67e, 0x3efd4c54,
303 0x350ef5de, 0x3f0ec9f5, 0x3572103d, 0x3f1fabff,
304 0x35d544a7, 0x3f2ff24a, 0x36389228, 0x3f3f9cab,
305 0x369bf7c9, 0x3f4eaafe, 0x36ff7496, 0x3f5d1d1d,
306 0x37630799, 0x3f6af2e3, 0x37c6afdc, 0x3f782c30,
307 0x382a6c6a, 0x3f84c8e2, 0x388e3c4d, 0x3f90c8da,
308 0x38f21e8e, 0x3f9c2bfb, 0x39561237, 0x3fa6f228,
309 0x39ba1651, 0x3fb11b48, 0x3a1e29e5, 0x3fbaa740,
310 0x3a824bfd, 0x3fc395f9, 0x3ae67ba2, 0x3fcbe75e,
311 0x3b4ab7db, 0x3fd39b5a, 0x3baeffb3, 0x3fdab1d9,
312 0x3c135231, 0x3fe12acb, 0x3c77ae5e, 0x3fe7061f,
313 0x3cdc1342, 0x3fec43c7, 0x3d407fe6, 0x3ff0e3b6,
314 0x3da4f351, 0x3ff4e5e0, 0x3e096c8d, 0x3ff84a3c,
315 0x3e6deaa1, 0x3ffb10c1, 0x3ed26c94, 0x3ffd3969,
316 0x3f36f170, 0x3ffec42d, 0x3f9b783c, 0x3fffb10b
322 * Generation of realCoefBQ31 array:
325 * <pre>for (i = 0; i < n; i++)
327 * pBTable[2 * i] = 0.5 * (1.0 + sin (2 * PI / (double) (2 * n) * (double) i));
328 * pBTable[2 * i + 1] = 0.5 * (1.0 * cos (2 * PI / (double) (2 * n) * (double) i));
331 * Convert to fixed point Q31 format
332 * round(pBTable[i] * pow(2, 31))
336 const q31_t realCoefBQ31[1024] = {
337 0x40000000, 0x40000000, 0x406487c4, 0x3fffb10b,
338 0x40c90e90, 0x3ffec42d, 0x412d936c, 0x3ffd3969,
339 0x4192155f, 0x3ffb10c1, 0x41f69373, 0x3ff84a3c,
340 0x425b0caf, 0x3ff4e5e0, 0x42bf801a, 0x3ff0e3b6,
341 0x4323ecbe, 0x3fec43c7, 0x438851a2, 0x3fe7061f,
342 0x43ecadcf, 0x3fe12acb, 0x4451004d, 0x3fdab1d9,
343 0x44b54825, 0x3fd39b5a, 0x4519845e, 0x3fcbe75e,
344 0x457db403, 0x3fc395f9, 0x45e1d61b, 0x3fbaa740,
345 0x4645e9af, 0x3fb11b48, 0x46a9edc9, 0x3fa6f228,
346 0x470de172, 0x3f9c2bfb, 0x4771c3b3, 0x3f90c8da,
347 0x47d59396, 0x3f84c8e2, 0x48395024, 0x3f782c30,
348 0x489cf867, 0x3f6af2e3, 0x49008b6a, 0x3f5d1d1d,
349 0x49640837, 0x3f4eaafe, 0x49c76dd8, 0x3f3f9cab,
350 0x4a2abb59, 0x3f2ff24a, 0x4a8defc3, 0x3f1fabff,
351 0x4af10a22, 0x3f0ec9f5, 0x4b540982, 0x3efd4c54,
352 0x4bb6ecef, 0x3eeb3347, 0x4c19b374, 0x3ed87efc,
353 0x4c7c5c1e, 0x3ec52fa0, 0x4cdee5f9, 0x3eb14563,
354 0x4d415013, 0x3e9cc076, 0x4da39978, 0x3e87a10c,
355 0x4e05c135, 0x3e71e759, 0x4e67c65a, 0x3e5b9392,
356 0x4ec9a7f3, 0x3e44a5ef, 0x4f2b650f, 0x3e2d1ea8,
357 0x4f8cfcbe, 0x3e14fdf7, 0x4fee6e0d, 0x3dfc4418,
358 0x504fb80e, 0x3de2f148, 0x50b0d9d0, 0x3dc905c5,
359 0x5111d263, 0x3dae81cf, 0x5172a0d7, 0x3d9365a8,
360 0x51d3443f, 0x3d77b192, 0x5233bbac, 0x3d5b65d2,
361 0x5294062f, 0x3d3e82ae, 0x52f422db, 0x3d21086c,
362 0x535410c3, 0x3d02f757, 0x53b3cefa, 0x3ce44fb7,
363 0x54135c94, 0x3cc511d9, 0x5472b8a5, 0x3ca53e09,
364 0x54d1e242, 0x3c84d496, 0x5530d881, 0x3c63d5d1,
365 0x558f9a76, 0x3c42420a, 0x55ee2738, 0x3c201994,
366 0x564c7ddd, 0x3bfd5cc4, 0x56aa9d7e, 0x3bda0bf0,
367 0x57088531, 0x3bb6276e, 0x5766340f, 0x3b91af97,
368 0x57c3a931, 0x3b6ca4c4, 0x5820e3b0, 0x3b470753,
369 0x587de2a7, 0x3b20d79e, 0x58daa52f, 0x3afa1605,
370 0x59372a64, 0x3ad2c2e8, 0x59937161, 0x3aaadea6,
371 0x59ef7944, 0x3a8269a3, 0x5a4b4128, 0x3a596442,
372 0x5aa6c82b, 0x3a2fcee8, 0x5b020d6c, 0x3a05a9fd,
373 0x5b5d100a, 0x39daf5e8, 0x5bb7cf23, 0x39afb313,
374 0x5c1249d8, 0x3983e1e8, 0x5c6c7f4a, 0x395782d3,
375 0x5cc66e99, 0x392a9642, 0x5d2016e9, 0x38fd1ca4,
376 0x5d79775c, 0x38cf1669, 0x5dd28f15, 0x38a08402,
377 0x5e2b5d38, 0x387165e3, 0x5e83e0eb, 0x3841bc7f,
378 0x5edc1953, 0x3811884d, 0x5f340596, 0x37e0c9c3,
379 0x5f8ba4dc, 0x37af8159, 0x5fe2f64c, 0x377daf89,
380 0x6039f90f, 0x374b54ce, 0x6090ac4d, 0x371871a5,
381 0x60e70f32, 0x36e5068a, 0x613d20e8, 0x36b113fd,
382 0x6192e09b, 0x367c9a7e, 0x61e84d76, 0x36479a8e,
383 0x623d66a8, 0x361214b0, 0x62922b5e, 0x35dc0968,
384 0x62e69ac8, 0x35a5793c, 0x633ab414, 0x356e64b2,
385 0x638e7673, 0x3536cc52, 0x63e1e117, 0x34feb0a5,
386 0x6434f332, 0x34c61236, 0x6487abf7, 0x348cf190,
387 0x64da0a9a, 0x34534f41, 0x652c0e4f, 0x34192bd5,
388 0x657db64c, 0x33de87de, 0x65cf01c8, 0x33a363ec,
389 0x661feffa, 0x3367c090, 0x6670801a, 0x332b9e5e,
390 0x66c0b162, 0x32eefdea, 0x6710830c, 0x32b1dfc9,
391 0x675ff452, 0x32744493, 0x67af0472, 0x32362ce0,
392 0x67fdb2a7, 0x31f79948, 0x684bfe2f, 0x31b88a66,
393 0x6899e64a, 0x317900d6, 0x68e76a37, 0x3138fd35,
394 0x69348937, 0x30f8801f, 0x6981428c, 0x30b78a36,
395 0x69cd9578, 0x30761c18, 0x6a19813f, 0x30343667,
396 0x6a650525, 0x2ff1d9c7, 0x6ab02071, 0x2faf06da,
397 0x6afad269, 0x2f6bbe45, 0x6b451a55, 0x2f2800af,
398 0x6b8ef77d, 0x2ee3cebe, 0x6bd8692b, 0x2e9f291b,
399 0x6c216eaa, 0x2e5a1070, 0x6c6a0746, 0x2e148566,
400 0x6cb2324c, 0x2dce88aa, 0x6cf9ef09, 0x2d881ae8,
401 0x6d413ccd, 0x2d413ccd, 0x6d881ae8, 0x2cf9ef09,
402 0x6dce88aa, 0x2cb2324c, 0x6e148566, 0x2c6a0746,
403 0x6e5a1070, 0x2c216eaa, 0x6e9f291b, 0x2bd8692b,
404 0x6ee3cebe, 0x2b8ef77d, 0x6f2800af, 0x2b451a55,
405 0x6f6bbe45, 0x2afad269, 0x6faf06da, 0x2ab02071,
406 0x6ff1d9c7, 0x2a650525, 0x70343667, 0x2a19813f,
407 0x70761c18, 0x29cd9578, 0x70b78a36, 0x2981428c,
408 0x70f8801f, 0x29348937, 0x7138fd35, 0x28e76a37,
409 0x717900d6, 0x2899e64a, 0x71b88a66, 0x284bfe2f,
410 0x71f79948, 0x27fdb2a7, 0x72362ce0, 0x27af0472,
411 0x72744493, 0x275ff452, 0x72b1dfc9, 0x2710830c,
412 0x72eefdea, 0x26c0b162, 0x732b9e5e, 0x2670801a,
413 0x7367c090, 0x261feffa, 0x73a363ec, 0x25cf01c8,
414 0x73de87de, 0x257db64c, 0x74192bd5, 0x252c0e4f,
415 0x74534f41, 0x24da0a9a, 0x748cf190, 0x2487abf7,
416 0x74c61236, 0x2434f332, 0x74feb0a5, 0x23e1e117,
417 0x7536cc52, 0x238e7673, 0x756e64b2, 0x233ab414,
418 0x75a5793c, 0x22e69ac8, 0x75dc0968, 0x22922b5e,
419 0x761214b0, 0x223d66a8, 0x76479a8e, 0x21e84d76,
420 0x767c9a7e, 0x2192e09b, 0x76b113fd, 0x213d20e8,
421 0x76e5068a, 0x20e70f32, 0x771871a5, 0x2090ac4d,
422 0x774b54ce, 0x2039f90f, 0x777daf89, 0x1fe2f64c,
423 0x77af8159, 0x1f8ba4dc, 0x77e0c9c3, 0x1f340596,
424 0x7811884d, 0x1edc1953, 0x7841bc7f, 0x1e83e0eb,
425 0x787165e3, 0x1e2b5d38, 0x78a08402, 0x1dd28f15,
426 0x78cf1669, 0x1d79775c, 0x78fd1ca4, 0x1d2016e9,
427 0x792a9642, 0x1cc66e99, 0x795782d3, 0x1c6c7f4a,
428 0x7983e1e8, 0x1c1249d8, 0x79afb313, 0x1bb7cf23,
429 0x79daf5e8, 0x1b5d100a, 0x7a05a9fd, 0x1b020d6c,
430 0x7a2fcee8, 0x1aa6c82b, 0x7a596442, 0x1a4b4128,
431 0x7a8269a3, 0x19ef7944, 0x7aaadea6, 0x19937161,
432 0x7ad2c2e8, 0x19372a64, 0x7afa1605, 0x18daa52f,
433 0x7b20d79e, 0x187de2a7, 0x7b470753, 0x1820e3b0,
434 0x7b6ca4c4, 0x17c3a931, 0x7b91af97, 0x1766340f,
435 0x7bb6276e, 0x17088531, 0x7bda0bf0, 0x16aa9d7e,
436 0x7bfd5cc4, 0x164c7ddd, 0x7c201994, 0x15ee2738,
437 0x7c42420a, 0x158f9a76, 0x7c63d5d1, 0x1530d881,
438 0x7c84d496, 0x14d1e242, 0x7ca53e09, 0x1472b8a5,
439 0x7cc511d9, 0x14135c94, 0x7ce44fb7, 0x13b3cefa,
440 0x7d02f757, 0x135410c3, 0x7d21086c, 0x12f422db,
441 0x7d3e82ae, 0x1294062f, 0x7d5b65d2, 0x1233bbac,
442 0x7d77b192, 0x11d3443f, 0x7d9365a8, 0x1172a0d7,
443 0x7dae81cf, 0x1111d263, 0x7dc905c5, 0x10b0d9d0,
444 0x7de2f148, 0x104fb80e, 0x7dfc4418, 0xfee6e0d,
445 0x7e14fdf7, 0xf8cfcbe, 0x7e2d1ea8, 0xf2b650f,
446 0x7e44a5ef, 0xec9a7f3, 0x7e5b9392, 0xe67c65a,
447 0x7e71e759, 0xe05c135, 0x7e87a10c, 0xda39978,
448 0x7e9cc076, 0xd415013, 0x7eb14563, 0xcdee5f9,
449 0x7ec52fa0, 0xc7c5c1e, 0x7ed87efc, 0xc19b374,
450 0x7eeb3347, 0xbb6ecef, 0x7efd4c54, 0xb540982,
451 0x7f0ec9f5, 0xaf10a22, 0x7f1fabff, 0xa8defc3,
452 0x7f2ff24a, 0xa2abb59, 0x7f3f9cab, 0x9c76dd8,
453 0x7f4eaafe, 0x9640837, 0x7f5d1d1d, 0x9008b6a,
454 0x7f6af2e3, 0x89cf867, 0x7f782c30, 0x8395024,
455 0x7f84c8e2, 0x7d59396, 0x7f90c8da, 0x771c3b3,
456 0x7f9c2bfb, 0x70de172, 0x7fa6f228, 0x6a9edc9,
457 0x7fb11b48, 0x645e9af, 0x7fbaa740, 0x5e1d61b,
458 0x7fc395f9, 0x57db403, 0x7fcbe75e, 0x519845e,
459 0x7fd39b5a, 0x4b54825, 0x7fdab1d9, 0x451004d,
460 0x7fe12acb, 0x3ecadcf, 0x7fe7061f, 0x38851a2,
461 0x7fec43c7, 0x323ecbe, 0x7ff0e3b6, 0x2bf801a,
462 0x7ff4e5e0, 0x25b0caf, 0x7ff84a3c, 0x1f69373,
463 0x7ffb10c1, 0x192155f, 0x7ffd3969, 0x12d936c,
464 0x7ffec42d, 0xc90e90, 0x7fffb10b, 0x6487c4,
465 0x7fffffff, 0x0, 0x7fffb10b, 0xff9b783c,
466 0x7ffec42d, 0xff36f170, 0x7ffd3969, 0xfed26c94,
467 0x7ffb10c1, 0xfe6deaa1, 0x7ff84a3c, 0xfe096c8d,
468 0x7ff4e5e0, 0xfda4f351, 0x7ff0e3b6, 0xfd407fe6,
469 0x7fec43c7, 0xfcdc1342, 0x7fe7061f, 0xfc77ae5e,
470 0x7fe12acb, 0xfc135231, 0x7fdab1d9, 0xfbaeffb3,
471 0x7fd39b5a, 0xfb4ab7db, 0x7fcbe75e, 0xfae67ba2,
472 0x7fc395f9, 0xfa824bfd, 0x7fbaa740, 0xfa1e29e5,
473 0x7fb11b48, 0xf9ba1651, 0x7fa6f228, 0xf9561237,
474 0x7f9c2bfb, 0xf8f21e8e, 0x7f90c8da, 0xf88e3c4d,
475 0x7f84c8e2, 0xf82a6c6a, 0x7f782c30, 0xf7c6afdc,
476 0x7f6af2e3, 0xf7630799, 0x7f5d1d1d, 0xf6ff7496,
477 0x7f4eaafe, 0xf69bf7c9, 0x7f3f9cab, 0xf6389228,
478 0x7f2ff24a, 0xf5d544a7, 0x7f1fabff, 0xf572103d,
479 0x7f0ec9f5, 0xf50ef5de, 0x7efd4c54, 0xf4abf67e,
480 0x7eeb3347, 0xf4491311, 0x7ed87efc, 0xf3e64c8c,
481 0x7ec52fa0, 0xf383a3e2, 0x7eb14563, 0xf3211a07,
482 0x7e9cc076, 0xf2beafed, 0x7e87a10c, 0xf25c6688,
483 0x7e71e759, 0xf1fa3ecb, 0x7e5b9392, 0xf19839a6,
484 0x7e44a5ef, 0xf136580d, 0x7e2d1ea8, 0xf0d49af1,
485 0x7e14fdf7, 0xf0730342, 0x7dfc4418, 0xf01191f3,
486 0x7de2f148, 0xefb047f2, 0x7dc905c5, 0xef4f2630,
487 0x7dae81cf, 0xeeee2d9d, 0x7d9365a8, 0xee8d5f29,
488 0x7d77b192, 0xee2cbbc1, 0x7d5b65d2, 0xedcc4454,
489 0x7d3e82ae, 0xed6bf9d1, 0x7d21086c, 0xed0bdd25,
490 0x7d02f757, 0xecabef3d, 0x7ce44fb7, 0xec4c3106,
491 0x7cc511d9, 0xebeca36c, 0x7ca53e09, 0xeb8d475b,
492 0x7c84d496, 0xeb2e1dbe, 0x7c63d5d1, 0xeacf277f,
493 0x7c42420a, 0xea70658a, 0x7c201994, 0xea11d8c8,
494 0x7bfd5cc4, 0xe9b38223, 0x7bda0bf0, 0xe9556282,
495 0x7bb6276e, 0xe8f77acf, 0x7b91af97, 0xe899cbf1,
496 0x7b6ca4c4, 0xe83c56cf, 0x7b470753, 0xe7df1c50,
497 0x7b20d79e, 0xe7821d59, 0x7afa1605, 0xe7255ad1,
498 0x7ad2c2e8, 0xe6c8d59c, 0x7aaadea6, 0xe66c8e9f,
499 0x7a8269a3, 0xe61086bc, 0x7a596442, 0xe5b4bed8,
500 0x7a2fcee8, 0xe55937d5, 0x7a05a9fd, 0xe4fdf294,
501 0x79daf5e8, 0xe4a2eff6, 0x79afb313, 0xe44830dd,
502 0x7983e1e8, 0xe3edb628, 0x795782d3, 0xe39380b6,
503 0x792a9642, 0xe3399167, 0x78fd1ca4, 0xe2dfe917,
504 0x78cf1669, 0xe28688a4, 0x78a08402, 0xe22d70eb,
505 0x787165e3, 0xe1d4a2c8, 0x7841bc7f, 0xe17c1f15,
506 0x7811884d, 0xe123e6ad, 0x77e0c9c3, 0xe0cbfa6a,
507 0x77af8159, 0xe0745b24, 0x777daf89, 0xe01d09b4,
508 0x774b54ce, 0xdfc606f1, 0x771871a5, 0xdf6f53b3,
509 0x76e5068a, 0xdf18f0ce, 0x76b113fd, 0xdec2df18,
510 0x767c9a7e, 0xde6d1f65, 0x76479a8e, 0xde17b28a,
511 0x761214b0, 0xddc29958, 0x75dc0968, 0xdd6dd4a2,
512 0x75a5793c, 0xdd196538, 0x756e64b2, 0xdcc54bec,
513 0x7536cc52, 0xdc71898d, 0x74feb0a5, 0xdc1e1ee9,
514 0x74c61236, 0xdbcb0cce, 0x748cf190, 0xdb785409,
515 0x74534f41, 0xdb25f566, 0x74192bd5, 0xdad3f1b1,
516 0x73de87de, 0xda8249b4, 0x73a363ec, 0xda30fe38,
517 0x7367c090, 0xd9e01006, 0x732b9e5e, 0xd98f7fe6,
518 0x72eefdea, 0xd93f4e9e, 0x72b1dfc9, 0xd8ef7cf4,
519 0x72744493, 0xd8a00bae, 0x72362ce0, 0xd850fb8e,
520 0x71f79948, 0xd8024d59, 0x71b88a66, 0xd7b401d1,
521 0x717900d6, 0xd76619b6, 0x7138fd35, 0xd71895c9,
522 0x70f8801f, 0xd6cb76c9, 0x70b78a36, 0xd67ebd74,
523 0x70761c18, 0xd6326a88, 0x70343667, 0xd5e67ec1,
524 0x6ff1d9c7, 0xd59afadb, 0x6faf06da, 0xd54fdf8f,
525 0x6f6bbe45, 0xd5052d97, 0x6f2800af, 0xd4bae5ab,
526 0x6ee3cebe, 0xd4710883, 0x6e9f291b, 0xd42796d5,
527 0x6e5a1070, 0xd3de9156, 0x6e148566, 0xd395f8ba,
528 0x6dce88aa, 0xd34dcdb4, 0x6d881ae8, 0xd30610f7,
529 0x6d413ccd, 0xd2bec333, 0x6cf9ef09, 0xd277e518,
530 0x6cb2324c, 0xd2317756, 0x6c6a0746, 0xd1eb7a9a,
531 0x6c216eaa, 0xd1a5ef90, 0x6bd8692b, 0xd160d6e5,
532 0x6b8ef77d, 0xd11c3142, 0x6b451a55, 0xd0d7ff51,
533 0x6afad269, 0xd09441bb, 0x6ab02071, 0xd050f926,
534 0x6a650525, 0xd00e2639, 0x6a19813f, 0xcfcbc999,
535 0x69cd9578, 0xcf89e3e8, 0x6981428c, 0xcf4875ca,
536 0x69348937, 0xcf077fe1, 0x68e76a37, 0xcec702cb,
537 0x6899e64a, 0xce86ff2a, 0x684bfe2f, 0xce47759a,
538 0x67fdb2a7, 0xce0866b8, 0x67af0472, 0xcdc9d320,
539 0x675ff452, 0xcd8bbb6d, 0x6710830c, 0xcd4e2037,
540 0x66c0b162, 0xcd110216, 0x6670801a, 0xccd461a2,
541 0x661feffa, 0xcc983f70, 0x65cf01c8, 0xcc5c9c14,
542 0x657db64c, 0xcc217822, 0x652c0e4f, 0xcbe6d42b,
543 0x64da0a9a, 0xcbacb0bf, 0x6487abf7, 0xcb730e70,
544 0x6434f332, 0xcb39edca, 0x63e1e117, 0xcb014f5b,
545 0x638e7673, 0xcac933ae, 0x633ab414, 0xca919b4e,
546 0x62e69ac8, 0xca5a86c4, 0x62922b5e, 0xca23f698,
547 0x623d66a8, 0xc9edeb50, 0x61e84d76, 0xc9b86572,
548 0x6192e09b, 0xc9836582, 0x613d20e8, 0xc94eec03,
549 0x60e70f32, 0xc91af976, 0x6090ac4d, 0xc8e78e5b,
550 0x6039f90f, 0xc8b4ab32, 0x5fe2f64c, 0xc8825077,
551 0x5f8ba4dc, 0xc8507ea7, 0x5f340596, 0xc81f363d,
552 0x5edc1953, 0xc7ee77b3, 0x5e83e0eb, 0xc7be4381,
553 0x5e2b5d38, 0xc78e9a1d, 0x5dd28f15, 0xc75f7bfe,
554 0x5d79775c, 0xc730e997, 0x5d2016e9, 0xc702e35c,
555 0x5cc66e99, 0xc6d569be, 0x5c6c7f4a, 0xc6a87d2d,
556 0x5c1249d8, 0xc67c1e18, 0x5bb7cf23, 0xc6504ced,
557 0x5b5d100a, 0xc6250a18, 0x5b020d6c, 0xc5fa5603,
558 0x5aa6c82b, 0xc5d03118, 0x5a4b4128, 0xc5a69bbe,
559 0x59ef7944, 0xc57d965d, 0x59937161, 0xc555215a,
560 0x59372a64, 0xc52d3d18, 0x58daa52f, 0xc505e9fb,
561 0x587de2a7, 0xc4df2862, 0x5820e3b0, 0xc4b8f8ad,
562 0x57c3a931, 0xc4935b3c, 0x5766340f, 0xc46e5069,
563 0x57088531, 0xc449d892, 0x56aa9d7e, 0xc425f410,
564 0x564c7ddd, 0xc402a33c, 0x55ee2738, 0xc3dfe66c,
565 0x558f9a76, 0xc3bdbdf6, 0x5530d881, 0xc39c2a2f,
566 0x54d1e242, 0xc37b2b6a, 0x5472b8a5, 0xc35ac1f7,
567 0x54135c94, 0xc33aee27, 0x53b3cefa, 0xc31bb049,
568 0x535410c3, 0xc2fd08a9, 0x52f422db, 0xc2def794,
569 0x5294062f, 0xc2c17d52, 0x5233bbac, 0xc2a49a2e,
570 0x51d3443f, 0xc2884e6e, 0x5172a0d7, 0xc26c9a58,
571 0x5111d263, 0xc2517e31, 0x50b0d9d0, 0xc236fa3b,
572 0x504fb80e, 0xc21d0eb8, 0x4fee6e0d, 0xc203bbe8,
573 0x4f8cfcbe, 0xc1eb0209, 0x4f2b650f, 0xc1d2e158,
574 0x4ec9a7f3, 0xc1bb5a11, 0x4e67c65a, 0xc1a46c6e,
575 0x4e05c135, 0xc18e18a7, 0x4da39978, 0xc1785ef4,
576 0x4d415013, 0xc1633f8a, 0x4cdee5f9, 0xc14eba9d,
577 0x4c7c5c1e, 0xc13ad060, 0x4c19b374, 0xc1278104,
578 0x4bb6ecef, 0xc114ccb9, 0x4b540982, 0xc102b3ac,
579 0x4af10a22, 0xc0f1360b, 0x4a8defc3, 0xc0e05401,
580 0x4a2abb59, 0xc0d00db6, 0x49c76dd8, 0xc0c06355,
581 0x49640837, 0xc0b15502, 0x49008b6a, 0xc0a2e2e3,
582 0x489cf867, 0xc0950d1d, 0x48395024, 0xc087d3d0,
583 0x47d59396, 0xc07b371e, 0x4771c3b3, 0xc06f3726,
584 0x470de172, 0xc063d405, 0x46a9edc9, 0xc0590dd8,
585 0x4645e9af, 0xc04ee4b8, 0x45e1d61b, 0xc04558c0,
586 0x457db403, 0xc03c6a07, 0x4519845e, 0xc03418a2,
587 0x44b54825, 0xc02c64a6, 0x4451004d, 0xc0254e27,
588 0x43ecadcf, 0xc01ed535, 0x438851a2, 0xc018f9e1,
589 0x4323ecbe, 0xc013bc39, 0x42bf801a, 0xc00f1c4a,
590 0x425b0caf, 0xc00b1a20, 0x41f69373, 0xc007b5c4,
591 0x4192155f, 0xc004ef3f, 0x412d936c, 0xc002c697,
592 0x40c90e90, 0xc0013bd3, 0x406487c4, 0xc0004ef5
596 * @brief Initialization function for the Q31 RFFT/RIFFT.
597 * @param[in, out] *S points to an instance of the Q31 RFFT/RIFFT structure.
598 * @param[in, out] *S_CFFT points to an instance of the Q31 CFFT/CIFFT structure.
599 * @param[in] fftLenReal length of the FFT.
600 * @param[in] ifftFlagR flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform.
601 * @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output.
602 * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if <code>fftLenReal</code> is not a supported value.
606 * The parameter <code>fftLenReal</code> Specifies length of RFFT/RIFFT Process. Supported FFT Lengths are 128, 512, 2048.
608 * The parameter <code>ifftFlagR</code> controls whether a forward or inverse transform is computed.
609 * Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated.
611 * The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order.
612 * Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order.
614 * This function also initializes Twiddle factor table.
617 arm_status arm_rfft_init_q31(
618 arm_rfft_instance_q31 * S,
619 arm_cfft_radix4_instance_q31 * S_CFFT,
622 uint32_t bitReverseFlag)
624 /* Initialise the default arm status */
625 arm_status status = ARM_MATH_SUCCESS;
627 /* Initialize the Real FFT length */
628 S->fftLenReal = (uint16_t) fftLenReal;
630 /* Initialize the Complex FFT length */
631 S->fftLenBy2 = (uint16_t) fftLenReal / 2u;
633 /* Initialize the Twiddle coefficientA pointer */
634 S->pTwiddleAReal = (q31_t *) realCoefAQ31;
636 /* Initialize the Twiddle coefficientB pointer */
637 S->pTwiddleBReal = (q31_t *) realCoefBQ31;
639 /* Initialize the Flag for selection of RFFT or RIFFT */
640 S->ifftFlagR = (uint8_t) ifftFlagR;
642 /* Initialize the Flag for calculation Bit reversal or not */
643 S->bitReverseFlagR = (uint8_t) bitReverseFlag;
645 /* Initialization of coef modifier depending on the FFT length */
646 switch (S->fftLenReal)
649 S->twidCoefRModifier = 2u;
652 S->twidCoefRModifier = 8u;
655 /* Reporting argument error if rfftSize is not valid value */
656 status = ARM_MATH_ARGUMENT_ERROR;
660 /* Init Complex FFT Instance */
665 /* Initializes the CIFFT Module for fftLenreal/2 length */
666 arm_cfft_radix4_init_q31(S->pCfft, (uint16_t) S->fftLenBy2, 1u, 1u);
670 /* Initializes the CFFT Module for fftLenreal/2 length */
671 arm_cfft_radix4_init_q31(S->pCfft, (uint16_t) S->fftLenBy2, 0u, 1u);
674 /* return the status of RFFT Init function */
680 * @} end of RFFT_RIFFT group