《第10章--编码与译码-现代DSP技术-教学课件.ppt》由会员分享,可在线阅读,更多相关《第10章--编码与译码-现代DSP技术-教学课件.ppt(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第1010章章 编码与译码编码与译码 第第10章章 编码与译码编码与译码 10.1 伪随机序列伪随机序列 10.2 帧同步检出帧同步检出 10.3 RS码码 10.4 Viterbi译码译码 第第1010章章 编码与译码编码与译码 10.1 伪随机序列伪随机序列 对于数字信号传输系统,传送的数字基带信号(一般是一个数字序列)由于载有的信息,在时间上往往是不平均的(比如数字化的语音信号),对应的数字序列编码的特性不利于数字信号的传输。我们可以通过对数字基带信号预先进行“随机化”(加扰)处理,使得信号频谱在通带内平均化,改善数字信号的传输;在接收端进行解扰操作,恢复到原来的信号。第第1010章章
2、 编码与译码编码与译码 伪随机序列广泛应用于这类加扰、解扰操作中。下面以一类伪随机序列m序列为例,用DSP Builder构建一个伪随机序列发生器。10.1.1 m序列序列 m序列即最长线性反馈移位寄存器序列,是一种比较常见的伪随机序列发生器,可由线性反馈寄存器(Linear Feedback Shift Registers,LFSR)来产生。如图10-1所示。第第1010章章 编码与译码编码与译码 图图10-1 线性反馈移位寄存器的构成线性反馈移位寄存器的构成第第1010章章 编码与译码编码与译码 第第1010章章 编码与译码编码与译码 10.1.2 m序列发生器模型序列发生器模型 以 为例
3、,利用DSP Builder构建一个伪随机序列发生器。图10-2显示了上式的DSP Builder模型表示。这里采用相连的延时单元组作为移位寄存器,用异或(XOR)完成模二加运算,输出为mout。第第1010章章 编码与译码编码与译码 图10-2 m序列发生器模型第第1010章章 编码与译码编码与译码 不过图10-2所示的电路可能无法正常工作,这是由于DSP Builder默认的延时单元在开始工作时存储内容为0,而对于m序列来说,起始序列为全0,那么根据多项式,输出序列将为全0,全0序列不是正常的m序列。因此只要起始时寄存器中有一个为1,m序列就可以正常输出。为此,对图10-2的模型进行修改,
4、修改后的模型见图10-3所示。对图10-3的模型进行仿真,可得到一个伪随机序列,如图10-4所示。第第1010章章 编码与译码编码与译码 第第1010章章 编码与译码编码与译码 图10-4 m序列发生器的Simulink仿真结果第第1010章章 编码与译码编码与译码 10.2 帧同步检出帧同步检出 在数字通信系统中,同步是非常关键的。由于信号的远距离传输,不可避免地存在信号延时、干扰、非线性失真、收发两端的时钟偏差等。为保证数字传输信号的有效性,必须进行同步。根据同步作用可以分为:载波同步、位同步、帧同步、网同步。本节以帧同步设计为例进行介绍。第第1010章章 编码与译码编码与译码 第第101
5、0章章 编码与译码编码与译码 10.2.1 巴克码巴克码 巴克码是一个有限长的数字序列。一个n位巴克码序列 ,其中1in,取值为+1或者-1,其局部自相关函数满足:n,j=00,1,0jn0,jn第第1010章章 编码与译码编码与译码 第第1010章章 编码与译码编码与译码 10.2.2 巴克码的检出模型巴克码的检出模型 根据10.2.1小节介绍的原理,若需要在数字信号流中检出巴克码组,只要检测序列的自相关函数即可。在Simulink环境中,建立一个DSP Builder模型,检出7位巴克码,序列为+1,+1,+1,-1,-1,+1,-1,如图10-5所示。第第1010章章 编码与译码编码与译
6、码 图10-5 帧同步检出模型 第第1010章章 编码与译码编码与译码 第第1010章章 编码与译码编码与译码 对于输入的数字序列值是0或者1,而对于巴克码则是+1和-1。我们在这里规定输入数字信号序列中的0对应于巴克码的-1。据此可以建立两个子系统模块bxp1m和bxn1m,分别完成 、。子系统模块图见图10-6和图10-7。图中只用了一个选择器和几个常数模块就实现了要求的 的功能。第第1010章章 编码与译码编码与译码 图图10-6 bxp1m子系统子系统第第1010章章 编码与译码编码与译码 图10-7 bxn1m子系统 第第1010章章 编码与译码编码与译码 在 Simulink中 仿
7、 真 时 通 过 From Workspace1模 块 从MATLAB的工作区获得输入序列:1 1 1 0 0 1 0 1 1 1 1 0 1 0 0 1 1 0 1 1仿真结果检测到了用于帧同步的巴克码,请见图10-8。第第1010章章 编码与译码编码与译码 图图10-8 仿真结果仿真结果第第1010章章 编码与译码编码与译码 第第1010章章 编码与译码编码与译码 对于检出错误的处理方式常用的有三种:检错重发(ARQ)、前向纠错(FEC)、混合纠错(HEC)。对于前向纠错是不需要反馈信道的,在信道编码中含有纠错信息,实时性较强。RS编码在前向纠错中的使用比较常见。第第1010章章 编码与译
8、码编码与译码 10.3.1 RS码简介码简介 RS码是Reed Solomon码的简称,是属于循环码BCH码的一种,对于突发错误,RS码具有很好的纠错能力。一个RS码,输入信号分成比特一组,每组包括个符号,每个符号由个比特构成。对于一个可以纠正个符号错误的RS码,其参数如表10-1所示。第第1010章章 编码与译码编码与译码 表10-1 RS码的参数参数名称参数值单 位码长符号信息段符号监督段符号最小码距符号符号比特第第1010章章 编码与译码编码与译码 第第1010章章 编码与译码编码与译码 图10-9 RS Compiler与DSP Builder集成第第1010章章 编码与译码编码与译码
9、 按照图10-9新建一个模型,放置一个Reed Solomon模块。双击该模块,出现RS Compiler对话框,如图10-10所示。选择“Encode”编码器,然后点击“Next”按钮,进行RS编码器的参数设置(见图10-11)。设置完成后就可以在Simulink中,如其它DSP Builder模块一样调用RS编码器来完成更大的设计了。第第1010章章 编码与译码编码与译码 第第1010章章 编码与译码编码与译码 图10-11 确定参数第第1010章章 编码与译码编码与译码 10.3.3 使用使用IP Core设计设计RS译码器译码器 RS Compiler这个核也可以设计RS译码器。同设计
10、RS编码器时一样调用RS Compiler,选择类型为“Decoder”的译码器,见图10-12所示。接着的参数设置与RS编码器相同,这里不再赘述。最后设计好的RS译码器见图10-13。第第1010章章 编码与译码编码与译码 图10-12 选择类型为Decoder译码器第第1010章章 编码与译码编码与译码 图10-13 RS译码器模块第第1010章章 编码与译码编码与译码 10.4 Viterbi 译译 码码 10.4.1 卷积码的卷积码的Viterbi译码译码 卷积码与RS码不同,卷积码编码后的个码元不但与当前段的个信息相关,而且与前面段的信息相关,即编码后相互关联的码元为个。因而,在相同
11、码元个数下,卷积码的纠错能力更强,但译码的复杂性也随之提高。第第1010章章 编码与译码编码与译码 在卷积码的三种译码方式:门限译码、Viterbi译码、序列译码中,Viterbi译码的性能最好。Viterbi译码基于最大似然译码原理,而且在译码时无须反馈操作。Viterbi译码器的实现比较复杂,具体的Viterbi译码原理请参见相关书籍。第第1010章章 编码与译码编码与译码 10.4.2 用用IP Core设计设计Viterbi译码器译码器 为了简化Viterbi译码器在FPGA上的实现,Altera提供了Viterbi译码器的IP CoreViterbi Compiler,可在DSP Builder上集成使用(见图10-14)。具体的Viterbi Compiler的使用方法请参考Altera的使用手册。第第1010章章 编码与译码编码与译码 图10-14 Viterbi译码器IP Core