超宽带无线通信中LDPC码硬件仿真实现

发布者:BlissfulSunrise最新更新时间:2014-09-01 来源: 21ic关键字:编码  调制  信道  变量 手机看文章 扫描二维码
随时随地手机看文章

1 引 言

码长较长的低速LDPC编码在信噪比较低的应用场合呈现出其他编码无法匹敌的优势,已经证明非规则的LDPC码性能甚至优于Turbo码高速 LDPC编码性能也比较好.尤其是在磁记录等一些应用场合,码长较短的高速LDPC编码有着较为广阔的应用前景。在不久的将来,LDPC编码将用于更多高速高质量的通信场合。而UWB通信技术因其传输速率高、功耗低等优点在短距离的网络中得到越来越多的关注。特别是UWB无线通信因其具有良好的时域可分辨性尤其适合于密集多径环境中的短距离多用户接入。本文在SvstemGenerator中对LDPC码整个编译码系统进行了参数化的硬件实现,并构建了超宽带通信系统LDPC码硬件仿真平台,验证了LDPC码在UWB通信中的优异性能。

2 UWB~LDPC的译码算法及不同环境下的初始化方法

LDPC码采用置信传播算法(BP)可以有效地解码,由于存在大量的乘法运算,直接采用BP算法会导致很高的硬件复杂性,因此采用了对数(Log)运算将乘法变换为加法,这种算法叫做Log-BP算法。实际上,BP和Log-BP算法实现的是同样的译码准则。

首先定义几个可能用到的几个变量及符号的意义:H

 

因子的统计平均值,当瑞利信道平均能量为1时,Ea(a)=0.8662。在UWB通信中,采取文献给出的混合软标准化算法,利用UwB信号的归一化的自相关值对

 

3 LDPC码硬件解码结构

由于并行解码性能与串行解码在性能上并无差别,只是占用更多的硬件资源来换取更快的速度,并且每一种并行结构只能针对具有某一特定校验矩阵的LDPC码。所以本文就以串行解码硬件实现方式进行实现分析。

3.1串行解码结构

串行解码结构图如图1所示,帧检测单元检测到帧头后表示后面的输入有效,启动译码器。初始化单元完成译码器的初始化;校验节点单元和变量节点单元分别完成校验节点和变量节点的更新计算,其中校验节点单元还要判断是否满足校验条件或达到最大迭代次数;两个RAM完成特定校验矩阵迭代信息的位置置换;中心控制模块完成整个系统的流程控制;缓冲模块是为了达到速率匹配和能够连续译码而设置的。

 


(1) 初始化单元

初始化信息是整个译码器最重要的译码依据,在对一帧初始化信息进行译码判决的过程中,迭代运算不断调用的初始化信息必须保持不变,因此采用存储器将初始化信息进行存储,在一帧的时间内保持不变。一帧时间后将开始接收新的信息为下一帧译码做准备。初始化单元在 SystemGenerator中实现比较简单,只要用一个ROM存储所需的初始化信息,然后根据量化后的软信息查表即可。[page]

(2)VNU(变量节点)单元

VNU的功能为计算"变量一校验"信息以及更新后验对数似然比。其硬件实现图如图2所示,3个"校验一变量"信息和1个比特初始化信息相加减去相对应的1个"校验一变量"信息所得到的值舍人处理后作为查找表运算的输入,查找表用于计算公式

,最后将查找表运算结果按符号位正负输出至CNU处理单元,硬判决位输出至校验单元进行奇偶校验。

 


(3)CNU(校验节点)单元

CNU的功能为计算"校验一变量"信息。CNU实现与VNU基本相似,6个"变量一校验"信息相加减去相对应的1个"变量一校验"信息所得到的值舍入处理后作为查找表运算的输入,最后将查找表运算结果按计算的符号位正负输出至VNU处理单元。由于是二进制系统,本文采用异或运算代替乘法运算计算符号位,其硬件实现图如图3所示。

 


3.2 串行解码在SystemGenerator中的整体实现

串行解码在SystemGeneratot中的整体实现如图4所示,其中frame detect实现图1中的帧检测模块用来启动译码器,VNU,CNU完成变量节点和校验节点更新的计算,2个单口RAM通过读写和地址的控制完成迭代信息的位置置换,其置换地址是预先在软件中计算得出存在ROM中的。这种串行解码结构比较灵活,只需要改变ROM中的读写地址就可以适用于不同的LDPC码 (校验矩阵的维数,行重、列重必须相同),而对于每个LDPC码其地址置换信息只需计算一次即可。原始信息经过延迟用以与解码后的数据比较。

 


