gr-atsc3 icon indicating copy to clipboard operation
gr-atsc3 copied to clipboard

An ATSC 3.0 Transmitter for GNU Radio

Copyright 2021-2023 Ron Economos

This file is part of gr-atsc3

gr-atsc3 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.

gr-atsc3 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 gr-atsc3; see the file COPYING. If not, write to

the Free Software Foundation, Inc., 51 Franklin Street,

Boston, MA 02110-1301, USA.

gr-atsc3

Author: Ron Economos Email: [email protected]

The goal of this project is to build a software-defined ATSC 3.0 transmitter, based on the A322 Physical Layer Protocol and A321 System Discovery and Signaling specifications.

https://prdatsc.wpenginepowered.com/wp-content/uploads/2022/11/A322-2022-11-Physical-Layer-Protocol.pdf

https://prdatsc.wpenginepowered.com/wp-content/uploads/2022/04/A321-2022-03-System-Discovery-and-Signaling.pdf

The baseline implementation has been verified against the ATSC 3.0 validation and verification suite. The current implementation only supports Transport Stream input.

A test flow graph is available in examples/vv031.grc. The parameters match the ~15 dB S/N of ATSC 1.0 at 21.343539 Mbps. The test stream is available here:

https://www.w6rz.net/advatsc3.ts

A Transport Stream bit-rate calculator is available here:

https://github.com/drmpeg/dtv-utils/blob/master/atsc3rate.c https://github.com/drmpeg/dtv-utils/blob/master/atsc3rate.h

I'd like to thank Clayton Smith VE3IRR https://github.com/argilo for his invaluable help with debugging, interpreting the specification and calibration of the bootstrap resampler.

Features not implemented:

  1. Mixed Time and Frequency Division Multiplexing
  2. Convolutional Delay Line (CDL)
  3. Channel bonding
  4. L1-Detail segmentation
  5. L1-Detail additional parity
  6. MIMO
  7. ACE PAPR reduction
  8. Baseband frame counter
  9. Transmitter Identification (TxID)
  10. IP packet input

Build instructions:

mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig

Contributions are welcome!