arm_rfft_init_q31.c
681 lines
| 30.2 KiB
| text/x-c
|
CLexer
|
r41 | /* ---------------------------------------------------------------------- | ||
* Copyright (C) 2010 ARM Limited. All rights reserved. | ||||
* | ||||
* $Date: 15. July 2011 | ||||
* $Revision: V1.0.10 | ||||
* | ||||
* Project: CMSIS DSP Library | ||||
* Title: arm_rfft_init_q31.c | ||||
* | ||||
* Description: RFFT & RIFFT Q31 initialisation function | ||||
* | ||||
* Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 | ||||
* | ||||
* Version 1.0.10 2011/7/15 | ||||
* Big Endian support added and Merged M0 and M3/M4 Source code. | ||||
* | ||||
* Version 1.0.3 2010/11/29 | ||||
* Re-organized the CMSIS folders and updated documentation. | ||||
* | ||||
* Version 1.0.2 2010/11/11 | ||||
* Documentation updated. | ||||
* | ||||
* Version 1.0.1 2010/10/05 | ||||
* Production release and review comments incorporated. | ||||
* | ||||
* Version 1.0.0 2010/09/20 | ||||
* Production release and review comments incorporated | ||||
* | ||||
* Version 0.0.7 2010/06/10 | ||||
* Misra-C changes done | ||||
* -------------------------------------------------------------------- */ | ||||
#include "arm_math.h" | ||||
/** | ||||
* @ingroup groupTransforms | ||||
*/ | ||||
/** | ||||
* @addtogroup RFFT_RIFFT | ||||
* @{ | ||||
*/ | ||||
/** | ||||
* \par | ||||
* Generation floating point realCoefAQ31 array: | ||||
* \par | ||||
* n = 1024 | ||||
* <pre>for (i = 0; i < n; i++) | ||||
* { | ||||
* pATable[2 * i] = 0.5 * (1.0 - sin (2 * PI / (double) (2 * n) * (double) i)); | ||||
* pATable[2 * i + 1] = 0.5 * (-1.0 * cos (2 * PI / (double) (2 * n) * (double) i)); | ||||
* }</pre> | ||||
* \par | ||||
* Convert to fixed point Q31 format | ||||
* round(pATable[i] * pow(2, 31)) | ||||
*/ | ||||
const q31_t realCoefAQ31[1024] = { | ||||
0x40000000, 0xc0000000, 0x3f9b783c, 0xc0004ef5, | ||||
0x3f36f170, 0xc0013bd3, 0x3ed26c94, 0xc002c697, | ||||
0x3e6deaa1, 0xc004ef3f, 0x3e096c8d, 0xc007b5c4, | ||||
0x3da4f351, 0xc00b1a20, 0x3d407fe6, 0xc00f1c4a, | ||||
0x3cdc1342, 0xc013bc39, 0x3c77ae5e, 0xc018f9e1, | ||||
0x3c135231, 0xc01ed535, 0x3baeffb3, 0xc0254e27, | ||||
0x3b4ab7db, 0xc02c64a6, 0x3ae67ba2, 0xc03418a2, | ||||
0x3a824bfd, 0xc03c6a07, 0x3a1e29e5, 0xc04558c0, | ||||
0x39ba1651, 0xc04ee4b8, 0x39561237, 0xc0590dd8, | ||||
0x38f21e8e, 0xc063d405, 0x388e3c4d, 0xc06f3726, | ||||
0x382a6c6a, 0xc07b371e, 0x37c6afdc, 0xc087d3d0, | ||||
0x37630799, 0xc0950d1d, 0x36ff7496, 0xc0a2e2e3, | ||||
0x369bf7c9, 0xc0b15502, 0x36389228, 0xc0c06355, | ||||
0x35d544a7, 0xc0d00db6, 0x3572103d, 0xc0e05401, | ||||
0x350ef5de, 0xc0f1360b, 0x34abf67e, 0xc102b3ac, | ||||
0x34491311, 0xc114ccb9, 0x33e64c8c, 0xc1278104, | ||||
0x3383a3e2, 0xc13ad060, 0x33211a07, 0xc14eba9d, | ||||
0x32beafed, 0xc1633f8a, 0x325c6688, 0xc1785ef4, | ||||
0x31fa3ecb, 0xc18e18a7, 0x319839a6, 0xc1a46c6e, | ||||
0x3136580d, 0xc1bb5a11, 0x30d49af1, 0xc1d2e158, | ||||
0x30730342, 0xc1eb0209, 0x301191f3, 0xc203bbe8, | ||||
0x2fb047f2, 0xc21d0eb8, 0x2f4f2630, 0xc236fa3b, | ||||
0x2eee2d9d, 0xc2517e31, 0x2e8d5f29, 0xc26c9a58, | ||||
0x2e2cbbc1, 0xc2884e6e, 0x2dcc4454, 0xc2a49a2e, | ||||
0x2d6bf9d1, 0xc2c17d52, 0x2d0bdd25, 0xc2def794, | ||||
0x2cabef3d, 0xc2fd08a9, 0x2c4c3106, 0xc31bb049, | ||||
0x2beca36c, 0xc33aee27, 0x2b8d475b, 0xc35ac1f7, | ||||
0x2b2e1dbe, 0xc37b2b6a, 0x2acf277f, 0xc39c2a2f, | ||||
0x2a70658a, 0xc3bdbdf6, 0x2a11d8c8, 0xc3dfe66c, | ||||
0x29b38223, 0xc402a33c, 0x29556282, 0xc425f410, | ||||
0x28f77acf, 0xc449d892, 0x2899cbf1, 0xc46e5069, | ||||
0x283c56cf, 0xc4935b3c, 0x27df1c50, 0xc4b8f8ad, | ||||
0x27821d59, 0xc4df2862, 0x27255ad1, 0xc505e9fb, | ||||
0x26c8d59c, 0xc52d3d18, 0x266c8e9f, 0xc555215a, | ||||
0x261086bc, 0xc57d965d, 0x25b4bed8, 0xc5a69bbe, | ||||
0x255937d5, 0xc5d03118, 0x24fdf294, 0xc5fa5603, | ||||
0x24a2eff6, 0xc6250a18, 0x244830dd, 0xc6504ced, | ||||
0x23edb628, 0xc67c1e18, 0x239380b6, 0xc6a87d2d, | ||||
0x23399167, 0xc6d569be, 0x22dfe917, 0xc702e35c, | ||||
0x228688a4, 0xc730e997, 0x222d70eb, 0xc75f7bfe, | ||||
0x21d4a2c8, 0xc78e9a1d, 0x217c1f15, 0xc7be4381, | ||||
0x2123e6ad, 0xc7ee77b3, 0x20cbfa6a, 0xc81f363d, | ||||
0x20745b24, 0xc8507ea7, 0x201d09b4, 0xc8825077, | ||||
0x1fc606f1, 0xc8b4ab32, 0x1f6f53b3, 0xc8e78e5b, | ||||
0x1f18f0ce, 0xc91af976, 0x1ec2df18, 0xc94eec03, | ||||
0x1e6d1f65, 0xc9836582, 0x1e17b28a, 0xc9b86572, | ||||
0x1dc29958, 0xc9edeb50, 0x1d6dd4a2, 0xca23f698, | ||||
0x1d196538, 0xca5a86c4, 0x1cc54bec, 0xca919b4e, | ||||
0x1c71898d, 0xcac933ae, 0x1c1e1ee9, 0xcb014f5b, | ||||
0x1bcb0cce, 0xcb39edca, 0x1b785409, 0xcb730e70, | ||||
0x1b25f566, 0xcbacb0bf, 0x1ad3f1b1, 0xcbe6d42b, | ||||
0x1a8249b4, 0xcc217822, 0x1a30fe38, 0xcc5c9c14, | ||||
0x19e01006, 0xcc983f70, 0x198f7fe6, 0xccd461a2, | ||||
0x193f4e9e, 0xcd110216, 0x18ef7cf4, 0xcd4e2037, | ||||
0x18a00bae, 0xcd8bbb6d, 0x1850fb8e, 0xcdc9d320, | ||||
0x18024d59, 0xce0866b8, 0x17b401d1, 0xce47759a, | ||||
0x176619b6, 0xce86ff2a, 0x171895c9, 0xcec702cb, | ||||
0x16cb76c9, 0xcf077fe1, 0x167ebd74, 0xcf4875ca, | ||||
0x16326a88, 0xcf89e3e8, 0x15e67ec1, 0xcfcbc999, | ||||
0x159afadb, 0xd00e2639, 0x154fdf8f, 0xd050f926, | ||||
0x15052d97, 0xd09441bb, 0x14bae5ab, 0xd0d7ff51, | ||||
0x14710883, 0xd11c3142, 0x142796d5, 0xd160d6e5, | ||||
0x13de9156, 0xd1a5ef90, 0x1395f8ba, 0xd1eb7a9a, | ||||
0x134dcdb4, 0xd2317756, 0x130610f7, 0xd277e518, | ||||
0x12bec333, 0xd2bec333, 0x1277e518, 0xd30610f7, | ||||
0x12317756, 0xd34dcdb4, 0x11eb7a9a, 0xd395f8ba, | ||||
0x11a5ef90, 0xd3de9156, 0x1160d6e5, 0xd42796d5, | ||||
0x111c3142, 0xd4710883, 0x10d7ff51, 0xd4bae5ab, | ||||
0x109441bb, 0xd5052d97, 0x1050f926, 0xd54fdf8f, | ||||
0x100e2639, 0xd59afadb, 0xfcbc999, 0xd5e67ec1, | ||||
0xf89e3e8, 0xd6326a88, 0xf4875ca, 0xd67ebd74, | ||||
0xf077fe1, 0xd6cb76c9, 0xec702cb, 0xd71895c9, | ||||
0xe86ff2a, 0xd76619b6, 0xe47759a, 0xd7b401d1, | ||||
0xe0866b8, 0xd8024d59, 0xdc9d320, 0xd850fb8e, | ||||
0xd8bbb6d, 0xd8a00bae, 0xd4e2037, 0xd8ef7cf4, | ||||
0xd110216, 0xd93f4e9e, 0xcd461a2, 0xd98f7fe6, | ||||
0xc983f70, 0xd9e01006, 0xc5c9c14, 0xda30fe38, | ||||
0xc217822, 0xda8249b4, 0xbe6d42b, 0xdad3f1b1, | ||||
0xbacb0bf, 0xdb25f566, 0xb730e70, 0xdb785409, | ||||
0xb39edca, 0xdbcb0cce, 0xb014f5b, 0xdc1e1ee9, | ||||
0xac933ae, 0xdc71898d, 0xa919b4e, 0xdcc54bec, | ||||
0xa5a86c4, 0xdd196538, 0xa23f698, 0xdd6dd4a2, | ||||
0x9edeb50, 0xddc29958, 0x9b86572, 0xde17b28a, | ||||
0x9836582, 0xde6d1f65, 0x94eec03, 0xdec2df18, | ||||
0x91af976, 0xdf18f0ce, 0x8e78e5b, 0xdf6f53b3, | ||||
0x8b4ab32, 0xdfc606f1, 0x8825077, 0xe01d09b4, | ||||
0x8507ea7, 0xe0745b24, 0x81f363d, 0xe0cbfa6a, | ||||
0x7ee77b3, 0xe123e6ad, 0x7be4381, 0xe17c1f15, | ||||
0x78e9a1d, 0xe1d4a2c8, 0x75f7bfe, 0xe22d70eb, | ||||
0x730e997, 0xe28688a4, 0x702e35c, 0xe2dfe917, | ||||
0x6d569be, 0xe3399167, 0x6a87d2d, 0xe39380b6, | ||||
0x67c1e18, 0xe3edb628, 0x6504ced, 0xe44830dd, | ||||
0x6250a18, 0xe4a2eff6, 0x5fa5603, 0xe4fdf294, | ||||
0x5d03118, 0xe55937d5, 0x5a69bbe, 0xe5b4bed8, | ||||
0x57d965d, 0xe61086bc, 0x555215a, 0xe66c8e9f, | ||||
0x52d3d18, 0xe6c8d59c, 0x505e9fb, 0xe7255ad1, | ||||
0x4df2862, 0xe7821d59, 0x4b8f8ad, 0xe7df1c50, | ||||
0x4935b3c, 0xe83c56cf, 0x46e5069, 0xe899cbf1, | ||||
0x449d892, 0xe8f77acf, 0x425f410, 0xe9556282, | ||||
0x402a33c, 0xe9b38223, 0x3dfe66c, 0xea11d8c8, | ||||
0x3bdbdf6, 0xea70658a, 0x39c2a2f, 0xeacf277f, | ||||
0x37b2b6a, 0xeb2e1dbe, 0x35ac1f7, 0xeb8d475b, | ||||
0x33aee27, 0xebeca36c, 0x31bb049, 0xec4c3106, | ||||
0x2fd08a9, 0xecabef3d, 0x2def794, 0xed0bdd25, | ||||
0x2c17d52, 0xed6bf9d1, 0x2a49a2e, 0xedcc4454, | ||||
0x2884e6e, 0xee2cbbc1, 0x26c9a58, 0xee8d5f29, | ||||
0x2517e31, 0xeeee2d9d, 0x236fa3b, 0xef4f2630, | ||||
0x21d0eb8, 0xefb047f2, 0x203bbe8, 0xf01191f3, | ||||
0x1eb0209, 0xf0730342, 0x1d2e158, 0xf0d49af1, | ||||
0x1bb5a11, 0xf136580d, 0x1a46c6e, 0xf19839a6, | ||||
0x18e18a7, 0xf1fa3ecb, 0x1785ef4, 0xf25c6688, | ||||
0x1633f8a, 0xf2beafed, 0x14eba9d, 0xf3211a07, | ||||
0x13ad060, 0xf383a3e2, 0x1278104, 0xf3e64c8c, | ||||
0x114ccb9, 0xf4491311, 0x102b3ac, 0xf4abf67e, | ||||
0xf1360b, 0xf50ef5de, 0xe05401, 0xf572103d, | ||||
0xd00db6, 0xf5d544a7, 0xc06355, 0xf6389228, | ||||
0xb15502, 0xf69bf7c9, 0xa2e2e3, 0xf6ff7496, | ||||
0x950d1d, 0xf7630799, 0x87d3d0, 0xf7c6afdc, | ||||
0x7b371e, 0xf82a6c6a, 0x6f3726, 0xf88e3c4d, | ||||
0x63d405, 0xf8f21e8e, 0x590dd8, 0xf9561237, | ||||
0x4ee4b8, 0xf9ba1651, 0x4558c0, 0xfa1e29e5, | ||||
0x3c6a07, 0xfa824bfd, 0x3418a2, 0xfae67ba2, | ||||
0x2c64a6, 0xfb4ab7db, 0x254e27, 0xfbaeffb3, | ||||
0x1ed535, 0xfc135231, 0x18f9e1, 0xfc77ae5e, | ||||
0x13bc39, 0xfcdc1342, 0xf1c4a, 0xfd407fe6, | ||||
0xb1a20, 0xfda4f351, 0x7b5c4, 0xfe096c8d, | ||||
0x4ef3f, 0xfe6deaa1, 0x2c697, 0xfed26c94, | ||||
0x13bd3, 0xff36f170, 0x4ef5, 0xff9b783c, | ||||
0x0, 0x0, 0x4ef5, 0x6487c4, | ||||
0x13bd3, 0xc90e90, 0x2c697, 0x12d936c, | ||||
0x4ef3f, 0x192155f, 0x7b5c4, 0x1f69373, | ||||
0xb1a20, 0x25b0caf, 0xf1c4a, 0x2bf801a, | ||||
0x13bc39, 0x323ecbe, 0x18f9e1, 0x38851a2, | ||||
0x1ed535, 0x3ecadcf, 0x254e27, 0x451004d, | ||||
0x2c64a6, 0x4b54825, 0x3418a2, 0x519845e, | ||||
0x3c6a07, 0x57db403, 0x4558c0, 0x5e1d61b, | ||||
0x4ee4b8, 0x645e9af, 0x590dd8, 0x6a9edc9, | ||||
0x63d405, 0x70de172, 0x6f3726, 0x771c3b3, | ||||
0x7b371e, 0x7d59396, 0x87d3d0, 0x8395024, | ||||
0x950d1d, 0x89cf867, 0xa2e2e3, 0x9008b6a, | ||||
0xb15502, 0x9640837, 0xc06355, 0x9c76dd8, | ||||
0xd00db6, 0xa2abb59, 0xe05401, 0xa8defc3, | ||||
0xf1360b, 0xaf10a22, 0x102b3ac, 0xb540982, | ||||
0x114ccb9, 0xbb6ecef, 0x1278104, 0xc19b374, | ||||
0x13ad060, 0xc7c5c1e, 0x14eba9d, 0xcdee5f9, | ||||
0x1633f8a, 0xd415013, 0x1785ef4, 0xda39978, | ||||
0x18e18a7, 0xe05c135, 0x1a46c6e, 0xe67c65a, | ||||
0x1bb5a11, 0xec9a7f3, 0x1d2e158, 0xf2b650f, | ||||
0x1eb0209, 0xf8cfcbe, 0x203bbe8, 0xfee6e0d, | ||||
0x21d0eb8, 0x104fb80e, 0x236fa3b, 0x10b0d9d0, | ||||
0x2517e31, 0x1111d263, 0x26c9a58, 0x1172a0d7, | ||||
0x2884e6e, 0x11d3443f, 0x2a49a2e, 0x1233bbac, | ||||
0x2c17d52, 0x1294062f, 0x2def794, 0x12f422db, | ||||
0x2fd08a9, 0x135410c3, 0x31bb049, 0x13b3cefa, | ||||
0x33aee27, 0x14135c94, 0x35ac1f7, 0x1472b8a5, | ||||
0x37b2b6a, 0x14d1e242, 0x39c2a2f, 0x1530d881, | ||||
0x3bdbdf6, 0x158f9a76, 0x3dfe66c, 0x15ee2738, | ||||
0x402a33c, 0x164c7ddd, 0x425f410, 0x16aa9d7e, | ||||
0x449d892, 0x17088531, 0x46e5069, 0x1766340f, | ||||
0x4935b3c, 0x17c3a931, 0x4b8f8ad, 0x1820e3b0, | ||||
0x4df2862, 0x187de2a7, 0x505e9fb, 0x18daa52f, | ||||
0x52d3d18, 0x19372a64, 0x555215a, 0x19937161, | ||||
0x57d965d, 0x19ef7944, 0x5a69bbe, 0x1a4b4128, | ||||
0x5d03118, 0x1aa6c82b, 0x5fa5603, 0x1b020d6c, | ||||
0x6250a18, 0x1b5d100a, 0x6504ced, 0x1bb7cf23, | ||||
0x67c1e18, 0x1c1249d8, 0x6a87d2d, 0x1c6c7f4a, | ||||
0x6d569be, 0x1cc66e99, 0x702e35c, 0x1d2016e9, | ||||
0x730e997, 0x1d79775c, 0x75f7bfe, 0x1dd28f15, | ||||
0x78e9a1d, 0x1e2b5d38, 0x7be4381, 0x1e83e0eb, | ||||
0x7ee77b3, 0x1edc1953, 0x81f363d, 0x1f340596, | ||||
0x8507ea7, 0x1f8ba4dc, 0x8825077, 0x1fe2f64c, | ||||
0x8b4ab32, 0x2039f90f, 0x8e78e5b, 0x2090ac4d, | ||||
0x91af976, 0x20e70f32, 0x94eec03, 0x213d20e8, | ||||
0x9836582, 0x2192e09b, 0x9b86572, 0x21e84d76, | ||||
0x9edeb50, 0x223d66a8, 0xa23f698, 0x22922b5e, | ||||
0xa5a86c4, 0x22e69ac8, 0xa919b4e, 0x233ab414, | ||||
0xac933ae, 0x238e7673, 0xb014f5b, 0x23e1e117, | ||||
0xb39edca, 0x2434f332, 0xb730e70, 0x2487abf7, | ||||
0xbacb0bf, 0x24da0a9a, 0xbe6d42b, 0x252c0e4f, | ||||
0xc217822, 0x257db64c, 0xc5c9c14, 0x25cf01c8, | ||||
0xc983f70, 0x261feffa, 0xcd461a2, 0x2670801a, | ||||
0xd110216, 0x26c0b162, 0xd4e2037, 0x2710830c, | ||||
0xd8bbb6d, 0x275ff452, 0xdc9d320, 0x27af0472, | ||||
0xe0866b8, 0x27fdb2a7, 0xe47759a, 0x284bfe2f, | ||||
0xe86ff2a, 0x2899e64a, 0xec702cb, 0x28e76a37, | ||||
0xf077fe1, 0x29348937, 0xf4875ca, 0x2981428c, | ||||
0xf89e3e8, 0x29cd9578, 0xfcbc999, 0x2a19813f, | ||||
0x100e2639, 0x2a650525, 0x1050f926, 0x2ab02071, | ||||
0x109441bb, 0x2afad269, 0x10d7ff51, 0x2b451a55, | ||||
0x111c3142, 0x2b8ef77d, 0x1160d6e5, 0x2bd8692b, | ||||
0x11a5ef90, 0x2c216eaa, 0x11eb7a9a, 0x2c6a0746, | ||||
0x12317756, 0x2cb2324c, 0x1277e518, 0x2cf9ef09, | ||||
0x12bec333, 0x2d413ccd, 0x130610f7, 0x2d881ae8, | ||||
0x134dcdb4, 0x2dce88aa, 0x1395f8ba, 0x2e148566, | ||||
0x13de9156, 0x2e5a1070, 0x142796d5, 0x2e9f291b, | ||||
0x14710883, 0x2ee3cebe, 0x14bae5ab, 0x2f2800af, | ||||
0x15052d97, 0x2f6bbe45, 0x154fdf8f, 0x2faf06da, | ||||
0x159afadb, 0x2ff1d9c7, 0x15e67ec1, 0x30343667, | ||||
0x16326a88, 0x30761c18, 0x167ebd74, 0x30b78a36, | ||||
0x16cb76c9, 0x30f8801f, 0x171895c9, 0x3138fd35, | ||||
0x176619b6, 0x317900d6, 0x17b401d1, 0x31b88a66, | ||||
0x18024d59, 0x31f79948, 0x1850fb8e, 0x32362ce0, | ||||
0x18a00bae, 0x32744493, 0x18ef7cf4, 0x32b1dfc9, | ||||
0x193f4e9e, 0x32eefdea, 0x198f7fe6, 0x332b9e5e, | ||||
0x19e01006, 0x3367c090, 0x1a30fe38, 0x33a363ec, | ||||
0x1a8249b4, 0x33de87de, 0x1ad3f1b1, 0x34192bd5, | ||||
0x1b25f566, 0x34534f41, 0x1b785409, 0x348cf190, | ||||
0x1bcb0cce, 0x34c61236, 0x1c1e1ee9, 0x34feb0a5, | ||||
0x1c71898d, 0x3536cc52, 0x1cc54bec, 0x356e64b2, | ||||
0x1d196538, 0x35a5793c, 0x1d6dd4a2, 0x35dc0968, | ||||
0x1dc29958, 0x361214b0, 0x1e17b28a, 0x36479a8e, | ||||
0x1e6d1f65, 0x367c9a7e, 0x1ec2df18, 0x36b113fd, | ||||
0x1f18f0ce, 0x36e5068a, 0x1f6f53b3, 0x371871a5, | ||||
0x1fc606f1, 0x374b54ce, 0x201d09b4, 0x377daf89, | ||||
0x20745b24, 0x37af8159, 0x20cbfa6a, 0x37e0c9c3, | ||||
0x2123e6ad, 0x3811884d, 0x217c1f15, 0x3841bc7f, | ||||
0x21d4a2c8, 0x387165e3, 0x222d70eb, 0x38a08402, | ||||
0x228688a4, 0x38cf1669, 0x22dfe917, 0x38fd1ca4, | ||||
0x23399167, 0x392a9642, 0x239380b6, 0x395782d3, | ||||
0x23edb628, 0x3983e1e8, 0x244830dd, 0x39afb313, | ||||
0x24a2eff6, 0x39daf5e8, 0x24fdf294, 0x3a05a9fd, | ||||
0x255937d5, 0x3a2fcee8, 0x25b4bed8, 0x3a596442, | ||||
0x261086bc, 0x3a8269a3, 0x266c8e9f, 0x3aaadea6, | ||||
0x26c8d59c, 0x3ad2c2e8, 0x27255ad1, 0x3afa1605, | ||||
0x27821d59, 0x3b20d79e, 0x27df1c50, 0x3b470753, | ||||
0x283c56cf, 0x3b6ca4c4, 0x2899cbf1, 0x3b91af97, | ||||
0x28f77acf, 0x3bb6276e, 0x29556282, 0x3bda0bf0, | ||||
0x29b38223, 0x3bfd5cc4, 0x2a11d8c8, 0x3c201994, | ||||
0x2a70658a, 0x3c42420a, 0x2acf277f, 0x3c63d5d1, | ||||
0x2b2e1dbe, 0x3c84d496, 0x2b8d475b, 0x3ca53e09, | ||||
0x2beca36c, 0x3cc511d9, 0x2c4c3106, 0x3ce44fb7, | ||||
0x2cabef3d, 0x3d02f757, 0x2d0bdd25, 0x3d21086c, | ||||
0x2d6bf9d1, 0x3d3e82ae, 0x2dcc4454, 0x3d5b65d2, | ||||
0x2e2cbbc1, 0x3d77b192, 0x2e8d5f29, 0x3d9365a8, | ||||
0x2eee2d9d, 0x3dae81cf, 0x2f4f2630, 0x3dc905c5, | ||||
0x2fb047f2, 0x3de2f148, 0x301191f3, 0x3dfc4418, | ||||
0x30730342, 0x3e14fdf7, 0x30d49af1, 0x3e2d1ea8, | ||||
0x3136580d, 0x3e44a5ef, 0x319839a6, 0x3e5b9392, | ||||
0x31fa3ecb, 0x3e71e759, 0x325c6688, 0x3e87a10c, | ||||
0x32beafed, 0x3e9cc076, 0x33211a07, 0x3eb14563, | ||||
0x3383a3e2, 0x3ec52fa0, 0x33e64c8c, 0x3ed87efc, | ||||
0x34491311, 0x3eeb3347, 0x34abf67e, 0x3efd4c54, | ||||
0x350ef5de, 0x3f0ec9f5, 0x3572103d, 0x3f1fabff, | ||||
0x35d544a7, 0x3f2ff24a, 0x36389228, 0x3f3f9cab, | ||||
0x369bf7c9, 0x3f4eaafe, 0x36ff7496, 0x3f5d1d1d, | ||||
0x37630799, 0x3f6af2e3, 0x37c6afdc, 0x3f782c30, | ||||
0x382a6c6a, 0x3f84c8e2, 0x388e3c4d, 0x3f90c8da, | ||||
0x38f21e8e, 0x3f9c2bfb, 0x39561237, 0x3fa6f228, | ||||
0x39ba1651, 0x3fb11b48, 0x3a1e29e5, 0x3fbaa740, | ||||
0x3a824bfd, 0x3fc395f9, 0x3ae67ba2, 0x3fcbe75e, | ||||
0x3b4ab7db, 0x3fd39b5a, 0x3baeffb3, 0x3fdab1d9, | ||||
0x3c135231, 0x3fe12acb, 0x3c77ae5e, 0x3fe7061f, | ||||
0x3cdc1342, 0x3fec43c7, 0x3d407fe6, 0x3ff0e3b6, | ||||
0x3da4f351, 0x3ff4e5e0, 0x3e096c8d, 0x3ff84a3c, | ||||
0x3e6deaa1, 0x3ffb10c1, 0x3ed26c94, 0x3ffd3969, | ||||
0x3f36f170, 0x3ffec42d, 0x3f9b783c, 0x3fffb10b | ||||
}; | ||||
/** | ||||
* \par | ||||
* Generation of realCoefBQ31 array: | ||||
* \par | ||||
* n = 512 | ||||
* <pre>for (i = 0; i < n; i++) | ||||
* { | ||||
* pBTable[2 * i] = 0.5 * (1.0 + sin (2 * PI / (double) (2 * n) * (double) i)); | ||||
* pBTable[2 * i + 1] = 0.5 * (1.0 * cos (2 * PI / (double) (2 * n) * (double) i)); | ||||
* } </pre> | ||||
* \par | ||||
* Convert to fixed point Q31 format | ||||
* round(pBTable[i] * pow(2, 31)) | ||||
* | ||||
*/ | ||||
const q31_t realCoefBQ31[1024] = { | ||||
0x40000000, 0x40000000, 0x406487c4, 0x3fffb10b, | ||||
0x40c90e90, 0x3ffec42d, 0x412d936c, 0x3ffd3969, | ||||
0x4192155f, 0x3ffb10c1, 0x41f69373, 0x3ff84a3c, | ||||
0x425b0caf, 0x3ff4e5e0, 0x42bf801a, 0x3ff0e3b6, | ||||
0x4323ecbe, 0x3fec43c7, 0x438851a2, 0x3fe7061f, | ||||
0x43ecadcf, 0x3fe12acb, 0x4451004d, 0x3fdab1d9, | ||||
0x44b54825, 0x3fd39b5a, 0x4519845e, 0x3fcbe75e, | ||||
0x457db403, 0x3fc395f9, 0x45e1d61b, 0x3fbaa740, | ||||
0x4645e9af, 0x3fb11b48, 0x46a9edc9, 0x3fa6f228, | ||||
0x470de172, 0x3f9c2bfb, 0x4771c3b3, 0x3f90c8da, | ||||
0x47d59396, 0x3f84c8e2, 0x48395024, 0x3f782c30, | ||||
0x489cf867, 0x3f6af2e3, 0x49008b6a, 0x3f5d1d1d, | ||||
0x49640837, 0x3f4eaafe, 0x49c76dd8, 0x3f3f9cab, | ||||
0x4a2abb59, 0x3f2ff24a, 0x4a8defc3, 0x3f1fabff, | ||||
0x4af10a22, 0x3f0ec9f5, 0x4b540982, 0x3efd4c54, | ||||
0x4bb6ecef, 0x3eeb3347, 0x4c19b374, 0x3ed87efc, | ||||
0x4c7c5c1e, 0x3ec52fa0, 0x4cdee5f9, 0x3eb14563, | ||||
0x4d415013, 0x3e9cc076, 0x4da39978, 0x3e87a10c, | ||||
0x4e05c135, 0x3e71e759, 0x4e67c65a, 0x3e5b9392, | ||||
0x4ec9a7f3, 0x3e44a5ef, 0x4f2b650f, 0x3e2d1ea8, | ||||
0x4f8cfcbe, 0x3e14fdf7, 0x4fee6e0d, 0x3dfc4418, | ||||
0x504fb80e, 0x3de2f148, 0x50b0d9d0, 0x3dc905c5, | ||||
0x5111d263, 0x3dae81cf, 0x5172a0d7, 0x3d9365a8, | ||||
0x51d3443f, 0x3d77b192, 0x5233bbac, 0x3d5b65d2, | ||||
0x5294062f, 0x3d3e82ae, 0x52f422db, 0x3d21086c, | ||||
0x535410c3, 0x3d02f757, 0x53b3cefa, 0x3ce44fb7, | ||||
0x54135c94, 0x3cc511d9, 0x5472b8a5, 0x3ca53e09, | ||||
0x54d1e242, 0x3c84d496, 0x5530d881, 0x3c63d5d1, | ||||
0x558f9a76, 0x3c42420a, 0x55ee2738, 0x3c201994, | ||||
0x564c7ddd, 0x3bfd5cc4, 0x56aa9d7e, 0x3bda0bf0, | ||||
0x57088531, 0x3bb6276e, 0x5766340f, 0x3b91af97, | ||||
0x57c3a931, 0x3b6ca4c4, 0x5820e3b0, 0x3b470753, | ||||
0x587de2a7, 0x3b20d79e, 0x58daa52f, 0x3afa1605, | ||||
0x59372a64, 0x3ad2c2e8, 0x59937161, 0x3aaadea6, | ||||
0x59ef7944, 0x3a8269a3, 0x5a4b4128, 0x3a596442, | ||||
0x5aa6c82b, 0x3a2fcee8, 0x5b020d6c, 0x3a05a9fd, | ||||
0x5b5d100a, 0x39daf5e8, 0x5bb7cf23, 0x39afb313, | ||||
0x5c1249d8, 0x3983e1e8, 0x5c6c7f4a, 0x395782d3, | ||||
0x5cc66e99, 0x392a9642, 0x5d2016e9, 0x38fd1ca4, | ||||
0x5d79775c, 0x38cf1669, 0x5dd28f15, 0x38a08402, | ||||
0x5e2b5d38, 0x387165e3, 0x5e83e0eb, 0x3841bc7f, | ||||
0x5edc1953, 0x3811884d, 0x5f340596, 0x37e0c9c3, | ||||
0x5f8ba4dc, 0x37af8159, 0x5fe2f64c, 0x377daf89, | ||||
0x6039f90f, 0x374b54ce, 0x6090ac4d, 0x371871a5, | ||||
0x60e70f32, 0x36e5068a, 0x613d20e8, 0x36b113fd, | ||||
0x6192e09b, 0x367c9a7e, 0x61e84d76, 0x36479a8e, | ||||
0x623d66a8, 0x361214b0, 0x62922b5e, 0x35dc0968, | ||||
0x62e69ac8, 0x35a5793c, 0x633ab414, 0x356e64b2, | ||||
0x638e7673, 0x3536cc52, 0x63e1e117, 0x34feb0a5, | ||||
0x6434f332, 0x34c61236, 0x6487abf7, 0x348cf190, | ||||
0x64da0a9a, 0x34534f41, 0x652c0e4f, 0x34192bd5, | ||||
0x657db64c, 0x33de87de, 0x65cf01c8, 0x33a363ec, | ||||
0x661feffa, 0x3367c090, 0x6670801a, 0x332b9e5e, | ||||
0x66c0b162, 0x32eefdea, 0x6710830c, 0x32b1dfc9, | ||||
0x675ff452, 0x32744493, 0x67af0472, 0x32362ce0, | ||||
0x67fdb2a7, 0x31f79948, 0x684bfe2f, 0x31b88a66, | ||||
0x6899e64a, 0x317900d6, 0x68e76a37, 0x3138fd35, | ||||
0x69348937, 0x30f8801f, 0x6981428c, 0x30b78a36, | ||||
0x69cd9578, 0x30761c18, 0x6a19813f, 0x30343667, | ||||
0x6a650525, 0x2ff1d9c7, 0x6ab02071, 0x2faf06da, | ||||
0x6afad269, 0x2f6bbe45, 0x6b451a55, 0x2f2800af, | ||||
0x6b8ef77d, 0x2ee3cebe, 0x6bd8692b, 0x2e9f291b, | ||||
0x6c216eaa, 0x2e5a1070, 0x6c6a0746, 0x2e148566, | ||||
0x6cb2324c, 0x2dce88aa, 0x6cf9ef09, 0x2d881ae8, | ||||
0x6d413ccd, 0x2d413ccd, 0x6d881ae8, 0x2cf9ef09, | ||||
0x6dce88aa, 0x2cb2324c, 0x6e148566, 0x2c6a0746, | ||||
0x6e5a1070, 0x2c216eaa, 0x6e9f291b, 0x2bd8692b, | ||||
0x6ee3cebe, 0x2b8ef77d, 0x6f2800af, 0x2b451a55, | ||||
0x6f6bbe45, 0x2afad269, 0x6faf06da, 0x2ab02071, | ||||
0x6ff1d9c7, 0x2a650525, 0x70343667, 0x2a19813f, | ||||
0x70761c18, 0x29cd9578, 0x70b78a36, 0x2981428c, | ||||
0x70f8801f, 0x29348937, 0x7138fd35, 0x28e76a37, | ||||
0x717900d6, 0x2899e64a, 0x71b88a66, 0x284bfe2f, | ||||
0x71f79948, 0x27fdb2a7, 0x72362ce0, 0x27af0472, | ||||
0x72744493, 0x275ff452, 0x72b1dfc9, 0x2710830c, | ||||
0x72eefdea, 0x26c0b162, 0x732b9e5e, 0x2670801a, | ||||
0x7367c090, 0x261feffa, 0x73a363ec, 0x25cf01c8, | ||||
0x73de87de, 0x257db64c, 0x74192bd5, 0x252c0e4f, | ||||
0x74534f41, 0x24da0a9a, 0x748cf190, 0x2487abf7, | ||||
0x74c61236, 0x2434f332, 0x74feb0a5, 0x23e1e117, | ||||
0x7536cc52, 0x238e7673, 0x756e64b2, 0x233ab414, | ||||
0x75a5793c, 0x22e69ac8, 0x75dc0968, 0x22922b5e, | ||||
0x761214b0, 0x223d66a8, 0x76479a8e, 0x21e84d76, | ||||
0x767c9a7e, 0x2192e09b, 0x76b113fd, 0x213d20e8, | ||||
0x76e5068a, 0x20e70f32, 0x771871a5, 0x2090ac4d, | ||||
0x774b54ce, 0x2039f90f, 0x777daf89, 0x1fe2f64c, | ||||
0x77af8159, 0x1f8ba4dc, 0x77e0c9c3, 0x1f340596, | ||||
0x7811884d, 0x1edc1953, 0x7841bc7f, 0x1e83e0eb, | ||||
0x787165e3, 0x1e2b5d38, 0x78a08402, 0x1dd28f15, | ||||
0x78cf1669, 0x1d79775c, 0x78fd1ca4, 0x1d2016e9, | ||||
0x792a9642, 0x1cc66e99, 0x795782d3, 0x1c6c7f4a, | ||||
0x7983e1e8, 0x1c1249d8, 0x79afb313, 0x1bb7cf23, | ||||
0x79daf5e8, 0x1b5d100a, 0x7a05a9fd, 0x1b020d6c, | ||||
0x7a2fcee8, 0x1aa6c82b, 0x7a596442, 0x1a4b4128, | ||||
0x7a8269a3, 0x19ef7944, 0x7aaadea6, 0x19937161, | ||||
0x7ad2c2e8, 0x19372a64, 0x7afa1605, 0x18daa52f, | ||||
0x7b20d79e, 0x187de2a7, 0x7b470753, 0x1820e3b0, | ||||
0x7b6ca4c4, 0x17c3a931, 0x7b91af97, 0x1766340f, | ||||
0x7bb6276e, 0x17088531, 0x7bda0bf0, 0x16aa9d7e, | ||||
0x7bfd5cc4, 0x164c7ddd, 0x7c201994, 0x15ee2738, | ||||
0x7c42420a, 0x158f9a76, 0x7c63d5d1, 0x1530d881, | ||||
0x7c84d496, 0x14d1e242, 0x7ca53e09, 0x1472b8a5, | ||||
0x7cc511d9, 0x14135c94, 0x7ce44fb7, 0x13b3cefa, | ||||
0x7d02f757, 0x135410c3, 0x7d21086c, 0x12f422db, | ||||
0x7d3e82ae, 0x1294062f, 0x7d5b65d2, 0x1233bbac, | ||||
0x7d77b192, 0x11d3443f, 0x7d9365a8, 0x1172a0d7, | ||||
0x7dae81cf, 0x1111d263, 0x7dc905c5, 0x10b0d9d0, | ||||
0x7de2f148, 0x104fb80e, 0x7dfc4418, 0xfee6e0d, | ||||
0x7e14fdf7, 0xf8cfcbe, 0x7e2d1ea8, 0xf2b650f, | ||||
0x7e44a5ef, 0xec9a7f3, 0x7e5b9392, 0xe67c65a, | ||||
0x7e71e759, 0xe05c135, 0x7e87a10c, 0xda39978, | ||||
0x7e9cc076, 0xd415013, 0x7eb14563, 0xcdee5f9, | ||||
0x7ec52fa0, 0xc7c5c1e, 0x7ed87efc, 0xc19b374, | ||||
0x7eeb3347, 0xbb6ecef, 0x7efd4c54, 0xb540982, | ||||
0x7f0ec9f5, 0xaf10a22, 0x7f1fabff, 0xa8defc3, | ||||
0x7f2ff24a, 0xa2abb59, 0x7f3f9cab, 0x9c76dd8, | ||||
0x7f4eaafe, 0x9640837, 0x7f5d1d1d, 0x9008b6a, | ||||
0x7f6af2e3, 0x89cf867, 0x7f782c30, 0x8395024, | ||||
0x7f84c8e2, 0x7d59396, 0x7f90c8da, 0x771c3b3, | ||||
0x7f9c2bfb, 0x70de172, 0x7fa6f228, 0x6a9edc9, | ||||
0x7fb11b48, 0x645e9af, 0x7fbaa740, 0x5e1d61b, | ||||
0x7fc395f9, 0x57db403, 0x7fcbe75e, 0x519845e, | ||||
0x7fd39b5a, 0x4b54825, 0x7fdab1d9, 0x451004d, | ||||
0x7fe12acb, 0x3ecadcf, 0x7fe7061f, 0x38851a2, | ||||
0x7fec43c7, 0x323ecbe, 0x7ff0e3b6, 0x2bf801a, | ||||
0x7ff4e5e0, 0x25b0caf, 0x7ff84a3c, 0x1f69373, | ||||
0x7ffb10c1, 0x192155f, 0x7ffd3969, 0x12d936c, | ||||
0x7ffec42d, 0xc90e90, 0x7fffb10b, 0x6487c4, | ||||
0x7fffffff, 0x0, 0x7fffb10b, 0xff9b783c, | ||||
0x7ffec42d, 0xff36f170, 0x7ffd3969, 0xfed26c94, | ||||
0x7ffb10c1, 0xfe6deaa1, 0x7ff84a3c, 0xfe096c8d, | ||||
0x7ff4e5e0, 0xfda4f351, 0x7ff0e3b6, 0xfd407fe6, | ||||
0x7fec43c7, 0xfcdc1342, 0x7fe7061f, 0xfc77ae5e, | ||||
0x7fe12acb, 0xfc135231, 0x7fdab1d9, 0xfbaeffb3, | ||||
0x7fd39b5a, 0xfb4ab7db, 0x7fcbe75e, 0xfae67ba2, | ||||
0x7fc395f9, 0xfa824bfd, 0x7fbaa740, 0xfa1e29e5, | ||||
0x7fb11b48, 0xf9ba1651, 0x7fa6f228, 0xf9561237, | ||||
0x7f9c2bfb, 0xf8f21e8e, 0x7f90c8da, 0xf88e3c4d, | ||||
0x7f84c8e2, 0xf82a6c6a, 0x7f782c30, 0xf7c6afdc, | ||||
0x7f6af2e3, 0xf7630799, 0x7f5d1d1d, 0xf6ff7496, | ||||
0x7f4eaafe, 0xf69bf7c9, 0x7f3f9cab, 0xf6389228, | ||||
0x7f2ff24a, 0xf5d544a7, 0x7f1fabff, 0xf572103d, | ||||
0x7f0ec9f5, 0xf50ef5de, 0x7efd4c54, 0xf4abf67e, | ||||
0x7eeb3347, 0xf4491311, 0x7ed87efc, 0xf3e64c8c, | ||||
0x7ec52fa0, 0xf383a3e2, 0x7eb14563, 0xf3211a07, | ||||
0x7e9cc076, 0xf2beafed, 0x7e87a10c, 0xf25c6688, | ||||
0x7e71e759, 0xf1fa3ecb, 0x7e5b9392, 0xf19839a6, | ||||
0x7e44a5ef, 0xf136580d, 0x7e2d1ea8, 0xf0d49af1, | ||||
0x7e14fdf7, 0xf0730342, 0x7dfc4418, 0xf01191f3, | ||||
0x7de2f148, 0xefb047f2, 0x7dc905c5, 0xef4f2630, | ||||
0x7dae81cf, 0xeeee2d9d, 0x7d9365a8, 0xee8d5f29, | ||||
0x7d77b192, 0xee2cbbc1, 0x7d5b65d2, 0xedcc4454, | ||||
0x7d3e82ae, 0xed6bf9d1, 0x7d21086c, 0xed0bdd25, | ||||
0x7d02f757, 0xecabef3d, 0x7ce44fb7, 0xec4c3106, | ||||
0x7cc511d9, 0xebeca36c, 0x7ca53e09, 0xeb8d475b, | ||||
0x7c84d496, 0xeb2e1dbe, 0x7c63d5d1, 0xeacf277f, | ||||
0x7c42420a, 0xea70658a, 0x7c201994, 0xea11d8c8, | ||||
0x7bfd5cc4, 0xe9b38223, 0x7bda0bf0, 0xe9556282, | ||||
0x7bb6276e, 0xe8f77acf, 0x7b91af97, 0xe899cbf1, | ||||
0x7b6ca4c4, 0xe83c56cf, 0x7b470753, 0xe7df1c50, | ||||
0x7b20d79e, 0xe7821d59, 0x7afa1605, 0xe7255ad1, | ||||
0x7ad2c2e8, 0xe6c8d59c, 0x7aaadea6, 0xe66c8e9f, | ||||
0x7a8269a3, 0xe61086bc, 0x7a596442, 0xe5b4bed8, | ||||
0x7a2fcee8, 0xe55937d5, 0x7a05a9fd, 0xe4fdf294, | ||||
0x79daf5e8, 0xe4a2eff6, 0x79afb313, 0xe44830dd, | ||||
0x7983e1e8, 0xe3edb628, 0x795782d3, 0xe39380b6, | ||||
0x792a9642, 0xe3399167, 0x78fd1ca4, 0xe2dfe917, | ||||
0x78cf1669, 0xe28688a4, 0x78a08402, 0xe22d70eb, | ||||
0x787165e3, 0xe1d4a2c8, 0x7841bc7f, 0xe17c1f15, | ||||
0x7811884d, 0xe123e6ad, 0x77e0c9c3, 0xe0cbfa6a, | ||||
0x77af8159, 0xe0745b24, 0x777daf89, 0xe01d09b4, | ||||
0x774b54ce, 0xdfc606f1, 0x771871a5, 0xdf6f53b3, | ||||
0x76e5068a, 0xdf18f0ce, 0x76b113fd, 0xdec2df18, | ||||
0x767c9a7e, 0xde6d1f65, 0x76479a8e, 0xde17b28a, | ||||
0x761214b0, 0xddc29958, 0x75dc0968, 0xdd6dd4a2, | ||||
0x75a5793c, 0xdd196538, 0x756e64b2, 0xdcc54bec, | ||||
0x7536cc52, 0xdc71898d, 0x74feb0a5, 0xdc1e1ee9, | ||||
0x74c61236, 0xdbcb0cce, 0x748cf190, 0xdb785409, | ||||
0x74534f41, 0xdb25f566, 0x74192bd5, 0xdad3f1b1, | ||||
0x73de87de, 0xda8249b4, 0x73a363ec, 0xda30fe38, | ||||
0x7367c090, 0xd9e01006, 0x732b9e5e, 0xd98f7fe6, | ||||
0x72eefdea, 0xd93f4e9e, 0x72b1dfc9, 0xd8ef7cf4, | ||||
0x72744493, 0xd8a00bae, 0x72362ce0, 0xd850fb8e, | ||||
0x71f79948, 0xd8024d59, 0x71b88a66, 0xd7b401d1, | ||||
0x717900d6, 0xd76619b6, 0x7138fd35, 0xd71895c9, | ||||
0x70f8801f, 0xd6cb76c9, 0x70b78a36, 0xd67ebd74, | ||||
0x70761c18, 0xd6326a88, 0x70343667, 0xd5e67ec1, | ||||
0x6ff1d9c7, 0xd59afadb, 0x6faf06da, 0xd54fdf8f, | ||||
0x6f6bbe45, 0xd5052d97, 0x6f2800af, 0xd4bae5ab, | ||||
0x6ee3cebe, 0xd4710883, 0x6e9f291b, 0xd42796d5, | ||||
0x6e5a1070, 0xd3de9156, 0x6e148566, 0xd395f8ba, | ||||
0x6dce88aa, 0xd34dcdb4, 0x6d881ae8, 0xd30610f7, | ||||
0x6d413ccd, 0xd2bec333, 0x6cf9ef09, 0xd277e518, | ||||
0x6cb2324c, 0xd2317756, 0x6c6a0746, 0xd1eb7a9a, | ||||
0x6c216eaa, 0xd1a5ef90, 0x6bd8692b, 0xd160d6e5, | ||||
0x6b8ef77d, 0xd11c3142, 0x6b451a55, 0xd0d7ff51, | ||||
0x6afad269, 0xd09441bb, 0x6ab02071, 0xd050f926, | ||||
0x6a650525, 0xd00e2639, 0x6a19813f, 0xcfcbc999, | ||||
0x69cd9578, 0xcf89e3e8, 0x6981428c, 0xcf4875ca, | ||||
0x69348937, 0xcf077fe1, 0x68e76a37, 0xcec702cb, | ||||
0x6899e64a, 0xce86ff2a, 0x684bfe2f, 0xce47759a, | ||||
0x67fdb2a7, 0xce0866b8, 0x67af0472, 0xcdc9d320, | ||||
0x675ff452, 0xcd8bbb6d, 0x6710830c, 0xcd4e2037, | ||||
0x66c0b162, 0xcd110216, 0x6670801a, 0xccd461a2, | ||||
0x661feffa, 0xcc983f70, 0x65cf01c8, 0xcc5c9c14, | ||||
0x657db64c, 0xcc217822, 0x652c0e4f, 0xcbe6d42b, | ||||
0x64da0a9a, 0xcbacb0bf, 0x6487abf7, 0xcb730e70, | ||||
0x6434f332, 0xcb39edca, 0x63e1e117, 0xcb014f5b, | ||||
0x638e7673, 0xcac933ae, 0x633ab414, 0xca919b4e, | ||||
0x62e69ac8, 0xca5a86c4, 0x62922b5e, 0xca23f698, | ||||
0x623d66a8, 0xc9edeb50, 0x61e84d76, 0xc9b86572, | ||||
0x6192e09b, 0xc9836582, 0x613d20e8, 0xc94eec03, | ||||
0x60e70f32, 0xc91af976, 0x6090ac4d, 0xc8e78e5b, | ||||
0x6039f90f, 0xc8b4ab32, 0x5fe2f64c, 0xc8825077, | ||||
0x5f8ba4dc, 0xc8507ea7, 0x5f340596, 0xc81f363d, | ||||
0x5edc1953, 0xc7ee77b3, 0x5e83e0eb, 0xc7be4381, | ||||
0x5e2b5d38, 0xc78e9a1d, 0x5dd28f15, 0xc75f7bfe, | ||||
0x5d79775c, 0xc730e997, 0x5d2016e9, 0xc702e35c, | ||||
0x5cc66e99, 0xc6d569be, 0x5c6c7f4a, 0xc6a87d2d, | ||||
0x5c1249d8, 0xc67c1e18, 0x5bb7cf23, 0xc6504ced, | ||||
0x5b5d100a, 0xc6250a18, 0x5b020d6c, 0xc5fa5603, | ||||
0x5aa6c82b, 0xc5d03118, 0x5a4b4128, 0xc5a69bbe, | ||||
0x59ef7944, 0xc57d965d, 0x59937161, 0xc555215a, | ||||
0x59372a64, 0xc52d3d18, 0x58daa52f, 0xc505e9fb, | ||||
0x587de2a7, 0xc4df2862, 0x5820e3b0, 0xc4b8f8ad, | ||||
0x57c3a931, 0xc4935b3c, 0x5766340f, 0xc46e5069, | ||||
0x57088531, 0xc449d892, 0x56aa9d7e, 0xc425f410, | ||||
0x564c7ddd, 0xc402a33c, 0x55ee2738, 0xc3dfe66c, | ||||
0x558f9a76, 0xc3bdbdf6, 0x5530d881, 0xc39c2a2f, | ||||
0x54d1e242, 0xc37b2b6a, 0x5472b8a5, 0xc35ac1f7, | ||||
0x54135c94, 0xc33aee27, 0x53b3cefa, 0xc31bb049, | ||||
0x535410c3, 0xc2fd08a9, 0x52f422db, 0xc2def794, | ||||
0x5294062f, 0xc2c17d52, 0x5233bbac, 0xc2a49a2e, | ||||
0x51d3443f, 0xc2884e6e, 0x5172a0d7, 0xc26c9a58, | ||||
0x5111d263, 0xc2517e31, 0x50b0d9d0, 0xc236fa3b, | ||||
0x504fb80e, 0xc21d0eb8, 0x4fee6e0d, 0xc203bbe8, | ||||
0x4f8cfcbe, 0xc1eb0209, 0x4f2b650f, 0xc1d2e158, | ||||
0x4ec9a7f3, 0xc1bb5a11, 0x4e67c65a, 0xc1a46c6e, | ||||
0x4e05c135, 0xc18e18a7, 0x4da39978, 0xc1785ef4, | ||||
0x4d415013, 0xc1633f8a, 0x4cdee5f9, 0xc14eba9d, | ||||
0x4c7c5c1e, 0xc13ad060, 0x4c19b374, 0xc1278104, | ||||
0x4bb6ecef, 0xc114ccb9, 0x4b540982, 0xc102b3ac, | ||||
0x4af10a22, 0xc0f1360b, 0x4a8defc3, 0xc0e05401, | ||||
0x4a2abb59, 0xc0d00db6, 0x49c76dd8, 0xc0c06355, | ||||
0x49640837, 0xc0b15502, 0x49008b6a, 0xc0a2e2e3, | ||||
0x489cf867, 0xc0950d1d, 0x48395024, 0xc087d3d0, | ||||
0x47d59396, 0xc07b371e, 0x4771c3b3, 0xc06f3726, | ||||
0x470de172, 0xc063d405, 0x46a9edc9, 0xc0590dd8, | ||||
0x4645e9af, 0xc04ee4b8, 0x45e1d61b, 0xc04558c0, | ||||
0x457db403, 0xc03c6a07, 0x4519845e, 0xc03418a2, | ||||
0x44b54825, 0xc02c64a6, 0x4451004d, 0xc0254e27, | ||||
0x43ecadcf, 0xc01ed535, 0x438851a2, 0xc018f9e1, | ||||
0x4323ecbe, 0xc013bc39, 0x42bf801a, 0xc00f1c4a, | ||||
0x425b0caf, 0xc00b1a20, 0x41f69373, 0xc007b5c4, | ||||
0x4192155f, 0xc004ef3f, 0x412d936c, 0xc002c697, | ||||
0x40c90e90, 0xc0013bd3, 0x406487c4, 0xc0004ef5 | ||||
}; | ||||
/** | ||||
* @brief Initialization function for the Q31 RFFT/RIFFT. | ||||
* @param[in, out] *S points to an instance of the Q31 RFFT/RIFFT structure. | ||||
* @param[in, out] *S_CFFT points to an instance of the Q31 CFFT/CIFFT structure. | ||||
* @param[in] fftLenReal length of the FFT. | ||||
* @param[in] ifftFlagR flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. | ||||
* @param[in] bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. | ||||
* @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. | ||||
* | ||||
* \par Description: | ||||
* \par | ||||
* The parameter <code>fftLenReal</code> Specifies length of RFFT/RIFFT Process. Supported FFT Lengths are 128, 512, 2048. | ||||
* \par | ||||
* The parameter <code>ifftFlagR</code> controls whether a forward or inverse transform is computed. | ||||
* Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. | ||||
* \par | ||||
* The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order. | ||||
* Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. | ||||
* \par | ||||
* This function also initializes Twiddle factor table. | ||||
*/ | ||||
arm_status arm_rfft_init_q31( | ||||
arm_rfft_instance_q31 * S, | ||||
arm_cfft_radix4_instance_q31 * S_CFFT, | ||||
uint32_t fftLenReal, | ||||
uint32_t ifftFlagR, | ||||
uint32_t bitReverseFlag) | ||||
{ | ||||
/* Initialise the default arm status */ | ||||
arm_status status = ARM_MATH_SUCCESS; | ||||
/* Initialize the Real FFT length */ | ||||
S->fftLenReal = (uint16_t) fftLenReal; | ||||
/* Initialize the Complex FFT length */ | ||||
S->fftLenBy2 = (uint16_t) fftLenReal / 2u; | ||||
/* Initialize the Twiddle coefficientA pointer */ | ||||
S->pTwiddleAReal = (q31_t *) realCoefAQ31; | ||||
/* Initialize the Twiddle coefficientB pointer */ | ||||
S->pTwiddleBReal = (q31_t *) realCoefBQ31; | ||||
/* Initialize the Flag for selection of RFFT or RIFFT */ | ||||
S->ifftFlagR = (uint8_t) ifftFlagR; | ||||
/* Initialize the Flag for calculation Bit reversal or not */ | ||||
S->bitReverseFlagR = (uint8_t) bitReverseFlag; | ||||
/* Initialization of coef modifier depending on the FFT length */ | ||||
switch (S->fftLenReal) | ||||
{ | ||||
case 512u: | ||||
S->twidCoefRModifier = 2u; | ||||
break; | ||||
case 128u: | ||||
S->twidCoefRModifier = 8u; | ||||
break; | ||||
default: | ||||
/* Reporting argument error if rfftSize is not valid value */ | ||||
status = ARM_MATH_ARGUMENT_ERROR; | ||||
break; | ||||
} | ||||
/* Init Complex FFT Instance */ | ||||
S->pCfft = S_CFFT; | ||||
if(S->ifftFlagR) | ||||
{ | ||||
/* Initializes the CIFFT Module for fftLenreal/2 length */ | ||||
arm_cfft_radix4_init_q31(S->pCfft, (uint16_t) S->fftLenBy2, 1u, 1u); | ||||
} | ||||
else | ||||
{ | ||||
/* Initializes the CFFT Module for fftLenreal/2 length */ | ||||
arm_cfft_radix4_init_q31(S->pCfft, (uint16_t) S->fftLenBy2, 0u, 1u); | ||||
} | ||||
/* return the status of RFFT Init function */ | ||||
return (status); | ||||
} | ||||
/** | ||||
* @} end of RFFT_RIFFT group | ||||
*/ | ||||