diff --git a/lib/fsk4hf/ldpc_174_101_generator.f90 b/lib/fsk4hf/ldpc_174_101_generator.f90 new file mode 100644 index 000000000..26b300d7c --- /dev/null +++ b/lib/fsk4hf/ldpc_174_101_generator.f90 @@ -0,0 +1,76 @@ +character *26 g(73) + +data g/ & + "63e951344af12c4cc41106e760", & + "68d44d92ecd93ad6d4692266c8", & + "4580fb1fac614cbfd928ede720", & + "14eeda1b8a01f66880f5012ad8", & + "35a9cfb6458a89bf8aafeaf488", & + "20c8bc97810aea0bea6224ddb8", & + "f577e866d9a5ed407f37bf4010", & + "100d26dff465508c671a3b2710", & + "4e860571d270084b99b18e74a0", & + "495bbc1ba799ac5f5c159ebeb8", & + "c71b622d5e7e351b46cf9f29a8", & + "2e01d802b77181d4789285fdb8", & + "41ee2ab37388eaee0ec6d54860", & + "839084a886a9e1f3c5f56453b0", & + "bbaef43ff6506531465a4a2690", & + "627436a8e4ff531d190f179a68", & + "d48abf3769173ad49de8bf9d98", & + "1a588539d6b05682445316b6e0", & + "59dfa468e4da46b03c5fe69b48", & + "0c94c6716f592a165d9ad056a8", & + "4cae5d652767e32d08b75bf370", & + "9d7bff3c3fea24c15d9a78e550", & + "400576f3f695101962ccbd7818", & + "8731ecdaa728862d0f29f334a8", & + "3b588539d6b0d682547316b6e0", & + "958ee990eb7b62502f49733388", & + "4c84c6716f582a165dbad0d6a8", & + "9294bdce4590c752416f516238", & + "72a2a0f864533375373ff521d8", & + "552a32c530cb00206e8ce56d90", & + "fbc29b77052ba34d9993873c98", & + "eeb3767ac69e86f08d793a44a0", & + "20f4128d200bdae9a24e79efd0", & + "26aaf29464a373e092e963fed0", & + "33cd65456ae8efe40bce1b3378", & + "900d66fff465708c671a3b2730", & + "91aa5e8f40af51c256da031b00", & + "ca41c5a3d010dfe60d87a3ab68", & + "9d68f4c75fceab703c9a74ea58", & + "2d2f3945b24e17547f27f78400", & + "07d78fdbc0f3c361297561f070", & + "ebbcb3f268a60852e7582376f0", & + "c263d7e939dbf3f7823941b9e0", & + "f2244da30cb449300f01de6348", & + "19043d66c33926a9849a3d3188", & + "dd7d8234a953bb695ed6c89240", & + "24f233d9168f595680fe99eec8", & + "177d16017d598f7e1ed3497ac8", & + "387ec44871f376c96bcd0aec38", & + "08f596acd411469152d30bf6d8", & + "27239f5ee0f8198c8b3b1819a0", & + "c69382b7dbe81f06983ed4f2f0", & + "d9d2c29710af363c5f455dbcf8", & + "6e4c7ae7ee52c11db7daf40b10", & + "9b2ef437f6506531445a4a6690", & + "86d5489e3df6deb548094a61c8", & + "7cf277ada2132560d6ba744830", & + "471b62ad5c7e351b44ef9f29a8", & + "bfbb8689f7ded0062e48a6e6b8", & + "380a6a5250f6562b21e157d250", & + "5f1928d58631d732dfa3395db0", & + "d2eef1368dbea33be523fa9ef0", & + "8a55e2c622d7240e23492d9190", & + "8fc03eac7c719359c4af4a4c48", & + "62af8467903663f97025de06c8", & + "1ecb7b94b903e532986f1c36e0", & + "d2918b3db705d74b2ba2ec1a20", & + "1571fd0dc3bd259d14eabd6838", & + "18be78df70f98cc281af2e3580", & + "e547da7243f7d5309626a4aec0", & + "1bac17b4f2bb086bf63d6f1930", & + "0864932f8d6ec6ef479d450db8", & + "10aa89da9daa4c1fb7a4288ab0"/ diff --git a/lib/fsk4hf/ldpc_174_101_reordered_parity.f90 b/lib/fsk4hf/ldpc_174_101_reordered_parity.f90 new file mode 100644 index 000000000..0b09f0374 --- /dev/null +++ b/lib/fsk4hf/ldpc_174_101_reordered_parity.f90 @@ -0,0 +1,258 @@ +data Mn/ & + 2, 54, 72, & + 18, 60, 62, & + 13, 24, 47, & + 5, 19, 23, & + 6, 21, 47, & + 10, 33, 73, & + 7, 31, 50, & + 3, 30, 66, & + 8, 39, 70, & + 36, 46, 63, & + 16, 53, 55, & + 12, 60, 61, & + 17, 63, 67, & + 24, 59, 64, & + 25, 27, 68, & + 14, 35, 44, & + 28, 57, 72, & + 32, 48, 51, & + 26, 38, 46, & + 11, 22, 49, & + 34, 52, 69, & + 45, 56, 65, & + 40, 41, 42, & + 31, 51, 54, & + 42, 58, 69, & + 29, 36, 43, & + 4, 10, 12, & + 2, 27, 64, & + 3, 41, 70, & + 1, 37, 72, & + 5, 40, 59, & + 6, 19, 39, & + 7, 53, 68, & + 8, 35, 47, & + 9, 48, 66, & + 11, 18, 36, & + 13, 20, 29, & + 15, 28, 46, & + 16, 23, 54, & + 17, 52, 57, & + 21, 26, 62, & + 22, 63, 73, & + 24, 51, 65, & + 25, 30, 43, & + 32, 47, 61, & + 33, 56, 71, & + 15, 34, 45, & + 38, 43, 60, & + 44, 50, 67, & + 3, 49, 58, & + 22, 55, 72, & + 1, 13, 53, & + 2, 20, 69, & + 4, 46, 49, & + 5, 9, 45, & + 6, 11, 65, & + 7, 35, 57, & + 8, 11, 38, & + 10, 29, 32, & + 12, 16, 21, & + 14, 64, 71, & + 17, 41, 68, & + 1, 18, 66, & + 19, 58, 64, & + 23, 24, 48, & + 25, 31, 67, & + 26, 42, 44, & + 27, 40, 50, & + 28, 56, 62, & + 30, 37, 63, & + 33, 54, 70, & + 34, 36, 73, & + 39, 55, 61, & + 9, 52, 59, & + 50, 54, 60, & + 2, 4, 16, & + 3, 20, 31, & + 5, 55, 67, & + 6, 44, 48, & + 7, 28, 52, & + 8, 29, 30, & + 10, 24, 49, & + 12, 57, 66, & + 13, 42, 73, & + 14, 19, 21, & + 15, 27, 36, & + 17, 39, 43, & + 18, 51, 61, & + 22, 23, 60, & + 25, 46, 70, & + 26, 58, 59, & + 32, 63, 71, & + 5, 33, 65, & + 34, 41, 53, & + 35, 37, 41, & + 38, 68, 73, & + 30, 40, 69, & + 39, 45, 62, & + 47, 69, 72, & + 4, 37, 56, & + 1, 31, 48, & + 1, 21, 58, & + 2, 5, 62, & + 3, 27, 57, & + 4, 43, 51, & + 6, 53, 59, & + 14, 28, 40, & + 7, 29, 66, & + 8, 42, 72, & + 9, 31, 36, & + 10, 35, 55, & + 11, 13, 54, & + 12, 63, 65, & + 14, 22, 69, & + 20, 41, 48, & + 15, 16, 70, & + 27, 38, 56, & + 17, 47, 56, & + 18, 45, 50, & + 19, 30, 44, & + 20, 60, 71, & + 23, 28, 61, & + 24, 25, 39, & + 51, 69, 70, & + 26, 34, 67, & + 33, 39, 66, & + 32, 37, 38, & + 19, 36, 57, & + 40, 49, 52, & + 13, 46, 50, & + 48, 64, 73, & + 15, 17, 59, & + 22, 26, 68, & + 12, 37, 64, & + 52, 55, 71, & + 49, 53, 62, & + 17, 18, 23, & + 1, 44, 65, & + 25, 32, 34, & + 1, 41, 43, & + 33, 41, 46, & + 2, 35, 63, & + 30, 45, 72, & + 31, 61, 73, & + 21, 29, 52, & + 3, 6, 60, & + 2, 61, 66, & + 4, 7, 42, & + 4, 6, 34, & + 3, 13, 14, & + 9, 38, 58, & + 5, 43, 47, & + 8, 68, 71, & + 10, 19, 26, & + 5, 37, 68, & + 16, 20, 30, & + 12, 39, 40, & + 7, 11, 64, & + 18, 25, 35, & + 48, 57, 62, & + 21, 45, 73, & + 54, 58, 67, & + 9, 16, 24, & + 27, 51, 55, & + 33, 53, 69, & + 20, 28, 67, & + 8, 31, 59, & + 22, 29, 56, & + 37, 50, 70, & + 32, 44, 49, & + 10, 11, 15, & + 4, 9, 14, & + 23, 42, 65, & + 1, 15, 71/ + +data Nm/ & + 30, 52, 63, 101, 102, 138, 140, 174, & + 1, 28, 53, 76, 103, 142, 147, 0, & + 8, 29, 50, 77, 104, 146, 150, 0, & + 27, 54, 76, 100, 105, 148, 149, 172, & + 4, 31, 55, 78, 93, 103, 152, 155, & + 5, 32, 56, 79, 106, 146, 149, 0, & + 7, 33, 57, 80, 108, 148, 158, 0, & + 9, 34, 58, 81, 109, 153, 167, 0, & + 35, 55, 74, 110, 151, 163, 172, 0, & + 6, 27, 59, 82, 111, 154, 171, 0, & + 20, 36, 56, 58, 112, 158, 171, 0, & + 12, 27, 60, 83, 113, 134, 157, 0, & + 3, 37, 52, 84, 112, 130, 150, 0, & + 16, 61, 85, 107, 114, 150, 172, 0, & + 38, 47, 86, 116, 132, 171, 174, 0, & + 11, 39, 60, 76, 116, 156, 163, 0, & + 13, 40, 62, 87, 118, 132, 137, 0, & + 2, 36, 63, 88, 119, 137, 159, 0, & + 4, 32, 64, 85, 120, 128, 154, 0, & + 37, 53, 77, 115, 121, 156, 166, 0, & + 5, 41, 60, 85, 102, 145, 161, 0, & + 20, 42, 51, 89, 114, 133, 168, 0, & + 4, 39, 65, 89, 122, 137, 173, 0, & + 3, 14, 43, 65, 82, 123, 163, 0, & + 15, 44, 66, 90, 123, 139, 159, 0, & + 19, 41, 67, 91, 125, 133, 154, 0, & + 15, 28, 68, 86, 104, 117, 164, 0, & + 17, 38, 69, 80, 107, 122, 166, 0, & + 26, 37, 59, 81, 108, 145, 168, 0, & + 8, 44, 70, 81, 97, 120, 143, 156, & + 7, 24, 66, 77, 101, 110, 144, 167, & + 18, 45, 59, 92, 127, 139, 170, 0, & + 6, 46, 71, 93, 126, 141, 165, 0, & + 21, 47, 72, 94, 125, 139, 149, 0, & + 16, 34, 57, 95, 111, 142, 159, 0, & + 10, 26, 36, 72, 86, 110, 128, 0, & + 30, 70, 95, 100, 127, 134, 155, 169, & + 19, 48, 58, 96, 117, 127, 151, 0, & + 9, 32, 73, 87, 98, 123, 126, 157, & + 23, 31, 68, 97, 107, 129, 157, 0, & + 23, 29, 62, 94, 95, 115, 140, 141, & + 23, 25, 67, 84, 109, 148, 173, 0, & + 26, 44, 48, 87, 105, 140, 152, 0, & + 16, 49, 67, 79, 120, 138, 170, 0, & + 22, 47, 55, 98, 119, 143, 161, 0, & + 10, 19, 38, 54, 90, 130, 141, 0, & + 3, 5, 34, 45, 99, 118, 152, 0, & + 18, 35, 65, 79, 101, 115, 131, 160, & + 20, 50, 54, 82, 129, 136, 170, 0, & + 7, 49, 68, 75, 119, 130, 169, 0, & + 18, 24, 43, 88, 105, 124, 164, 0, & + 21, 40, 74, 80, 129, 135, 145, 0, & + 11, 33, 52, 94, 106, 136, 165, 0, & + 1, 24, 39, 71, 75, 112, 162, 0, & + 11, 51, 73, 78, 111, 135, 164, 0, & + 22, 46, 69, 100, 117, 118, 168, 0, & + 17, 40, 57, 83, 104, 128, 160, 0, & + 25, 50, 64, 91, 102, 151, 162, 0, & + 14, 31, 74, 91, 106, 132, 167, 0, & + 2, 12, 48, 75, 89, 121, 146, 0, & + 12, 45, 73, 88, 122, 144, 147, 0, & + 2, 41, 69, 98, 103, 136, 160, 0, & + 10, 13, 42, 70, 92, 113, 142, 0, & + 14, 28, 61, 64, 131, 134, 158, 0, & + 22, 43, 56, 93, 113, 138, 173, 0, & + 8, 35, 63, 83, 108, 126, 147, 0, & + 13, 49, 66, 78, 125, 162, 166, 0, & + 15, 33, 62, 96, 133, 153, 155, 0, & + 21, 25, 53, 97, 99, 114, 124, 165, & + 9, 29, 71, 90, 116, 124, 169, 0, & + 46, 61, 92, 121, 135, 153, 174, 0, & + 1, 17, 30, 51, 99, 109, 143, 0, & + 6, 42, 72, 84, 96, 131, 144, 161/ + +data nrw/ & +8,7,7,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, & +7,7,7,7,7,7,7,7,7,8,8,7,7,7,7,7,8,7,8,7, & +8,7,7,7,7,7,7,8,7,7,7,7,7,7,7,7,7,7,7,7, & +7,7,7,7,7,7,7,7,8,7,7,7,8/ + +ncw=3