Giter Club home page Giter Club logo

dtv-utils's Introduction

# 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 */

dtv-utils's People

Contributors

drmpeg avatar jynik avatar raidentaisha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dtv-utils's Issues

Problem with osmosdr

When I try to run the tool I get this error.
By going to the directory that says it does not exist, we realize that the file we are looking for is there.
Does anyone comes up with something?
Captura de pantalla 2023-11-06 184906

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.