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

📄 modify.html

📁 关于LDPC编/译码的方针平台。能随机产生信源和模拟高斯信道。
💻 HTML
字号:
<HTML><HEAD><TITLE> Notes on Modifying the LDPC Programs </TITLE></HEAD><BODY><H1> Notes on Modifying the LDPC Programs </H1><P>Here are a few notes on how to modify the programs to add new types ofchannel, new decoding procedures, etc.  You should also look at the <AHREF="modules.html">module documentation</A>.<H2> Adding a new type of channel </H2><P>Channels are involved in two programs: <A HREF="channel.html#transmit"><B>transmit</B></A> and <A HREF="decoding.html#decode"><B>decode</B></A>.  Adding another type of memoryless channel should be straightforward.Adding a channel with memory may involve more work.  Here are thesteps needed if no major reorganizations are required:<OL><LI> Decide on a syntax for specifying the new channel type and its     parameters, and on an internal name for the channel type.  Add     the internal name as a possibility in the enumerated <TT>channel_type</TT>     declared in <A HREF="channel.h"><TT>channel.h</TT></A>.  You     may also need to declare new global variables to store parameters of     the channel in <A HREF="channel.h"><TT>channel.h</TT></A> and     <A HREF="channel.c"><TT>channel.c</TT></A>.<LI> Modify the <TT>channel_parse</TT> and      <TT>channel_usage</TT> procedures in      <A HREF="channel.c"><TT>channel.c</TT></A> to     parse the specification of the new channel and display an appropriate      usage message.<LI> Decide on how the new channel's output is represented in a file     (eg, for an erasure channel, what the symbol for an erasure is), and     update <A HREF="transmit.c"><TT>transmit.c</TT></A> to write the     new channel's output for each transmitted bit, after randomly generating      any noise (see     the <A HREF="rand.html">documentation on random number generation</A>).<LI> Modify <A HREF="decode.c"><TT>decode.c</TT></A> in three places to      accommodate the new channel.  The three sections of code to modify     allocate space for data from the channel, read data from the channel,     and set likelihood ratios based on the data read.  The setting of      likelihood ratios is based on the assumption that the channel is      memoryless (ie, data received for different bits is independent).     Adding a channel with memory would require changing this assumption,     which would involve modifications to the decoding procedures too.<LI> Document the new channel type in <A HREF="channel.html">channel.html</A>     and <A HREF="decoding.html">decoding.html</A>.</OL><H2> Adding a new decoding procedure </H2>A new decoding method can be implemented as follows:<OL><LI> Decide on a syntax for specifying the method and its parameters,     using the trailing arguments to the      <A HREF="decoding.html#decode"><TT>decode</TT></A> program.  Pick an     internal name for the method, and add it as a possibility in the     enumerated <TT>decoding_method</TT> type in      <A HREF="dec.h"><TT>dec.h</TT></A>.  You may also need to declare     new variables for the method's parameters in      <A HREF="dec.h"><TT>dec.h</TT></A> and <A HREF="dec.c"><TT>dec.c</TT></A>.<LI> Modify the argument parsing code in      <A HREF="decode.c"><TT>decode.c</TT></A>     to handle specifications of the new method, and change the <TT>usage</TT>     procedure to display the syntax for specifying the new method.<LI> Write a setup procedure for your decoding method, putting it in      <A HREF="dec.c"><TT>dec.c</TT></A>, with a declaration in      <A HREF="dec.h"><TT>dec.h</TT></A>.  At a minimum, this procedure     should print headers for the table of detailed decoding information     when the <B>-T</B> option was specified.<LI> Write a decode procedure implementing your method, putting it in     <A HREF="dec.c"><TT>dec.c</TT></A>, with a declaration in      <A HREF="dec.h"><TT>dec.h</TT></A>.  This procedure should output     detailed trace information when the <B>-T</B> option was specified.<LI> Modify <A HREF="decode.c"><TT>decode.c</TT></A> in the appropriate      places to call the setup procedure and the decode procedure you wrote.<LI> Document the new decoding method in      <A HREF="decoding.html">decoding.html</A> and      <A HREF="decode-detail.html">decode-detail.html</A>.</OL><H2> Adding a new method of making a low-density parity-check matrix </H2><P>The <A HREF="pchk.html#make-ldpc"><B>make-ldpc</B></A> program can bechanged to add a new method for generating a LDPC code by modifying<A HREF="make-ldpc.c"><TT>make-ldpc.c</TT></A>.  A radically differentmethod might better be implemented by writing a new program of similarstructure.<H2> Adding a new encoding method </H2><P>A new heuristic for finding a sparse LU decomposition can beimplemented by changing <A HREF="make-gen.c">make-gen.c</A> to allowthe new heuristic to be specified on the command line, changing the <AHREF="mod2sparse.html#decomp"><B>mod2sparse_decomp</B></A> procedurein <A HREF="mod2sparse.c"><TT>mod2sparse.c</TT></A> to implement theheuristic, and documenting the new heuristic in <AHREF="encoding.html">encoding.html</A>, <AHREF="sparse-LU.html">sparse-LU.html</A>, and <AHREF="mod2sparse.html">mod2sparse.html</A>.<P>To implement a completely new encoding method, you will first needto define a new file format for a generator matrix, modify <AHREF="make-gen.c">make-gen.c</A> appropriately to write out this newformat, and modify the <TT>read_gen</TT> procedure in <AHREF="rcode.c"><TT>rcode.c</TT></A> to read this format.  You willneed to implement the new method in a procedure in <AHREF="enc.c">enc.c</A>, and modify <A HREF="encode.c">encode.c</A> sothat it will call this new procedure when the new method is used.  The<TT>enum_decode</TT> procedure in <A HREF="dec.c">dec.c</A> will alsoneed to be modified so it can call the new encoding method.  Finally,you should document the new method in <AHREF="encoding.html">encoding.html</A><P><HR><A HREF="index.html">Back to index for LDPC software</A></BODY></HTML>

⌨️ 快捷键说明

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