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
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.
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: [1×21 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
The MPEG-2 Transport Packet is a randomly generated 188-byte vector with the first byte replaced by the sync byte 0x47 (Hexadecimal).
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.
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.
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.
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.
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.
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.
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.
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.