论文部分内容阅读
在DVB-T中,外码采用的是RS(204,188)缩短码,它形成的过程是:在188个信息码字前面添加51个0,然后对这239个码字进行编码,得到16个监督码字,编码完成后,再去掉编码前补上的51个0,即得到RS(204,188)。译码时,再将51个0重新补上,然后送入RS(255,239)译码器进行译码,译码结束后,去除补上的51个0,得到188个信息码字。基于此,本文主要研究RS(255,239)编译码器。本文的工作主要有:(1)给出了RS(255,239)编译码器的总体设计方案;(2)运用MATLAB这一强大的仿真工具对编码过程和译码过程进行了仿真,重点讨论了求解关键方程的几种算法,最后选用了一种无逆的BM算法作为译码方案中求解关键方程的方法;(3)给出编译码方案中各个模块的具体电路结构,并对电路结构进行优化;(4)用VHDL语言实现各个模块,这些模块包括:伽罗华域的乘法器,伴随式计算模块,关键方程求解模块、钱搜索模块、错误值计算模块、判决纠错模块等。最终,通过级联仿真测试,成功实现了纠错功能,并且保证了电路的速度,电路的最高工作频率接近110MHz。本文的创新之处是:没有利用乘法器来实现求逆器,而是采用ROM来实现的,虽然ROM中的内容是借助MATLAB工具,采用乘法器设计这种方法计算得到。在MATLAB程序中,利用乘法器来实现很容易,计算结果也很准确,但是在电路设计中,通过仿真发现,用这种方法计算量大,硬件资源耗费多,计算结果不可靠,会出现错误,具体的原因是运算过程复杂,一个乘法器就已经够复杂,实现一个求逆器需要进行十几次乘法运算,而且必须在极短的时间内完成,存在竞争冒险现象,所以在电路设计中未采用这种方法;运用以面积换取速度的思想,为电路的计算节约了时钟,同时耗费了一定的硬件资源;找错误位置和计算错误值同时进行,而不是传统的方法,先找到错误位置,再计算该位置的错误值,这样会造成更大的译码延时,我这样做易于保证数据的同步,虽然从另一角度考虑,这样会增加很多冗余的计算量,增加了硬件资源的耗费。