DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 135|回复: 0
打印 上一主题 下一主题

基于FPGA快速A 律压缩编码的设计与实现

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-17 15:05:26 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
摘要:本文针对A律13折线法的算法特点,提出一种并行数据处理算法,实现了编码的流水线操作。运用VHDL语言将其在FPGA中实现,借助quartus II6.0平台进行验证,并对验证结果进行分析,评估了系统的性能,证实了该算法的优越性和高效性。 关键词:A律压缩编码,FPGA,VHDL 1引言在信号处理过程中,我们通常将模拟信号转化为数字信号进行处理或传输。原始数据用取样的方法进行采集,通过A/D转换将模拟信号变成数字信号。但是这样的数字信号由于码位多,在传输过程中占用带宽多,传输率也低。为了提高传输效率,必须对原始数据进行量化处理。在实际运用中通常采用非均匀量化。采用输入信号幅度和量化输出数据之间定义了两种对应关系,一种是在北美日本使用的 律;另一种是在欧洲中国大陆使用的A律。A律压缩重要运用于数字电话通讯中的语音压缩编码,如何实现快速压缩已成为实际应用的关键。随着VLSI(超大规模集成电路)特别是FPGA技术的日益成熟,基于FPGA的各种压缩编码的实现显示出其独特的优势和广泛的应用前景[1-3]。本文针对13折线来的算法特点,提出一种并行数据处理且适合于实现编码流水线作业的改进算法,运用VHDL语言将其在FPGA中实现,借助Quartus II 6.0平台对其进行验证、仿真,并对仿真结果进行分析,评估了系统的性能,证实了该算法的优越性和高效性。2 原理所谓A压缩律也就是压缩律具有如下特性的压缩律[4]:

?:式中x —归一化的压缩器输入电压; y—归一化的压缩器输出电压; —压扩参数,表示压缩程度。实际中, 压缩律通常采用13折线(图1)来近似。??

?????????????????????????? 图1? 13折线示意图
                          
                       
                          
                                3? 编码流水线算法设计思路??? 本设计从适合流水线操作的角度对常规算法[5]作了改进,前级完成相应位计算后将其结果传递到下一级,完成后进入下一组数据的编码运算,从而达到流水作业的目的。由于每个模块功能独立,适合模块化设计。?

4?? 具体实现

图2 系统框图图2系统框图中实现了一种并行数据处理且适合于编码流水线作业的改进算法,并采用FPGA具体实现。系统主要由状态机(state)和比较单元(compare)这二部分组成,其中Comp1,Comp2,……Comp7这七个单元模块在状态机的控制下并行进行流水线数据处理。即在状态机的控制下,在一个clk时钟脉冲当中,七个单元同时进行着数据的处理工作,处理完成后,前一个Comp单元的输出作为后一个Comp单元输入,在下一个clk时钟脉冲到来时紧接着又进行下一组数据处理。按照这种方式,依次处理下去,从而达到流水线作业的目的。下面对该系统进行具体实现。
                          
                       
                          
                                4.1状态机(state)为了使comp模块间有序进行工作,确保之间数据正确稳定的传输,特引入状态机对各模块进行数据读、写控制。?????????????????????????????????????????????????????????????????????????????????????????????????????????????? 4.2比较单元(compare)



图3 comp单元流程图(段内码单元)

????????????????????? 图4 comp单元流程图(段落码单元)
                          
                       
                          
                                5验证结果本文设计算法在quartusII 6.0开发平台上,选用cyclone家族芯片对设计进行了功能、时序验证[6],时序结果如下(图5):

图5 时序仿真结果图从图5中可以看出,在clk=100MHz时钟下,在第一个数据+1248(110011100000)输入后,经过14个时钟周期,输出相应的带极性的8位编码为11110011,再第14个时钟周期之后,随后每两个时钟周期完成一组数据的压缩编码。这样就实现了编码的流水线作业,提高了数据处理效率。经过对数据的核对验证,证明了数据运算的正确性,达到预计设计效果。对系统进行运行速率评估,确定瓶颈通道如下图6

图6 时序分析图从图5时序仿真图可以知道,每两个时钟完成一组编码,这是由于每个模块完成数据处理需要读写两个时钟。从图6可以看出,信号处理的最大时间消耗发生在comp7模块内,耗时12.900ns,这意味着整个模块的最大时间消耗为12.900ns。即有2T=12.900ns,计算出T=6.450ns,得出系统的最大时钟频率 =155.04MHz,最快编码速率为77.52Mbyte/s。6结束语在实际语音通讯中,由于语音采样速率相对比较低,一般编码速率通常为64Kbit/s,在A律压缩编码中,使用本文提出的并行数据处理算法,应用VHDL实现了编码的流水线操作,最快编码速率为77.52Mbyte/s。因此,在多路信号采集中使用该算法可以极大的提高系统的工作效率。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-20 22:11 , 耗时 0.086304 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表