/* * THIS FILE IS GENERATED AUTOMATICALLY BY ./gentbl, DO NOT EDIT! */ /* * psk4800 specific tables */ #define PSK48_TXF_OVERSAMPLING 5 #define PSK48_TXF_NUMSAMPLES 16 #define PSK48_SAMPLERATE 8000 #define PSK48_CAR_FREQ 2000 #define PSK48_PSK_LEN 5 #define PSK48_RXF_LEN 64 #define PSK48_PHASEINC (0x10000*PSK48_CAR_FREQ/PSK48_SAMPLERATE) #define PSK48_SPHASEINC (0x10000/(2*PSK48_PSK_LEN)) static const short psk48_tx_table[PSK48_TXF_OVERSAMPLING*PSK48_TXF_NUMSAMPLES*8*2] = { -12, -8, 0, 8, 12, 8, 0, -8, 0, -8, -12, -8, 0, 8, 12, 8, -20, -14, 0, 14, 20, 14, 0, -14, 0, -14, -20, -14, 0, 14, 20, 14, -45, -32, 0, 32, 45, 32, 0, -32, 0, -32, -45, -32, 0, 32, 45, 32, -92, -65, 0, 65, 92, 65, 0, -65, 0, -65, -92, -65, 0, 65, 92, 65, -172, -122, 0, 122, 172, 122, 0, -122, 0, -122, -172, -122, 0, 122, 172, 122, -307, -217, 0, 217, 307, 217, 0, -217, 0, -217, -307, -217, 0, 217, 307, 217, -564, -399, 0, 399, 564, 399, 0, -399, 0, -399, -564, -399, 0, 399, 564, 399, -1322, -935, 0, 935, 1322, 935, 0, -935, 0, -935, -1322, -935, 0, 935, 1322, 935, 12256, 8666, 0, -8666, -12256, -8666, 0, 8666, 0, 8666, 12256, 8666, 0, -8666, -12256, -8666, 1066, 754, 0, -754, -1066, -754, 0, 754, 0, 754, 1066, 754, 0, -754, -1066, -754, 495, 350, 0, -350, -495, -350, 0, 350, 0, 350, 495, 350, 0, -350, -495, -350, 273, 193, 0, -193, -273, -193, 0, 193, 0, 193, 273, 193, 0, -193, -273, -193, 153, 108, 0, -108, -153, -108, 0, 108, 0, 108, 153, 108, 0, -108, -153, -108, 81, 57, 0, -57, -81, -57, 0, 57, 0, 57, 81, 57, 0, -57, -81, -57, 38, 27, 0, -27, -38, -27, 0, 27, 0, 27, 38, 27, 0, -27, -38, -27, 17, 12, 0, -12, -17, -12, 0, 12, 0, 12, 17, 12, 0, -12, -17, -12, -20, -14, 0, 14, 20, 14, 0, -14, 0, -14, -20, -14, 0, 14, 20, 14, -38, -27, 0, 27, 38, 27, 0, -27, 0, -27, -38, -27, 0, 27, 38, 27, -85, -60, 0, 60, 85, 60, 0, -60, 0, -60, -85, -60, 0, 60, 85, 60, -170, -120, 0, 120, 170, 120, 0, -120, 0, -120, -170, -120, 0, 120, 170, 120, -314, -222, 0, 222, 314, 222, 0, -222, 0, -222, -314, -222, 0, 222, 314, 222, -557, -394, 0, 394, 557, 394, 0, -394, 0, -394, -557, -394, 0, 394, 557, 394, -1048, -741, 0, 741, 1048, 741, 0, -741, 0, -741, -1048, -741, 0, 741, 1048, 741, -2783, -1968, 0, 1968, 2783, 1968, 0, -1968, 0, -1968, -2783, -1968, 0, 1968, 2783, 1968, 6591, 4660, 0, -4660, -6591, -4660, 0, 4660, 0, 4660, 6591, 4660, 0, -4660, -6591, -4660, 1434, 1014, 0, -1014, -1434, -1014, 0, 1014, 0, 1014, 1434, 1014, 0, -1014, -1434, -1014, 707, 500, 0, -500, -707, -500, 0, 500, 0, 500, 707, 500, 0, -500, -707, -500, 395, 279, 0, -279, -395, -279, 0, 279, 0, 279, 395, 279, 0, -279, -395, -279, 219, 155, 0, -155, -219, -155, 0, 155, 0, 155, 219, 155, 0, -155, -219, -155, 114, 80, 0, -80, -114, -80, 0, 80, 0, 80, 114, 80, 0, -80, -114, -80, 53, 37, 0, -37, -53, -37, 0, 37, 0, 37, 53, 37, 0, -37, -53, -37, 25, 17, 0, -17, -25, -17, 0, 17, 0, 17, 25, 17, 0, -17, -25, -17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 17, 0, -17, -25, -17, 0, 17, 0, 17, 25, 17, 0, -17, -25, -17, 53, 37, 0, -37, -53, -37, 0, 37, 0, 37, 53, 37, 0, -37, -53, -37, 114, 80, 0, -80, -114, -80, 0, 80, 0, 80, 114, 80, 0, -80, -114, -80, 219, 155, 0, -155, -219, -155, 0, 155, 0, 155, 219, 155, 0, -155, -219, -155, 395, 279, 0, -279, -395, -279, 0, 279, 0, 279, 395, 279, 0, -279, -395, -279, 707, 500, 0, -500, -707, -500, 0, 500, 0, 500, 707, 500, 0, -500, -707, -500, 1434, 1014, 0, -1014, -1434, -1014, 0, 1014, 0, 1014, 1434, 1014, 0, -1014, -1434, -1014, 6591, 4660, 0, -4660, -6591, -4660, 0, 4660, 0, 4660, 6591, 4660, 0, -4660, -6591, -4660, -2783, -1968, 0, 1968, 2783, 1968, 0, -1968, 0, -1968, -2783, -1968, 0, 1968, 2783, 1968, -1048, -741, 0, 741, 1048, 741, 0, -741, 0, -741, -1048, -741, 0, 741, 1048, 741, -557, -394, 0, 394, 557, 394, 0, -394, 0, -394, -557, -394, 0, 394, 557, 394, -314, -222, 0, 222, 314, 222, 0, -222, 0, -222, -314, -222, 0, 222, 314, 222, -170, -120, 0, 120, 170, 120, 0, -120, 0, -120, -170, -120, 0, 120, 170, 120, -85, -60, 0, 60, 85, 60, 0, -60, 0, -60, -85, -60, 0, 60, 85, 60, -38, -27, 0, 27, 38, 27, 0, -27, 0, -27, -38, -27, 0, 27, 38, 27, -20, -14, 0, 14, 20, 14, 0, -14, 0, -14, -20, -14, 0, 14, 20, 14, 17, 12, 0, -12, -17, -12, 0, 12, 0, 12, 17, 12, 0, -12, -17, -12, 38, 27, 0, -27, -38, -27, 0, 27, 0, 27, 38, 27, 0, -27, -38, -27, 81, 57, 0, -57, -81, -57, 0, 57, 0, 57, 81, 57, 0, -57, -81, -57, 153, 108, 0, -108, -153, -108, 0, 108, 0, 108, 153, 108, 0, -108, -153, -108, 273, 193, 0, -193, -273, -193, 0, 193, 0, 193, 273, 193, 0, -193, -273, -193, 495, 350, 0, -350, -495, -350, 0, 350, 0, 350, 495, 350, 0, -350, -495, -350, 1066, 754, 0, -754, -1066, -754, 0, 754, 0, 754, 1066, 754, 0, -754, -1066, -754, 12256, 8666, 0, -8666, -12256, -8666, 0, 8666, 0, 8666, 12256, 8666, 0, -8666, -12256, -8666, -1322, -935, 0, 935, 1322, 935, 0, -935, 0, -935, -1322, -935, 0, 935, 1322, 935, -564, -399, 0, 399, 564, 399, 0, -399, 0, -399, -564, -399, 0, 399, 564, 399, -307, -217, 0, 217, 307, 217, 0, -217, 0, -217, -307, -217, 0, 217, 307, 217, -172, -122, 0, 122, 172, 122, 0, -122, 0, -122, -172, -122, 0, 122, 172, 122, -92, -65, 0, 65, 92, 65, 0, -65, 0, -65, -92, -65, 0, 65, 92, 65, -45, -32, 0, 32, 45, 32, 0, -32, 0, -32, -45, -32, 0, 32, 45, 32, -20, -14, 0, 14, 20, 14, 0, -14, 0, -14, -20, -14, 0, 14, 20, 14, -12, -8, 0, 8, 12, 8, 0, -8, 0, -8, -12, -8, 0, 8, 12, 8 }; static const short psk48_rx_coeff[PSK48_RXF_LEN] = { -7, 11, 28, 35, 24, -6, -48, -79, -76, -22, 68, 157, 186, 114, -53, -250, -370, -315, -58, 318, 636, 694, 371, -281, -1014, -1444, -1200, -86, 1793, 4033, 6035, 7215, 7215, 6035, 4033, 1793, -86, -1200, -1444, -1014, -281, 371, 694, 636, 318, -58, -315, -370, -250, -53, 114, 186, 157, 68, -22, -76, -79, -48, -6, 24, 35, 28, 11, -7 }; /* * more accurate cosine table */ static const short costab[256] = { 32767, 32757, 32727, 32678, 32609, 32520, 32412, 32284, 32137, 31970, 31785, 31580, 31356, 31113, 30851, 30571, 30272, 29955, 29621, 29268, 28897, 28510, 28105, 27683, 27244, 26789, 26318, 25831, 25329, 24811, 24278, 23731, 23169, 22594, 22004, 21402, 20787, 20159, 19519, 18867, 18204, 17530, 16845, 16150, 15446, 14732, 14009, 13278, 12539, 11792, 11038, 10278, 9511, 8739, 7961, 7179, 6392, 5601, 4807, 4011, 3211, 2410, 1607, 804, 0, -804, -1607, -2410, -3211, -4011, -4807, -5601, -6392, -7179, -7961, -8739, -9511, -10278, -11038, -11792, -12539, -13278, -14009, -14732, -15446, -16150, -16845, -17530, -18204, -18867, -19519, -20159, -20787, -21402, -22004, -22594, -23169, -23731, -24278, -24811, -25329, -25831, -26318, -26789, -27244, -27683, -28105, -28510, -28897, -29268, -29621, -29955, -30272, -30571, -30851, -31113, -31356, -31580, -31785, -31970, -32137, -32284, -32412, -32520, -32609, -32678, -32727, -32757, -32767, -32757, -32727, -32678, -32609, -32520, -32412, -32284, -32137, -31970, -31785, -31580, -31356, -31113, -30851, -30571, -30272, -29955, -29621, -29268, -28897, -28510, -28105, -27683, -27244, -26789, -26318, -25831, -25329, -24811, -24278, -23731, -23169, -22594, -22004, -21402, -20787, -20159, -19519, -18867, -18204, -17530, -16845, -16150, -15446, -14732, -14009, -13278, -12539, -11792, -11038, -10278, -9511, -8739, -7961, -7179, -6392, -5601, -4807, -4011, -3211, -2410, -1607, -804, 0, 804, 1607, 2410, 3211, 4011, 4807, 5601, 6392, 7179, 7961, 8739, 9511, 10278, 11038, 11792, 12539, 13278, 14009, 14732, 15446, 16150, 16845, 17530, 18204, 18867, 19519, 20159, 20787, 21402, 22004, 22594, 23169, 23731, 24278, 24811, 25329, 25831, 26318, 26789, 27244, 27683, 28105, 28510, 28897, 29268, 29621, 29955, 30272, 30571, 30851, 31113, 31356, 31580, 31785, 31970, 32137, 32284, 32412, 32520, 32609, 32678, 32727, 32757 }; #define COS(x) costab[((x)>>8)&0xff] #define SIN(x) COS((x)+0xc000) /* * arctan table (indexed by i/q; should really be indexed by i/(i+q) */ #define ATAN_TABLEN 1024 static const unsigned short atan_tab[ATAN_TABLEN+2] = { 0, 10, 20, 30, 40, 50, 61, 71, 81, 91, 101, 112, 122, 132, 142, 152, 162, 173, 183, 193, 203, 213, 224, 234, 244, 254, 264, 274, 285, 295, 305, 315, 325, 336, 346, 356, 366, 376, 386, 397, 407, 417, 427, 437, 447, 458, 468, 478, 488, 498, 508, 519, 529, 539, 549, 559, 569, 579, 590, 600, 610, 620, 630, 640, 651, 661, 671, 681, 691, 701, 711, 722, 732, 742, 752, 762, 772, 782, 792, 803, 813, 823, 833, 843, 853, 863, 873, 884, 894, 904, 914, 924, 934, 944, 954, 964, 974, 985, 995, 1005, 1015, 1025, 1035, 1045, 1055, 1065, 1075, 1085, 1096, 1106, 1116, 1126, 1136, 1146, 1156, 1166, 1176, 1186, 1196, 1206, 1216, 1226, 1236, 1246, 1256, 1266, 1277, 1287, 1297, 1307, 1317, 1327, 1337, 1347, 1357, 1367, 1377, 1387, 1397, 1407, 1417, 1427, 1437, 1447, 1457, 1467, 1477, 1487, 1497, 1507, 1517, 1527, 1537, 1547, 1556, 1566, 1576, 1586, 1596, 1606, 1616, 1626, 1636, 1646, 1656, 1666, 1676, 1686, 1696, 1706, 1715, 1725, 1735, 1745, 1755, 1765, 1775, 1785, 1795, 1805, 1814, 1824, 1834, 1844, 1854, 1864, 1874, 1884, 1893, 1903, 1913, 1923, 1933, 1943, 1952, 1962, 1972, 1982, 1992, 2002, 2011, 2021, 2031, 2041, 2051, 2060, 2070, 2080, 2090, 2100, 2109, 2119, 2129, 2139, 2148, 2158, 2168, 2178, 2187, 2197, 2207, 2217, 2226, 2236, 2246, 2255, 2265, 2275, 2285, 2294, 2304, 2314, 2323, 2333, 2343, 2352, 2362, 2372, 2381, 2391, 2401, 2410, 2420, 2430, 2439, 2449, 2459, 2468, 2478, 2488, 2497, 2507, 2516, 2526, 2536, 2545, 2555, 2564, 2574, 2583, 2593, 2603, 2612, 2622, 2631, 2641, 2650, 2660, 2669, 2679, 2688, 2698, 2708, 2717, 2727, 2736, 2746, 2755, 2765, 2774, 2784, 2793, 2802, 2812, 2821, 2831, 2840, 2850, 2859, 2869, 2878, 2887, 2897, 2906, 2916, 2925, 2935, 2944, 2953, 2963, 2972, 2981, 2991, 3000, 3010, 3019, 3028, 3038, 3047, 3056, 3066, 3075, 3084, 3094, 3103, 3112, 3122, 3131, 3140, 3149, 3159, 3168, 3177, 3187, 3196, 3205, 3214, 3224, 3233, 3242, 3251, 3260, 3270, 3279, 3288, 3297, 3307, 3316, 3325, 3334, 3343, 3352, 3362, 3371, 3380, 3389, 3398, 3407, 3416, 3426, 3435, 3444, 3453, 3462, 3471, 3480, 3489, 3498, 3508, 3517, 3526, 3535, 3544, 3553, 3562, 3571, 3580, 3589, 3598, 3607, 3616, 3625, 3634, 3643, 3652, 3661, 3670, 3679, 3688, 3697, 3706, 3715, 3724, 3733, 3742, 3751, 3759, 3768, 3777, 3786, 3795, 3804, 3813, 3822, 3831, 3839, 3848, 3857, 3866, 3875, 3884, 3893, 3901, 3910, 3919, 3928, 3937, 3945, 3954, 3963, 3972, 3981, 3989, 3998, 4007, 4016, 4024, 4033, 4042, 4051, 4059, 4068, 4077, 4085, 4094, 4103, 4112, 4120, 4129, 4138, 4146, 4155, 4164, 4172, 4181, 4189, 4198, 4207, 4215, 4224, 4233, 4241, 4250, 4258, 4267, 4275, 4284, 4293, 4301, 4310, 4318, 4327, 4335, 4344, 4352, 4361, 4369, 4378, 4386, 4395, 4403, 4412, 4420, 4429, 4437, 4446, 4454, 4462, 4471, 4479, 4488, 4496, 4505, 4513, 4521, 4530, 4538, 4546, 4555, 4563, 4572, 4580, 4588, 4597, 4605, 4613, 4622, 4630, 4638, 4646, 4655, 4663, 4671, 4680, 4688, 4696, 4704, 4713, 4721, 4729, 4737, 4745, 4754, 4762, 4770, 4778, 4787, 4795, 4803, 4811, 4819, 4827, 4836, 4844, 4852, 4860, 4868, 4876, 4884, 4892, 4901, 4909, 4917, 4925, 4933, 4941, 4949, 4957, 4965, 4973, 4981, 4989, 4997, 5005, 5013, 5021, 5029, 5037, 5045, 5053, 5061, 5069, 5077, 5085, 5093, 5101, 5109, 5117, 5125, 5133, 5141, 5148, 5156, 5164, 5172, 5180, 5188, 5196, 5204, 5211, 5219, 5227, 5235, 5243, 5251, 5258, 5266, 5274, 5282, 5290, 5297, 5305, 5313, 5321, 5328, 5336, 5344, 5352, 5359, 5367, 5375, 5383, 5390, 5398, 5406, 5413, 5421, 5429, 5436, 5444, 5452, 5459, 5467, 5475, 5482, 5490, 5497, 5505, 5513, 5520, 5528, 5535, 5543, 5550, 5558, 5566, 5573, 5581, 5588, 5596, 5603, 5611, 5618, 5626, 5633, 5641, 5648, 5656, 5663, 5671, 5678, 5686, 5693, 5700, 5708, 5715, 5723, 5730, 5738, 5745, 5752, 5760, 5767, 5774, 5782, 5789, 5797, 5804, 5811, 5819, 5826, 5833, 5841, 5848, 5855, 5862, 5870, 5877, 5884, 5892, 5899, 5906, 5913, 5921, 5928, 5935, 5942, 5949, 5957, 5964, 5971, 5978, 5985, 5993, 6000, 6007, 6014, 6021, 6028, 6036, 6043, 6050, 6057, 6064, 6071, 6078, 6085, 6093, 6100, 6107, 6114, 6121, 6128, 6135, 6142, 6149, 6156, 6163, 6170, 6177, 6184, 6191, 6198, 6205, 6212, 6219, 6226, 6233, 6240, 6247, 6254, 6261, 6268, 6275, 6282, 6288, 6295, 6302, 6309, 6316, 6323, 6330, 6337, 6344, 6350, 6357, 6364, 6371, 6378, 6385, 6391, 6398, 6405, 6412, 6419, 6425, 6432, 6439, 6446, 6453, 6459, 6466, 6473, 6480, 6486, 6493, 6500, 6506, 6513, 6520, 6527, 6533, 6540, 6547, 6553, 6560, 6567, 6573, 6580, 6586, 6593, 6600, 6606, 6613, 6620, 6626, 6633, 6639, 6646, 6653, 6659, 6666, 6672, 6679, 6685, 6692, 6698, 6705, 6711, 6718, 6724, 6731, 6737, 6744, 6750, 6757, 6763, 6770, 6776, 6783, 6789, 6796, 6802, 6809, 6815, 6821, 6828, 6834, 6841, 6847, 6853, 6860, 6866, 6873, 6879, 6885, 6892, 6898, 6904, 6911, 6917, 6923, 6930, 6936, 6942, 6949, 6955, 6961, 6967, 6974, 6980, 6986, 6992, 6999, 7005, 7011, 7017, 7024, 7030, 7036, 7042, 7048, 7055, 7061, 7067, 7073, 7079, 7086, 7092, 7098, 7104, 7110, 7116, 7122, 7129, 7135, 7141, 7147, 7153, 7159, 7165, 7171, 7177, 7183, 7190, 7196, 7202, 7208, 7214, 7220, 7226, 7232, 7238, 7244, 7250, 7256, 7262, 7268, 7274, 7280, 7286, 7292, 7298, 7304, 7310, 7316, 7322, 7328, 7333, 7339, 7345, 7351, 7357, 7363, 7369, 7375, 7381, 7387, 7392, 7398, 7404, 7410, 7416, 7422, 7428, 7433, 7439, 7445, 7451, 7457, 7462, 7468, 7474, 7480, 7486, 7491, 7497, 7503, 7509, 7514, 7520, 7526, 7532, 7537, 7543, 7549, 7555, 7560, 7566, 7572, 7577, 7583, 7589, 7594, 7600, 7606, 7611, 7617, 7623, 7628, 7634, 7640, 7645, 7651, 7657, 7662, 7668, 7673, 7679, 7685, 7690, 7696, 7701, 7707, 7712, 7718, 7724, 7729, 7735, 7740, 7746, 7751, 7757, 7762, 7768, 7773, 7779, 7784, 7790, 7795, 7801, 7806, 7812, 7817, 7823, 7828, 7833, 7839, 7844, 7850, 7855, 7861, 7866, 7871, 7877, 7882, 7888, 7893, 7898, 7904, 7909, 7914, 7920, 7925, 7931, 7936, 7941, 7947, 7952, 7957, 7963, 7968, 7973, 7978, 7984, 7989, 7994, 8000, 8005, 8010, 8015, 8021, 8026, 8031, 8036, 8042, 8047, 8052, 8057, 8063, 8068, 8073, 8078, 8083, 8089, 8094, 8099, 8104, 8109, 8115, 8120, 8125, 8130, 8135, 8140, 8145, 8151, 8156, 8161, 8166, 8171, 8176, 8181, 8186, 8192, 8192 };