ATSC Digital Television
This model shows the vestigial sideband modulation with 8 discrete amplitude levels (8-VSB) transmission subsystem of the Advanced Television Systems Committee (ATSC) digital television standard [ 1 ]. The standard describes the characteristics of the U.S. advanced television system that is designed to transmit high-quality video, audio, and ancillary data within a single 6 MHz terrestrial television broadcast channel.
The purpose of this example is to:
- Model the primary portions of a Main Service 8-VSB transmitter with MPEG-2 Transport Packet data as inputs
- Model the primary portions of a possible Main Service 8-VSB receiver design
- Generate error statistics including number of corrected bytes, number of defective packets and byte error rate
Structure of the Example
The model consists of MPEG-2 Transport Packet generation, transmitter baseband processing, AWGN Channel, receiver baseband processing, and error rate calculation. The following sections describe each subcomponent in detail.
MATLAB® Workspace Variable Definitions
When the model is first loaded, it creates a MATLAB workspace variable prmATSC. This structure variable contains fields that specify the block parameters in the model. This variable is cleared when the model is closed.
prmATSC = struct with fields: MPEG2PacketLen: 188 RSCodewordLen: 207 BitsPerByte: 8 BitsPerNibble: 2 NibblesPerByte: 4 NibblesPerGroup: 48 NibblesPerSegment: 828 SegmentsPerField: 313 RSPrimitivePoly: [1 0 0 0 1 1 1 0 1] RSGeneratorPoly: [1x21 double] IntlvrNumShiftRegs: 52 IntlvrShiftRegStep: 4 DeintlvrAlignDelay: 156 DeintlvrPktDelay: 52 NumTrellisCoders: 12 TraceBackDepth: 8 TrellisDecAlignDelay: 159 TrellisDecPktDelay: 2 SymbolRate: 1.0762e+07 MPEG2BPS: 1.9393e+07 MPEG2PktRate: 1.2894e+04 ChannelSampleTime: 9.3666e-08 PAMSigPower: 4.5826 EsNo: 10
MPEG-2 Data Source
The MPEG-2 Transport Packet is a randomly generated 188-byte vector with the first byte replaced by the sync byte 0x47 (Hexadecimal).
Transmitter Baseband Processing
This subsystem corresponds to Section 18.104.22.168 in [ 1 ]. The MPEG-2 sync byte should not be randomized and encoded, and hence is thrown away before the XOR operation. The pseudo random byte sequence that scrambles input data bytes is re-initialized at the beginning of each Data Field. In this model, each Data Field consists of 312 Data Segments because the Data Field Sync segment is not modeled.
- Reed-Solomon Encoder
This subsystem corresponds to Section 22.214.171.124 in [ 1 ]. The (207, 187) Reed-Solomon Encoder block adds 20 parity bytes to the input packet and produces an output of 207 bytes per frame. This allows up to 10 erroneous bytes per transport packet to be corrected by the corresponding Reed-Solomon Decoder block at the receiver.
- Convolutional Interleaver
This subsystem corresponds to Section 126.96.36.199 in [ 1 ]. The Convolutional Interleaver block interleaves the bytes from 52 Data Segments (intersegment), which is one-sixth (1/6) of a Data Field. The transmitter synchronizes the interleaver to the first data byte of each Data Field.
- Trellis Interleaver
This subsystem, together with the subsequent 8-PAM Modulator block, corresponds to Section 188.8.131.52 in [ 1 ]. It creates serial 3-bit outputs from parallel bytes by feeding every two bits of each data byte through one of 12 two-thirds (2/3) rate Convolutional Encoder blocks. Each byte produces four 3-bit outputs and the implementation processes every 12 bytes as a group. A block controls which Convolutional Encoder processes which two bits in a group. A complete conversion of parallel bytes to serial bits needs four Data Segments, i.e., 828 data bytes, to produce 3312 3-bit outputs from the 12 encoders, and each encoder processes 69 data bytes. Each Data Field needs 312/4 = 78 conversion operations.
- 8-PAM Constellation Mapping
The 8-PAM Modulator block corresponds to the symbol mapper portion of the Figure 6.8 in [ 1 ]. It maps 3-bit integer inputs to symbols on an 8-level one-dimensional real constellation with values [-7 -5 -3 -1 1 3 5 7].
The AWGN Channel block uses the Signal to noise ratio (Es/No) mode. Signal power and symbol period have been calculated and stored in the workspace variable prmATSC. The Es/No value is set to 10 dB, which produces a byte error rate of approximately 0.0039.
Receiver Baseband Processing
- 8-PAM Demodulator
- Trellis Deinterleaver
This subsystem converts serial 3-bit inputs to parallel bytes by feeding each input through one of 12 two-thirds (2/3) rate Viterbi Decoder blocks. Then, the subsystem concatenates the decoded bits into bytes. The deinterleaver processes every 48 inputs corresponding to 12 bytes as a group, and introduces one group (48 inputs) of delay before performing Viterbi decoding. The same control block as in the Trellis Interleaver subsystem is used to select which Viterbi Decoder block processes which input in a group. Note that the Trellis Interleaver and Trellis Deinterleaver subsystems together introduce 207 + 48 = 255 bytes of delay into the system (from Buffer blocks). So, the Trellis Deinterleaver subsystem output is delayed by 159 bytes for frame alignment, and the first two frames received by the downstream subsystem should be ignored. To notify the subsequent subsystem of this frame delay, the Trellis Deinterleaver subsystem creates a frame valid flag and passes it downstream.
- Convolutional Deinterleaver
The Convolutional Deinterleaver block corresponds to the Convolutional Interleaver block at the transmitter and both blocks have the same configuration. Note that the Convolutional Interleaver and Convolutional Deinterleaver blocks together introduce 10608 bytes of delay into the system. As a result, the subsystem delays Convolutional Deinterleaver block output by 156 bytes for packet alignment, and the first 52 packets received by the downstream subsystem should be ignored. To notify the subsequent subsystem of this packet delay, the Convolutional Deinterleaver subsystem creates a packet valid flag and passes it downstream.
- Reed-Solomon Decoder
The Reed-Solomon Decoder block corresponds to the Reed-Solomon Encoder block at the transmitter and both blocks have the same configuration. The block has a second output port to indicate the number of bytes that have been corrected for the processed packet.
This subsystem corresponds to the Randomizer subsystem at the transmitter. The block that generates the pseudo random byte sequence is the same as the block in the Randomizer subsystem. The MPEG-2 sync byte is inserted into each packet after the derandomization to form an MPEG-2 Transport Packet.
Results and Displays
The Error Rate Calculation block measures the system byte error rate by comparing the transmitted and decoded MPEG-2 Transport Packet data. Note that the system has 54 packets, i.e., 10152 bytes, of delay in total, which specifies the Receive delay parameter of the block.
To examine the performance of the system, use the included visualization blocks, as listed below:
- MPEG-2 Bit Rate (Mbit/s) display
- Receiver 8-PAM Constellation Diagram display
- Receiver Spectrum display
- Number of Corrected Bytes display
- Number of Defective Packets display
- System Byte Error Rate display
Upon loading the model, you can set a different signal to noise ratio (SNR) by changing the EsNo field value of the prmATSC workspace variable and observe the system performance. The following components are not modeled in the system, but you can try to include them:
- Data Segment and Data Field synchronization
- Channel impairments such as multipath fading channels and frequency offsets
- Receiver carrier recovery and equalization
- Advanced Television Systems Committee, ATSC Digital Television Standard A/53, Part 2 - RF/Transmission System Characteristics, Washington, D.C., Jan. 3, 2007.