-
Notifications
You must be signed in to change notification settings - Fork 11
/
README
235 lines (173 loc) · 8.3 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
# Copyright 2014-2023 Ron Economos
#
# This file is part of dtv-utils
#
# dtv-utils is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# dtv-utils is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with dtv-utils; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
dtv-utils
============
Author: Ron Economos
Email: <[email protected]>
This project is a collection of utilities and scripts
for digital television projects using bladeRF and GNU Radio
dvbt-blade.py
----------------------------------
This Python script transmit a DVB-T digital television signal using the
bladeRF and gr-dvbt (https://github.com/BogdanDIA/gr-dvbt). A file
containing an MPEG-2 Transport Stream must be supplied as input.
Optionally, an output file can be specified to store the generated
IQ samples (in gr_complex floating point).
usage: dvbt-blade.py [-h] [-m MODE] [-c CH] [-C TYPE] [-r RATE] [-g D]
[-f FREQ] [--txvga1 gain] [--txvga2 gain] [-o OUT]
input-file
positional arguments:
input-file Input file
optional arguments:
-h, --help show this help message and exit
-m MODE, --mode MODE # of carriers. Options: t2k, t8k (default).
-c CH, --channel CH channel width in MHz. Options: 5, 6, 7, 8 (default).
-C TYPE, --cons TYPE constellation. qpsk, qam16, qam64 (default).
-r RATE, --rate RATE Viterbi rate. 1/2, 2/3, 3/4, 5/6, 7/8 (default).
-g D, --guard D guard interval. 1/32 (default), 1/16, 1/8, 1/4.
-f FREQ, --freq FREQ center frequency (Hz). Default is 429e6.
--txvga1 gain bladeRF TXVGA1 gain. Default is -6.
--txvga2 gain bladeRF TXVGA2 gain. Default is 9.
-o OUT, --output OUT write to specified file.
dvbtrate.c
----------------------------------
Calculates the precise Transport Stream bit-rate for all DVB-T
constellations, Viterbi code rates and guard intervals for a
given channel width.
usage: dvbtrate <channel bandwidth>
For example:
./dvbtrate 6
qam-blade.py
----------------------------------
This Python script transmit a ANSI/SCTE 07 2013 (also known as
ITU-T J.83 Annex B) 64-QAM digital television signal using the
bladeRF and gr-qam (https://github.com/argilo/gr-qam). A file
containing an MPEG-2 Transport Stream (at 26.970352 Mbps) must
be supplied as input. Optionally, an output file can be specified
to store the generated IQ samples (in gr_complex floating point).
Internal parameter values that can be changed:
The three parameters I_taps, J_increment and Control_Word can be
used to control the interleaver from the following table.
Control_Word I_taps J_increment
0 128 1
1 128 1
2 128 2
3 64 2
4 128 3
5 32 4
6 128 4
7 16 8
8 128 5
9 8 16
10 128 6
11 Reserved
12 128 7
13 Reserved
14 128 8
15 Reserved
The default is Control_Word = 6, I_taps = 128 and J_increment = 4
which seems to be the most commonly used on CATV systems.
dvbs2rate.c
----------------------------------
Calculates the precise Transport Stream bit-rate for all DVB-S2
constellations, LDPC code rates and pilots on/off for a given
symbol rate.
usage: dvbs2rate -sx <symbol rate>
Options:
s = short FECFRAME rates
x = DVB-S2X rates
For example:
./dvbs2rate 4500000
./dvbs2rate -s 4500000
./dvbs2rate -x 4500000
./dvbs2rate -sx 4500000
dvbt2rate.c
----------------------------------
Calculates the precise Transport Stream bit-rate for all DVB-T2 parameters.
dvbt2rate <channel bandwidth> <fft size> <guard interval> <number of data symbols> <number of FEC blocks> <code rate> <modulation> <frame size> <extended carrier> <pilot pattern> <L1 modulation>
Options:
channel bandwidth = 0, 5, 6, 7, 8 or 10. The value 0 selects the 1.7 MHz mode.
fft size = 1, 2, 4, 8, 16 or 32.
guard interval = 0 = 1/32, 1 = 1/16, 2 = 1/8, 3 = 1/4, 4 = 1/128, 5 = 19/128, 6 = 19/256.
number of data symbols = number of symbols after the P2 symbol(s).
number of FEC blocks.
code rate = 1 = 1/2, 2 = 3/5, 3 = 2/3, 4 = 3/4, 5 = 4/5, 6 = 5/6, 7 = 1/3, 8 = 2/5.
modulation = 1 = QPSK, 2 = 16QAM, 3 = 64QAM, 4 = 256QAM.
frame size = 0 = normal, 1 = short
extended carrier = 0 normal, 1 = extended
pilot pattern = 1, 2, 3, 4, 5, 6, 7, 8.
L1 modulaton = 0 = BPSK, 1 = QPSK, 2 = 16QAM, 3 = 64QAM.
For example (BBC 40.2 Mbps parameters):
./dvbt2rate 8 32 4 59 202 3 4 0 1 7 3
There are also three compile time defines to control less often used parameters.
#undef NORMAL_MODE
#undef PAPR
#undef MISO
Change these to #define if one or more of these modes are in use.
Note that a valid configuration must fulfill two rules.
1) The frame time TF must be less than 250 milliseconds.
2) The number of dummy cells must be positive.
papr.c
----------------------------------
Calculates the PAPR (Peak to Average Power) of an IQ sample file (32-bit floating
point pairs). The peak PAPR, percentage of power above each dB level and the
value and position in the file of the peak IQ samples are printed.
usage: papr -g <infile>
Options:
g = graph suitable output
For Example:
./papr atsc.cfile
The -g option outputs values in 0.1 dB steps suitable for graphing.
DVB-T Test bitstreams (all have the same content, [email protected] fps video and 448 kbps AC3 audio):
16QAM
8 MHz
http://www.w6rz.net/adv8dvbt12.ts /* 1/2 Viterbi rate 12.064171 Mbps TS rate */
http://www.w6rz.net/adv8dvbt23.ts /* 2/3 Viterbi rate 16.085561 Mbps TS rate */
http://www.w6rz.net/adv8dvbt34.ts /* 3/4 Viterbi rate 18.096256 Mbps TS rate */
http://www.w6rz.net/adv8dvbt56.ts /* 5/6 Viterbi rate 20.106951 Mbps TS rate */
http://www.w6rz.net/adv8dvbt78.ts /* 7/8 Viterbi rate 21.112299 Mbps TS rate */
7 MHz
http://www.w6rz.net/adv7dvbt23.ts /* 2/3 Viterbi rate 14.074866 Mbps TS rate */
http://www.w6rz.net/adv7dvbt34.ts /* 3/4 Viterbi rate 15.834224 Mbps TS rate */
http://www.w6rz.net/adv7dvbt56.ts /* 5/6 Viterbi rate 17.593582 Mbps TS rate */
http://www.w6rz.net/adv7dvbt78.ts /* 7/8 Viterbi rate 18.473262 Mbps TS rate */
6 MHz
http://www.w6rz.net/adv6dvbt23.ts /* 2/3 Viterbi rate 12.064171 Mbps TS rate */
http://www.w6rz.net/adv6dvbt34.ts /* 3/4 Viterbi rate 13.572192 Mbps TS rate */
http://www.w6rz.net/adv6dvbt56.ts /* 5/6 Viterbi rate 15.080213 Mbps TS rate */
http://www.w6rz.net/adv6dvbt78.ts /* 7/8 Viterbi rate 15.834224 Mbps TS rate */
64QAM
8 MHz
http://www.w6rz.net/adv8dvbt12qam64.ts /* 1/2 Viterbi rate 18.096256 Mbps TS rate */
http://www.w6rz.net/adv8dvbt23qam64.ts /* 2/3 Viterbi rate 24.128342 Mbps TS rate */
http://www.w6rz.net/adv8dvbt34qam64.ts /* 3/4 Viterbi rate 27.144385 Mbps TS rate */
http://www.w6rz.net/adv8dvbt56qam64.ts /* 5/6 Viterbi rate 30.160427 Mbps TS rate */
http://www.w6rz.net/adv8dvbt78qam64.ts /* 7/8 Viterbi rate 31.668449 Mbps TS rate */
7 MHz
http://www.w6rz.net/adv7dvbt12qam64.ts /* 1/2 Viterbi rate 15.834224 Mbps TS rate */
http://www.w6rz.net/adv7dvbt23qam64.ts /* 2/3 Viterbi rate 21.112299 Mbps TS rate */
http://www.w6rz.net/adv7dvbt34qam64.ts /* 3/4 Viterbi rate 23.751336 Mbps TS rate */
http://www.w6rz.net/adv7dvbt56qam64.ts /* 5/6 Viterbi rate 26.390374 Mbps TS rate */
http://www.w6rz.net/adv7dvbt78qam64.ts /* 7/8 Viterbi rate 27.709893 Mbps TS rate */
6 MHz
http://www.w6rz.net/adv6dvbt12qam64.ts /* 1/2 Viterbi rate 13.572192 Mbps TS rate */
http://www.w6rz.net/adv6dvbt23qam64.ts /* 2/3 Viterbi rate 18.096256 Mbps TS rate */
http://www.w6rz.net/adv6dvbt34qam64.ts /* 3/4 Viterbi rate 20.358288 Mbps TS rate */
http://www.w6rz.net/adv6dvbt56qam64.ts /* 5/6 Viterbi rate 22.620320 Mbps TS rate */
http://www.w6rz.net/adv6dvbt78qam64.ts /* 7/8 Viterbi rate 23.751336 Mbps TS rate */