This page represents the documentation for all of the ATSC blocks, simply because they are intended to be used together, and most of the blocks have no parameters.
GNU Radio's ATSC (Advanced Television Systems Committee) module contains everything needed to transmit or a receive an ATSC signal. ATSC uses "8VSB" meaning 8-level vestigial sideband modulation. Each symbol includes two bits from the MPEG transport stream, which are then trellis modulated to produce a third bit. The 6 MHz channel used for broadcast ATSC carries a symbol rate of 10.76 megabaud, a gross bit rate of 32 Mbit/s, and a net bit rate of 19.39 Mbit/s of usable data.
Note that on the receive side, ATSC Receive Pipeline is a hier block defined here.
On the receive side, the only real parameter is the oversampling ratio, a.k.a. the samples per symbol. The default is 1.5 but people have used 1.1 as well (someone please explain this).
On the transmit side, none of the blocks have any parameters.
Setting up SMPlayer
If on Linux, SMPlayer is a great video player for viewing the ATSC stream. Follow the instructions below to install and configure SMPlayer:
- sudo apt-get install smplayer
- In SMPlayer go to options -> preferences
- Under the performance sidebar item check the boxes:
- allow frame drop
- allow hard frame drop
- Under the cache tab, uncheck 'auto', and set cache for streams to 8096
- To open stream, do Open > URL > and use the address tcp://127.0.0.1:8800
You will also need to install the OOT gr-grnet, to serve the stream to SMPlayer
Example Transmit Flowgraph
Example Receive Flowgraph
This is the example ATSC receiver which can be found here. Feel free to change the File Source type to complex (and remove the converter block) if that's the format of your IQ data. You can also replace the File Source and converter with an SDR source block.