4 UWB-LDPC的SystemGenerator参数化硬件仿真

4.1 系统仿真的总体框图

系统仿真的总体框图如图5所示,原始数据通过LDPC编码和调制,通过信道加上噪声,然后解调后的量化软信息进入LDPC译码器进行解码,由于编码和解码都需要一定的时间,因此原始数据必须经过延时后才能与译码数据进行比较和计算误码率。

 


4.2 仿真环境

我们在SystemGenerator环境下实现了串行和并行两种解码方式以及不同初始化方案的LDPC码,整个实现都采用参数化方式。为了方便验证性能,本文还建立了VC仿真界面来设置不同的参数。SystemGenerator是DSP高层系统设计与 Xilinx FPGA实现之间的"桥梁",他在Matlab/Simulink的环境下完成算法的建模,然后生成相应的工程。ISE可对工程进行仿真、综合、最后完成算法的硬件化。仿真环境和参数设置见表1。


其中高斯信道的硬件模拟是采用文献的BoxMuller算法。仿真采用蒙特卡罗仿真方法,LDPC解码在不同环境下的BER性能和迭代次数如图6所示。

 


图6(a)表示的是误码率仿真图,图6(b)表示的是平均迭代次数仿真图。仿真结果表明,对于传统的LDPC码采用硬件仿真的性能由于量化的影响略差于软件仿真,但采用了文献改进初始化方案的UWB-LDPC的硬件仿真性能要好于软件仿真的传统LDPC编码方式。尤其是信噪比大于1.5dB 时,UWB-LDPC的BER性能有较大的改善,在10-4时大约比传统的LDPC大约有1.2 dB的编码增益,平均迭代次数也有所减少。因此改进的LDPC码比传统的LDPC码更能满足UwB通信需求。

5结 语

本文对LDPC码在UWB通信中的应用做了探索,整个仿真都在SystemGenerator中参数化实现并构建了硬件仿真环境,为LDPC码在UWB通信中的应用和实现进行了有益的尝试。

关键字:编码  调制  信道  变量 引用地址:超宽带无线通信中LDPC码硬件仿真实现

上一篇:微芯有刷直流电机控制方案
下一篇:无线通信系统频率干扰原理及其解决之道

推荐阅读最新更新时间:2024-05-02 23:09

