summaryrefslogtreecommitdiff
path: root/gr-trellis/src/examples/python/fsm_files
diff options
context:
space:
mode:
Diffstat (limited to 'gr-trellis/src/examples/python/fsm_files')
-rw-r--r--gr-trellis/src/examples/python/fsm_files/awgn1o2_128.fsm265
-rw-r--r--gr-trellis/src/examples/python/fsm_files/awgn1o2_16.fsm39
-rw-r--r--gr-trellis/src/examples/python/fsm_files/awgn1o2_4.fsm14
-rw-r--r--gr-trellis/src/examples/python/fsm_files/awgn1o2_8.fsm24
-rw-r--r--gr-trellis/src/examples/python/fsm_files/awgn2o3_16.fsm40
-rw-r--r--gr-trellis/src/examples/python/fsm_files/awgn2o3_4.fsm15
-rw-r--r--gr-trellis/src/examples/python/fsm_files/awgn2o3_4_msb.fsm46
-rw-r--r--gr-trellis/src/examples/python/fsm_files/awgn2o3_4_msbG.fsm60
-rw-r--r--gr-trellis/src/examples/python/fsm_files/awgn2o3_8.fsm25
-rw-r--r--gr-trellis/src/examples/python/fsm_files/awgn2o4_4.fsm36
-rw-r--r--gr-trellis/src/examples/python/fsm_files/disconnected.fsm11
-rw-r--r--gr-trellis/src/examples/python/fsm_files/irregular.fsm11
-rw-r--r--gr-trellis/src/examples/python/fsm_files/joint_16_16.fsm523
-rw-r--r--gr-trellis/src/examples/python/fsm_files/joint_4_16.fsm141
-rw-r--r--gr-trellis/src/examples/python/fsm_files/rep3.fsm8
-rw-r--r--gr-trellis/src/examples/python/fsm_files/rep5.fsm7
-rw-r--r--gr-trellis/src/examples/python/fsm_files/simple.fsm13
17 files changed, 1278 insertions, 0 deletions
diff --git a/gr-trellis/src/examples/python/fsm_files/awgn1o2_128.fsm b/gr-trellis/src/examples/python/fsm_files/awgn1o2_128.fsm
new file mode 100644
index 000000000..4b47007c5
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/awgn1o2_128.fsm
@@ -0,0 +1,265 @@
+2 128 4
+
+0 64
+0 64
+1 65
+1 65
+2 66
+2 66
+3 67
+3 67
+4 68
+4 68
+5 69
+5 69
+6 70
+6 70
+7 71
+7 71
+8 72
+8 72
+9 73
+9 73
+10 74
+10 74
+11 75
+11 75
+12 76
+12 76
+13 77
+13 77
+14 78
+14 78
+15 79
+15 79
+16 80
+16 80
+17 81
+17 81
+18 82
+18 82
+19 83
+19 83
+20 84
+20 84
+21 85
+21 85
+22 86
+22 86
+23 87
+23 87
+24 88
+24 88
+25 89
+25 89
+26 90
+26 90
+27 91
+27 91
+28 92
+28 92
+29 93
+29 93
+30 94
+30 94
+31 95
+31 95
+32 96
+32 96
+33 97
+33 97
+34 98
+34 98
+35 99
+35 99
+36 100
+36 100
+37 101
+37 101
+38 102
+38 102
+39 103
+39 103
+40 104
+40 104
+41 105
+41 105
+42 106
+42 106
+43 107
+43 107
+44 108
+44 108
+45 109
+45 109
+46 110
+46 110
+47 111
+47 111
+48 112
+48 112
+49 113
+49 113
+50 114
+50 114
+51 115
+51 115
+52 116
+52 116
+53 117
+53 117
+54 118
+54 118
+55 119
+55 119
+56 120
+56 120
+57 121
+57 121
+58 122
+58 122
+59 123
+59 123
+60 124
+60 124
+61 125
+61 125
+62 126
+62 126
+63 127
+63 127
+
+0 3
+3 0
+1 2
+2 1
+3 0
+0 3
+2 1
+1 2
+1 2
+2 1
+0 3
+3 0
+2 1
+1 2
+3 0
+0 3
+1 2
+2 1
+0 3
+3 0
+2 1
+1 2
+3 0
+0 3
+0 3
+3 0
+1 2
+2 1
+3 0
+0 3
+2 1
+1 2
+2 1
+1 2
+3 0
+0 3
+1 2
+2 1
+0 3
+3 0
+3 0
+0 3
+2 1
+1 2
+0 3
+3 0
+1 2
+2 1
+3 0
+0 3
+2 1
+1 2
+0 3
+3 0
+1 2
+2 1
+2 1
+1 2
+3 0
+0 3
+1 2
+2 1
+0 3
+3 0
+2 1
+1 2
+3 0
+0 3
+1 2
+2 1
+0 3
+3 0
+3 0
+0 3
+2 1
+1 2
+0 3
+3 0
+1 2
+2 1
+3 0
+0 3
+2 1
+1 2
+0 3
+3 0
+1 2
+2 1
+2 1
+1 2
+3 0
+0 3
+1 2
+2 1
+0 3
+3 0
+0 3
+3 0
+1 2
+2 1
+3 0
+0 3
+2 1
+1 2
+1 2
+2 1
+0 3
+3 0
+2 1
+1 2
+3 0
+0 3
+1 2
+2 1
+0 3
+3 0
+2 1
+1 2
+3 0
+0 3
+0 3
+3 0
+1 2
+2 1
+3 0
+0 3
+2 1
+1 2
+
+
+
+GM1o2_128=[1+D+D^2+D^5+D^7 1+D^3+D^4+D^5+D^6+D^7]
+ =[11100101 10011111]
+ =[229 159]
diff --git a/gr-trellis/src/examples/python/fsm_files/awgn1o2_16.fsm b/gr-trellis/src/examples/python/fsm_files/awgn1o2_16.fsm
new file mode 100644
index 000000000..cdab41359
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/awgn1o2_16.fsm
@@ -0,0 +1,39 @@
+2 16 4
+
+0 8
+0 8
+1 9
+1 9
+2 10
+2 10
+3 11
+3 11
+4 12
+4 12
+5 13
+5 13
+6 14
+6 14
+7 15
+7 15
+
+0 3
+3 0
+1 2
+2 1
+1 2
+2 1
+0 3
+3 0
+2 1
+1 2
+3 0
+0 3
+3 0
+0 3
+2 1
+1 2
+
+
+
+GM1o2_16=[1+D+D^4 1+D^2+D^3+D^4 ] = [25,23] (decimal)
diff --git a/gr-trellis/src/examples/python/fsm_files/awgn1o2_4.fsm b/gr-trellis/src/examples/python/fsm_files/awgn1o2_4.fsm
new file mode 100644
index 000000000..fb316b5ef
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/awgn1o2_4.fsm
@@ -0,0 +1,14 @@
+2 4 4
+
+0 2
+0 2
+1 3
+1 3
+
+0 3
+3 0
+1 2
+2 1
+
+AWGN CC from Proakis-Salehi pg 779
+GM1o2_4=[1+D^2, 1+D+D^2] = [5, 7] (in decimal);
diff --git a/gr-trellis/src/examples/python/fsm_files/awgn1o2_8.fsm b/gr-trellis/src/examples/python/fsm_files/awgn1o2_8.fsm
new file mode 100644
index 000000000..604bac6c2
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/awgn1o2_8.fsm
@@ -0,0 +1,24 @@
+2 8 4
+
+0 4
+0 4
+1 5
+1 5
+2 6
+2 6
+3 7
+3 7
+
+
+0 3
+3 0
+1 2
+2 1
+3 0
+0 3
+2 1
+1 2
+
+
+1/2 8-state code (Proakis pg. 493)
+GM1o2_8=[ 1+D+D^3 1+D+D^2+D^3] =[13 , 15] (decimal)
diff --git a/gr-trellis/src/examples/python/fsm_files/awgn2o3_16.fsm b/gr-trellis/src/examples/python/fsm_files/awgn2o3_16.fsm
new file mode 100644
index 000000000..9630cd9af
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/awgn2o3_16.fsm
@@ -0,0 +1,40 @@
+4 16 8
+
+0 8 4 12
+0 8 4 12
+0 8 4 12
+0 8 4 12
+1 9 5 13
+1 9 5 13
+1 9 5 13
+1 9 5 13
+2 10 6 14
+2 10 6 14
+2 10 6 14
+2 10 6 14
+3 11 7 15
+3 11 7 15
+3 11 7 15
+3 11 7 15
+
+0 1 7 6
+6 7 1 0
+3 2 4 5
+5 4 2 3
+2 3 5 4
+4 5 3 2
+1 0 6 7
+7 6 0 1
+4 5 3 2
+2 3 5 4
+7 6 0 1
+1 0 6 7
+6 7 1 0
+0 1 7 6
+5 4 2 3
+3 2 4 5
+
+
+2/3 code generated from the awgn 1/2 code with 16 states and puncturing the 4th bit.
+d_free=
+
diff --git a/gr-trellis/src/examples/python/fsm_files/awgn2o3_4.fsm b/gr-trellis/src/examples/python/fsm_files/awgn2o3_4.fsm
new file mode 100644
index 000000000..3ac57be18
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/awgn2o3_4.fsm
@@ -0,0 +1,15 @@
+4 4 8
+
+0 1 2 3
+0 1 2 3
+0 1 2 3
+0 1 2 3
+
+0 7 4 3
+3 4 7 0
+5 2 1 6
+6 1 2 5
+
+I don't remeber how I generated this one...
+it is a bit better than awgn2o3_4_msb and worse
+than awgn2o3_4_msbG.
diff --git a/gr-trellis/src/examples/python/fsm_files/awgn2o3_4_msb.fsm b/gr-trellis/src/examples/python/fsm_files/awgn2o3_4_msb.fsm
new file mode 100644
index 000000000..d834c5271
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/awgn2o3_4_msb.fsm
@@ -0,0 +1,46 @@
+4 4 8
+
+0 1 2 3
+0 1 2 3
+0 1 2 3
+0 1 2 3
+
+0 5 3 6
+4 1 7 2
+7 2 4 1
+3 6 0 5
+
+
+This is generated by the 1/2 AWGN code (5 7) operated twice, ie,
+(xk+1 xki) [xk-1 xk-2] -> [xk+1 xki].
+We also puncture the first (MSB) bit.
+This code is worse than awgn2o3_4_msbG and slightly worse than
+awgn2o3_4, BUT seems to be a good innner code for sctcm (with 8PSK natural).
+
+intermediate states:
+
+00 21 02 23
+00 21 02 23
+10 31 12 33
+10 31 12 33
+
+output before puncturing:
+
+00 31 03 32
+30 01 33 02
+13 22 10 21
+23 12 20 11
+
+output after punturing the MSB:
+
+00 11 03 12
+10 01 13 02
+13 02 10 01
+03 12 00 11
+
+and in decimal:
+
+0 5 3 6
+4 1 7 2
+7 2 4 1
+3 6 0 5
diff --git a/gr-trellis/src/examples/python/fsm_files/awgn2o3_4_msbG.fsm b/gr-trellis/src/examples/python/fsm_files/awgn2o3_4_msbG.fsm
new file mode 100644
index 000000000..8956c53da
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/awgn2o3_4_msbG.fsm
@@ -0,0 +1,60 @@
+4 4 8
+
+0 1 2 3
+0 1 2 3
+0 1 2 3
+0 1 2 3
+
+0 4 2 6
+5 1 3 7
+3 7 5 1
+
+
+This is generated by the 1/2 AWGN code (5 7) operated twice, ie,
+(xk+1 xki) [xk-1 xk-2] -> [xk+1 xki].
+We also puncture the first (MSB) bit and Gray map the symbols.
+
+intermediate states:
+
+00 21 02 23
+00 21 02 23
+10 31 12 33
+10 31 12 33
+
+output before puncturing:
+
+00 31 03 32
+30 01 33 02
+13 22 10 21
+23 12 20 11
+
+output after punturing the MSB:
+
+00 11 03 12
+10 01 13 02
+13 02 10 01
+03 12 00 11
+
+and in decimal:
+
+0 5 3 6
+4 1 7 2
+7 2 4 1
+3 6 0 5
+
+After Gray mapping:
+label -> phase
+0 -> 0
+1 -> 0
+2 -> 7
+3 -> 2
+4 -> 5
+5 -> 4
+6 -> 6
+7 -> 3
+
+0 4 2 6
+5 1 3 7
+3 7 5 1
+2 6 0 4
+
diff --git a/gr-trellis/src/examples/python/fsm_files/awgn2o3_8.fsm b/gr-trellis/src/examples/python/fsm_files/awgn2o3_8.fsm
new file mode 100644
index 000000000..34deeb68c
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/awgn2o3_8.fsm
@@ -0,0 +1,25 @@
+4 8 8
+
+0 4 2 6
+0 4 2 6
+0 4 2 6
+0 4 2 6
+1 5 3 7
+1 5 3 7
+1 5 3 7
+1 5 3 7
+
+
+0 1 7 6
+6 7 1 0
+3 2 4 5
+5 4 2 3
+6 7 1 0
+0 1 7 6
+5 4 2 3
+3 2 4 5
+
+
+
+This is generated by the 1/2 8-state AWGN code (15 17) by puncturing the fourth bit.
+--> d_free=???
diff --git a/gr-trellis/src/examples/python/fsm_files/awgn2o4_4.fsm b/gr-trellis/src/examples/python/fsm_files/awgn2o4_4.fsm
new file mode 100644
index 000000000..a895be896
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/awgn2o4_4.fsm
@@ -0,0 +1,36 @@
+4 4 16
+
+0 1 2 3
+0 1 2 3
+0 1 2 3
+0 1 2 3
+
+ 0 13 3 14
+12 1 15 2
+ 7 10 4 9
+11 6 8 5
+
+
+This is generated by the 1/2 AWGN code (5 7) operated twice, ie,
+(xk+1 xki) [xk-1 xk-2] -> [xk+1 xki].
+
+intermediate states:
+
+00 21 02 23
+00 21 02 23
+10 31 12 33
+10 31 12 33
+
+output:
+
+00 31 03 32
+30 01 33 02
+13 22 10 21
+23 12 20 11
+
+and in decimal:
+
+ 0 13 3 14
+12 1 15 2
+ 7 10 4 9
+11 6 8 5
diff --git a/gr-trellis/src/examples/python/fsm_files/disconnected.fsm b/gr-trellis/src/examples/python/fsm_files/disconnected.fsm
new file mode 100644
index 000000000..847963e7b
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/disconnected.fsm
@@ -0,0 +1,11 @@
+1 4 1
+
+1
+0
+3
+2
+
+0
+0
+0
+0
diff --git a/gr-trellis/src/examples/python/fsm_files/irregular.fsm b/gr-trellis/src/examples/python/fsm_files/irregular.fsm
new file mode 100644
index 000000000..80b82b889
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/irregular.fsm
@@ -0,0 +1,11 @@
+2 2 2
+
+0 0
+0 1
+
+0 1
+0 1
+
+
+useless irregular FSM for testing. state 0 has 3 incoming edges and state
+1 has 1 incoming edge.
diff --git a/gr-trellis/src/examples/python/fsm_files/joint_16_16.fsm b/gr-trellis/src/examples/python/fsm_files/joint_16_16.fsm
new file mode 100644
index 000000000..293ff4e7c
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/joint_16_16.fsm
@@ -0,0 +1,523 @@
+4 256 16
+
+0 8 128 136
+0 8 128 136
+1 9 129 137
+1 9 129 137
+2 10 130 138
+2 10 130 138
+3 11 131 139
+3 11 131 139
+4 12 132 140
+4 12 132 140
+5 13 133 141
+5 13 133 141
+6 14 134 142
+6 14 134 142
+7 15 135 143
+7 15 135 143
+0 8 128 136
+0 8 128 136
+1 9 129 137
+1 9 129 137
+2 10 130 138
+2 10 130 138
+3 11 131 139
+3 11 131 139
+4 12 132 140
+4 12 132 140
+5 13 133 141
+5 13 133 141
+6 14 134 142
+6 14 134 142
+7 15 135 143
+7 15 135 143
+16 24 144 152
+16 24 144 152
+17 25 145 153
+17 25 145 153
+18 26 146 154
+18 26 146 154
+19 27 147 155
+19 27 147 155
+20 28 148 156
+20 28 148 156
+21 29 149 157
+21 29 149 157
+22 30 150 158
+22 30 150 158
+23 31 151 159
+23 31 151 159
+16 24 144 152
+16 24 144 152
+17 25 145 153
+17 25 145 153
+18 26 146 154
+18 26 146 154
+19 27 147 155
+19 27 147 155
+20 28 148 156
+20 28 148 156
+21 29 149 157
+21 29 149 157
+22 30 150 158
+22 30 150 158
+23 31 151 159
+23 31 151 159
+32 40 160 168
+32 40 160 168
+33 41 161 169
+33 41 161 169
+34 42 162 170
+34 42 162 170
+35 43 163 171
+35 43 163 171
+36 44 164 172
+36 44 164 172
+37 45 165 173
+37 45 165 173
+38 46 166 174
+38 46 166 174
+39 47 167 175
+39 47 167 175
+32 40 160 168
+32 40 160 168
+33 41 161 169
+33 41 161 169
+34 42 162 170
+34 42 162 170
+35 43 163 171
+35 43 163 171
+36 44 164 172
+36 44 164 172
+37 45 165 173
+37 45 165 173
+38 46 166 174
+38 46 166 174
+39 47 167 175
+39 47 167 175
+48 56 176 184
+48 56 176 184
+49 57 177 185
+49 57 177 185
+50 58 178 186
+50 58 178 186
+51 59 179 187
+51 59 179 187
+52 60 180 188
+52 60 180 188
+53 61 181 189
+53 61 181 189
+54 62 182 190
+54 62 182 190
+55 63 183 191
+55 63 183 191
+48 56 176 184
+48 56 176 184
+49 57 177 185
+49 57 177 185
+50 58 178 186
+50 58 178 186
+51 59 179 187
+51 59 179 187
+52 60 180 188
+52 60 180 188
+53 61 181 189
+53 61 181 189
+54 62 182 190
+54 62 182 190
+55 63 183 191
+55 63 183 191
+64 72 192 200
+64 72 192 200
+65 73 193 201
+65 73 193 201
+66 74 194 202
+66 74 194 202
+67 75 195 203
+67 75 195 203
+68 76 196 204
+68 76 196 204
+69 77 197 205
+69 77 197 205
+70 78 198 206
+70 78 198 206
+71 79 199 207
+71 79 199 207
+64 72 192 200
+64 72 192 200
+65 73 193 201
+65 73 193 201
+66 74 194 202
+66 74 194 202
+67 75 195 203
+67 75 195 203
+68 76 196 204
+68 76 196 204
+69 77 197 205
+69 77 197 205
+70 78 198 206
+70 78 198 206
+71 79 199 207
+71 79 199 207
+80 88 208 216
+80 88 208 216
+81 89 209 217
+81 89 209 217
+82 90 210 218
+82 90 210 218
+83 91 211 219
+83 91 211 219
+84 92 212 220
+84 92 212 220
+85 93 213 221
+85 93 213 221
+86 94 214 222
+86 94 214 222
+87 95 215 223
+87 95 215 223
+80 88 208 216
+80 88 208 216
+81 89 209 217
+81 89 209 217
+82 90 210 218
+82 90 210 218
+83 91 211 219
+83 91 211 219
+84 92 212 220
+84 92 212 220
+85 93 213 221
+85 93 213 221
+86 94 214 222
+86 94 214 222
+87 95 215 223
+87 95 215 223
+96 104 224 232
+96 104 224 232
+97 105 225 233
+97 105 225 233
+98 106 226 234
+98 106 226 234
+99 107 227 235
+99 107 227 235
+100 108 228 236
+100 108 228 236
+101 109 229 237
+101 109 229 237
+102 110 230 238
+102 110 230 238
+103 111 231 239
+103 111 231 239
+96 104 224 232
+96 104 224 232
+97 105 225 233
+97 105 225 233
+98 106 226 234
+98 106 226 234
+99 107 227 235
+99 107 227 235
+100 108 228 236
+100 108 228 236
+101 109 229 237
+101 109 229 237
+102 110 230 238
+102 110 230 238
+103 111 231 239
+103 111 231 239
+112 120 240 248
+112 120 240 248
+113 121 241 249
+113 121 241 249
+114 122 242 250
+114 122 242 250
+115 123 243 251
+115 123 243 251
+116 124 244 252
+116 124 244 252
+117 125 245 253
+117 125 245 253
+118 126 246 254
+118 126 246 254
+119 127 247 255
+119 127 247 255
+112 120 240 248
+112 120 240 248
+113 121 241 249
+113 121 241 249
+114 122 242 250
+114 122 242 250
+115 123 243 251
+115 123 243 251
+116 124 244 252
+116 124 244 252
+117 125 245 253
+117 125 245 253
+118 126 246 254
+118 126 246 254
+119 127 247 255
+119 127 247 255
+
+0 3 12 15
+3 0 15 12
+1 2 13 14
+2 1 14 13
+1 2 13 14
+2 1 14 13
+0 3 12 15
+3 0 15 12
+2 1 14 13
+1 2 13 14
+3 0 15 12
+0 3 12 15
+3 0 15 12
+0 3 12 15
+2 1 14 13
+1 2 13 14
+12 15 0 3
+15 12 3 0
+13 14 1 2
+14 13 2 1
+13 14 1 2
+14 13 2 1
+12 15 0 3
+15 12 3 0
+14 13 2 1
+13 14 1 2
+15 12 3 0
+12 15 0 3
+15 12 3 0
+12 15 0 3
+14 13 2 1
+13 14 1 2
+4 7 8 11
+7 4 11 8
+5 6 9 10
+6 5 10 9
+5 6 9 10
+6 5 10 9
+4 7 8 11
+7 4 11 8
+6 5 10 9
+5 6 9 10
+7 4 11 8
+4 7 8 11
+7 4 11 8
+4 7 8 11
+6 5 10 9
+5 6 9 10
+8 11 4 7
+11 8 7 4
+9 10 5 6
+10 9 6 5
+9 10 5 6
+10 9 6 5
+8 11 4 7
+11 8 7 4
+10 9 6 5
+9 10 5 6
+11 8 7 4
+8 11 4 7
+11 8 7 4
+8 11 4 7
+10 9 6 5
+9 10 5 6
+4 7 8 11
+7 4 11 8
+5 6 9 10
+6 5 10 9
+5 6 9 10
+6 5 10 9
+4 7 8 11
+7 4 11 8
+6 5 10 9
+5 6 9 10
+7 4 11 8
+4 7 8 11
+7 4 11 8
+4 7 8 11
+6 5 10 9
+5 6 9 10
+8 11 4 7
+11 8 7 4
+9 10 5 6
+10 9 6 5
+9 10 5 6
+10 9 6 5
+8 11 4 7
+11 8 7 4
+10 9 6 5
+9 10 5 6
+11 8 7 4
+8 11 4 7
+11 8 7 4
+8 11 4 7
+10 9 6 5
+9 10 5 6
+0 3 12 15
+3 0 15 12
+1 2 13 14
+2 1 14 13
+1 2 13 14
+2 1 14 13
+0 3 12 15
+3 0 15 12
+2 1 14 13
+1 2 13 14
+3 0 15 12
+0 3 12 15
+3 0 15 12
+0 3 12 15
+2 1 14 13
+1 2 13 14
+12 15 0 3
+15 12 3 0
+13 14 1 2
+14 13 2 1
+13 14 1 2
+14 13 2 1
+12 15 0 3
+15 12 3 0
+14 13 2 1
+13 14 1 2
+15 12 3 0
+12 15 0 3
+15 12 3 0
+12 15 0 3
+14 13 2 1
+13 14 1 2
+8 11 4 7
+11 8 7 4
+9 10 5 6
+10 9 6 5
+9 10 5 6
+10 9 6 5
+8 11 4 7
+11 8 7 4
+10 9 6 5
+9 10 5 6
+11 8 7 4
+8 11 4 7
+11 8 7 4
+8 11 4 7
+10 9 6 5
+9 10 5 6
+4 7 8 11
+7 4 11 8
+5 6 9 10
+6 5 10 9
+5 6 9 10
+6 5 10 9
+4 7 8 11
+7 4 11 8
+6 5 10 9
+5 6 9 10
+7 4 11 8
+4 7 8 11
+7 4 11 8
+4 7 8 11
+6 5 10 9
+5 6 9 10
+12 15 0 3
+15 12 3 0
+13 14 1 2
+14 13 2 1
+13 14 1 2
+14 13 2 1
+12 15 0 3
+15 12 3 0
+14 13 2 1
+13 14 1 2
+15 12 3 0
+12 15 0 3
+15 12 3 0
+12 15 0 3
+14 13 2 1
+13 14 1 2
+0 3 12 15
+3 0 15 12
+1 2 13 14
+2 1 14 13
+1 2 13 14
+2 1 14 13
+0 3 12 15
+3 0 15 12
+2 1 14 13
+1 2 13 14
+3 0 15 12
+0 3 12 15
+3 0 15 12
+0 3 12 15
+2 1 14 13
+1 2 13 14
+12 15 0 3
+15 12 3 0
+13 14 1 2
+14 13 2 1
+13 14 1 2
+14 13 2 1
+12 15 0 3
+15 12 3 0
+14 13 2 1
+13 14 1 2
+15 12 3 0
+12 15 0 3
+15 12 3 0
+12 15 0 3
+14 13 2 1
+13 14 1 2
+0 3 12 15
+3 0 15 12
+1 2 13 14
+2 1 14 13
+1 2 13 14
+2 1 14 13
+0 3 12 15
+3 0 15 12
+2 1 14 13
+1 2 13 14
+3 0 15 12
+0 3 12 15
+3 0 15 12
+0 3 12 15
+2 1 14 13
+1 2 13 14
+8 11 4 7
+11 8 7 4
+9 10 5 6
+10 9 6 5
+9 10 5 6
+10 9 6 5
+8 11 4 7
+11 8 7 4
+10 9 6 5
+9 10 5 6
+11 8 7 4
+8 11 4 7
+11 8 7 4
+8 11 4 7
+10 9 6 5
+9 10 5 6
+4 7 8 11
+7 4 11 8
+5 6 9 10
+6 5 10 9
+5 6 9 10
+6 5 10 9
+4 7 8 11
+7 4 11 8
+6 5 10 9
+5 6 9 10
+7 4 11 8
+4 7 8 11
+7 4 11 8
+4 7 8 11
+6 5 10 9
+5 6 9 10
+
+This is the joint trellis of two trellises described in awgn1o2_16.fsm
+It is useful for application of joint decoding...
+It can be generated in python as follows:
+> import trellis
+> f1=trellis.fsm('awgn1o2_16.fsm')
+> f=trellis.fsm(f1,f1)
+> f.write_fsm_txt('joint_16_16.fsm')
diff --git a/gr-trellis/src/examples/python/fsm_files/joint_4_16.fsm b/gr-trellis/src/examples/python/fsm_files/joint_4_16.fsm
new file mode 100644
index 000000000..427a18207
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/joint_4_16.fsm
@@ -0,0 +1,141 @@
+4 64 16
+
+0 8 32 40
+0 8 32 40
+1 9 33 41
+1 9 33 41
+2 10 34 42
+2 10 34 42
+3 11 35 43
+3 11 35 43
+4 12 36 44
+4 12 36 44
+5 13 37 45
+5 13 37 45
+6 14 38 46
+6 14 38 46
+7 15 39 47
+7 15 39 47
+0 8 32 40
+0 8 32 40
+1 9 33 41
+1 9 33 41
+2 10 34 42
+2 10 34 42
+3 11 35 43
+3 11 35 43
+4 12 36 44
+4 12 36 44
+5 13 37 45
+5 13 37 45
+6 14 38 46
+6 14 38 46
+7 15 39 47
+7 15 39 47
+16 24 48 56
+16 24 48 56
+17 25 49 57
+17 25 49 57
+18 26 50 58
+18 26 50 58
+19 27 51 59
+19 27 51 59
+20 28 52 60
+20 28 52 60
+21 29 53 61
+21 29 53 61
+22 30 54 62
+22 30 54 62
+23 31 55 63
+23 31 55 63
+16 24 48 56
+16 24 48 56
+17 25 49 57
+17 25 49 57
+18 26 50 58
+18 26 50 58
+19 27 51 59
+19 27 51 59
+20 28 52 60
+20 28 52 60
+21 29 53 61
+21 29 53 61
+22 30 54 62
+22 30 54 62
+23 31 55 63
+23 31 55 63
+
+0 3 12 15
+3 0 15 12
+1 2 13 14
+2 1 14 13
+1 2 13 14
+2 1 14 13
+0 3 12 15
+3 0 15 12
+2 1 14 13
+1 2 13 14
+3 0 15 12
+0 3 12 15
+3 0 15 12
+0 3 12 15
+2 1 14 13
+1 2 13 14
+12 15 0 3
+15 12 3 0
+13 14 1 2
+14 13 2 1
+13 14 1 2
+14 13 2 1
+12 15 0 3
+15 12 3 0
+14 13 2 1
+13 14 1 2
+15 12 3 0
+12 15 0 3
+15 12 3 0
+12 15 0 3
+14 13 2 1
+13 14 1 2
+4 7 8 11
+7 4 11 8
+5 6 9 10
+6 5 10 9
+5 6 9 10
+6 5 10 9
+4 7 8 11
+7 4 11 8
+6 5 10 9
+5 6 9 10
+7 4 11 8
+4 7 8 11
+7 4 11 8
+4 7 8 11
+6 5 10 9
+5 6 9 10
+8 11 4 7
+11 8 7 4
+9 10 5 6
+10 9 6 5
+9 10 5 6
+10 9 6 5
+8 11 4 7
+11 8 7 4
+10 9 6 5
+9 10 5 6
+11 8 7 4
+8 11 4 7
+11 8 7 4
+8 11 4 7
+10 9 6 5
+9 10 5 6
+
+This is the joint trellis of two trellises described in awgn1o2_4.fsm and awgn1o2_16.fsm
+It is useful for application of joint decoding...
+It can be generated in python as follows:
+> import trellis
+> f1=trellis.fsm('awgn1o2_4.fsm')
+> f2=trellis.fsm('awgn1o2_16.fsm')
+> f=trellis.fsm(f1,f2)
+> f.write_fsm_txt('joint_4_16.fsm')
+
diff --git a/gr-trellis/src/examples/python/fsm_files/rep3.fsm b/gr-trellis/src/examples/python/fsm_files/rep3.fsm
new file mode 100644
index 000000000..ef1bd1f02
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/rep3.fsm
@@ -0,0 +1,8 @@
+2 1 8
+
+0 0
+
+0 7
+
+1/3 repetition code (with binary input).
+There is only one state, since this is essentially a memoryless system.
diff --git a/gr-trellis/src/examples/python/fsm_files/rep5.fsm b/gr-trellis/src/examples/python/fsm_files/rep5.fsm
new file mode 100644
index 000000000..2aa5d77cf
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/rep5.fsm
@@ -0,0 +1,7 @@
+2 1 32
+
+0 0
+
+0 31
+
+1/5 repetition code
diff --git a/gr-trellis/src/examples/python/fsm_files/simple.fsm b/gr-trellis/src/examples/python/fsm_files/simple.fsm
new file mode 100644
index 000000000..f27f6b4b0
--- /dev/null
+++ b/gr-trellis/src/examples/python/fsm_files/simple.fsm
@@ -0,0 +1,13 @@
+1 4 1
+
+1
+2
+3
+0
+
+0
+0
+0
+0
+
+essentially this fsm has no inputs and no outputs; it just cycles through all 4 states.