// Copyright 2020 Rob Riggs // All rights reserved. #include "M17.h" namespace mobilinkd { namespace m17 { const std::array rrc_taps = { -163, -130, -62, 29, 129, 215, 267, 269, 216, 114, -19, -158, -269, -321, -293, -176, 16, 253, 485, 654, 698, 573, 253, -249, -886, -1569, -2176, -2569, -2606, -2166, -1163, 427, 2569, 5155, 8014, 10930, 13661, 15966, 17634, 18510, 18510, 17634, 15966, 13661, 10930, 8014, 5155, 2569, 427, -1163, -2166, -2606, -2569, -2176, -1569, -886, -249, 253, 573, 698, 654, 485, 253, 16, -176, -293, -321, -269, -158, -19, 114, 216, 269, 267, 215, 129, 29, -62, -130, -163 // -151, -100, -18, 80, 175, 246, 275, 249, 170, 49, // -90, -219, -304, -318, -245, -88, 131, 373, 581, 695, // 659, 437, 22, -556, -1229, -1890, -2409, -2641, -2452, -1738, // -441, 1434, 3816, 6563, 9480, 12334, 14880, 16891, 18179, 18622, // 18179, 16891, 14880, 12334, 9480, 6563, 3816, 1434, -441, -1738, // -2452, -2641, -2409, -1890, -1229, -556, 22, 437, 659, 695, // 581, 373, 131, -88, -245, -318, -304, -219, -90, 49, // 170, 249, 275, 246, 175, 80, -18, -100, -151, 0 }; const std::array rrc_taps_9 = { 33, -29, -93, -143, -165, -151, -100, -18, 80, 175, 246, 275, 249, 170, 49, -90, -219, -304, -318, -245, -88, 131, 373, 581, 695, 659, 437, 22, -556, -1229, -1890, -2409, -2641, -2452, -1738, -441, 1434, 3816, 6563, 9480, 12334, 14880, 16891, 18179, 18622, 18179, 16891, 14880, 12334, 9480, 6563, 3816, 1434, -441, -1738, -2452, -2641, -2409, -1890, -1229, -556, 22, 437, 659, 695, 581, 373, 131, -88, -245, -318, -304, -219, -90, 49, 170, 249, 275, 246, 175, 80, -18, -100, -151, -165, -143, -93, -29, 33, 0 }; const std::array rrc_taps_11 = { -92, -100, -87, -55, -10, 38, 81, 106, 107, 81, 33, -29, -93, -143, -165, -151, -100, -18, 80, 175, 246, 275, 249, 170, 49, -90, -219, -304, -318, -245, -88, 131, 373, 581, 695, 659, 437, 22, -556, -1229, -1890, -2409, -2641, -2452, -1738, -441, 1434, 3816, 6563, 9480, 12334, 14880, 16891, 18179, 18622, 18179, 16891, 14880, 12334, 9480, 6563, 3816, 1434, -441, -1738, -2452, -2641, -2409, -1890, -1229, -556, 22, 437, 659, 695, 581, 373, 131, -88, -245, -318, -304, -219, -90, 49, 170, 249, 275, 246, 175, 80, -18, -100, -151, -165, -143, -93, -29, 33, 81, 107, 106, 81, 38, -10, -55, -87, -100, -92, 0 }; const std::array rrc_taps_15 = { 48, 51, 44, 27, 3, -21, -41, -53, -53, -40, -16, 12, 41, 63, 72, 66, 43, 9, -30, -67, -92, -100, -87, -55, -10, 38, 81, 106, 107, 81, 33, -29, -93, -143, -165, -151, -100, -18, 80, 175, 246, 275, 249, 170, 49, -90, -219, -304, -318, -245, -88, 131, 373, 581, 695, 659, 437, 22, -556, -1229, -1890, -2409, -2641, -2452, -1738, -441, 1434, 3816, 6563, 9480, 12334, 14880, 16891, 18179, 18622, 18179, 16891, 14880, 12334, 9480, 6563, 3816, 1434, -441, -1738, -2452, -2641, -2409, -1890, -1229, -556, 22, 437, 659, 695, 581, 373, 131, -88, -245, -318, -304, -219, -90, 49, 170, 249, 275, 246, 175, 80, -18, -100, -151, -165, -143, -93, -29, 33, 81, 107, 106, 81, 38, -10, -55, -87, -100, -92, -67, -30, 9, 43, 66, 72, 63, 41, 12, -16, -40, -53, -53, -41, -21, 3, 27, 44, 51, 48, 0 }; const std::array rrc_taps_21 = { -1, 1, 3, 5, 6, 5, 3, 0, -2, -5, -7, -7, -6, -4, 0, 3, 6, 8, 7, 6, 2, -1, -5, -8, -10, -9, -6, -1, 3, 8, 12, 12, 11, 6, 0, -5, -10, -13, -13, -10, -4, 3, 10, 15, 18, 16, 10, 2, -7, -16, -23, -25, -21, -13, -2, 9, 20, 26, 26, 20, 8, -7, -23, -35, -41, -37, -25, -4, 20, 43, 61, 68, 62, 42, 12, -22, -54, -76, -79, -61, -22, 32, 93, 145, 173, 164, 109, 5, -139, -307, -472, -602, -660, -613, -434, -110, 358, 954, 1640, 2370, 3083, 3720, 4222, 4544, 4655, 4544, 4222, 3720, 3083, 2370, 1640, 954, 358, -110, -434, -613, -660, -602, -472, -307, -139, 5, 109, 164, 173, 145, 93, 32, -22, -61, -79, -76, -54, -22, 12, 42, 62, 68, 61, 43, 20, -4, -25, -37, -41, -35, -23, -7, 8, 20, 26, 26, 20, 9, -2, -13, -21, -25, -23, -16, -7, 2, 10, 16, 18, 15, 10, 3, -4, -10, -13, -13, -10, -5, 0, 6, 11, 12, 12, 8, 3, -1, -6, -9, -10, -8, -5, -1, 2, 6, 7, 8, 6, 3, 0, -4, -6, -7, -7, -5, -2, 0, 3, 5, 6, 5, 3, 1, -1, 0 }; const std::array rrc_taps_f9 = { 0.002017321931508163, -0.0018256054303579805, -0.00571615173291049, -0.008746639552588416, -0.010105075751866371, -0.009265784007800534, -0.006136551625729697, -0.001125978562075172, 0.004891777252042491, 0.01071805138282269, 0.01505751553351295, 0.01679337935001369, 0.015256245142156299, 0.01042830577908502, 0.003031522725559901, -0.0055333532968188165, -0.013403099825723372, -0.018598682349642525, -0.01944761739590459, -0.015005271935951746, -0.0053887880354343935, 0.008056525910253532, 0.022816244158307273, 0.035513467692208076, 0.04244131815783876, 0.04025481153629372, 0.02671818654865632, 0.0013810216516704976, -0.03394615682795165, -0.07502635967975885, -0.11540977897637611, -0.14703962203941534, -0.16119995609538576, -0.14969512896336504, -0.10610329539459686, -0.026921412469634916, 0.08757875030779196, 0.23293327870303457, 0.4006012210123992, 0.5786324696325503, 0.7528286479934068, 0.908262741447522, 1.0309661131633199, 1.1095611856548013, 1.1366197723675815, 1.1095611856548013, 1.0309661131633199, 0.908262741447522, 0.7528286479934068, 0.5786324696325503, 0.4006012210123992, 0.23293327870303457, 0.08757875030779196, -0.026921412469634916, -0.10610329539459686, -0.14969512896336504, -0.16119995609538576, -0.14703962203941534, -0.11540977897637611, -0.07502635967975885, -0.03394615682795165, 0.0013810216516704976, 0.02671818654865632, 0.04025481153629372, 0.04244131815783876, 0.035513467692208076, 0.022816244158307273, 0.008056525910253532, -0.0053887880354343935, -0.015005271935951746, -0.01944761739590459, -0.018598682349642525, -0.013403099825723372, -0.0055333532968188165, 0.003031522725559901, 0.01042830577908502, 0.015256245142156299, 0.01679337935001369, 0.01505751553351295, 0.01071805138282269, 0.004891777252042491, -0.001125978562075172, -0.006136551625729697, -0.009265784007800534, -0.010105075751866371, -0.008746639552588416, -0.00571615173291049, -0.0018256054303579805, 0.002017321931508163, 0.0 }; const std::array rrc_taps_f15 = { 0.0029364388513841593, 0.0031468394550958484, 0.002699564567597445, 0.001661182944400927, 0.00023319405581230247, -0.0012851320781224025, -0.0025577136087664687, -0.0032843366522956313, -0.0032697038088887226, -0.0024733964729590865, -0.0010285696910973807, 0.0007766690889758685, 0.002553421969211845, 0.0038920145144327816, 0.004451886520053017, 0.00404219185231544, 0.002674727068399207, 0.0005756567993179152, -0.0018493784971116507, -0.004092346891623224, -0.005648131453822014, -0.006126925416243605, -0.005349511529163396, -0.003403189203405097, -0.0006430502751187517, 0.002365929161655135, 0.004957956568090113, 0.006506845894531803, 0.006569574194782443, 0.0050017573119839134, 0.002017321931508163, -0.0018256054303579805, -0.00571615173291049, -0.008746639552588416, -0.010105075751866371, -0.009265784007800534, -0.006136551625729697, -0.001125978562075172, 0.004891777252042491, 0.01071805138282269, 0.01505751553351295, 0.01679337935001369, 0.015256245142156299, 0.01042830577908502, 0.003031522725559901, -0.0055333532968188165, -0.013403099825723372, -0.018598682349642525, -0.01944761739590459, -0.015005271935951746, -0.0053887880354343935, 0.008056525910253532, 0.022816244158307273, 0.035513467692208076, 0.04244131815783876, 0.04025481153629372, 0.02671818654865632, 0.0013810216516704976, -0.03394615682795165, -0.07502635967975885, -0.11540977897637611, -0.14703962203941534, -0.16119995609538576, -0.14969512896336504, -0.10610329539459686, -0.026921412469634916, 0.08757875030779196, 0.23293327870303457, 0.4006012210123992, 0.5786324696325503, 0.7528286479934068, 0.908262741447522, 1.0309661131633199, 1.1095611856548013, 1.1366197723675815, 1.1095611856548013, 1.0309661131633199, 0.908262741447522, 0.7528286479934068, 0.5786324696325503, 0.4006012210123992, 0.23293327870303457, 0.08757875030779196, -0.026921412469634916, -0.10610329539459686, -0.14969512896336504, -0.16119995609538576, -0.14703962203941534, -0.11540977897637611, -0.07502635967975885, -0.03394615682795165, 0.0013810216516704976, 0.02671818654865632, 0.04025481153629372, 0.04244131815783876, 0.035513467692208076, 0.022816244158307273, 0.008056525910253532, -0.0053887880354343935, -0.015005271935951746, -0.01944761739590459, -0.018598682349642525, -0.013403099825723372, -0.0055333532968188165, 0.003031522725559901, 0.01042830577908502, 0.015256245142156299, 0.01679337935001369, 0.01505751553351295, 0.01071805138282269, 0.004891777252042491, -0.001125978562075172, -0.006136551625729697, -0.009265784007800534, -0.010105075751866371, -0.008746639552588416, -0.00571615173291049, -0.0018256054303579805, 0.002017321931508163, 0.0050017573119839134, 0.006569574194782443, 0.006506845894531803, 0.004957956568090113, 0.002365929161655135, -0.0006430502751187517, -0.003403189203405097, -0.005349511529163396, -0.006126925416243605, -0.005648131453822014, -0.004092346891623224, -0.0018493784971116507, 0.0005756567993179152, 0.002674727068399207, 0.00404219185231544, 0.004451886520053017, 0.0038920145144327816, 0.002553421969211845, 0.0007766690889758685, -0.0010285696910973807, -0.0024733964729590865, -0.0032697038088887226, -0.0032843366522956313, -0.0025577136087664687, -0.0012851320781224025, 0.00023319405581230247, 0.001661182944400927, 0.002699564567597445, 0.0031468394550958484, 0.0029364388513841593, 0.0 }; }} // mobilinkd::m17