From 689711ff1ff3b10e5632c2d88af33f50998f3756 Mon Sep 17 00:00:00 2001 From: Steve Franke Date: Thu, 31 May 2018 21:08:50 -0500 Subject: [PATCH] Add definitions for a new and improved (174,91) code - called code c --- lib/fsk4hf/ldpc_174_91_c_colorder.f90 | 11 + lib/fsk4hf/ldpc_174_91_c_generator.f90 | 86 ++++++++ lib/fsk4hf/ldpc_174_91_c_parity.f90 | 269 +++++++++++++++++++++++++ 3 files changed, 366 insertions(+) create mode 100644 lib/fsk4hf/ldpc_174_91_c_colorder.f90 create mode 100644 lib/fsk4hf/ldpc_174_91_c_generator.f90 create mode 100644 lib/fsk4hf/ldpc_174_91_c_parity.f90 diff --git a/lib/fsk4hf/ldpc_174_91_c_colorder.f90 b/lib/fsk4hf/ldpc_174_91_c_colorder.f90 new file mode 100644 index 000000000..a83de09d0 --- /dev/null +++ b/lib/fsk4hf/ldpc_174_91_c_colorder.f90 @@ -0,0 +1,11 @@ +data colorder/ & + 0, 1, 2, 3, 28, 4, 5, 6, 7, 8, 9, 10, 11, 34, 12, 32, 13, 14, 15, 16, & + 17, 18, 36, 29, 43, 19, 20, 42, 21, 40, 30, 37, 22, 47, 61, 45, 44, 23, 41, 39, & + 49, 24, 46, 50, 48, 26, 31, 33, 51, 38, 52, 59, 55, 66, 57, 27, 60, 35, 54, 58, & + 25, 56, 62, 64, 67, 69, 63, 68, 70, 72, 65, 73, 75, 74, 71, 77, 78, 76, 79, 80, & + 53, 81, 83, 82, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, & +100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119, & +120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139, & +140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, & +160,161,162,163,164,165,166,167,168,169,170,171,172,173/ + diff --git a/lib/fsk4hf/ldpc_174_91_c_generator.f90 b/lib/fsk4hf/ldpc_174_91_c_generator.f90 new file mode 100644 index 000000000..675bae570 --- /dev/null +++ b/lib/fsk4hf/ldpc_174_91_c_generator.f90 @@ -0,0 +1,86 @@ +character*23 g(83) + +data g/ & + "8329ce11bf31eaf509f27fc", & + "761c264e25c259335493132", & + "dc265902fb277c6410a1bdc", & + "1b3f417858cd2dd33ec7f62", & + "09fda4fee04195fd034783a", & + "077cccc11b8873ed5c3d48a", & + "29b62afe3ca036f4fe1a9da", & + "6054faf5f35d96d3b0c8c3e", & + "e20798e4310eed27884ae90", & + "775c9c08e80e26ddae56318", & + "b0b811028c2bf997213487c", & + "18a0c9231fc60adf5c5ea32", & + "76471e8302a0721e01b12b8", & + "ffbccb80ca8341fafb47b2e", & + "66a72a158f9325a2bf67170", & + "c4243689fe85b1c51363a18", & + "0dff739414d1a1b34b1c270", & + "15b48830636c8b99894972e", & + "29a89c0d3de81d665489b0e", & + "4f126f37fa51cbe61bd6b94", & + "99c47239d0d97d3c84e0940", & + "1919b75119765621bb4f1e8", & + "09db12d731faee0b86df6b8", & + "488fc33df43fbdeea4eafb4", & + "827423ee40b675f756eb5fe", & + "abe197c484cb74757144a9a", & + "2b500e4bc0ec5a6d2bdbdd0", & + "c474aa53d70218761669360", & + "8eba1a13db3390bd6718cec", & + "753844673a27782cc42012e", & + "06ff83a145c37035a5c1268", & + "3b37417858cc2dd33ec3f62", & + "9a4a5a28ee17ca9c324842c", & + "bc29f465309c977e89610a4", & + "2663ae6ddf8b5ce2bb29488", & + "46f231efe457034c1814418", & + "3fb2ce85abe9b0c72e06fbe", & + "de87481f282c153971a0a2e", & + "fcd7ccf23c69fa99bba1412", & + "f0261447e9490ca8e474cec", & + "4410115818196f95cdd7012", & + "088fc31df4bfbde2a4eafb4", & + "b8fef1b6307729fb0a078c0", & + "5afea7acccb77bbc9d99a90", & + "49a7016ac653f65ecdc9076", & + "1944d085be4e7da8d6cc7d0", & + "251f62adc4032f0ee714002", & + "56471f8702a0721e00b12b8", & + "2b8e4923f2dd51e2d537fa0", & + "6b550a40a66f4755de95c26", & + "a18ad28d4e27fe92a4f6c84", & + "10c2e586388cb82a3d80758", & + "ef34a41817ee02133db2eb0", & + "7e9c0c54325a9c15836e000", & + "3693e572d1fde4cdf079e86", & + "bfb2cec5abe1b0c72e07fbe", & + "7ee18230c583cccc57d4b08", & + "a066cb2fedafc9f52664126", & + "bb23725abc47cc5f4cc4cd2", & + "ded9dba3bee40c59b5609b4", & + "d9a7016ac653e6decdc9036", & + "9ad46aed5f707f280ab5fc4", & + "e5921c77822587316d7d3c2", & + "4f14da8242a8b86dca73352", & + "8b8b507ad467d4441df770e", & + "22831c9cf1169467ad04b68", & + "213b838fe2ae54c38ee7180", & + "5d926b6dd71f085181a4e12", & + "66ab79d4b29ee6e69509e56", & + "958148682d748a38dd68baa", & + "b8ce020cf069c32a723ab14", & + "f4331d6d461607e95752746", & + "6da23ba424b9596133cf9c8", & + "a636bcbc7b30c5fbeae67fe", & + "5cb0d86a07df654a9089a20", & + "f11f106848780fc9ecdd80a", & + "1fbb5364fb8d2c9d730d5ba", & + "fcb86bc70a50c9d02a5d034", & + "a534433029eac15f322e34c", & + "c989d9c7c3d3b8c55d75130", & + "7bb38b2f0186d46643ae962", & + "2644ebadeb44b9467d1f42c", & + "608cc857594bfbb55d69600"/ diff --git a/lib/fsk4hf/ldpc_174_91_c_parity.f90 b/lib/fsk4hf/ldpc_174_91_c_parity.f90 new file mode 100644 index 000000000..6210ee267 --- /dev/null +++ b/lib/fsk4hf/ldpc_174_91_c_parity.f90 @@ -0,0 +1,269 @@ +data Mn/ & + 1, 24, 66, & + 2, 5, 70, & + 3, 31, 65, & + 4, 49, 58, & + 6, 60, 67, & + 7, 32, 75, & + 8, 48, 82, & + 9, 35, 41, & + 10, 39, 62, & + 11, 14, 61, & + 12, 71, 74, & + 13, 23, 78, & + 15, 16, 79, & + 17, 54, 63, & + 18, 50, 57, & + 19, 30, 47, & + 20, 64, 80, & + 21, 28, 69, & + 22, 25, 43, & + 26, 34, 72, & + 27, 36, 37, & + 29, 40, 44, & + 33, 52, 53, & + 38, 55, 83, & + 42, 51, 59, & + 45, 76, 81, & + 46, 68, 77, & + 56, 67, 73, & + 1, 4, 5, & + 2, 47, 51, & + 3, 46, 82, & + 6, 24, 76, & + 7, 9, 16, & + 8, 10, 78, & + 11, 35, 55, & + 12, 38, 64, & + 13, 22, 37, & + 14, 15, 58, & + 17, 50, 53, & + 18, 29, 56, & + 19, 26, 57, & + 20, 39, 77, & + 21, 36, 63, & + 23, 54, 74, & + 25, 69, 73, & + 27, 33, 65, & + 28, 44, 79, & + 30, 43, 52, & + 31, 45, 61, & + 32, 48, 71, & + 34, 60, 62, & + 40, 41, 70, & + 42, 66, 68, & + 49, 75, 83, & + 59, 72, 80, & + 36, 64, 81, & + 1, 65, 74, & + 2, 8, 81, & + 3, 26, 79, & + 4, 22, 72, & + 5, 38, 50, & + 6, 9, 52, & + 7, 18, 77, & + 10, 28, 55, & + 11, 56, 59, & + 12, 67, 68, & + 13, 29, 47, & + 14, 39, 54, & + 15, 60, 70, & + 16, 37, 66, & + 17, 25, 82, & + 19, 21, 71, & + 20, 30, 31, & + 23, 75, 80, & + 24, 69, 75, & + 27, 32, 62, & + 33, 59, 76, & + 34, 53, 61, & + 35, 46, 47, & + 40, 43, 83, & + 41, 42, 63, & + 20, 44, 48, & + 16, 45, 73, & + 42, 49, 57, & + 25, 51, 62, & + 33, 58, 78, & + 1, 44, 45, & + 2, 7, 61, & + 3, 6, 54, & + 4, 35, 48, & + 5, 13, 21, & + 8, 56, 79, & + 9, 64, 69, & + 10, 19, 66, & + 11, 36, 60, & + 12, 37, 58, & + 14, 32, 43, & + 15, 63, 80, & + 17, 28, 77, & + 18, 74, 83, & + 22, 53, 81, & + 23, 30, 34, & + 24, 31, 40, & + 26, 41, 76, & + 27, 57, 70, & + 29, 49, 65, & + 3, 38, 78, & + 5, 39, 82, & + 46, 50, 73, & + 51, 52, 74, & + 55, 71, 72, & + 44, 67, 72, & + 43, 68, 78, & + 1, 32, 59, & + 2, 6, 71, & + 4, 16, 54, & + 7, 65, 67, & + 8, 30, 42, & + 9, 22, 31, & + 10, 18, 76, & + 11, 23, 82, & + 12, 28, 61, & + 13, 52, 79, & + 14, 50, 51, & + 15, 81, 83, & + 17, 29, 60, & + 19, 33, 64, & + 20, 26, 73, & + 21, 34, 40, & + 24, 27, 77, & + 25, 55, 58, & + 35, 53, 66, & + 36, 48, 68, & + 37, 46, 75, & + 38, 45, 47, & + 39, 57, 69, & + 41, 56, 62, & + 20, 49, 53, & + 46, 52, 63, & + 45, 70, 75, & + 27, 35, 80, & + 1, 15, 30, & + 2, 68, 80, & + 3, 36, 51, & + 4, 28, 51, & + 5, 31, 56, & + 6, 20, 37, & + 7, 40, 82, & + 8, 60, 69, & + 9, 10, 49, & + 11, 44, 57, & + 12, 39, 59, & + 13, 24, 55, & + 14, 21, 65, & + 16, 71, 78, & + 17, 30, 76, & + 18, 25, 80, & + 19, 61, 83, & + 22, 38, 77, & + 23, 41, 50, & + 7, 26, 58, & + 29, 32, 81, & + 33, 40, 73, & + 18, 34, 48, & + 13, 42, 64, & + 5, 26, 43, & + 47, 69, 72, & + 54, 55, 70, & + 45, 62, 68, & + 10, 63, 67, & + 14, 66, 72, & + 22, 60, 74, & + 35, 39, 79, & + 1, 46, 64/ + +data Nm/ & + 1, 29, 57, 87, 114, 142, 174, & + 2, 30, 58, 88, 115, 143, 0, & + 3, 31, 59, 89, 107, 144, 0, & + 4, 29, 60, 90, 116, 145, 0, & + 2, 29, 61, 91, 108, 146, 166, & + 5, 32, 62, 89, 115, 147, 0, & + 6, 33, 63, 88, 117, 148, 161, & + 7, 34, 58, 92, 118, 149, 0, & + 8, 33, 62, 93, 119, 150, 0, & + 9, 34, 64, 94, 120, 150, 170, & + 10, 35, 65, 95, 121, 151, 0, & + 11, 36, 66, 96, 122, 152, 0, & + 12, 37, 67, 91, 123, 153, 165, & + 10, 38, 68, 97, 124, 154, 171, & + 13, 38, 69, 98, 125, 142, 0, & + 13, 33, 70, 83, 116, 155, 0, & + 14, 39, 71, 99, 126, 156, 0, & + 15, 40, 63, 100, 120, 157, 164, & + 16, 41, 72, 94, 127, 158, 0, & + 17, 42, 73, 82, 128, 138, 147, & + 18, 43, 72, 91, 129, 154, 0, & + 19, 37, 60, 101, 119, 159, 172, & + 12, 44, 74, 102, 121, 160, 0, & + 1, 32, 75, 103, 130, 153, 0, & + 19, 45, 71, 85, 131, 157, 0, & + 20, 41, 59, 104, 128, 161, 166, & + 21, 46, 76, 105, 130, 141, 0, & + 18, 47, 64, 99, 122, 145, 0, & + 22, 40, 67, 106, 126, 162, 0, & + 16, 48, 73, 102, 118, 142, 156, & + 3, 49, 73, 103, 119, 146, 0, & + 6, 50, 76, 97, 114, 162, 0, & + 23, 46, 77, 86, 127, 163, 0, & + 20, 51, 78, 102, 129, 164, 0, & + 8, 35, 79, 90, 132, 141, 173, & + 21, 43, 56, 95, 133, 144, 0, & + 21, 37, 70, 96, 134, 147, 0, & + 24, 36, 61, 107, 135, 159, 0, & + 9, 42, 68, 108, 136, 152, 173, & + 22, 52, 80, 103, 129, 148, 163, & + 8, 52, 81, 104, 137, 160, 0, & + 25, 53, 81, 84, 118, 165, 0, & + 19, 48, 80, 97, 113, 166, 0, & + 22, 47, 82, 87, 112, 151, 0, & + 26, 49, 83, 87, 135, 140, 169, & + 27, 31, 79, 109, 134, 139, 174, & + 16, 30, 67, 79, 135, 167, 0, & + 7, 50, 82, 90, 133, 164, 0, & + 4, 54, 84, 106, 138, 150, 0, & + 15, 39, 61, 109, 124, 160, 0, & + 25, 30, 85, 110, 124, 144, 145, & + 23, 48, 62, 110, 123, 139, 0, & + 23, 39, 78, 101, 132, 138, 0, & + 14, 44, 68, 89, 116, 168, 0, & + 24, 35, 64, 111, 131, 153, 168, & + 28, 40, 65, 92, 137, 146, 0, & + 15, 41, 84, 105, 136, 151, 0, & + 4, 38, 86, 96, 131, 161, 0, & + 25, 55, 65, 77, 114, 152, 0, & + 5, 51, 69, 95, 126, 149, 172, & + 10, 49, 78, 88, 122, 158, 0, & + 9, 51, 76, 85, 137, 169, 0, & + 14, 43, 81, 98, 139, 170, 0, & + 17, 36, 56, 93, 127, 165, 174, & + 3, 46, 57, 106, 117, 154, 0, & + 1, 53, 70, 94, 132, 171, 0, & + 5, 28, 66, 112, 117, 170, 0, & + 27, 53, 66, 113, 133, 143, 169, & + 18, 45, 75, 93, 136, 149, 167, & + 2, 52, 69, 105, 140, 168, 0, & + 11, 50, 72, 111, 115, 155, 0, & + 20, 55, 60, 111, 112, 167, 171, & + 28, 45, 83, 109, 128, 163, 0, & + 11, 44, 57, 100, 110, 172, 0, & + 6, 54, 74, 75, 134, 140, 0, & + 26, 32, 77, 104, 120, 156, 0, & + 27, 42, 63, 99, 130, 159, 0, & + 12, 34, 86, 107, 113, 155, 0, & + 13, 47, 59, 92, 123, 173, 0, & + 17, 55, 74, 98, 141, 143, 157, & + 26, 56, 58, 101, 125, 162, 0, & + 7, 31, 71, 108, 121, 148, 0, & + 24, 54, 80, 100, 125, 158, 0/ + +data nrw/ & +7,6,6,6,7,6,7,6,6,7,6,6,7,7,6,6,6, & +7,6,7,6,7,6,6,6,7,6,6,6,7,6,6,6,6, & +7,6,6,6,7,7,6,6,6,6,7,7,6,6,6,6,7, & +6,6,6,7,6,6,6,6,7,6,6,6,7,6,6,6,7, & +7,6,6,7,6,6,6,6,6,6,6,7,6,6,6/ + +ncw=3