BCH编解码器的设计和实现….doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【题目介绍】 我们小组做的题目是BCH编解码器的设计和实现。系统分为四部分: 单片机串并变换 (7,4)BCH编码器 FSK调制发射和FSK解调 (7,4)BCH解码器 首先,计算机通过串口向单片机发送串行ASCII码数据,单片机把这些串行数据进行串并变换后,把每个8位的ASCII码并行送入 (7,4)BCH编码器,8位并行数据在编码后变为14位的串行数据,FSK调制模块将编码后的数据发射,然后解调模块进行接收(中途没有经过无线信道,因为无法模拟),解调后得到编码后的数据,送给(7,4)BCH解码器进行解码,然后解码器将解码得到的8位ASCII码送给单片机,单片机将并行ASCII码进行并串变换后,将串行数据送入计算机串口,这时,在屏幕上将显示接收到的ASCII码。 【分工】 **************************** 【编码模块原理】 编码方式:将信息码多项式i(x)升n-k次幂后除以生成多项式g(x),然后将所得余式置于升幂后的信息多项式i(x)之后。可以用下式表示: r(x)为监督码多项式 系统循环码多项式为: 要得到监督位,关键要进行多项式除法,可以用带反馈的线性移位寄存器来实现。 (n, k)BCH码生成多项式g(x) = 1 + g1x + g2x2 + ... + gn-k-1xn-k-1 + xn-k (n,k)BCH码编码电路: 若前n-k次移位只是用于将信息码元输入移位寄存器,还需n-k次移位才能输出监督码元,其间存在n-k位间隙。通过时钟控制开关可以使编码过程流畅,不存在时间间隙。 编码器的开关动作如下: 1 到k个时钟节拍,信息比特直接输出(S2 置于2)同时计算余式——监督码,每当一个“1”移出寄存器进入反馈线,相当于从被除式中减去除式。 k+1到n个时钟节拍,监督码位输出(S2 置于1),断开移位寄存器的反馈线(S1--off) (7, 4)BCH码生成多项式g(x) = 1 + x + x3 一次编码过程产生4位信息码元和3位监督码元,3位监督码指示的8种校正子图样中,一种代表无误码,其余7种能纠正一位误码。 (7,4)BCH码编码电路: 编码器的开关动作如下: 1 到4个时钟节拍,信息比特直接输出(S2 置于2)同时计算余式——监督码。 5到7个时钟节拍,监督码位输出(S2 置于1),断开移位寄存器的反馈线(S1--off) 【编码模块系统框图】 clk 时钟节拍 reset 是来自单片机的数据有效信号(脉冲信号) din_v[7..0] 是单片机向FPGA发出的并行信号 dout 是编码后的串行信号,头三位为高电平帧信号 当reset的上升沿到来时,读取单片机发出的并行数据信号din_v[7..0],首先产生3位高电平信号送至dout。 然后启动编码电路,8位信息码分两组进行编码,历时14个时钟节拍,加上帧信号共17个时钟节拍。 reset 信号上升沿的识别 reset上升沿的识别捕捉是启动编码过程的关键,若采用同于捕捉时钟信号上升沿的方法(if reset’ event and reset=’1’),会导致上升沿的嵌套捕捉,不能通过编译。 用两路信号Q1,Q2分别在时钟的上升沿和下降沿采集reset信号 Process begin Wait until clkevent and clk=1; Q1=reset; End process; Process begin Wait until clkevent and clk=0; Q2=reset; End process; 判断reset 上升沿的标准是(Q1 xor Q2)=1) and reset=1 即Q1,Q2不等且reset=1时。 Reset 上升沿出现在时钟的高电平,Q1,Q2不等状态恰好卡住时钟信号上升沿 Reset 上升沿出现在时钟的低电平Q1,Q2不等状态卡住时钟信号下降沿 编码的控制信号往往是要靠reset 上升沿起动,而后在时钟沿时有相应动作。倘若要先判断时钟沿的来临(比如上升沿),再判断是否有Q1,Q2不等的状态,有一半的概率会捕捉不到reset 上升沿,因为显然Q1,Q2不等状态以0.5的概率卡住时钟信号下降沿。 为了使判断Q1,Q2状态不受到时钟沿的限制,要先判断是否有Q1,Q2不等的状态,然后判断时钟沿的来临。 If(((Q1 xor Q2)=1)and reset=1)then 。。。。 Elsif (clkEVENT and clk=‘1’) then 。。。。 End if; din_

文档评论(0)

我是追梦人 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档