diff --git a/.cproject b/.cproject index a964398b..47a5981c 100644 --- a/.cproject +++ b/.cproject @@ -139,10 +139,10 @@ - + - + diff --git a/src/corenetwork/binder/PhyPisaData.cc b/src/corenetwork/binder/PhyPisaData.cc index d1baa999..b0e31d2c 100644 --- a/src/corenetwork/binder/PhyPisaData.cc +++ b/src/corenetwork/binder/PhyPisaData.cc @@ -14,95 +14,53 @@ double blerCurvesNew[3][15][49]={ { { 0.7208885924, 0.6364279834, 0.5332800360, 0.4360423440, 0.3666968777, 0.2702148823, 0.2545646762, 0.1872308878, 0.1517548369, 0.1063099811, 0.0748798778, 0.0606737487, 0.0532828620, 0.0387772788, 0.0293569902, 0.0226701188, 0.0184603938, 0.0142304934, 0.0120606390, 0.0082131224, 0.0063205729, 0.0046069027, 0.0037611803, 0.0031393568, 0.0026150711, 0.0017728079, 0.0015719911, 0.0009521393, 0.0009466133, 0.0008233501, 0.0006088240, 0.0004728737, 0.0003828146, 0.0003060003, 0.0002537224, 0.0002230114, 0.0002008010, 0.0001679888, 0.0001355403, 0.0001104041, 0.0000908001, 0.0000655503, 0.0000570788, 0.0000456929, 0.0000365713, 0.0000292649, 0.0000234136, 0.0000187286, 0.0000149782}, - {0.7476587706, 0.6692252815, 0.5717544456, 0.4741597197, 0.4022072005, 0.3046829357, 0.2837217177, 0.2137152938, 0.1758896348, 0.1265393423, 0.0915636477, 0.0748368666, 0.0659347397, 0.0486347295, 0.0374157833, 0.0290314352, 0.0237388747, 0.0184236497, 0.0156244875, 0.0108175483, 0.0083216608, 0.0061567063, 0.0050199212, 0.0041836868, 0.0035103437, 0.0024211054, 0.0021053698, 0.0013113427, 0.0012724442, 0.0010961540, 0.0008110710, 0.0006322508, 0.0005126229, 0.0004205043, 0.0003472382, 0.0002995594, 0.0002631426, 0.0002187541, 0.0001769810, 0.0001442093, 0.0001183582, 0.0000880935, 0.0000754654, 0.0000606957, 0.0000488096, 0.0000392455, 0.0000315508, 0.0000253611, 0.0000203827}, - { 0.7754230586, 0.7037127359, 0.6130046580, 0.5156091901, 0.4411562845, 0.3435476630, 0.3162183155, 0.2439460035, 0.2038627845, 0.1506180793, 0.1119646803, 0.0923060915, 0.0815907729, 0.0609980119, 0.0476867972, 0.0371777596, 0.0305266603, 0.0238523610, 0.0202414324, 0.0142478519, 0.0109562914, 0.0082278779, 0.0066999205, 0.0055754206, 0.0047121141, 0.0033064785, 0.0028197248, 0.0018060588, 0.0017104284, 0.0014593471, 0.0010805031, 0.0008453442, 0.0006864476, 0.0005778552, 0.0004752215, 0.0004023821, 0.0003448391, 0.0002848604, 0.0002310919, 0.0001883655, 0.0001542803, 0.0001183895, 0.0000997749, 0.0000806245, 0.0000651435, 0.0000526299, 0.0000425160, 0.0000343423, 0.0000277373}, - {0.8042183727, 0.7399774460, 0.6572309383, 0.5606820357, 0.4838771339, 0.3873698947, 0.3524369720, 0.2784529434, 0.2362847303, 0.1792786763, 0.1369112081, 0.1138531705, 0.1009642906, 0.0765041256, 0.0607773091, 0.0476099718, 0.0392553144, 0.0308806961, 0.0262226576, 0.0187659234, 0.0144250437, 0.0109958102, 0.0089421592, 0.0074301249, 0.0063253119, 0.0045156234, 0.0037764614, 0.0024874112, 0.0022991697, 0.0019428784, 0.0014394386, 0.0011302584, 0.0009192145, 0.0007940862, 0.0006503762, 0.0005404983, 0.0004518994, 0.0003709437, 0.0003017468, 0.0002460422, 0.0002011048, 0.0001591045, 0.0001319152, 0.0001070967, 0.0000869434, 0.0000705791, 0.0000572920, 0.0000465041, 0.0000377457}, - {0.8340830000, 0.7781110000, 0.7046480000, 0.6096950000, 0.5307350000, 0.4367820000, 0.3928040000, 0.3178410000, 0.2738630000, 0.2133930000, 0.1674160000, 0.1404300000, 0.1249380000, 0.0959520000, 0.0774613000, 0.0609695000, 0.0504798000, 0.0399800000, 0.0339713000, 0.0247167000, 0.0189920000, 0.0146949000, 0.0119348000, 0.0099018100, 0.0084907900, 0.0061669400, 0.0050578200, 0.0034258100, 0.0030905600, 0.0025866200, 0.0019176100, 0.0015112000, 0.0012309100, 0.0010912300, 0.0008900885, 0.0007260225, 0.0005921981, 0.0004830409, 0.0003940041, 0.0003213791, 0.0002621408, 0.0002138216, 0.0001744088, 0.0001422608, 0.0001160385, 0.0000946497, 0.0000772033, 0.0000629728, 0.0000513653}, - {0.8813095000, 0.8178410000, 0.7556225000, 0.6709145000, 0.6007000000, 0.5174915000, 0.4357825000, 0.3683160000, 0.3115940000, 0.2416290000, 0.2111445000, 0.1674165000, 0.1466770000, 0.1131935000, 0.0872064000, 0.0729635000, 0.0604723000, 0.0472264000, 0.0384749000, 0.0297859500, 0.0244875500, 0.0192442500, 0.0154772000, 0.0124230050, 0.0101748950, 0.0073945300, 0.0063104800, 0.0047299500, 0.0039477700, 0.0030726150, 0.0023518110, 0.0018216600, 0.0014548650, 0.0012927950, 0.0010582957, 0.0008663402, 0.0007092086, 0.0005805821, 0.0004752885, 0.0003890944, 0.0003185347, 0.0002607730, 0.0002134875, 0.0001747779, 0.0001430884, 0.0001171457, 0.0000959075, 0.0000785204, 0.0000642860}, - {0.9285360000, 0.8575710000, 0.8065970000, 0.7321340000, 0.6706650000, 0.5982010000, 0.4787610000, 0.4187910000, 0.3493250000, 0.2698650000, 0.2548730000, 0.1944030000, 0.1684160000, 0.1304350000, 0.0969515000, 0.0849575000, 0.0704648000, 0.0544728000, 0.0429785000, 0.0348552000, 0.0299831000, 0.0237936000, 0.0190196000, 0.0149442000, 0.0118590000, 0.0086221200, 0.0075631400, 0.0060340900, 0.0048049800, 0.0035586100, 0.0027860120, 0.0021321200, 0.0016788200, 0.0014943600, 0.0012265029, 0.0010066580, 0.0008262192, 0.0006781232, 0.0005565728, 0.0004568097, 0.0003749287, 0.0003077245, 0.0002525663, 0.0002072950, 0.0001701383, 0.0001396418, 0.0001146117, 0.0000940680, 0.0000772068}, - {0.9640179910, 0.9375312344, 0.9080459770, 0.8495752124, 0.7511244378, 0.6886556722, 0.6096951524, 0.5177411294, 0.4367816092, 0.3873063468, 0.2903548226, 0.2573713143, 0.2093953023, 0.1749125437, 0.1459270365, 0.1159420290, 0.0959520240, 0.0754622689, 0.0604697651, 0.0514742629, 0.0439780110, 0.0369815092, 0.0256410256, 0.0207359813, 0.0144338280, 0.0108762255, 0.0111793418, 0.0073385013, 0.0068105516, 0.0045571245, 0.0035277750, 0.0030704030, 0.0025348090, 0.0016420361, 0.0014582948, 0.0012009721, 0.0009890552, 0.0008145320, 0.0006708041, 0.0005524377, 0.0004549576, 0.0003746783, 0.0003085646, 0.0002541170, 0.0002092769, 0.0001723491, 0.0001419373, 0.0001168918, 0.0000962657}, - {0.9980010000, 0.9945030000, 0.9815090000, 0.9695150000, 0.9355320000, 0.8905550000, 0.8280860000, 0.7616190000, 0.6701650000, 0.5857070000, 0.5377310000, 0.4352820000, 0.3663170000, 0.2983510000, 0.2433780000, 0.1954020000, 0.1579210000, 0.1339330000, 0.1154420000, 0.0899550000, 0.0679660000, 0.0559735000, 0.0509745000, 0.0384823000, 0.0294449000, 0.0239270000, 0.0198168000, 0.0145598000, 0.0129657000, 0.0101342000, 0.0069021600, 0.0063336700, 0.0041917200, 0.0036633800, 0.0026964400, 0.0021258800, 0.0017740846, 0.0014805050, 0.0012355077, 0.0010310531, 0.0008604321, 0.0007180458, 0.0005992220, 0.0005000614, 0.0004173101, 0.0003482527, 0.0002906230, 0.0002425301, 0.0002023956}, - {1.0000000000, 0.9985010000, 0.9955020000, 0.9920040000, 0.9865070000, 0.9645180000, 0.9230380000, 0.8760620000, 0.8110940000, 0.7546230000, 0.6701650000, 0.5787110000, 0.5082460000, 0.4057970000, 0.3603200000, 0.2998500000, 0.2398800000, 0.1929040000, 0.1774110000, 0.1389310000, 0.1134430000, 0.0844578000, 0.0654673000, 0.0499750000, 0.0424788000, 0.0344828000, 0.0300975000, 0.0199550000, 0.0186499000, 0.0113292000, 0.0130851000, 0.0086217400, 0.0066398600, 0.0064686600, 0.0052698000, 0.0040571400, 0.0024453200, 0.0023093200, 0.0016669800, 0.0014200300, 0.0011200000, 0.0006200000, 0.0007200000, 0.0005982817, 0.0004971403, 0.0004130971, 0.0003432617, 0.0002852323, 0.0002370128}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9900000000, 0.9765120000, 0.9487755000, 0.9102950000, 0.8600695000, 0.7986010000, 0.7223890000, 0.6469265000, 0.5659670000, 0.4687655000, 0.4040480000, 0.3423290000, 0.2808595000, 0.2176415000, 0.1979010000, 0.1534235000, 0.1294350000, 0.0947029000, 0.0784608000, 0.0597201500, 0.0494753000, 0.0409795500, 0.0307082000, 0.0236999500, 0.0209262500, 0.0150810500, 0.0142885500, 0.0105652700, 0.0090885300, 0.0069104200, 0.0057593500, 0.0042629600, 0.0030770250, 0.0028803900, 0.0023507800, 0.0018247200, 0.0014272500, 0.0009800000, 0.0007900000, 0.0006556048, 0.0005440738, 0.0004515169, 0.0003747062, 0.0003109627, 0.0002580634}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9960020000, 0.9885060000, 0.9745130000, 0.9445280000, 0.9090450000, 0.8425790000, 0.7746130000, 0.7151420000, 0.6236880000, 0.5317340000, 0.4477760000, 0.3848080000, 0.3218390000, 0.2423790000, 0.2183910000, 0.1679160000, 0.1454270000, 0.1049480000, 0.0914543000, 0.0694653000, 0.0564718000, 0.0474763000, 0.0313189000, 0.0274449000, 0.0232026000, 0.0188329000, 0.0154920000, 0.0125088000, 0.0115372000, 0.0073521800, 0.0062489000, 0.0044687800, 0.0037087300, 0.0034514600, 0.0030345800, 0.0022294100, 0.0017345000, 0.0013400000, 0.0008600000, 0.0007129279, 0.0005910073, 0.0004899367, 0.0004061507, 0.0003366932, 0.0002791139}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9950020000, 0.9885060000, 0.9710140000, 0.9435280000, 0.8960520000, 0.8330830000, 0.7671160000, 0.7031480000, 0.6036980000, 0.5232380000, 0.4572710000, 0.3818090000, 0.3323340000, 0.2593700000, 0.2033980000, 0.1679160000, 0.1469270000, 0.1104450000, 0.0874563000, 0.0834583000, 0.0654673000, 0.0469765000, 0.0464768000, 0.0341182000, 0.0239218000, 0.0191066000, 0.0165540000, 0.0130299000, 0.0112431000, 0.0073309200, 0.0073362300, 0.0060533700, 0.0042497200, 0.0034644300, 0.0022124600, 0.0018535400, 0.0020812600, 0.0011800000, 0.0009782197, 0.0008109439, 0.0006722723, 0.0005573136, 0.0004620128, 0.0003830085}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9985010000, 0.9955020000, 0.9855070000, 0.9645180000, 0.9415290000, 0.8945530000, 0.8490750000, 0.7676160000, 0.6786610000, 0.6181910000, 0.5147430000, 0.4507750000, 0.3668170000, 0.2983510000, 0.2643680000, 0.2073960000, 0.1874060000, 0.1429290000, 0.1204400000, 0.1029490000, 0.0849575000, 0.0609695000, 0.0524738000, 0.0389805000, 0.0278322000, 0.0200735000, 0.0175569000, 0.0156457000, 0.0142800000, 0.0119188000, 0.0082290200, 0.0058513300, 0.0046508600, 0.0039333000, 0.0031392300, 0.0025481800, 0.0024910500, 0.0018512700, 0.0015602030, 0.0013148992, 0.0011081635, 0.0009339318, 0.0007870939, 0.0006633426}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9859749497, 0.9893140776, 0.9605586356, 0.9397905344, 0.8379947372, 0.7629323816, 0.7303753024, 0.5794383550, 0.5321982997, 0.4048779586, 0.3431904970, 0.3436141920, 0.2561584412, 0.2390371330, 0.1849671696, 0.1658633352, 0.1269915227, 0.1102501066, 0.0791306277, 0.0592446056, 0.0445357428, 0.0323818173, 0.0210893305, 0.0186205592, 0.0187866314, 0.0181372042, 0.0193778944, 0.0092304590, 0.0056560334, 0.0050898644, 0.0044656261, 0.0044542116, 0.0035031460, 0.0029815257, 0.0029044073, 0.0024884323, 0.0021320340, 0.0018266798, 0.0015650590, 0.0013409081, 0.0011488606} }, { {0.7825320525, 0.6497970570, 0.4898571282, 0.3774585608, 0.2820559331, 0.1740004611, 0.1227956815, 0.0712425715, 0.0439727471, 0.0223108936, 0.0131842504, 0.0091251769, 0.0062658486, 0.0023429655, 0.0016755165, 0.0008377759, 0.0005003418, 0.0003080185, 0.0002159449, 0.0001291556, 0.0000726699, 0.0000534175, 0.0000346099, 0.0000275183, 0.0000198516, 0.0000144915, 0.0000110706, 0.0000081976, 0.0000059423, 0.0000041199, 0.0000027866, 0.0000019025, 0.0000014059, 0.0000009385, 0.0000006260, 0.0000004172, 0.0000002779, 0.0000001849, 0.0000001230, 0.0000000817, 0.0000000543, 0.0000000360, 0.0000000239, 0.0000000158, 0.0000000105, 0.0000000069, 0.0000000046, 0.0000000030, 0.0000000020}, - {0.8042444185, 0.6819137635, 0.5306690315, 0.4168998755, 0.3177463923, 0.2029188975, 0.1459232750, 0.0885995493, 0.0571471210, 0.0305040217, 0.0189650884, 0.0134318374, 0.0093603105, 0.0037762127, 0.0027126194, 0.0014183743, 0.0008642090, 0.0005432337, 0.0003795107, 0.0002317987, 0.0001306831, 0.0000947697, 0.0000625188, 0.0000480873, 0.0000343846, 0.0000248060, 0.0000185163, 0.0000135019, 0.0000096895, 0.0000067251, 0.0000045819, 0.0000031437, 0.0000022888, 0.0000015440, 0.0000010411, 0.0000007015, 0.0000004725, 0.0000003180, 0.0000002139, 0.0000001438, 0.0000000966, 0.0000000649, 0.0000000435, 0.0000000292, 0.0000000196, 0.0000000131, 0.0000000088, 0.0000000059, 0.0000000039}, - {0.8265592222, 0.7156178624, 0.5748811333, 0.4604624831, 0.3579530086, 0.2366435049, 0.1734067675, 0.1101852442, 0.0742685791, 0.0417058750, 0.0272806241, 0.0197710420, 0.0139830082, 0.0060862110, 0.0043916631, 0.0024013413, 0.0014926940, 0.0009580684, 0.0006669682, 0.0004160150, 0.0002350088, 0.0001681341, 0.0001129330, 0.0000840309, 0.0000595570, 0.0000424619, 0.0000309695, 0.0000222382, 0.0000157994, 0.0000109777, 0.0000075338, 0.0000051945, 0.0000037262, 0.0000025404, 0.0000017314, 0.0000011795, 0.0000008033, 0.0000005468, 0.0000003721, 0.0000002531, 0.0000001721, 0.0000001170, 0.0000000795, 0.0000000540, 0.0000000366, 0.0000000249, 0.0000000169, 0.0000000114, 0.0000000077}, - {0.8494931790, 0.7509878116, 0.6227767172, 0.5085770248, 0.4032472421, 0.2759730567, 0.2060665580, 0.1370299075, 0.0965196801, 0.0570213340, 0.0392422347, 0.0291020573, 0.0208886786, 0.0098092895, 0.0071099929, 0.0040655275, 0.0025782366, 0.0016896875, 0.0011721580, 0.0007466325, 0.0004226189, 0.0002982921, 0.0002040006, 0.0001468410, 0.0001031576, 0.0000726844, 0.0000517984, 0.0000366274, 0.0000257623, 0.0000179195, 0.0000123875, 0.0000085834, 0.0000060663, 0.0000041798, 0.0000028794, 0.0000019832, 0.0000013657, 0.0000009403, 0.0000006472, 0.0000004454, 0.0000003065, 0.0000002109, 0.0000001450, 0.0000000997, 0.0000000686, 0.0000000471, 0.0000000324, 0.0000000223, 0.0000000153}, - {0.8730634683, 0.7881059470, 0.6746626687, 0.5617191404, 0.4542728636, 0.3218390805, 0.2448775612, 0.1704147926, 0.1254372814, 0.0779610195, 0.0564485981, 0.0428368794, 0.0312047944, 0.0158098628, 0.0115109011, 0.0068830340, 0.0044532264, 0.0029800000, 0.0020600000, 0.0013400000, 0.0007600000, 0.0005292096, 0.0003685036, 0.0002565995, 0.0001786775, 0.0001244182, 0.0000866359, 0.0000603271, 0.0000420074, 0.0000292510, 0.0000203683, 0.0000141830, 0.0000098760, 0.0000068770, 0.0000047886, 0.0000033345, 0.0000023219, 0.0000016168, 0.0000011258, 0.0000007839, 0.0000005459, 0.0000003801, 0.0000002647, 0.0000001843, 0.0000001283, 0.0000000894, 0.0000000622, 0.0000000433, 0.0000000302}, - {0.9165417291, 0.8490754623, 0.7553723138, 0.6534232884, 0.5337331334, 0.4105447276, 0.3210894553, 0.2401299350, 0.1666666667, 0.1206896552, 0.0779494365, 0.0570148565, 0.0439538805, 0.0238668765, 0.0174735942, 0.0104982513, 0.0070505861, 0.0042271932, 0.0029479961, 0.0018800000, 0.0012300000, 0.0008546048, 0.0005542518, 0.0004182998, 0.0002972762, 0.0002113056, 0.0001502240, 0.0001068179, 0.0000759669, 0.0000540355, 0.0000384421, 0.0000273532, 0.0000194662, 0.0000138555, 0.0000098636, 0.0000070229, 0.0000050011, 0.0000035619, 0.0000025372, 0.0000018076, 0.0000012880, 0.0000009179, 0.0000006542, 0.0000004663, 0.0000003325, 0.0000002371, 0.0000001691, 0.0000001206, 0.0000000860}, - {0.9600199900, 0.9100449775, 0.8360819590, 0.7451274363, 0.6131934033, 0.4992503748, 0.3973013493, 0.3098450775, 0.2078960520, 0.1634182909, 0.0994502749, 0.0711928336, 0.0567029666, 0.0319238901, 0.0234362874, 0.0141134685, 0.0096479458, 0.0054743864, 0.0038359923, 0.0024200000, 0.0017000000, 0.0011800000, 0.0007400000, 0.0005800000, 0.0004158749, 0.0002981930, 0.0002138121, 0.0001533088, 0.0001099263, 0.0000788200, 0.0000565160, 0.0000405234, 0.0000290563, 0.0000208341, 0.0000149386, 0.0000107114, 0.0000076803, 0.0000055070, 0.0000039487, 0.0000028313, 0.0000020301, 0.0000014556, 0.0000010437, 0.0000007484, 0.0000005366, 0.0000003848, 0.0000002759, 0.0000001978, 0.0000001418}, - {0.9960019990, 0.9900049975, 0.9625187406, 0.9315342329, 0.8555722139, 0.7846076962, 0.6621689155, 0.5707146427, 0.4347826087, 0.3383308346, 0.2638680660, 0.1689155422, 0.1274362819, 0.0899550225, 0.0575896262, 0.0360726230, 0.0254208754, 0.0166007036, 0.0099828111, 0.0069875058, 0.0043556017, 0.0028400000, 0.0015000000, 0.0011600000, 0.0008800000, 0.0005400000, 0.0004014177, 0.0002984003, 0.0002218207, 0.0001648940, 0.0001225766, 0.0000911193, 0.0000677350, 0.0000503519, 0.0000374299, 0.0000278241, 0.0000206835, 0.0000153754, 0.0000114296, 0.0000084964, 0.0000063159, 0.0000046950, 0.0000034901, 0.0000025944, 0.0000019286, 0.0000014337, 0.0000010657, 0.0000007922, 0.0000005889}, - {1.0000000000, 1.0000000000, 0.9980012000, 0.9955023000, 0.9865074000, 0.9670165000, 0.9360326000, 0.8420797000, 0.7671168000, 0.6411799000, 0.5342331000, 0.4272861100, 0.3243381200, 0.2428791300, 0.1654171400, 0.1194415000, 0.0849575160, 0.0551095170, 0.0345934180, 0.0246934190, 0.0147032000, 0.0094475421, 0.0062830322, 0.0041403923, 0.0026886824, 0.0017345250, 0.0011232326, 0.0007023200, 0.0005238028, 0.0003906615, 0.0002913623, 0.0002173032, 0.0001620687, 0.0001208737, 0.0000901498, 0.0000672353, 0.0000501453, 0.0000373993, 0.0000278930, 0.0000208031, 0.0000155153, 0.0000115716, 0.0000086303, 0.0000064366, 0.0000048006, 0.0000035803, 0.0000026703, 0.0000019915, 0.0000014853}, - {1.0000000000, 1.0000000000, 1.0000000000, 0.9980009995, 0.9920039980, 0.9900049975, 0.9595202399, 0.9100449775, 0.8385807096, 0.7436281859, 0.6551724138, 0.5082458771, 0.4092953523, 0.3008495752, 0.2133933033, 0.1649175412, 0.1174412794, 0.0799600200, 0.0545914678, 0.0329119442, 0.0244732577, 0.0144705319, 0.0094416307, 0.0063777665, 0.0040175602, 0.0025000000, 0.0015800000, 0.0009000000, 0.0007400000, 0.0005523457, 0.0004122780, 0.0003077297, 0.0002296934, 0.0001714462, 0.0001279697, 0.0000955182, 0.0000712961, 0.0000532163, 0.0000397213, 0.0000296485, 0.0000221300, 0.0000165182, 0.0000123294, 0.0000092028, 0.0000068691, 0.0000051272, 0.0000038270, 0.0000028565, 0.0000021321}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9900000000, 0.9935032484, 0.9770114943, 0.9430284858, 0.8883058471, 0.8093453273, 0.7183908046, 0.5934532734, 0.4962518741, 0.3715642179, 0.2801099450, 0.2108945527, 0.1419290355, 0.0994502749, 0.0717734950, 0.0495990801, 0.0357422328, 0.0204000436, 0.0125422180, 0.0093305899, 0.0054805233, 0.0037057637, 0.0025182029, 0.0014300000, 0.0011400000, 0.0006061728, 0.0004524077, 0.0003376474, 0.0002519979, 0.0001880747, 0.0001403666, 0.0001047605, 0.0000781863, 0.0000583532, 0.0000435510, 0.0000325036, 0.0000242586, 0.0000181050, 0.0000135124, 0.0000100848, 0.0000075266, 0.0000056174, 0.0000041924, 0.0000031290, 0.0000023352}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9970014993, 0.9945027486, 0.9760119940, 0.9380309845, 0.8750624688, 0.7816091954, 0.6786606697, 0.5832083958, 0.4422788606, 0.3468265867, 0.2568715642, 0.1664167916, 0.1189405297, 0.0889555222, 0.0662862160, 0.0470112080, 0.0263295554, 0.0156428053, 0.0122834133, 0.0069434865, 0.0049115275, 0.0034564058, 0.0019600000, 0.0015400000, 0.0006600000, 0.0004925373, 0.0003675652, 0.0002743024, 0.0002047033, 0.0001527636, 0.0001140027, 0.0000850766, 0.0000634900, 0.0000473806, 0.0000353587, 0.0000263871, 0.0000196918, 0.0000146954, 0.0000109667, 0.0000081841, 0.0000061076, 0.0000045579, 0.0000034014, 0.0000025384}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9990004998, 0.9895052474, 0.9660169915, 0.9355322339, 0.8760619690, 0.7841079460, 0.6861569215, 0.5617191404, 0.4257871064, 0.3408295852, 0.2493753123, 0.1814092954, 0.1144427786, 0.0969515242, 0.0638207946, 0.0435912240, 0.0262608696, 0.0169796469, 0.0126912086, 0.0077634961, 0.0049155246, 0.0030326766, 0.0019200000, 0.0012200000, 0.0009000000, 0.0006703640, 0.0004993198, 0.0003719178, 0.0002770225, 0.0002063399, 0.0001536920, 0.0001144773, 0.0000852683, 0.0000635120, 0.0000473068, 0.0000352364, 0.0000262458, 0.0000195492, 0.0000145612, 0.0000108459, 0.0000080785, 0.0000060173, 0.0000044820}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9995002499, 0.9995002499, 0.9915042479, 0.9720139930, 0.9460269865, 0.8700649675, 0.7736131934, 0.6776611694, 0.5592203898, 0.4417791104, 0.3378310845, 0.2523738131, 0.1829085457, 0.1359320340, 0.0924537731, 0.0588693957, 0.0379587733, 0.0244336570, 0.0177877253, 0.0112076004, 0.0070046853, 0.0046377346, 0.0028600000, 0.0018000000, 0.0013200000, 0.0009400000, 0.0005200000, 0.0003909774, 0.0002939680, 0.0002210286, 0.0001661869, 0.0001249526, 0.0000939493, 0.0000706386, 0.0000531117, 0.0000399336, 0.0000300253, 0.0000225754, 0.0000169740, 0.0000127624, 0.0000095958, 0.0000072149, 0.0000054247}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9654449385, 0.8722164773, 0.8175342934, 0.7344690331, 0.5726286417, 0.4576629521, 0.3510985554, 0.2923341823, 0.1905851198, 0.1339328383, 0.0795023730, 0.0548675078, 0.0351599533, 0.0249308936, 0.0161796057, 0.0099817658, 0.0070922769, 0.0042602083, 0.0026557377, 0.0019360000, 0.0013180900, 0.0005415367, 0.0004110139, 0.0003119500, 0.0002367629, 0.0001796976, 0.0001363863, 0.0001035141, 0.0000785648, 0.0000596289, 0.0000452569, 0.0000343490, 0.0000260701, 0.0000197866, 0.0000150176, 0.0000113980, 0.0000086508, 0.0000065658} }, { {0.8812029842, 0.7856481093, 0.6151035999, 0.5607006785, 0.4411097117, 0.3808646376, 0.2837487729, 0.2162468999, 0.1721137980, 0.1137747857, 0.0816643668, 0.0656961899, 0.0485265998, 0.0318597424, 0.0244991975, 0.0145465980, 0.0158867394, 0.0107430701, 0.0094938769, 0.0042539892, 0.0036305150, 0.0035122684, 0.0022477649, 0.0018906544, 0.0012603015, 0.0011876215, 0.0008976262, 0.0007752078, 0.0003970316, 0.0003111325, 0.0001997266, 0.0001825160, 0.0001594696, 0.0001492596, 0.0001112891, 0.0000820083, 0.0000690064, 0.0000528467, 0.0000447975, 0.0000359933, 0.0000289949, 0.0000225760, 0.0000179111, 0.0000143054, 0.0000115382, 0.0000093766, 0.0000072393, 0.0000055795, 0.0000042929}, - {0.8951980686, 0.8090583468, 0.6525462741, 0.5962789937, 0.4767106751, 0.4116477798, 0.3121905185, 0.2421198535, 0.1963212668, 0.1342248674, 0.0982244405, 0.0800651095, 0.0604613231, 0.0407129099, 0.0318481592, 0.0198536227, 0.0208879267, 0.0146333072, 0.0128047216, 0.0061738641, 0.0052033182, 0.0049195967, 0.0033244904, 0.0027862381, 0.0018926695, 0.0017190786, 0.0013395947, 0.0011138827, 0.0006162574, 0.0004760003, 0.0003147678, 0.0002780416, 0.0002374724, 0.0002135661, 0.0001619518, 0.0001217335, 0.0001010776, 0.0000782027, 0.0000652934, 0.0000523680, 0.0000420835, 0.0000329668, 0.0000261912, 0.0000209126, 0.0000168212, 0.0000136069, 0.0000105917, 0.0000082341, 0.0000063929}, - {0.9094154200, 0.8331661475, 0.6922681641, 0.6341148709, 0.5151849115, 0.4449189499, 0.3434831413, 0.2710883878, 0.2239334687, 0.1583506830, 0.1181426012, 0.0975767662, 0.0753312946, 0.0520261906, 0.0414015703, 0.0270968053, 0.0274635008, 0.0199322613, 0.0172701728, 0.0089602008, 0.0074574876, 0.0068908263, 0.0049169896, 0.0041060505, 0.0028423341, 0.0024883611, 0.0019991773, 0.0016005189, 0.0009565315, 0.0007282308, 0.0004960718, 0.0004235635, 0.0003536295, 0.0003055781, 0.0002356779, 0.0001807019, 0.0001480540, 0.0001157247, 0.0000951667, 0.0000761922, 0.0000610804, 0.0000481401, 0.0000382989, 0.0000305715, 0.0000245231, 0.0000197457, 0.0000154967, 0.0000121515, 0.0000095202}, - {0.9238585684, 0.8579922969, 0.7344080107, 0.6743515599, 0.5567643161, 0.4808792411, 0.3779124009, 0.3035228748, 0.2554292728, 0.1868129154, 0.1420998089, 0.1189185321, 0.0938584149, 0.0664831995, 0.0538206938, 0.0369825129, 0.0361090829, 0.0271500512, 0.0232928820, 0.0130040437, 0.0106882028, 0.0096519066, 0.0072723285, 0.0060510446, 0.0042685018, 0.0036018953, 0.0029835218, 0.0022997581, 0.0014846920, 0.0011141172, 0.0007818056, 0.0006452489, 0.0005266035, 0.0004372321, 0.0003429666, 0.0002682349, 0.0002168630, 0.0001712497, 0.0001387078, 0.0001108550, 0.0000886528, 0.0000702969, 0.0000560038, 0.0000446914, 0.0000357516, 0.0000286540, 0.0000226730, 0.0000179328, 0.0000141774}, - {0.9385311000, 0.8835582000, 0.7791130000, 0.7171414000, 0.6016995000, 0.5197460000, 0.4157927000, 0.3398380000, 0.2913549000, 0.2203910000, 0.1709151100, 0.1449281200, 0.1169421300, 0.0849575140, 0.0699651500, 0.0504748160, 0.0474763170, 0.0369815180, 0.0314159190, 0.0188729200, 0.0153185210, 0.0135193220, 0.0107559230, 0.0089173624, 0.0064102625, 0.0052137326, 0.0044525327, 0.0033044828, 0.0023044829, 0.0017044830, 0.0012321200, 0.0009829603, 0.0007841858, 0.0006256075, 0.0004990970, 0.0003981694, 0.0003176515, 0.0002534159, 0.0002021701, 0.0001612872, 0.0001286716, 0.0001026516, 0.0000818934, 0.0000653329, 0.0000521212, 0.0000415813, 0.0000331727, 0.0000264645, 0.0000211128}, - {0.9688155500, 0.9377812000, 0.8790630000, 0.8388327000, 0.7628690000, 0.6816623000, 0.6049482000, 0.5242424000, 0.4680169000, 0.3933040500, 0.3163421100, 0.2701151200, 0.2203901300, 0.1719143270, 0.1391806500, 0.1159419880, 0.0897052435, 0.0777113490, 0.0596860545, 0.0496663700, 0.0371445210, 0.0279988220, 0.0261176230, 0.0211998432, 0.0167922438, 0.0123891793, 0.0102667299, 0.0079233814, 0.0064233865, 0.0049178565, 0.0036904255, 0.0025145462, 0.0018819345, 0.0013856707, 0.0010672252, 0.0008153147, 0.0006673278, 0.0005463149, 0.0004473373, 0.0003663648, 0.0003001079, 0.0002458808, 0.0002014900, 0.0001651439, 0.0001353787, 0.0001109980, 0.0000910239, 0.0000746568, 0.0000612429}, - {0.9991000000, 0.9920042000, 0.9790130000, 0.9605240000, 0.9240385000, 0.8435786000, 0.7941037000, 0.7086468000, 0.6446789000, 0.5662171000, 0.4617691100, 0.3953021200, 0.3238381300, 0.2588711400, 0.2083961500, 0.1814091600, 0.1319341700, 0.1184411800, 0.0879561900, 0.0804598200, 0.0589705210, 0.0424783220, 0.0414793230, 0.0334823240, 0.0271742250, 0.0195646260, 0.0160809270, 0.0125422800, 0.0105422900, 0.0081312300, 0.0061487310, 0.0040461320, 0.0029796833, 0.0021457340, 0.0016353535, 0.0012324600, 0.0010170042, 0.0008392139, 0.0006925045, 0.0005714424, 0.0004715442, 0.0003891099, 0.0003210866, 0.0002649550, 0.0002186362, 0.0001804147, 0.0001488750, 0.0001228491, 0.0001013729}, - {1.0000000000, 1.0000000000, 0.9985012000, 0.9975013000, 0.9950024000, 0.9835085000, 0.9665176000, 0.9395370000, 0.8710648000, 0.8130939000, 0.7376311000, 0.6636681100, 0.5482261200, 0.4967521300, 0.3948031400, 0.3273361500, 0.2683661600, 0.2228891700, 0.1774111800, 0.1574211900, 0.1279362000, 0.0944528210, 0.0684658220, 0.0584708230, 0.0454773240, 0.0409795250, 0.0268026260, 0.0308832700, 0.0178258280, 0.0164012900, 0.0136172300, 0.0104029310, 0.0085665320, 0.0065748533, 0.0049784534, 0.0035641535, 0.0030203476, 0.0025595136, 0.0021689921, 0.0018380550, 0.0015576111, 0.0013199563, 0.0011185620, 0.0009478958, 0.0008032692, 0.0006807092, 0.0005768490, 0.0004888355, 0.0004142507}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9995500000, 0.9950026000, 0.9835087000, 0.9630188000, 0.9380319000, 0.8860571000, 0.8250871100, 0.7561221200, 0.6631681300, 0.5857071400, 0.5062471500, 0.4422791600, 0.3518241700, 0.2993518000, 0.2488761900, 0.2033982000, 0.1669172100, 0.1314342200, 0.1174412300, 0.0904548240, 0.0739632500, 0.0534733260, 0.0409742700, 0.0311951280, 0.0258495290, 0.0191252300, 0.0156156310, 0.0126156320, 0.0100062330, 0.0079126234, 0.0058615635, 0.0043515500, 0.0036553139, 0.0030704737, 0.0025792064, 0.0021665404, 0.0018198999, 0.0015287209, 0.0012841298, 0.0010786725, 0.0009060879, 0.0007611163, 0.0006393398, 0.0005370472, 0.0004511211}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9945037000, 0.9945038000, 0.9770119000, 0.9590210000, 0.9175411100, 0.8650671200, 0.8001130000, 0.7281361400, 0.6456771500, 0.5687161600, 0.4572711700, 0.4022991800, 0.3428291900, 0.2628692000, 0.2158922100, 0.1724142200, 0.1334332300, 0.1264372400, 0.0979512500, 0.0669665260, 0.0519742700, 0.0439782800, 0.0354823290, 0.0288266300, 0.0209873310, 0.0181667320, 0.0151330000, 0.0125122340, 0.0103003350, 0.0084289536, 0.0069365837, 0.0052390838, 0.0041172939, 0.0034169400, 0.0028169410, 0.0019909420, 0.0013690100, 0.0012008860, 0.0010534087, 0.0009240428, 0.0008105638, 0.0007110209, 0.0006237025}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9900000000, 1.0000000000, 0.9971018500, 0.9970419000, 0.9857579000, 0.9747630500, 0.9447776100, 0.9070461200, 0.8508310650, 0.7833586400, 0.7091456500, 0.6264371600, 0.5357321700, 0.4717641800, 0.3865571900, 0.3193407000, 0.2621192100, 0.2146432200, 0.1704147300, 0.1529248200, 0.1156922500, 0.0867068930, 0.0707147985, 0.0559722800, 0.0439780790, 0.0354029650, 0.0280158810, 0.0234674820, 0.0182754165, 0.0166789340, 0.0135965350, 0.0103363948, 0.0088914604, 0.0064098488, 0.0054010839, 0.0044812620, 0.0034812626, 0.0026682631, 0.0018624050, 0.0015953282, 0.0013670105, 0.0011717659, 0.0010047507, 0.0008618375, 0.0007395084}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9997000000, 0.9995800000, 0.9945039000, 0.9905051000, 0.9720141100, 0.9490251200, 0.9015491300, 0.8385811400, 0.7726141500, 0.6841581600, 0.6141931700, 0.5412291800, 0.4302851900, 0.3758122000, 0.3083462100, 0.2568722200, 0.2073962300, 0.1794124000, 0.1334332500, 0.1064472600, 0.0894553270, 0.0679662800, 0.0524738290, 0.0419793000, 0.0350444310, 0.0287682320, 0.0214178330, 0.0208456340, 0.0168927350, 0.0122438360, 0.0108463370, 0.0075806138, 0.0066848739, 0.0055455840, 0.0041455841, 0.0033455842, 0.0023558000, 0.0019897704, 0.0016806122, 0.0014194891, 0.0011989377, 0.0010126542, 0.0008553142}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9985019000, 0.9960021000, 0.9895051100, 0.9750121200, 0.9525241300, 0.9160421400, 0.8420791500, 0.7721141600, 0.7036481700, 0.6011991800, 0.5187411900, 0.4637682000, 0.3833082100, 0.3098452200, 0.2543732300, 0.2138932400, 0.1699152500, 0.1454272600, 0.1244382700, 0.0909545280, 0.0734633290, 0.0619693000, 0.0529735310, 0.0444778320, 0.0343882330, 0.0261195340, 0.0229031350, 0.0194734360, 0.0152583370, 0.0124234380, 0.0089725839, 0.0073345840, 0.0059079141, 0.0048261542, 0.0038256143, 0.0028256144, 0.0020256145, 0.0015256100, 0.0013020441, 0.0011112400, 0.0009483967}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 0.9995800000, 0.9995900000, 0.9995100000, 0.9940031100, 0.9915041200, 0.9695151300, 0.9460271400, 0.9075461500, 0.8475761600, 0.7626191700, 0.6936531800, 0.6171911900, 0.5327342000, 0.4682662100, 0.3923042200, 0.3163422300, 0.2808624000, 0.2068972500, 0.1714142600, 0.1559222700, 0.1154422800, 0.0979512900, 0.0704648300, 0.0719643100, 0.0579713200, 0.0434783330, 0.0277561340, 0.0256133350, 0.0225254360, 0.0164314370, 0.0148536380, 0.0109669390, 0.0086606540, 0.0067330541, 0.0058258842, 0.0045178543, 0.0037178544, 0.0028917945, 0.0021785000, 0.0018622421, 0.0015918961, 0.0013607968}, - {1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0000000000, 1.0082750766, 0.9868092132, 0.9769936453, 0.9781028474, 0.9304133821, 0.8265323826, 0.8003250006, 0.7343256567, 0.6119559898, 0.5720546487, 0.4967080048, 0.3934077752, 0.3687993493, 0.2519283705, 0.2020449848, 0.1953720048, 0.1465228868, 0.1306019662, 0.0801250340, 0.0977632001, 0.0755584027, 0.0549712874, 0.0294952802, 0.0286442415, 0.0260557647, 0.0176947279, 0.0177592195, 0.0134045836, 0.0102264733, 0.0076734388, 0.0070327066, 0.0053353542, 0.0048918357, 0.0041283647, 0.0031107965, 0.0026634624, 0.0022804552, 0.0019525246} } }; diff --git a/src/corenetwork/binder/PhyPisaData.h b/src/corenetwork/binder/PhyPisaData.h index 7cf0d780..da47c2b8 100644 --- a/src/corenetwork/binder/PhyPisaData.h +++ b/src/corenetwork/binder/PhyPisaData.h @@ -23,7 +23,7 @@ class PhyPisaData public: PhyPisaData(); virtual ~PhyPisaData(); - double getBler(int i, int j, int k){if (j==0) return 1; else return blerCurves_[i][j][k-1];} + double getBler(int i, int j, int k){return blerCurves_[i][j][k-1];} double getLambda(int i, int j){return lambdaTable_[i][j];} int nTxMode(){return 3;} int nMcs(){return 15;} diff --git a/src/stack/mac/LteMac.ned b/src/stack/mac/LteMac.ned index 69edd759..e41b2fd8 100644 --- a/src/stack/mac/LteMac.ned +++ b/src/stack/mac/LteMac.ned @@ -46,18 +46,32 @@ simple LteMacBase like LteMac { //# //# Statistics recording //# + @signal[macThroughputIntervalDl]; + @statistic[macThroughputIntervalDl](title="Throughput at the MAC layer DL"; unit="Bps"; source="macThroughputIntervalDl"; record=mean,vector,timeavg); + @signal[macThroughputIntervalUl]; + @statistic[macThroughputIntervalUl](title="Throughput at the MAC layer UL"; unit="Bps"; source="macThroughputIntervalUl"; record=mean,vector,timeavg); + @signal[macCellThroughputIntervalUl]; + @statistic[macCellThroughputIntervalUl](title="Cell Throughput at the MAC layer UL"; unit="Bps"; source="macCellThroughputIntervalUl"; record=mean,vector,timeavg); + @signal[macCellThroughputIntervalDl]; + @statistic[macCellThroughputIntervalDl](title="Cell Throughput at the MAC layer DL"; unit="Bps"; source="macCellThroughputIntervalDl"; record=mean,vector,timeavg); + + @signal[macPacketSizeDl]; + @statistic[macPacketSizeDl](title="Packet size at the MAC layer DL"; unit="Bps"; source="macPacketSizeDl"; record=sum,mean,vector,timeavg); + @signal[macPacketSizeUl]; + @statistic[macPacketSizeUl](title="Packet size at the MAC layer UL"; unit="Bps"; source="macPacketSizeUl"; record=sum,mean,vector,timeavg); + @signal[macDelayDl]; @statistic[macDelayDl](title="Delay at the MAC layer UL"; unit="s"; source="macDelayDl"; record=mean,vector); @signal[macThroughputDl]; - @statistic[macThroughputDl](title="Throughput at the MAC layer DL"; unit="Bps"; source="macThroughputDl"; record=mean); + @statistic[macThroughputDl](title="Throughput at the MAC layer DL"; unit="Bps"; source="macThroughputDl"; record=mean,vector,timeavg,last); @signal[macDelayUl]; @statistic[macDelayUl](title="Delay at the MAC layer UL"; unit="s"; source="macDelayUl"; record=mean,vector); @signal[macThroughputUl]; - @statistic[macThroughputUl](title="Throughput at the MAC layer UL"; unit="Bps"; source="macThroughputUl"; record=mean); + @statistic[macThroughputUl](title="Throughput at the MAC layer UL"; unit="Bps"; source="macThroughputUl"; record=mean,vector,timeavg,last); @signal[macCellThroughputUl]; - @statistic[macCellThroughputUl](title="Cell Throughput at the MAC layer UL"; unit="Bps"; source="macCellThroughputUl"; record=mean); + @statistic[macCellThroughputUl](title="Cell Throughput at the MAC layer UL"; unit="Bps"; source="macCellThroughputUl"; record=mean,vector,timeavg,last); @signal[macCellThroughputDl]; - @statistic[macCellThroughputDl](title="Cell Throughput at the MAC layer DL"; unit="Bps"; source="macCellThroughputDl"; record=mean); + @statistic[macCellThroughputDl](title="Cell Throughput at the MAC layer DL"; unit="Bps"; source="macCellThroughputDl"; record=mean,vector,timeavg,last); @signal[macCellPacketLossDl]; @statistic[macCellPacketLossDl](title="Mac Cell Packet Loss Dl"; unit=""; source="macCellPacketLossDl"; record=mean); @signal[macCellPacketLossUl]; diff --git a/src/stack/mac/buffer/harq/LteHarqBufferRx.cc b/src/stack/mac/buffer/harq/LteHarqBufferRx.cc index da922e1e..18ef2b25 100644 --- a/src/stack/mac/buffer/harq/LteHarqBufferRx.cc +++ b/src/stack/mac/buffer/harq/LteHarqBufferRx.cc @@ -14,7 +14,8 @@ #include "stack/mac/layer/LteMacBase.h" #include "stack/mac/layer/LteMacEnb.h" -unsigned int LteHarqBufferRx::totalCellRcvdBytes_ = 0; +unsigned int LteHarqBufferRx::totalCellRcvdBytesDl_ = 0; +unsigned int LteHarqBufferRx::totalCellRcvdBytesUl_ = 0; LteHarqBufferRx::LteHarqBufferRx(unsigned int num, LteMacBase *owner, MacNodeId nodeId) @@ -38,13 +39,19 @@ LteHarqBufferRx::LteHarqBufferRx(unsigned int num, LteMacBase *owner, nodeB_ = macOwner_; macDelay_ = macUe_->registerSignal("macDelayUl"); macThroughput_ = getMacByMacNodeId(nodeId_)->registerSignal("macThroughputUl"); + macThroughputInterval_ = getMacByMacNodeId(nodeId_)->registerSignal("macThroughputIntervalUl"); + macPacketSize_ = getMacByMacNodeId(nodeId_)->registerSignal("macPacketSizeUl"); macCellThroughput_ = macOwner_->registerSignal("macCellThroughputUl"); + macCellThroughputInterval_ = macOwner_->registerSignal("macCellThroughputIntervalUl"); } else if (macOwner_->getNodeType() == UE) { nodeB_ = getMacByMacNodeId(macOwner_->getMacCellId()); macThroughput_ = macOwner_->registerSignal("macThroughputDl"); + macThroughputInterval_ = macOwner_->registerSignal("macThroughputIntervalDl"); + macPacketSize_ = macOwner_->registerSignal("macPacketSizeDl"); macCellThroughput_ = nodeB_->registerSignal("macCellThroughputDl"); + macCellThroughputInterval_ = nodeB_->registerSignal("macCellThroughputIntervalDl"); macDelay_ = macOwner_->registerSignal("macDelayDl"); } } @@ -135,22 +142,56 @@ std::list LteHarqBufferRx::extractCorrectPdus() macUe_->emit(macDelay_, (NOW - temp->getCreationTime()).dbl()); // Calculate Throughput by sending the number of bits for this packet - totalCellRcvdBytes_ += size; - totalRcvdBytes_ += size; - double tputSample = (double)totalRcvdBytes_ / (NOW - getSimulation()->getWarmupPeriod()); - double cellTputSample = (double)totalCellRcvdBytes_ / (NOW - getSimulation()->getWarmupPeriod()); - - // emit throughput statistics - nodeB_->emit(macCellThroughput_, cellTputSample); - if (uInfo->getDirection() == DL) + if (NOW > getSimulation()->getWarmupPeriod()) { - macOwner_->emit(macThroughput_, tputSample); + totalRcvdBytes_ += size; + intervalRcvdBytes_ += size; + + double tputSample = (double)totalRcvdBytes_ / (NOW - getSimulation()->getWarmupPeriod()); + + // emit throughput statistics + if (uInfo->getDirection() == DL) + { + totalCellRcvdBytesDl_ += size; + double cellTputSample = (double)totalCellRcvdBytesDl_ / (NOW - getSimulation()->getWarmupPeriod()); + nodeB_->emit(macCellThroughput_, cellTputSample); + macOwner_->emit(macThroughput_, tputSample); + macOwner_->emit(macPacketSize_, size); + } + else // UL + { + totalCellRcvdBytesUl_ += size; + double cellTputSample = (double)totalCellRcvdBytesUl_ / (NOW - getSimulation()->getWarmupPeriod()); + nodeB_->emit(macCellThroughput_, cellTputSample); + macUe_->emit(macThroughput_, tputSample); + macUe_->emit(macPacketSize_, size); + } } - else // UL + + if (NOW > getSimulation()->getWarmupPeriod() && NOW > tpIntervalStart + tpIntervalLength_) { - macUe_->emit(macThroughput_, tputSample); + double tputSample = (double)intervalRcvdBytes_ / (NOW - tpIntervalStart); + + // emit throughput statistics + if (uInfo->getDirection() == DL) + { + double cellTputSample = (double) (totalCellRcvdBytesDl_ - intervalStartCellRcvdBytesDl_) / (NOW - tpIntervalStart); + nodeB_->emit(macCellThroughputInterval_, cellTputSample); + macOwner_->emit(macThroughputInterval_, tputSample); + } + else // UL + { + double cellTputSample = (double) (totalCellRcvdBytesUl_ - intervalStartCellRcvdBytesUl_) / (NOW - tpIntervalStart); + nodeB_->emit(macCellThroughputInterval_, cellTputSample); + macUe_->emit(macThroughputInterval_, tputSample); + } + intervalStartCellRcvdBytesDl_ = totalCellRcvdBytesDl_; + intervalStartCellRcvdBytesUl_ = totalCellRcvdBytesUl_; + intervalRcvdBytes_ = 0; + tpIntervalStart = NOW; } + macOwner_->dropObj(temp); ret.push_back(temp); acid = i; diff --git a/src/stack/mac/buffer/harq/LteHarqBufferRx.h b/src/stack/mac/buffer/harq/LteHarqBufferRx.h index b66d54c8..7a114d57 100644 --- a/src/stack/mac/buffer/harq/LteHarqBufferRx.h +++ b/src/stack/mac/buffer/harq/LteHarqBufferRx.h @@ -46,11 +46,20 @@ class LteHarqBufferRx bool isMulticast_; //Statistics - static unsigned int totalCellRcvdBytes_; + static unsigned int totalCellRcvdBytesDl_; + static unsigned int totalCellRcvdBytesUl_; unsigned int totalRcvdBytes_ = 0; + unsigned int intervalStartCellRcvdBytesDl_ = 0; + unsigned int intervalStartCellRcvdBytesUl_ = 0; + unsigned int intervalRcvdBytes_ = 0; + simtime_t tpIntervalStart = 0; + simtime_t tpIntervalLength_ = SimTime(1000, SIMTIME_MS); simsignal_t macDelay_; simsignal_t macCellThroughput_; simsignal_t macThroughput_; + simsignal_t macCellThroughputInterval_; + simsignal_t macThroughputInterval_; + simsignal_t macPacketSize_; // reference to the eNB module cModule* nodeB_; diff --git a/src/stack/mac/buffer/harq_d2d/LteHarqBufferRxD2D.cc b/src/stack/mac/buffer/harq_d2d/LteHarqBufferRxD2D.cc index 52c06b88..0692475d 100644 --- a/src/stack/mac/buffer/harq_d2d/LteHarqBufferRxD2D.cc +++ b/src/stack/mac/buffer/harq_d2d/LteHarqBufferRxD2D.cc @@ -16,6 +16,8 @@ #include "stack/mac/layer/LteMacUeD2D.h" #include "stack/mac/layer/LteMacEnbD2D.h" +unsigned int LteHarqBufferRxD2D::totalCellRcvdBytesD2D_ = 0; + LteHarqBufferRxD2D::LteHarqBufferRxD2D(unsigned int num, LteMacBase *owner, MacNodeId nodeId, bool isMulticast) { macOwner_ = owner; @@ -146,28 +148,74 @@ std::list LteHarqBufferRxD2D::extractCorrectPdus() } // Calculate Throughput by sending the number of bits for this packet - totalRcvdBytes_ += size; - totalCellRcvdBytes_ += size; - double tputSample = (double)totalRcvdBytes_ / (NOW - getSimulation()->getWarmupPeriod()); - double cellTputSample = (double)totalCellRcvdBytes_ / (NOW - getSimulation()->getWarmupPeriod()); - - // emit throughput statistics - if (info->getDirection() == D2D) + if (NOW > getSimulation()->getWarmupPeriod()) { - check_and_cast(nodeB_)->emit(macCellThroughputD2D_, cellTputSample); - check_and_cast(macOwner_)->emit(macThroughputD2D_, tputSample); + totalRcvdBytes_ += size; + intervalRcvdBytes_ += size; + + double tputSample = (double)totalRcvdBytes_ / (NOW - getSimulation()->getWarmupPeriod()); + + // emit throughput statistics + if (info->getDirection() == D2D) + { + totalCellRcvdBytesD2D_ += size; + double cellTputSample = (double)totalCellRcvdBytesD2D_ / (NOW - getSimulation()->getWarmupPeriod()); + check_and_cast(nodeB_)->emit(macCellThroughputD2D_, cellTputSample); + check_and_cast(macOwner_)->emit(macThroughputD2D_, tputSample); + check_and_cast(macOwner_)->emit(macPacketSize_, size); + } + else + { + if (info->getDirection() == DL) + { + totalCellRcvdBytesDl_ += size; + double cellTputSample = (double)totalCellRcvdBytesDl_ / (NOW - getSimulation()->getWarmupPeriod()); + nodeB_->emit(macCellThroughput_, cellTputSample); + macOwner_->emit(macThroughput_, tputSample); + macOwner_->emit(macPacketSize_, size); + } + else // UL + { + totalCellRcvdBytesUl_ += size; + double cellTputSample = (double)totalCellRcvdBytesUl_ / (NOW - getSimulation()->getWarmupPeriod()); + nodeB_->emit(macCellThroughput_, cellTputSample); + macUe_->emit(macThroughput_, tputSample); + macUe_->emit(macPacketSize_, size); + } + } } - else + + if (NOW > getSimulation()->getWarmupPeriod() && NOW > tpIntervalStart + tpIntervalLength_) { - nodeB_->emit(macCellThroughput_, cellTputSample); - if (info->getDirection() == DL) + double tputSample = (double)intervalRcvdBytes_ / (NOW - tpIntervalStart); + + // emit throughput statistics + if (info->getDirection() == D2D) { - macOwner_->emit(macThroughput_, tputSample); + double cellTputSample = (double) (totalCellRcvdBytesD2D_ - intervalStartCellRcvdBytesD2D_) / (NOW - tpIntervalStart); + check_and_cast(nodeB_)->emit(macCellThroughputD2D_, cellTputSample); + check_and_cast(macOwner_)->emit(macThroughputD2D_, tputSample); } - else // UL + else { - macUe_->emit(macThroughput_, tputSample); + if (info->getDirection() == DL) + { + double cellTputSample = (double) (totalCellRcvdBytesDl_ - intervalStartCellRcvdBytesDl_) / (NOW - tpIntervalStart); + nodeB_->emit(macCellThroughputInterval_, cellTputSample); + macOwner_->emit(macThroughputInterval_, tputSample); + } + else // UL + { + double cellTputSample = (double) (totalCellRcvdBytesUl_ - intervalStartCellRcvdBytesUl_) / (NOW - tpIntervalStart); + nodeB_->emit(macCellThroughputInterval_, cellTputSample); + macUe_->emit(macThroughputInterval_, tputSample); + } } + intervalStartCellRcvdBytesD2D_ = totalCellRcvdBytesD2D_; + intervalStartCellRcvdBytesDl_ = totalCellRcvdBytesDl_; + intervalStartCellRcvdBytesUl_ = totalCellRcvdBytesUl_; + intervalRcvdBytes_ = 0; + tpIntervalStart = NOW; } ret.push_back(temp); diff --git a/src/stack/mac/buffer/harq_d2d/LteHarqBufferRxD2D.h b/src/stack/mac/buffer/harq_d2d/LteHarqBufferRxD2D.h index 99dabd29..cdd338d5 100644 --- a/src/stack/mac/buffer/harq_d2d/LteHarqBufferRxD2D.h +++ b/src/stack/mac/buffer/harq_d2d/LteHarqBufferRxD2D.h @@ -31,6 +31,8 @@ class LteHarqBufferRxD2D : public LteHarqBufferRx protected: // D2D Statistics + static unsigned int totalCellRcvdBytesD2D_; + unsigned int intervalStartCellRcvdBytesD2D_ = 0; simsignal_t macDelayD2D_; simsignal_t macCellThroughputD2D_; simsignal_t macThroughputD2D_; diff --git a/src/stack/phy/ChannelModel/GilbertElliotModel.cc b/src/stack/phy/ChannelModel/GilbertElliotModel.cc new file mode 100644 index 00000000..342f0ce8 --- /dev/null +++ b/src/stack/phy/ChannelModel/GilbertElliotModel.cc @@ -0,0 +1,96 @@ +// +// Created by seba on 09.07.19. +// + +#include +#include +#include "GilbertElliotModel.h" +#include "stack/phy/ChannelModel/LteGilbertElliotChannelModel.h" + +GilbertElliotModel::GilbertElliotModel() {} + +void GilbertElliotModel::setStartingState() { + double steady_state_good = getSteadyStateProbability(ChannelState::good); + double random_number = parent->getRandomNumber(); + if (random_number <= steady_state_good) + current_channel_state = ChannelState::good; + else + current_channel_state = ChannelState::bad; +} + +double GilbertElliotModel::update() { + double random_number = parent->getRandomNumber(); + double current_transition_probability = current_channel_state == ChannelState::good ? good_state_transition_prob : bad_state_transition_prob; + if (random_number <= current_transition_probability) + current_channel_state = current_channel_state == ChannelState::good ? ChannelState::bad : ChannelState::good; + current_channel_state == ChannelState::good ? num_times_good_state_visited++ : num_times_bad_state_visited++; + return getCurrentErrorProbability(); +} + +void GilbertElliotModel::setErrorProbability(const int channel_state, double error_probability) { + if (channel_state == ChannelState::good) + this->good_state_packet_error_prob = error_probability; + else if (channel_state == ChannelState::bad) + this->bad_state_packet_error_prob = error_probability; + else + throw std::invalid_argument("Channel state is neither good nor bad."); +} + +void GilbertElliotModel::setTransitionProbability(const int channel_state, double transition_probability) { + if (channel_state == ChannelState::good) + this->good_state_transition_prob = transition_probability; + else if (channel_state == ChannelState::bad) + this->bad_state_transition_prob = transition_probability; + else + throw std::invalid_argument("Channel state is neither good nor bad."); +} + +double GilbertElliotModel::getErrorProbability(const int channel_state) const { + if (channel_state == ChannelState::good) + return this->good_state_packet_error_prob; + else if (channel_state == ChannelState::bad) + return this->bad_state_packet_error_prob; + else + throw std::invalid_argument("Channel state is neither good nor bad."); +} + +double GilbertElliotModel::getTransitionProbability(const int channel_state) const { + if (channel_state == ChannelState::good) + return this->good_state_transition_prob; + else if (channel_state == ChannelState::bad) + return this->bad_state_transition_prob; + else + throw std::invalid_argument("Channel state is neither good nor bad."); +} + +double GilbertElliotModel::getCurrentErrorProbability() const { + return current_channel_state == ChannelState::good ? good_state_packet_error_prob : bad_state_packet_error_prob; +} + +double GilbertElliotModel::getSteadyStateProbability(const int channel_state) const { + const double& p12 = good_state_transition_prob; + const double& p21 = bad_state_transition_prob; + if (channel_state == ChannelState::good) + return p21 / (p12 + p21); + else if (channel_state == ChannelState::bad) + return p12 / (p21 + p12); + else + throw std::invalid_argument("Channel state is neither good nor bad."); +} + +const GilbertElliotModel::ChannelState& GilbertElliotModel::getCurrentChannelState() const { + return this->current_channel_state; +} + +void GilbertElliotModel::setParent(LteGilbertElliotChannelModel* parent) { + this->parent = parent; +} + +unsigned long GilbertElliotModel::getNumTimesStateVisited(const int channel_state) const { + if (channel_state == ChannelState::good) + return num_times_good_state_visited; + else if (channel_state == ChannelState::bad) + return num_times_bad_state_visited; + else + throw std::invalid_argument("Channel state is neither good nor bad."); +} diff --git a/src/stack/phy/ChannelModel/GilbertElliotModel.h b/src/stack/phy/ChannelModel/GilbertElliotModel.h new file mode 100644 index 00000000..472c6286 --- /dev/null +++ b/src/stack/phy/ChannelModel/GilbertElliotModel.h @@ -0,0 +1,71 @@ +// +// Created by seba on 09.07.19. +// + +#ifndef LTEGILBERTELLIOTCHANNELMODEL_GILBERTELLIOTMODEL_H +#define LTEGILBERTELLIOTCHANNELMODEL_GILBERTELLIOTMODEL_H + +#include + +class LteGilbertElliotChannelModel; + +/** + * Implements a two-state Gilbert-Elliot channel model. + * This is a discrete two-state Markov chain, with specific transition probabilities. + * The two states correspond to the channel taking on a specific state, e.g. a 'good' state and a 'bad' state. + * Each state may exhibit a certain packet error probability, so that checking whether a transmission succeeds boils down to evaluating which state the model is currently in, and applying the corresponding packet error probability. + */ +class GilbertElliotModel { + public: + /** The states the model can be in. */ + enum ChannelState { + good = 0, + bad = 1 + }; + + GilbertElliotModel(); + virtual ~GilbertElliotModel() = default; + + void setStartingState(); + + /** + * Updates the model. Possibly transitions to another state, or remains. + * @return The current packet error probability after updating. + */ + double update(); + + double getCurrentErrorProbability() const; + + double getSteadyStateProbability(const int channel_state) const; + + void setErrorProbability(const int channel_state, double error_probability); + + void setTransitionProbability(const int channel_state, double transition_probability); + + double getErrorProbability(const int channel_state) const; + + double getTransitionProbability(const int channel_state) const; + + const GilbertElliotModel::ChannelState& getCurrentChannelState() const; + + void setParent(LteGilbertElliotChannelModel* parent); + + unsigned long getNumTimesStateVisited(const int channel_state) const; + + private: + double good_state_packet_error_prob = 0.0, + bad_state_packet_error_prob = 1.0; + + double good_state_transition_prob = 0.5, + bad_state_transition_prob = 0.5; + + unsigned long num_times_good_state_visited = 0, + num_times_bad_state_visited = 0; + + ChannelState current_channel_state = ChannelState::good; + + LteGilbertElliotChannelModel* parent = nullptr; +}; + + +#endif //LTEGILBERTELLIOTCHANNELMODEL_GILBERTELLIOTMODEL_H diff --git a/src/stack/phy/ChannelModel/LteChannelModel.ned b/src/stack/phy/ChannelModel/LteChannelModel.ned index 574a07c8..739d689b 100644 --- a/src/stack/phy/ChannelModel/LteChannelModel.ned +++ b/src/stack/phy/ChannelModel/LteChannelModel.ned @@ -103,6 +103,20 @@ simple LteRealisticChannelModel like LteChannelModelInterface // statistics @signal[rcvdSinr]; @statistic[rcvdSinr](title="SINR measured at packet reception"; unit="dB"; source="rcvdSinr"; record=mean,vector); + @signal[pathLoss]; + @statistic[pathLoss](title="path loss measured at path loss computation"; unit="dB"; source="pathLoss"; record=mean,vector); + @signal[fadingAttenuation]; + @statistic[fadingAttenuation](title="fading measured after fading calculation"; unit="dB"; source="fadingAttenuation"; record=mean,vector); +} + +simple LteGilbertElliotChannelModel extends LteRealisticChannelModel +{ + parameters: + @class("LteGilbertElliotChannelModel"); + double error_prob_good_state = default(0.0); + double error_prob_bad_state = default(1.0); + double trans_prob_good_state = default(0.5); + double trans_prob_bad_state = default(0.5); } simple LteMagicChannelModel like LteChannelModelInterface diff --git a/src/stack/phy/ChannelModel/LteGilbertElliotChannelModel.cc b/src/stack/phy/ChannelModel/LteGilbertElliotChannelModel.cc new file mode 100644 index 00000000..13ccec96 --- /dev/null +++ b/src/stack/phy/ChannelModel/LteGilbertElliotChannelModel.cc @@ -0,0 +1,61 @@ +/* + * LteGilbertElliotChannelModel.cc + * + * Created on: Jul 9, 2019 + * Author: Sebastian Lindner, sebastian.lindner@tuhh.de + */ + +#include "LteGilbertElliotChannelModel.h" +#include + +Define_Module(LteGilbertElliotChannelModel); + +LteGilbertElliotChannelModel::LteGilbertElliotChannelModel() : channel_model(), rng_error(getRNG(0)), rng_model(getRNG(0)) { + channel_model.setParent(this); +} + +LteGilbertElliotChannelModel::~LteGilbertElliotChannelModel() { + std::cout << "num_times_good_state=" << channel_model.getNumTimesStateVisited(GilbertElliotModel::ChannelState::good) << " num_times_bad_state=" << channel_model.getNumTimesStateVisited(GilbertElliotModel::ChannelState::bad) << std::endl; +} + +bool LteGilbertElliotChannelModel::error(LteAirFrame *frame, UserControlInfo* lteI) { + // Update the channel model. + GilbertElliotModel::ChannelState state_before = channel_model.getCurrentChannelState(); + double packet_error_prob = channel_model.update(); + // Print update. + EV << "Channel update: " << state_before << " -> " << channel_model.getCurrentChannelState() << std::endl; + // Draw a random number. + double random_number = rng_error->doubleRand(); + // Apply HARQ reduction. + double nTx = (double) lteI->getTxNumber(); + packet_error_prob = pow(packet_error_prob, nTx+1); // Assuming exponential decrease. + //std::cout << "nTx=" << nTx << " err=" << packet_error_prob << std::endl; + // Compare to the current model state's error probability. + if (random_number > packet_error_prob) {// e.g. packet_error_prob=0.3, then for random_number>0.3 no error occurs, which is an 'area' of 0.7. + EV << "Channel result: no error" << std::endl; + return false; + } else { + EV << "Channel result: an error" << std::endl; + return true; + } +} + +bool LteGilbertElliotChannelModel::error_D2D(LteAirFrame *frame, UserControlInfo* lteI, const std::vector& rsrpVector) { + return error(frame, lteI); +} + +void LteGilbertElliotChannelModel::initialize() { + LteRealisticChannelModel::initialize(); + if (!has_initialized) { + channel_model.setErrorProbability(GilbertElliotModel::ChannelState::good, par("error_prob_good_state").doubleValue()); + channel_model.setErrorProbability(GilbertElliotModel::ChannelState::bad, par("error_prob_bad_state").doubleValue()); + channel_model.setTransitionProbability(GilbertElliotModel::ChannelState::good, par("trans_prob_good_state").doubleValue()); + channel_model.setTransitionProbability(GilbertElliotModel::ChannelState::bad, par("trans_prob_bad_state").doubleValue()); + channel_model.setStartingState(); + has_initialized = true; + } +} + +double LteGilbertElliotChannelModel::getRandomNumber() { + return rng_model->doubleRand(); +} diff --git a/src/stack/phy/ChannelModel/LteGilbertElliotChannelModel.h b/src/stack/phy/ChannelModel/LteGilbertElliotChannelModel.h new file mode 100644 index 00000000..8baa9504 --- /dev/null +++ b/src/stack/phy/ChannelModel/LteGilbertElliotChannelModel.h @@ -0,0 +1,41 @@ +/* + * LteGilbertElliotChannelModel.h + * + * Created on: Jul 9, 2019 + * Author: Sebastian Lindner, sebastian.lindner@tuhh.de + */ + +#ifndef STACK_PHY_CHANNELMODEL_LTEGILBERTELLIOTCHANNELMODEL_H_ +#define STACK_PHY_CHANNELMODEL_LTEGILBERTELLIOTCHANNELMODEL_H_ + +#include "stack/phy/ChannelModel/LteRealisticChannelModel.h" +#include "stack/phy/ChannelModel/GilbertElliotModel.h" + +/** + * Implements a two-state Gilbert-Elliot channel model. + * This is a discrete two-state Markov chain, with specific transition probabilities. + * The two states correspond to the channel taking on a specific state, e.g. a 'good' state and a 'bad' state. + * Each state may exhibit a certain packet error probability, so that checking whether a transmission succeeds boils down to evaluating which state the model is currently in, and applying the corresponding packet error probability. + */ +class LteGilbertElliotChannelModel : public LteRealisticChannelModel { + friend class GilbertElliotModel; + +public: + LteGilbertElliotChannelModel(); + virtual ~LteGilbertElliotChannelModel(); + + virtual bool error(LteAirFrame *frame, UserControlInfo* lteI) override; + virtual bool error_D2D(LteAirFrame *frame, UserControlInfo* lteI, const std::vector& rsrpVector) override; + + virtual void initialize(); + +protected: + double getRandomNumber(); + +private: + GilbertElliotModel channel_model; + cRNG* rng_error, *rng_model; + bool has_initialized = false; +}; + +#endif /* STACK_PHY_CHANNELMODEL_LTEGILBERTELLIOTCHANNELMODEL_H_ */ diff --git a/src/stack/phy/ChannelModel/LteRealisticChannelModel.cc b/src/stack/phy/ChannelModel/LteRealisticChannelModel.cc index d9a02829..dc1ff6b2 100644 --- a/src/stack/phy/ChannelModel/LteRealisticChannelModel.cc +++ b/src/stack/phy/ChannelModel/LteRealisticChannelModel.cc @@ -78,6 +78,8 @@ void LteRealisticChannelModel::initialize() // statistics rcvdSinr_ = registerSignal("rcvdSinr"); + pathLoss_ = registerSignal("pathLoss"); + fadingAttenuation_ = registerSignal("fadingAttenuation"); } @@ -567,6 +569,7 @@ std::vector LteRealisticChannelModel::getSINR(LteAirFrame *frame, UserCo else if (fadingType_ == JAKES) fadingAttenuation = jakesFading(ueId, speed, i, cqiDl); } + emit(fadingAttenuation_,fadingAttenuation); // add fading contribution to the received pwr double finalRecvPower = recvPower + fadingAttenuation; // (dBm+dB)=dBm @@ -1647,6 +1650,7 @@ double LteRealisticChannelModel::computePathLoss(double distance, double dbp, bo default: throw cRuntimeError("Wrong value %d for path-loss scenario", scenario_); } + emit(pathLoss_,pathLoss); return pathLoss; } diff --git a/src/stack/phy/ChannelModel/LteRealisticChannelModel.h b/src/stack/phy/ChannelModel/LteRealisticChannelModel.h index 2b36dc3a..ea5bfb41 100644 --- a/src/stack/phy/ChannelModel/LteRealisticChannelModel.h +++ b/src/stack/phy/ChannelModel/LteRealisticChannelModel.h @@ -142,6 +142,8 @@ class LteRealisticChannelModel : public LteChannelModel // statistics simsignal_t rcvdSinr_; + simsignal_t pathLoss_; + simsignal_t fadingAttenuation_; public: diff --git a/src/stack/phy/LtePhy.ned b/src/stack/phy/LtePhy.ned index b32f1064..f21af790 100644 --- a/src/stack/phy/LtePhy.ned +++ b/src/stack/phy/LtePhy.ned @@ -90,7 +90,7 @@ simple LtePhyUeD2D extends LtePhyUe { simple LtePhyEnb extends LtePhyBase { @class("LtePhyEnb"); - double targetBler = default(0.001); + double targetBler = default(0.1); double lambdaMinTh = default(0.02); double lambdaMaxTh = default(0.2); double lambdaRatioTh = default(20); diff --git a/src/stack/phy/feedback/LteFeedbackComputationRealistic.cc b/src/stack/phy/feedback/LteFeedbackComputationRealistic.cc index 820d6c91..99d8aec2 100644 --- a/src/stack/phy/feedback/LteFeedbackComputationRealistic.cc +++ b/src/stack/phy/feedback/LteFeedbackComputationRealistic.cc @@ -106,7 +106,7 @@ unsigned int LteFeedbackComputationRealistic::computeRank(MacNodeId id) Cqi LteFeedbackComputationRealistic::getCqi(TxMode txmode, double snr) { int newsnr = floor(snr + 0.5); - if (newsnr < 0) + if (newsnr <= 0) return 0; if (newsnr > phyPisaData_->maxSnr()) return 15;