软件无线电(Software Radio)是当今通信领域最热门也最为重要的一个着眼点,也是未来无线通信中最重要的新兴技术之一。西方各国很早就开始重视对软件无线电的研究,并从多方面进行分析探讨。但由于工艺水平和技术条件的限制,现在的软件无线电结构与理想结构还相差很远。特别是软件无线电的中频处理部分,运算量大,实时性强,需要很高的运算速度,成为制约软件无线电发展的一个关键问题。本文中,使用Catapult C实现了可工作于250MHz的32阶多相FIR滤波结构,该结构可用于1GHz中频信号的1/4下采样变换。
1.引言
进入21世纪后,软件无线电在通信、雷达、军事、航空航天等众多领域得到了广泛的应用。随着A/D采样芯片的速度越来越快,人们可以在更高的频率上将模拟信号转化为数字信号,同时数字信号处理技术为各种数字信号处理提供了丰富的算法,FPGA(Field Programmable Gate Array)和DSP(Digital Signal Processing)芯片的运行速度也越来越快,许多曾经只能用模拟器件才能实现的高频电子线路目前正逐渐被数字电路所替代。数字电路的发展正朝着软件化的方向发展,芯片+算法已成为一种趋势。在这种趋势下,美国、日本及欧洲各国等发达国家都在致力于新型全数字数据终端的研究,其共性就是:在高速A/D采样器采样下,拟用数字滤波器代替模拟滤波器,高频信号经数字滤波后最终得到基带信号[1]。在软件无线电的中频处理部分,运算量大,实时性强,需要很高的运算速度,这使高速数字滤波器成为软件无线电系统开发中的关键瓶颈。数字滤波器是软件无线电下变频变换的重要部分,其包括了无限冲击响应(IIR)数字滤波器和有限冲击响应(FIR)数字滤波器两种使用较多的滤波器结构。与IIR数字滤波器相比较,FIR数字滤波器具有稳定性高,速度快和线性相位等特点,在软件无线电领域里得到了更广泛的应用。
Catapult C Synthesis是唯一的算法综合工具,能从C++自动地产生优化的RTL硬件描述,比传统的RTL方法速度快20倍。Catapult C Synthesis有效地统一了系统设计者和硬件设计者这两个无关的域,对于无线通信、卫星和视频图像处理等领域,这个第二代高级综合工具加速了复杂DSP功能的创建。通过利用系统设计者开发的无定时C++源代码,硬件设计者现在能从C++模型自动创建一个准确的可重复的硬件描述,速度比传统的人工方法快得多。整个流程不容易出错,能针对RTL综合工具和厂商工艺产生精确优化的RTL描述。而且,通过多个宏结构和接口方案的深层次探测,相对于传统的人工RTL方法,Catapult C Synthesis允许设计者产生同样甚至更高质量的硬件。
2.多相滤波器
FIR滤波器实现的基本结构有:直接型、级联型、频率抽样型、快速卷积型结构几种[2]。在软件无线电系统中,无论是上采样还是下采样,其抗混叠滤波器均在高采样率下进行,这无疑大大提高了对处理速度的要求,对实时处理极其不利。多项滤波器结构可在下采样之后进行滤波,即滤波是在降速后进行的,这就大大降低了对处理速度的要求[1]。设多相滤波器的抽取倍数为D,其原型滤波器的冲击相应为h(n),则其对应的Z变换H(z)定义为:

设 N/D=M,可将H(Z) 重新排列后分为D组:

令

