gr-atsc3
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:
- Mixed Time and Frequency Division Multiplexing
- Convolutional Delay Line (CDL)
- Channel bonding
- L1-Detail segmentation
- L1-Detail additional parity
- MIMO
- ACE PAPR reduction
- Baseband frame counter
- Transmitter Identification (TxID)
- IP packet input
Build instructions:
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig
Contributions are welcome!