通过开关频率调制来降低电源EMI干扰
iframe style="POSITION: absolute; TOP: 0px; LEFT: 0px" id=google_ads_frame2 height=280 marginHeight=0 src="http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-1728267113733206&output=html&h=280&slotname=6802727683&w=336&lmt=1290931733&flash=10.1.102.64&url=http%3A%2F%2Fwww.epdoc.cn%2Fdianyuan%2F55252.html&dt=
[电源管理]
STM32之编码器模式学习
一、编码器模式理论储备 通常为了提高精度我们会选择在上升沿和下降沿都进行计数! 还有一个非常重要的图这里也记录下 其中让人费解的应该是在第二列的相对信号的电平,这里就来详细谈一下吧。 其实也不难理解哈,我们上面也说了通常为了提高精度会在A、B两相的上升沿和下降沿都进行计数,那么对应在一个周期就可以计数四次,计数次数的增加也就意味着精度的提高! 编码器模式下,如果此时处于正转,那么这四次计数应该都是加的。同理,如果是反转,那么这四次计数都是减的。那么问题来了,如何判断正反转呢? 不就是在相对电平的基础上嘛!!! 仔细对照图中,在正转或者反转的情况下,A相对B的电平高低以及上表中的计数方向
[单片机]
STM32之<font color='red'>编码</font>器模式学习
浅析KUKA机器人系统变量和系统文件
处理复杂的机器人应用的一个重要的前提条件是一个自由的和容易使用的可编程控制器。 为了满足该需求,机器人控制器的功能性必须在机器人语言中可编程。机器人控制器全部的功能仅当控制参数完整地和集成在机器人程序中时才可使用。通过预定系统变量和文件,在KRC...中得到了最好的解决。 预定变量的例子是$POS_ACT(当前机器人位置),$BASE(基本坐标系)或$VEL.CP(CP速度)。更详细的说明和。 所有预定变量的列表见单独资料 。 系统变量被完整地集成在KRL的变量概念中。系统变量拥有相对应的数据类型,可以象其它变量一样可在程序中读和写,没有数据的类型的限制。当前机器人的位置,例如,仅可以读而不能写。控制器检查和限制该状态
[嵌入式]
浅析KUKA机器人系统<font color='red'>变量</font>和系统文件
STM32单片机设计extern全局变量的定义解析
在写SysTcik_Handler()这个中断函数时,总是报错,明明在开头定义的全局变量extern u16 ntime,(nTIme--写在stm32f10x_it.c的sysTIck中断函数中)但是编译时总是报错,百度之后才有了解决方法, 之前也注意到过extern变量,但是没有仔细思考过它的使用方法,今天碰到了,一定要把它弄明白,把这个关键字的一般作用弄清楚(仅仅是一般作用,C的博大精深不敢妄谈); 当你建立一个头文件库时,经常会遇到一个问题,就是在A文件中定义一个temple变量,想把它的值传递给B文件使用,但是A文件操作中函数又不可以带返回参数,比如说中断服务函数,那该怎么办?如果你把temple定义在A中,然后
[单片机]
STM32单片机设计extern全局<font color='red'>变量</font>的定义解析
全球最高速光通信编码研究测试系统问世
  近日,中兴通讯开发完成了超高速200Gbps 光通信 编码研究测试系统,创造全球业界同类系统最高速率纪录。基于该系统,中兴通讯完成了针对国际标准组织Optical Internetworking Forum(OIF)最新400ZR-FEC草案的研究测试,揭示了已有测试手段无法探知的性能劣化及其根源所在,并提出改进方案。这一成果首次达成了真正意义的超低误码率(小于10-15误码率)下编码性能的高速高效检测和研究,将对今年4月即将确定的OIF 400ZR标准产生关键性的影响。同时成功入选本年度国际光纤通讯会议(OFC)期限后论文。下面就随手机便携小编一起来了解一下相关内容吧。   OFC期限后论文是由数十位全球顶尖相关专家组成的
[手机便携]
MSP432E4系列编码器(QEI模块)速度换算
换算公式如下 rpm = (clock × 2^{VELDIV} × SPEED × 60) / (LOAD × ppr × edges) 其中: rpm:电机转速 clock:时钟频率 VELDIV:时钟分频系数 SPEED:读到的电机速度 LOAD:每一次测速定时器的计数值 ppr:编码器每转产生的脉冲数 edge:2或4。取决于QEICTL(QEI控制寄存器)中设置的捕获模式。当CAPMODE被清除时则为2,当CAPMODE被置位时则为4。 下面引用官方技术手册中的例子: 例如,考虑以 600 rpm 运行的电机。 每转 2048 个
[单片机]
三相SPWM逆变器的调制建模和仿真
    随着电力电子技术的发展,SPWM正弦脉宽调制法正逐渐被人们熟悉,这项技术的特点是通用性强,原理简单。具有开关频率固定,控制和调节性能好,能消除谐波,设计简单,是一种比较好的波形改善法。它的出现为中小型逆变器的发展起了重要的推动作用。由于大功率电力电子装置的结构复杂,若直接对装置进行实验,且代价高费时费力,故在研制过程中需要借助计算机仿真技术,对装置的运行机理与特性,控制方法的有效性进行试验,以预测并解决问题,缩短研制时间。MATLAB软件具有强大的数值计算功能,方便直观的Simulink建模环境,使复杂电力电子装置的建模与仿真成为可能。本文利用MATLAB/Simulink为SPWM逆变电路建立系统仿真模型,并对其输出特
[电源管理]
三相SPWM逆变器的<font color='red'>调制</font>建模和仿真
利用全局及外部变量实现C51无能数化调用A51函数
摘要: 利用C51全局及外部变量,可实现无参数化调用A51函数,不但避免开了传统C51调用C51时繁琐的接口约定,而且把在A51中所用到的变量全部放至C51程序中而不必考虑变量在内存中的位置,使编程更加简洁。用实例验证了该方法的优越性和有效性。 关键词: C51 A51 汇编语言 无参数化调用 电子技术应用 2001年第7期发表苟帅的文章“ASM51无参数化调用C51函数的实现”,阐述了ASM51无参数化调用C51函数的实现原理并给出实例来验证该方法的优越性和可行性。作者在文章中
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved