From 69a497ccf82150cd1c0a5a876afc5ae0c29a7c7c Mon Sep 17 00:00:00 2001 From: Thomas Kolb Date: Fri, 13 Sep 2019 23:07:48 +0200 Subject: [PATCH] Further optimize preamble Maximum off-center autocorrelation value is now 11 (center peak is 128). --- grc/hamnet70_demod_sc16qam.grc | 4 ++-- grc/hamnet70_mod_sc16qam.grc | 2 +- utils/filter_preamble.py | 2 +- utils/make_preamble.py | 21 +++++++++++++++++++++ 4 files changed, 25 insertions(+), 4 deletions(-) create mode 100755 utils/make_preamble.py diff --git a/grc/hamnet70_demod_sc16qam.grc b/grc/hamnet70_demod_sc16qam.grc index 5e9ddc3..0048b9f 100644 --- a/grc/hamnet70_demod_sc16qam.grc +++ b/grc/hamnet70_demod_sc16qam.grc @@ -113,7 +113,7 @@ value - [0.035200381981188585, -0.34360279992652465, -0.7702725545574488, -0.7514494201876957, -0.6180034257525113, -0.845293778142639, -0.8013100763973725, 0.02074196657698465, 0.7732896551369288, 0.8399273364853098, 0.6974609394650995, 0.6307845193394893, 0.6517225693490792, 0.9004944717744877, 0.8124064814015849, -0.13757272543393367, -0.8375982801688345, -0.1719770280750406, 0.8496311903340008, 0.8831734587868336, 0.5447636666148317, 0.8412491055083767, 0.9054304411628837, -0.20201107667255752, -0.9406643207806581, 0.07184505983158077, 0.9414391475341005, 0.011578565080478609, -0.8815750011446698, -0.21645478605592675, 0.766762188886342, 1.0847502726821747, 0.7752894014479472, -0.22710317249237202, -0.8604151959503216, -0.010399078575805016, 0.8649300255518592, 0.24398016907265654, -0.7924702999088836, -1.083492018379925, -0.7290615421938923, 0.16354614958403854, 0.8156248004282852, 0.18038436552396372, -0.8442378587424297, -0.9067805134008871, -0.6020919616494961, -0.690535552838279, -0.7447714884479169, -0.6715056891340703, -0.741093838567637, -0.6958246601044921, -0.6123783299545181, -0.8892205196667642, -0.8545555518026463, 0.18350145590483047, 0.910040372419586, -0.018791692699676312, -0.9695765807398394, -0.024096060121619738, 1.0176898761226008, 0.003525469313759564, -1.0285727569192349, 0.029760608561950095, 0.9833504280715306, -0.0025986688344203724, -0.8848318859001342, -0.19928468902595547, 0.7580503464117088, 1.0777783371346243, 0.7757184560576366, -0.21948196950298596, -0.858583235016426, -0.020921511146689917, 0.8935550439240979, 0.21210305426010617, -0.8878658896727891, -0.8709021755281732, -0.5558342641395472, -0.8314877001102047, -0.8231541686139628, 0.0353420879985547, 0.7940673927833456, 0.7926221572444275, 0.6391228096420074, 0.8077418994671643, 0.7632034415379653, 0.06533540252962117, -0.7528928308831482, -1.0045203765613233, -0.676467175652108, -0.029031537534521146, 0.6992757843553722, 1.0378785821441896, 0.6847803703969947, -0.014311727279105513, -0.6496583763492811, -1.0596666112650748, -0.803206192677343, 0.241865027461532, 0.8427105446448545, 0.01746290752302801, -0.8788062953900104, -0.22675189741001175, 0.902290868318354, 0.8688652716303207, 0.513284104244577, 0.8920287160644043, 0.8645980972075658, -0.19718154726467385, -0.7964494496761678, -0.16910056724495762, 0.7176763813649194, 1.1022551048402875, 0.7559227238998733, -0.21160221414279246, -0.7730282180619312, -0.18926752354335535, 0.7493548997141045, 1.0762650026504654, 0.7024360520719808, -0.07089069714041399, -0.7206408306661706, -0.8577921056236634, -0.7116232039890533, -0.5981362418171385, -0.6597358606919942, -0.9242498590328557, -0.7912808104716464, 0.13861178264070687, 0.7994712775918738, 0.22270627306922403, -0.7813653562478212, -1.0752094170008282, -0.6513596295950393, 0.004813103502112048, 0.644792917162114, 1.0742321117150724, 0.8044778660295522, -0.2576915686447877, -0.8430756696951827, -0.0008515754478947707, 0.851224965829912, 0.24967571680920805, -0.8122031738057045, -1.0574682990166844, -0.673299364046149, 0.019811927933146033, 0.7410749549819731, 0.8857380628373264, 0.6415949766534641, 0.6582416981884681, 0.7555724120494922, 0.6921295453468757, 0.7144798336027072, 0.7047461986909813, 0.6250476712685042, 0.8661669537552367, 0.8661028461219289, -0.17264914475477205, -0.9344748757576697, 0.03439628507815546, 0.9840719987526741, -0.008466539345606663, -1.0016471953988, 0.01242631720849098, 0.9737314119338659, 0.02455307965144965, -0.8967104702099666, -0.2143522567715812, 0.7858007598470412, 1.0624611311909968, 0.7426785918051497, -0.15774961462599568, -0.8279294009540383, -0.17229789821312474, 0.8652664425075851, 0.8662273823025605, 0.5590477716402569, 0.8341559959035253, 0.8139278925822135, -0.029024253895756157, -0.7623559815429292, -0.8447133998767246, -0.6984310237730235, -0.6245234953113089, -0.6816534792530835, -0.8646862115564203, -0.7549571535000329, -0.017336798137493458, 0.7694610505757153, 0.882866129261439, 0.6356607559753149, 0.6669293402573881, 0.7795334312839456, 0.6473617994478603, 0.6480576551043754, 0.8887236829419612, 0.7332296029830532, 0.027187674856545392, -0.6837305916214288, -1.0527785773370186, -0.7820826116109263, 0.20150877848919396, 0.8152374213260799, 0.1418663296393665, -0.8108012787894103, -0.9055260931467441, -0.6516362985606257, -0.6260508995798809, -0.68247701435131, -0.8708513732480414, -0.8161341850171459, 0.11270032228618641, 0.8732012542062941, 0.15680791236046623, -0.8812258055043216, -0.832221324113779, -0.5765992232534259, -0.8479730845709736, -0.7611781817154223, -0.026670997819749645, 0.6843918258094186, 1.052419990826963, 0.7769419203312972, -0.19555315688196845, -0.782314385413117, -0.19550736335698912, 0.7592853818271842, 1.0727510699191427, 0.6728900627806644, -0.02508867968258595, -0.6549270257341537, -1.0424757066879482, -0.8202559047321292, 0.24290898801652638, 0.8959743145730159, -0.053026935608910135, -0.9369352031589485, -0.03528056783095917, 0.9021865241112244, 0.21643291441098902, -0.7879201541062689, -1.0602974234731453, -0.7792133448341945, 0.20677012657032184, 0.9055243843417551, -0.029258299378920882, -0.9519243541850811, -0.042166621295676526, 0.9057460776608539, 0.22061379475050927, -0.8000182184093458, -1.047072354987996, -0.7235115460211217, 0.09347242017628993, 0.7896875691824797] + [0.07597830170169104, -0.485565799912578, -0.8175675329652012, -0.08705845483279175, 0.8422499558933448, 0.8339672761862603, 0.5639986226766744, 0.8648579357306525, 0.8449626712400287, -0.14824742609024513, -0.839014751834186, -0.16052714055616374, 0.8461746738478428, 0.876699004960063, 0.5438574109711131, 0.8487497724723243, 0.901973957473885, -0.20608854557827685, -0.9237427266655129, 0.05657914223714758, 0.9244658087744888, 0.04699371313815648, -0.9078922909067606, -0.2143141706138818, 0.8906000008118203, 0.8703820417093556, 0.5269498118145474, 0.8744741132106794, 0.8951714615192253, -0.22348375942671786, -0.8928255879900311, 0.03052455222662204, 0.8525876862735934, 0.21700197016591458, -0.7648812444829712, -1.0877913873718514, -0.7644834347657942, 0.21643221210655272, 0.8636472003816641, 0.01784265360684956, -0.9039566593790512, -0.19720847977616437, 0.8683114899162668, 0.8868479082980585, 0.6404092867407761, 0.6568225109789249, 0.6624694331403292, 0.8628193131616877, 0.837852363582882, -0.12860147200310587, -0.874266046060146, -0.1397125213702271, 0.8617313892859799, 0.8365471578775032, 0.5956040882182279, 0.8221390022883328, 0.7681778127699552, 0.04511039330468456, -0.7314414499147517, -1.00914363652948, -0.69255650622215, -0.00674900652370137, 0.6746184620556512, 1.0527665810823903, 0.7726368241443928, -0.19092892072381876, -0.7950968236154203, -0.186027302053198, 0.7812358777756694, 1.03818942039578, 0.6925283076118456, -0.020947352787426186, -0.7789051309184633, -0.8343080373730677, -0.563711037581479, -0.8612923740231458, -0.8665319687185258, 0.17029796271970854, 0.8159891988904876, 0.17319975656809514, -0.7279801670404227, -1.09567867421579, -0.7585882059990467, 0.20918713334896463, 0.7726741082646805, 0.1930510198005684, -0.728560692857744, -1.1137407463348976, -0.7472126518860863, 0.21357460848768628, 0.7717344911429374, 0.18885744657646908, -0.7323441910313696, -1.104674088894687, -0.7679625570657318, 0.23666454512442675, 0.8508038023417438, 0.01276932958576111, -0.8845266294861591, -0.21444381674751473, 0.8586095453652112, 0.9155050626835117, 0.6092856462718013, 0.6722760775856454, 0.7701471297773871, 0.6539225174099268, 0.6302779977116016, 0.91090996468133, 0.8362594732977642, -0.18455939606545796, -0.8887179714994841, -0.013005158485466996, 0.9033103994723838, 0.19446514877164953, -0.866776436873287, -0.8865107735063715, -0.6165664534570771, -0.6944400533786077, -0.7275728844384133, -0.6881540811334937, -0.736412979084662, -0.683950646048729, -0.6496500909399723, -0.8500012951267402, -0.7838311346696109, 0.0010927905014069478, 0.8016466380788749, 0.8190147792156793, 0.6025614719729334, 0.8228346005611357, 0.802787876393007, -0.003842004779830683, -0.7753807311708878, -0.8552149342918304, -0.6664053831716811, -0.6591347883332134, -0.7480549713000103, -0.6911855810423027, -0.6215407667183455, -0.8834482281221873, -0.8679653913970135, 0.19240729701925668, 0.934116366440915, -0.05507762635239145, -0.9481072897019951, -0.020323963798468382, 0.8894253424178579, 0.2166381550010981, -0.7741079434916102, -1.0767523060604507, -0.7685461986012558, 0.21082602140258022, 0.8641896067442316, 0.022830556170658094, -0.8992821725529172, -0.20849132170440776, 0.8748402251802601, 0.8910516213413703, 0.6034003341368249, 0.7045419675600119, 0.7338568667875991, 0.6706647255835935, 0.7506755036294196, 0.6851592980678056, 0.610761208212266, 0.9016642779352577, 0.8332298109781053, -0.16286252640823884, -0.83725250477382, -0.1474894987345423, 0.8180937445788066, 0.9027584846247846, 0.6310113259481372, 0.6610732581385319, 0.7464254443566228, 0.7004768060860638, 0.6921662697864044, 0.7302911658029473, 0.7181215430759254, 0.6628884046638914, 0.6786031876127859, 0.8380657910901609, 0.7696962141802574, 0.027277281671151603, -0.8128754592694412, -0.8353236942051653, -0.558836706959898, -0.8649811113436121, -0.8856478323656832, 0.20389097341321458, 0.8915890174142818, -0.009353179603650662, -0.8649138828261284, -0.2245901872246641, 0.8069881214184643, 1.038231467104161, 0.6859513269034524, -0.013925921608002918, -0.768684581613136, -0.8523785186056687, -0.5725147040610867, -0.8328530738565147, -0.89695683691402, 0.1849867554485682, 0.9316457953579594, -0.04448885337405751, -0.9440092680894189, -0.03770038141115751, 0.9299150217773825, 0.17970401267190714, -0.8881365621694067, -0.8369624937432751, -0.5868508244688574, -0.8313092258450905, -0.7658074886689376, -0.03952153602497553, 0.7257002214449, 1.0102196812181568, 0.6948764376755145, 0.002866363543506209, -0.6715870072815281, -1.0519218586041434, -0.777896506936374, 0.19672922787199323, 0.8053026272676543, 0.1596242561181449, -0.8137238460807423, -0.9215764973541457, -0.6099189042595219, -0.6668473580346203, -0.7839911528474386, -0.6418964722093792, -0.6554268264967297, -0.8849046342212495, -0.7317384814481425, -0.03259813363664732, 0.7055538541773647, 1.0248825368497154, 0.7268408407840553, -0.056954175409504405, -0.7298952394033934, -0.8623881909077871, -0.6984645278411455, -0.6068937129219674, -0.6939114111904727, -0.8671951461489478, -0.7334642243259445, -0.04799627890206296, 0.7250084426992481, 1.0172542273316627, 0.718341641051283, -0.039342105826704346, -0.754313065831116, -0.8473572919418604, -0.636527393457419, -0.7287891872618689, -0.7778654465178765] @@ -375,7 +375,7 @@ value - [-1, -1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1] + [ -1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, -1, -1] diff --git a/grc/hamnet70_mod_sc16qam.grc b/grc/hamnet70_mod_sc16qam.grc index 1461e1c..9048a80 100644 --- a/grc/hamnet70_mod_sc16qam.grc +++ b/grc/hamnet70_mod_sc16qam.grc @@ -340,7 +340,7 @@ value - [-1, -1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1] + [ -1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, -1, -1] diff --git a/utils/filter_preamble.py b/utils/filter_preamble.py index e8f9ce1..85b8c09 100755 --- a/utils/filter_preamble.py +++ b/utils/filter_preamble.py @@ -4,7 +4,7 @@ import numpy as np import matplotlib.pyplot as pp import rrc -pre = [-1, -1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 1, -1, 1, 1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, -1, 1] +pre = [ -1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, -1, -1] pre_up = np.zeros(2 * len(pre) + 1) diff --git a/utils/make_preamble.py b/utils/make_preamble.py new file mode 100755 index 0000000..128022a --- /dev/null +++ b/utils/make_preamble.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 + +import numpy as np +import matplotlib.pyplot as pp + +min_err = 100 + +pre = np.array([1]*64 + [-1]*64) + +while min_err > 10: + pre = np.random.permutation( pre ) + c = np.correlate(pre, pre, mode='full') + err = np.max(np.absolute(c[:127])) + + if err < min_err: + min_err = err + print(err) + print(pre) + pp.plot(c) + pp.show() +