则可得到多相滤波器的Z变换表达式为:
式中
即为滤波器的多相分量。
3.多相FIR的FPGA实现
本文中的多相FIR滤波器,输入原始数据为1GHz采样的8bit位宽中频信号,设计要求实时完成32阶的低通滤波,抽取倍数为4倍,滤波器的硬件平台是基于XILINX公司生产的Virtex-4 LX和Virtex-5 SX系列的FPGA芯片。在这两个系列的FPGA中,XILINX公司都提供了可完成多相FIR滤波的IP CORE。但该IP CORE的设计要求采样数据以串行方式输入,且采样数据输入的最高时钟为500MHz,这无法满足设计的要求。同时,由于IP CORE中需要大量的乘法器,而Virtex-4 LX系列的FPGA中可用的乘法器资源较少,也不利于设计的实现。
在实时性要求很高的系统中,为完成这样的高速多相FIR滤波器的设计实现,数据的输入方式往往采用并行输入的结构,这样可大大降低系统处理的时钟频率,也提高了系统设计的灵活性和可靠性。根据式(2)推导的结果,将N=32,D=4,M=8代入式(3)和式(4)中得到多相滤波器各多相分量的表达式和多相FIR滤波器的结构,如图1所示。

图1 多相FIR滤波器的实现结构
将原型滤波器分解为4个各为8阶的FIR子滤波器,每个FIR子滤波器的工作频率为250MHz,输入数据位宽为8bit,输出数据位宽为24bit。每个子FIR滤波器的位宽和阶数并不高,但工作频率较高。为达到设计的要求,采用了查表、累加的方式实现,如图2所示。

图2 FIR子滤波器的实现结构图
分页
FPGA程序采用了Mentor Graphics公司的Catapult C开发平台,使用Catapult C实现FIR的具体流程如下:
1、根据32阶FIR系数,生成所需的查找表ROM0~ROM31。
2、根据公式(4)编写多相FIR滤波器的C++代码和测试向量。
3、使用Catapult C导入设计,并在Cataput C环境中对设计施加约束,这些约束包括接口控制,数据结构映射,循环展开约束和流水约束。图3a为多相滤波器的循环与流水约束设置,图3b为多相滤波器的工艺及接口约束设置。

图3a 多相滤波器的循环与流水约束设置

图3b. 多相滤波器的工艺与接口约束设置
4、根据施加的约束,通过Catapult C生成VHDL或Verilog格式的RTL代码。
5、在Catapult C中,调用Modelsim或Questa对生成的RTL代码进行功能仿真。功能仿真结果如图4所示。输入信号分别为DATA_IN1~ DATA_IN4,模拟四路分量输入,DATA_OUT1为滤波器输出。

图4 多相FIR滤波器仿真结果图
4.实测结果
为验证设计的正确性,在基于XC5VSX50T的硬件平台对该多相FIR滤波器进行了实测。该平台的中频采样频率为1GHz,多相FIR滤波器的通带截止频率为95MHz,阻带开始频率150MHz,带内起伏为1dB,带外抑制为50dB的低通滤波器。
试验分别对LFM信号和正弦点频信号做了实测,图5a所示的输入原始信号,其频谱分量包括中心频率50MHz、带宽25MHz的线型调频信号和450MHz、320MHz和280MHz的正弦信号。图5b所示为多相滤波器通过FPGA滤波后的输出信号的时域和频域图。图5c所示的输入原始信号,其频谱分量包括450MHz、320MHz、280MHz和25MHz的正弦信号。图5d所示为多相滤波器通过FPGA滤波后的输出信号的时域和频域图。

图5a LFM信号滤波前时域和频域 图5b LFM信号滤波后时域和频域

图5c 正弦信号滤波前时域和频域 图5d 正弦信号滤波后时域和频域
5.结论
通过仿真和实测的结果可以表明,基于Mentor Graphics公司的Catapult C开发平台所开发的多相FIR滤波器,完全满足设计要求。并且利用Catapult C开发平台大大缩短了开发周期,降低了设计难度。与原IP CORE相比,其消耗的资源更少,应用的范围更广,且具有更高的灵活性和可靠性。
参考文献
[1] 杨小牛,楼才义,徐建良.软件无线电原理与应用.北京 电子工业出版社, 2001,68:74
[2] 谷萩隆嗣.数字滤波器与信号处理[M].北京:科学出版社,2003
本文为e-works原创投稿文章,未经e-works书面许可,任何人不得复制、转载、摘编等任何方式进行使用。如已是e-works授权合作伙伴,应在授权范围内使用。e-works内容合作伙伴申请热线:editor@e-works.net.cn tel:027-87592219/20/21。