基于FPGA的前向纠错算法
发布时间:2008/5/27 0:00:00 访问次数:456
    
    
    作者:电子科技大学通信与信息工程学院 沈杨豪,李广军
    
    摘要:研究数字音频无线传输中的前向纠错(fec)算法的设计及实现,对前向纠错中的主要功能模块,如rs编解码、交织器与解交织器等给出基本算法及基于现场可编程门阵列(fpga)和硬件描述语言的解决方案。选用硬件描述语言veriloghdl,在开发工具quartusii4.2中完成软核的综合、布局布线和汇编,在modelsim中进行时序仿真验证,最终下栽到开发板中进行电路验证及测试。
    
    关键词:rs码;交织;现场可编程门阵列;前向纠错
    
    1 引言
    
    目前,无线产品的广泛应用使无线音频和视频的高质量传输成为可能。蓝牙、无限局域网等无线传输设备比较复杂,成本较高,急需开发一种简便的、仅用于流媒体的无线传输平台,将音频数据实时地发送到移动终端。由于音频数据的实时性,不宜采用反馈重传等造成很大时延的差错控制方式。前向纠错码(fec)的码字是具有一定纠错能力的码型,它在接收端解码后不仅可以发现错误,而且能够判断错误码元所在的位置并自动纠错。这种纠错码信息不需要储存,不需要反馈,实时性好,故可选择前向纠错来实现差错控制。
    
    笔者设计的系统指标如下:
    
    ●当信道误码率为3x10-3时,经过前向纠错,误码率降到10-7以下;
    ●数据源使用的是s/pdif民用数字音频格式标准[1];
    ●信号时延远小于人的分辨能力(40ms);
    ●芯片资源耗用不超过20万门;
    
    rs码即里德-所罗门码,它是能够纠正多个错误的纠错码,具有同时纠正突发性错误和随机性错误的能力[2],而且编解码相对简单。考虑到系统的误码率和资源耗用,拟采用rs码作为前向纠错码。
    
    在无线信道中,比特差错经常成串发生,这是由于持续时间较长的衰落谷点会影响到几个连续的比特,而信道编码仅在检测和校正单个差错和不太长的差错串时才最有效。为了纠正这些成串发生的比特差错及一些突发错误,可以运用交织技术来分散这些错误,使长串的比特差错变成短串差错,从而可以用前向码对其纠错。
    
    用本系统传输数据时,在发端先对数据进行rs编码(外码),再进行交织处理,最后再进行rs编码(内码)。收端次序和发端相反,先进行内码解码,接着进行去交积处理完成错误分散,最后进行外码解码,纠正内码未能纠正的错误。通过这种2维的rs编解码,可以充分利用rs码纠错能力强的特点,降低系统的误码率。也可考虑使用迭代译码[3]。若1次2维译码的效果无法满足需求,则将译码后的数据反馈回译码器,进行1次迭代译码。迭代次数的增加会带来相应的资源开销和时延的增加。
    
    2 系统结构及实现
    
    纠错编码使用2维rs码。内码采用(10,8)rs码,q=4,每个码字含32bit数据。外码采用(20,16)rs码,q=8,每个码字含128个数据。交织器大小为1 280bit。以1 280bit为1帧,帧之间预留信息时隙。
    
    下面详细介绍交织器,解交织器和(20,16)rs编码器,***模块的原理及fpga实现。(10,8)rs编码器,***的原理与(20,16)rs编码器,***基本相同。
    
    2.1(20,16)rs编码器
    
    rs码是bch码的重要子类。由于具有同时纠正突发性错误和随机性错误的能力,且纠正突发性错误更有效,因而被广泛地应用。
    
    (20,16)rs编码器完成rs编码功能,每输入16个码元,延迟1个时钟原样输出,并在其后添加4个校验码元,构成20个码元的输出码字。因此数据输入16个码字后应预留至少4个码字的空隙,避免数据丢失。
    
    (20,16)rs是(255,251)rs的缩短码,它是在有限域gf(28)上运算得到的,把(255,251)rs的前235个码元都当作0就得到(20,16)rs码。码参数如下:
    码长n=20,信息位个数k=16,校验位n-k=4,纠错能力t=2,
    
    
    作者:电子科技大学通信与信息工程学院 沈杨豪,李广军
    
    摘要:研究数字音频无线传输中的前向纠错(fec)算法的设计及实现,对前向纠错中的主要功能模块,如rs编解码、交织器与解交织器等给出基本算法及基于现场可编程门阵列(fpga)和硬件描述语言的解决方案。选用硬件描述语言veriloghdl,在开发工具quartusii4.2中完成软核的综合、布局布线和汇编,在modelsim中进行时序仿真验证,最终下栽到开发板中进行电路验证及测试。
    
    关键词:rs码;交织;现场可编程门阵列;前向纠错
    
    1 引言
    
    目前,无线产品的广泛应用使无线音频和视频的高质量传输成为可能。蓝牙、无限局域网等无线传输设备比较复杂,成本较高,急需开发一种简便的、仅用于流媒体的无线传输平台,将音频数据实时地发送到移动终端。由于音频数据的实时性,不宜采用反馈重传等造成很大时延的差错控制方式。前向纠错码(fec)的码字是具有一定纠错能力的码型,它在接收端解码后不仅可以发现错误,而且能够判断错误码元所在的位置并自动纠错。这种纠错码信息不需要储存,不需要反馈,实时性好,故可选择前向纠错来实现差错控制。
    
    笔者设计的系统指标如下:
    
    ●当信道误码率为3x10-3时,经过前向纠错,误码率降到10-7以下;
    ●数据源使用的是s/pdif民用数字音频格式标准[1];
    ●信号时延远小于人的分辨能力(40ms);
    ●芯片资源耗用不超过20万门;
    
    rs码即里德-所罗门码,它是能够纠正多个错误的纠错码,具有同时纠正突发性错误和随机性错误的能力[2],而且编解码相对简单。考虑到系统的误码率和资源耗用,拟采用rs码作为前向纠错码。
    
    在无线信道中,比特差错经常成串发生,这是由于持续时间较长的衰落谷点会影响到几个连续的比特,而信道编码仅在检测和校正单个差错和不太长的差错串时才最有效。为了纠正这些成串发生的比特差错及一些突发错误,可以运用交织技术来分散这些错误,使长串的比特差错变成短串差错,从而可以用前向码对其纠错。
    
    用本系统传输数据时,在发端先对数据进行rs编码(外码),再进行交织处理,最后再进行rs编码(内码)。收端次序和发端相反,先进行内码解码,接着进行去交积处理完成错误分散,最后进行外码解码,纠正内码未能纠正的错误。通过这种2维的rs编解码,可以充分利用rs码纠错能力强的特点,降低系统的误码率。也可考虑使用迭代译码[3]。若1次2维译码的效果无法满足需求,则将译码后的数据反馈回译码器,进行1次迭代译码。迭代次数的增加会带来相应的资源开销和时延的增加。
    
    2 系统结构及实现
    
    纠错编码使用2维rs码。内码采用(10,8)rs码,q=4,每个码字含32bit数据。外码采用(20,16)rs码,q=8,每个码字含128个数据。交织器大小为1 280bit。以1 280bit为1帧,帧之间预留信息时隙。
    
    下面详细介绍交织器,解交织器和(20,16)rs编码器,***模块的原理及fpga实现。(10,8)rs编码器,***的原理与(20,16)rs编码器,***基本相同。
    
    2.1(20,16)rs编码器
    
    rs码是bch码的重要子类。由于具有同时纠正突发性错误和随机性错误的能力,且纠正突发性错误更有效,因而被广泛地应用。
    
    (20,16)rs编码器完成rs编码功能,每输入16个码元,延迟1个时钟原样输出,并在其后添加4个校验码元,构成20个码元的输出码字。因此数据输入16个码字后应预留至少4个码字的空隙,避免数据丢失。
    
    (20,16)rs是(255,251)rs的缩短码,它是在有限域gf(28)上运算得到的,把(255,251)rs的前235个码元都当作0就得到(20,16)rs码。码参数如下:
    码长n=20,信息位个数k=16,校验位n-k=4,纠错能力t=2,
上一篇:PCB设计中的注意事项
上一篇:利用FPGA实现异步FIFO设计
热门点击
- Xtreme PCB软件允许多位工程师同时布
- ALLEGRO布线缺点之我见
- PCB LAYOUT技术大全---初学者必看
- RGB信号走表层还是地层?
- VHDL中Loop动态条件的可综合转化
- 利用FPGA实现异步FIFO设计
- 统一的电路仿真验证平台的设计
- 多芯片封装:高堆层,矮外形
- PowerPCB修改整体文字大小
- 用等效性检查验证连续改变
推荐技术资料
- 泰克新发布的DSA830
- 泰克新发布的DSA8300在一台仪器中同时实现时域和频域分析,DS... [详细]