⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 the art of error correcting coding coded modulation.htm

📁 详细讲述纠错码的书籍
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0048)http://the-art-of-ecc.com/9_Coded_Mod/index.html -->
<HTML><HEAD><TITLE>The Art of Error Correcting Coding: Coded modulation</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="Robert Morelos-Zaragoza" name=Author>
<META 
content="Error Control Coding,Error CorrectingCoding,Error Correcting Codes,FEC,Turbo Codes,Iterative Decoding,DigitalCommunications,Wireless,Satellite,Data,Coded Modulation,Golay,Hamming,BCH,Reed Solomon,Viterbi Decoder,Soft Decision Decoding,Sudan Algorithm,Unequal Error Protection,Variable Rate Coding,Adaptive Coding,Convolutional Codes,LDPC,Low-Density Parity-Check Codes,The Art of Error-Correcting Coding,Capacity-achieving codes,Coding is not dead, is more alive than ever" 
name=description>
<META content="MSHTML 6.00.2900.3395" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff>
<CENTER><BIG><B><FONT size=+1><BIG>Coded modulation 
schemes</BIG></FONT></B></BIG></CENTER>
<P>In this page,&nbsp; links to programs in C/C++ and Matlab for simulating 
several combinations of error correcting codes and digital modulation are 
presented. Combined coding and modulation is discussed in Chapter 9 of the <A 
href="http://www.amazon.com/gp/product/0470015586/ref=sr_11_1/102-3025380-7157754?ie=UTF8">book</A> 
<BR>&nbsp; </P><SMALL><B><FONT size=+1><SMALL>Reed-Muller coded QPSK 
modulation</SMALL></FONT></B>:</SMALL><BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/RM31/qpsk_rm31.c">qpsk_rm31.c</A> 
<P></P>Simulation of coded QPSK with an extended Hamming (8,4,4) code. This 
basic example of a coded modulation scheme serves to set our minds and 
understand the essential idea, before proceeding to more elaborated combinations 
of ECC and modulation.&nbsp; <BR><BR><SPAN 
style="FONT-WEIGHT: bold">Reed-Solomon coded M-QAM:</SPAN><BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/rscode_AWGN_MQAM.mdl">RS coded 
MQAM.mdl</A> <BR>Note: This is a <SPAN style="FONT-STYLE: italic">Simulink 
</SPAN>model created with Matlab version 7.1<BR>
<P><BR></P>
<P><B><FONT size=+1>Trellis-coded modulation (TCM)</FONT></B> </P>
<P>As in the case of <A 
href="http://the-art-of-ecc.com/5_Convolutional/index.html">binary convolutional 
codes</A> and <A href="http://the-art-of-ecc.com/7_SISO/index.html">turbo 
codes</A>, TCM schemes have an underlying trellis structure that must be 
provided to the Viterbi decoding algorithm. Therefore, there are two steps 
required in the simulation of a particular combination of trellis and 
modulation: &nbsp;</P>
<P><B>1. Trellis structure</B><BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/TCM/gen_trellis_ungerboeck.c">gen_trellis_ungerboeck.c</A></P>
<P></P>
<P>This is the same algorithm as for binary convolutional encoders. For rate-1/2 
encoders and 8-PSK modulation, the difference is that labels of branches are now 
integers from 0 to 2^m-1, and not pairs of bits. This is because the branch 
labels are used by the decoder to address cosets of signals associated with 
uncoded bits. The trellis is specified by an input file with the same format as 
in the <A href="http://the-art-of-ecc.com/5_Convolutional/index.html">binary 
case</A>. Here are some good examples of input files and the corresponding 
trellis structure files: <BR></P><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/TCM/input_4state.data">input_4state.data</A>&nbsp;&nbsp; 
<A 
href="http://the-art-of-ecc.com/9_Coded_Mod/TCM/trellis_tcm_S4.data">trellis_tcm_S4.data</A> 
<BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/TCM/input_8state.data">input_8state.data</A>&nbsp;&nbsp; 
<A 
href="http://the-art-of-ecc.com/9_Coded_Mod/TCM/trellis_tcm_S8.data">trellis_tcm_S8.data</A> 
<BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/TCM/input_16state.data">input_16state.data</A>&nbsp; 
<A 
href="http://the-art-of-ecc.com/9_Coded_Mod/TCM/trellis_tcm_S16.data">trellis_tcm_S16.data</A> 
<BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/TCM/input_32state.data">input_32state.data</A>&nbsp; 
<A 
href="http://the-art-of-ecc.com/9_Coded_Mod/TCM/trellis_tcm_S32.data">trellis_tcm_S32.data</A> 
<BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/TCM/input_64state.data">input_64tate.data</A>&nbsp; 
<A 
href="http://the-art-of-ecc.com/9_Coded_Mod/TCM/trellis_tcm_S64.data">trellis_tcm_S64.data</A> 
&nbsp; 
<P><B>2. Viterbi decoder</B><BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/TCM/tcm_8psk.c">tcm_8psk.c</A></P>
<P></P>The Viterbi algorithm is the same as <A 
href="http://the-art-of-ecc.com/5_Convolutional/index.html">the binary case</A> 
with one main difference: The survivor sequences include the uncoded bits, which 
are decided at each trellis stage when selecting one of two parallel branches 
with the largest correlation metric. <BR><I>Presently, only 8-PSK modulation is 
considered. Extensions to higher-order modulations can be implemented following 
a similar procedure.</I> <BR>&nbsp; &nbsp;
<P><B><FONT size=+1>Pragmatic trellis-coded modulation (P-TCM)</FONT></B> </P>
<P>Pragmatic TCM schemes are designed to use the same binary convolutional 
encoder selecting cosets in a signal constellation. Denser constellations can be 
used by employing uncoded bits (parallel branches in the trellis). Below are two 
programs for simulating P-TCM schemes using suboptimal decoders of reduced 
complexity. They have been designed for 8-PSK modulation. The trellis structure 
of the standard 64-state rate-1/2 code is: <BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/PTCM/trellis_tcm_S64.data">trellis_tcm_S64.data</A> 
&nbsp;</P><B>1. Two-stage decoding</B><BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/PTCM/tc-8psk-iq.c">tc-8psk-iq.c</A> 
<P></P>Based on a (patented) IQ transformation of the incoming 8-PSK symbols. 
The transformed I-channel and Q-channel samples appear to the decoder as if they 
were QPSK symbols. The second decoding stage is a simple look-up table with the 
decoded bit from the Viterbi algorithm and information on the sector of the 
original noisy received 8-PSK symbol. &nbsp;
<P><B>2. Decoding with polar coordinates</B> <BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/PTCM/tc-8psk-sect.c">tc-8psk-sect.c</A> 
</P>
<P>The same two-stage decoder as above. However, when transforming the symbols 
prior to Viterbi decoding, the amplitude information is ignored and only the 
phase of the received symbol is employed in the metric computation stage. 
<BR>&nbsp; </P>
<P><B><FONT size=+1>Multilevel-coded modulation (MCM)</FONT></B> </P>
<P>Multilevel coding schemes are designed to use binary codewords selecting 
labels of signals in a constellation. These schemes have been shown to achieve 
capacity if the component codes are designed with rates matching the capacities 
of underlying multiple channels. Below is an example of an MCM scheme with short 
BCH codes and soft-decision decoding with ordered statistics. </P>
<P>The same observations made in discussing the <A 
href="http://the-art-of-ecc.com/6_Soft/index.html">ordered statistics decoding 
algorithm</A> apply here, in terms of a definition file that needs to be 
modified every time the component codes change. In the program below, the 
component are BCH(64,18,22), BCH(64,45,8) and BCH(64,63,2) codes. Consequently 
the orders needed are [22/4]=4, [8/4]=2 and [2/4]=0. The source files are: 
<BR><A href="http://the-art-of-ecc.com/9_Coded_Mod/MCM/def3.h">def3.h</A> <BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/MCM/main_4_2_0.c">main_4_2_0.c</A> 
<BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/MCM/order4_code1.c">order4_code1.c</A> 
<BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/MCM/order2_code2.c">order2_code2.c</A> 
<BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/MCM/order0_code3.c">order0_code3.c</A> 
</P>
<P>which should be compiled as: <BR>gcc -O2 main_4_2_0.c order4_code1.c 
order2_code2.c order0_code3.c -lm </P>
<P>The generator matrices of these codes, needed as input to the simulation 
program, are: <BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/MCM/generator_641822.data">generator_641822.data</A> 
<BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/MCM/generator_644508.data">generator_644508.data</A> 
<BR><A 
href="http://the-art-of-ecc.com/9_Coded_Mod/MCM/generator_646302.data">generator_646302.data</A> 
<BR>&nbsp; <BR>&nbsp; </P>
<P><B><A href="http://the-art-of-ecc.com/topics.html">BACK TO 
CONTENTS</A></B><BR></P>
<HR>

<H6 style="FONT-WEIGHT: normal"><SMALL><FONT color=#000000>This page was last 
updated on August 6, 2008, by Robert H. Morelos-Zaragoza.</FONT></SMALL></H6><!-- text below generated by server. PLEASE REMOVE --><!-- Counter/Statistics data collection code -->
<SCRIPT language=JavaScript 
src="The Art of Error Correcting Coding Coded modulation.files/whv2_001.js"></SCRIPT>

<SCRIPT language=javascript>geovisit();</SCRIPT>
<NOSCRIPT><IMG height=1 alt=setstats 
src="The Art of Error Correcting Coding Coded modulation.files/visit.gif" 
width=1 border=0></NOSCRIPT></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -