网站首页 | 技术文章 | 解决方案 | 电子书籍 | 下载中心 | 电子商城 | 技术论坛 | 电子博客 | 商务信息  
联系站长
加入收藏
会员登陆
交易首页 最新信息 - 推荐信息 - 热门信息 - 免费发布 - 行业新闻 - 行业资讯 - 行业知识 - 积分说明 - 信息分类 - 企业展示 - 帮助
 您的位置: 中国电子设计 >> 技术文章 >> 编程逻辑 >> 正文 商务信息栏目开通公告  [2008-05-19 11:47:00]
   □  基于FPGA的奎斯特升余弦数字滤波器设计   
基于FPGA的奎斯特升余弦数字滤波器设计
[作者:胥凌燕 申敏    转贴自:微计算机信息    点击数:    更新时间:2008-9-5
【字体:

Implementation of square-root raised cosine roll filter on FPGA in WCDMA
Abstract:According to the design principle of the Nyquist filter of FIR, this article design a FIR filter which uses root raised cosine function of 33 taps. We introduces optimization and implementation with FPGA and carry on verification of imitating with the ModelSim and tool of Matlabs.
key words: root raised cosine roll-off digital filter  Nyquist  FPGA
摘要:本文根据奈奎斯特(Nyquist)FIR滤波器的设计原理,设计了33阶根升余弦函数FIR滤波器,并提出了用FPGA实现其硬件电路的方案,最后用Modelsim和matlab工具进行了仿真验证。
关键词 平方根升余弦滚降滤波器  奈奎斯特 FPGA
1 引 言
随着信息需求量的增大,网络都逐渐朝着综合化、宽带化方向发展。数据速率的提高,对于数字信号处理的速度和质量的要求也越来越高。
在数字基带传输系统中,为使基带数据传输获得足够小的误码率,必须使码间干扰和噪声的综合影响最小。奈奎斯特第一准则指出了要消除码间干扰,系统从发送滤波器经信道到接收滤波器总的传输特性所应满足的条件。根据这一传输特性,实际系统一般采用具有升余弦滚降特性的滤波器作为发送滤波器。在第三代移动通信中,信号的码片速率高,频谱旁瓣大,在传输时容易产生邻道干扰,影响系统容量。如果在发送前,采用奈奎斯特(Nyquist)FIR滤波器将数字基带信号进行成形滤波,压缩旁瓣,可以大大减小干扰的影响,从而降低误码率。因此,滤波器的设计在通信系统中占有重要的地位,它的性能将直接影响整个通信系统的性能指标。本文在对滤波器进行研究的基础上,利用窗函数设计了一种奈奎斯特升余弦数字滤波器,并用硬件语言编程进行了FPGA实现。
2工作原理及结构
在数字信号传输过程中,我们只要求特定时刻的波形幅值如何无失真的传送,而不必要整个波形无失真。奈奎斯特第一准则,又称第一无失真条件告诉我们:如果信号经传输后整个波形发生了变化,但只要其特定点的抽样值保持不变,那么用再次抽样的方法,仍然可以准确无误得恢复原始信码。我们可以求出满足奈奎斯特准则的成形滤波器,在实际中得到广泛应用的是幅度频率响应具有奇对称升余弦形状过渡带的一类滤波器,通常称之为升余弦滤波器。                                              
为了减小或消除码间干扰的影响,滤波器的传输特性的过渡带应设计成具有升余弦滚降特性即设计成奈奎斯特FIR成形滤波器。具有升余弦滚降特性的滤波器传输函数为:

 取滚降系数α=0.22,则取样频率根据上式可知应大于2.44倍输入码片速率,我们取为4,取FIR滤波器的有限长度N为33,调用Matlab中的库函数rcosfir可以得到其频域和时域分析图:
 
根据Matlab的分析结果,阻带最小衰减为33.983085dB,满足设计要求。由于存在量化误差,需要把量化前后的频率响应对比,看量化后的频谱特性是否满足设计指标,从而决定量化的比特数,同时也可能要求对滤波器的阶数调整。在满足频谱要求的前提下尽可能的减小量化比特数和滤波器的阶数,以方便设计的实现。成形滤波器如果选用直接型需要33次乘法和30次加法,利用了平方根升余弦滚降滤波器的系数对称性,选择分布式算法,可以减少大约一半的乘法运算,则使33次乘法减少为16次,总的运算量大大减小。
3 FPGA实现及结构说明
3.1 FPGA总体结构
要设计的滤波器为33阶FIR根升余旋滤波器,假设输入取样数据速率为3.84M,滤波器的主时钟只要能够达到76.8M,便能够使每个数据在滤波器里面的计算时间为20个时钟周期,这样做主要是考虑到要使乘法器的使用个数减少(本设计中使用了2个乘法器),提高乘法器的使用效率。由于在滤波器的实现过程中,有大量的乘、加运算,所以为了达到较高的时钟频率,必须在运算的过程中使用流水线方法。
利用分布式算法,所设计的滤波器划分成了三个主要的模块,如下图所示。其中,fir_counter模块主要完成一个计数的功能,输出的计数结果控制另外两个模块的运行;fir_ctrl完成输入数据移位以及送入乘法器的数据的选择;fir_acc则完成乘累加功能并输出最后的结果。


计数模块:计数器输出总线宽度为5bits,数据大小为0~31,在没有din_valid(输入有效信号)信号的情况下,计数器输出会从0到31重复输出


从下面的仿真图中也可以看出,计数器在din_valid信号控制下的计数过程。     数据控制模块:该模块完成的主要功能首先是将输入的数据保存在寄存器里面,进行移位,然后将所保存的33个最近输入数据对折相加,放到另外的寄存器里面。接着根据计数器结果,将相应的对折数据和滤波器抽头系数输出作为后面乘累加运算的输入数据。下面的硬件框图可以现实该部分的主要算法。
 
在代码的编写上,主要由一个状态机实现,分为Idle和Work两个状态,状态为Idle时,处于空闲状态,乘法器输出为0,当din_valid信号为“1”时,触发状态机进行跳转,Idle->Work ,同时将滤波器输入数据存入寄存器并进行移位。进入Work状态后,根据计数信号的值进行各种选择运算。
从下面的仿真图中可以看出状态机随输入有效信号信号和计数信号变化而发生的跳转。其中,状态(state)为高电平时表示状态Work,为低电平则表示状态Idle。
 
乘累加模块:该模块主要功能是完成mult_x1与mult_y1以及mult_x2与mult_y2的乘操作以后把两个乘法器的输出送入累加器,完成循环累加工作。控制该部分的主要关键是一个计数器和一个输出有效信号,每20个时钟输出一次数据。具体计数过程和输出有效控制如下:
 
3.2 仿真验证
所使用的仿真工具为ModelSim,上面的波形截图便是来自ModelSim的wave窗口。我们用同样的输入数据,分别用ModelSim和Matlab进行仿真,将仿真结果进行比较,得到几乎相同的结果。(由于输入的滤波数据为随机产生的数据,所以得到的结果没有什么规律性可言。)
 

4  结 论
利用窗函数设计FIR滤波器的原则是:一是选择主瓣较宽的窗函数,从而加大阻带的衰减,保证通带的平稳,二是在保证阻带最小衰减指标的情况下,适当增加列长N值,使过度带窄一些。但N值的变化同时影响过度带和主瓣的变宽或变窄,另外选择主瓣较宽的窗函数时(同等N值下),其过度带就宽一些了,可见这两个设计原则是无法同时满足的,这一结论可从上面的设计示例中得到验证。因此设计FIR滤波器时,应根据技术指标,通过多次试验,找到合适的窗函数和N值 。本文作者的创新点是在原有的滤波器优化结构的理论基础之上对FIR滤波器的硬件模块进行的了设计,选取Verilog HDL语言进行硬件模块划分,分程序进行实现,同时选取尽量少的乘法器,尽可能的优化结构是关键,以达到节约成本简化工序的效果。
参考文献
[1].王旒银,数字电路逻辑设计,高等教育出版社.
[2]. 赵文兵 杨建宁. FIR滤波器的FPGA实现及其仿真研究,微计算机信息,2005 / /7
[3].He S,Torkelson M.FPGA implementation of FIR filters using pipelined bit-serial canonical signed digit multipliers[J],IEEE,1994 custom integrated circuits conference,81-84.
[4].Y. C. Lim and B. R. Parker, FIR filter design over a discrete powers-of-two coefficients space[J], IEEE Transaction on Acoustic Speech,and signal processing, Vol. ASSP-31, No. 3,June 1983, pp. 583~590.

作者简介
胥凌燕:重庆邮电大学在读研究生,现从事ASIC硬核研究工作。申敏:重庆邮电大学研究生导师兼教授,现工作于信科股份有限公司,常年从事3G工作的研究。

联系方式:重庆邮电大学信科股份有限公司3G研究院  邮编400065
e-mail: lingyan815@gmail.com

  • 上一篇文章:采用直接时钟捕获技术实现DDR SDRAM控制器
  • 下一篇文章:采用FPGA编程实现数字基带信号远程传输
  • Google
     
    Web www.cediy.com
    发表评论 □告诉好友 □打印此文 □关闭窗口
     最新热点文章
     一种新型高性能电流型开关电源PWM比...
     一种超宽带低噪声放大器的设计方法...
     基于单片机和串行总线技术的热量表...
     数字温度传感器详解
     用AD8302实现RF/IF幅度和相位测量系...
     一种简单的10MHz频率源兼分配放大器...
     
     最新推荐文章
     基于TMS320C6713与PC机的PCI总线高...
     基于TMS320VC5409和Cygnal单片机构...
     基于ARM控制器S3C44B0x的给煤机控制...
     基于USB 2.0的高速数据采集卡在虚拟...
     大功率谐振过渡软开关技术变频器研...
     大功率谐振过渡软开关技术变频器研...
     
     相 关 文 章
      ◇  网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
     设为首页  加入收藏  关于本站  版权申明   联系站长   宣传赚点   友情链接
    如果我在线,不用加为好友,立刻与我交谈。 业务咨询QQ:342488946
    Copyright© 2004-2010 CEDIY.COM .All Rights Reserved
    粤ICP备05119258号