塑料光纤通信中基带升余弦滤波器的FPGA实现
塑料光纤(POF)具有柔软性好、易于连接等优点,在短距离通信中得到广泛重视,继其在汽车内部网络的成功应用之后,室内通信网络将是塑料光纤通信的下一个巨大市场[1-3]。但塑料光纤由于芯径粗,模式色散大,造成信号波形经传输后失真大,高速率传输时码间干扰严重。奈奎斯特(Nyquist) 第一准则告诉我们:如果信号经传输后整个波形发生了变化,但只要其特定点的抽样值保持不变,那么用再次抽样的方法,仍然可以准确无误地恢复原始信号。根据这一准则,如果在发送前,采用奈奎斯特FIR滤波器将数字基带信号进行成形滤波,压缩旁瓣,就可以大大减小码间干扰的影响,从而降低误码率。因此,滤波器的设计在塑料光纤通信系统中占有重要的地位,它的性能将直接影响整个通信系统的性能指标。
目前FIR滤波器的实现方法主要有3种:单片通用数字滤波器集成电路、DSP器件和可编程逻辑器件。单片通用数字滤波器使用方便,但由于字长和阶数的规格较少,不能完全满足实际需要。使用DSP器件实现虽然简单,但由于程序顺序执行,执行速度较慢,在某些实时性要求高的场合中受到限制。可编程逻辑门阵列(FPGA)有着规整的内部逻辑阵列和丰富的连线资源,采用的是硬件并行算法,特别适合于实时通信要求高的场合[4,5]。塑料光纤数字基带传输系统的目标是实现100 Mb/s以上的传输速率,成型滤波器的工作频率较高,而FPGA的成本不断降低,所以用FPGA来设计塑料光纤通信成型滤波器具有明显的优势。
1 基带升余弦滚降数字滤波器设计
满足奈奎斯特第一准则的滤波器有无穷多种,最常用的是升余弦滚降滤波器。升余弦滚降滤波器的时域表达式为:
式中,0α1为滚降系数,Ts为码元宽度。可见升余弦滚降滤波器是一个无穷阶数的系数对称滤波器。为了能够在硬件电路上实现,必须截取其中一部分阶数。
由于实际设计中只能采用有限阶数有限精度滤波器,因而设计的滤波器频率响应与理想频率响应之间存在误差。为了减小误差,需要对滤波器进行优化。衡量误差的标准有两种:一种是最大误差最小化准则,就是使滤波器频率响应在一定的频率范围内与理论滤波器频率响应相比最大误差最小;另一种是最小均方误差准则,就是使滤波器的频率响应与理论滤波器频率响应相比误差的均方值最小。本文采用了最小均方误差优化的准则,对升余弦滤波器的系数进行优化。
Matlab的freqz函数能够方便地计算滤波器的频谱,可用于滤波器的优化。其过程是:选择一对对称的系数,增加或减少一个量化的最小单位(8位二进制量化最小单位是1/128);如果系数改变后频谱误差减少就采用改变后的系数,否则保持原来的系数;选择新的一对系数,重复上面的过程,一直调整到误差不能再减小为止。例如取滚降系数a=0.22,取样频率为4,FIR滤波器的有限长度N为23,可以得到其幅度和相位响应如图1(a)所示,相应的滤波系数如图1(b)所示。
2 升余弦滚降数字滤波器在FPGA上的实现
分布式算法DA(Distributed Arithmetic)是一种以实现乘累加为目的的运算方法。对于FIR滤波器的输出y(n)可以看作是滤波系数(即单位冲击响应)与输入信号x(n)的卷积和,其表达式为:
对于有符号的DA数值,最高有效位用来区别正数和负数,其x(n)可写成:
式中xb(n-i)表示x(n-i)的第b位,将式(3)代入式(2)中,可得FIR滤波器的分布式算法DA表达式:
式(4)中方括号的乘累加在DA中利用查找表LUT来实现,查找表的地址矢量xb=[xb(K-1)……xb(0)],即查找表的地址有K个输入信号的同位权位组成。如果滤波器的系数为B位,则一个DA查找表规模为2N×B bit。可以看到抽头系数N过多,则DA表的规模将十分庞大。这是因为LUT的规模随着地址空间的变化(也就是N的增加)而呈指数增加。
在塑料光纤数字基带传输系统中,为了减少FPGA逻辑资源的占有量和提高系统的运行速度,对升余弦滚降数据滤波器需要进一步优化处理。优化包括两个方面:一是在FPGA实现中利用特有的查找表进行优化,一是对表达式进行优化。
对查找表的优化,可以利用部分表计算,然后将结果相加。长度为LM(N=LM)的内积为:
这样就可以将和分配到L个独立的M阶并行DA查找表之中,表格的规模从一个2N×B bit降到L×2M×B bit,一般M控制在4个或8个最好。如果再加上流水线寄存器,由于大部分FPGA芯片的每个逻辑单元都有一个寄存器,所以并没有增加电路规模,却能大幅度提高电路的执行速度。DA算法的主要特点就是巧妙地利用了ROM查找表将固定系数的MAC运算转化为查表操作,其运算速度不随着系数和输入数据位数的增加而降低,而且相对直接实现乘法器而言在硬件规模上得到了极大的改善。
对表达式进行优化,考虑到升余弦滚降滤波器系数是奇对称的,h(i)=h(N-1-i),合并对称的部分可以减少大约一半的乘法运算,即
基于优化的分布式算法和利用FIR滤波器的线性相位特性,能够极大地提高电路的执行速度[7]。升余弦滚降滤波器的FPGA实现电路原理图如图2所示。图2中的加法树采用树形结构减少多个数累加次数的方法,即Wallace树结构加法器。Wallace树充分利用全加器3-2压缩的特性,随时将可利用的所有输入和中间结果及时并行计算,因而可以将N个部分积的累加次数从N-1次减少到logN次,大大节省了计算时延。图3为Wallace树结构与CSA结构的对照,其结构的关键特性在于利用不规则的树形结构对所有准备好输入数据的运算及时并行处理。Wallace树结构是一种高速加法器,其显著优点是速度快,尤其对处理多个数相加的情况具有相当的优越性。
- FIR数字滤波器分布式算法的原理及FPGA实现(08-07)
- 基于FPGA的改进型FIR滤波器的实现(06-05)
- 一种用于数字下变频的高阶分布式FIR滤波器及FPGA实现(04-29)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- 妤傛ḿ楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閸忋劍鏌熸担宥咁劅娑旂姴鐨犳0鎴滅瑩娑撴氨鐓$拠鍡礉閹绘劕宕岄惍鏂垮絺瀹搞儰缍旈懗钘夊閿涘苯濮幃銊ユ彥闁喐鍨氶梹澶歌礋娴兼ḿ顫呴惃鍕殸妫版垵浼愮粙瀣瑎...
- 娑擃厾楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
缁箖鈧拷30婢舵岸妫亸鍕暥閸╃顔勭拠鍓р柤閿涘奔绗撶€硅埖宸跨拠鎾呯礉閸斺晛顒熼崨妯烘彥闁喕鎻崚棰佺娑擃亜鎮庨弽鐓庣殸妫版垵浼愮粙瀣瑎閻ㄥ嫯顩﹀Ч锟�...
- Agilent ADS 閺佹瑥顒熼崺纭咁唲鐠囧墽鈻兼總妤勵棅
娑撴挸顔嶉幒鍫n嚦閿涘苯鍙忛棃銏n唹鐟欘枃DS閸氬嫮顫掗崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱遍崝鈺傚亶閻€劍娓堕惌顓犳畱閺冨爼妫跨€涳缚绱癆DS...
- HFSS鐎涳缚绡勯崺纭咁唲鐠囧墽鈻兼總妤勵棅
鐠у嫭绻佹稉鎾愁啀閹哄牐顕抽敍灞藉弿闂堛垼顔夐幒鍦欶SS閻ㄥ嫬濮涢懗钘夋嫲鎼存梻鏁ら敍灞藉簻閸斺晜鍋嶉崗銊╂桨缁崵绮洪崷鏉款劅娑旂姵甯夐幓顡嶧SS...
- CST瀵邦喗灏濆銉ょ稊鐎广倕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閺夊孩妲戝ú瀣╁瘜鐠佽绱濋崗銊╂桨鐠佸弶宸緾ST閸氬嫰銆嶉崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱濋崝鈺傚亶韫囶偊鈧喕鍤滅€涳附甯夐幓顡塖T鐠佹崘顓告惔鏃傛暏...
- 鐏忓嫰顣堕崺铏诡攨閸╃顔勭拠鍓р柤
娑撳洣绗€妤傛ɑ銈奸獮鍐叉勾鐠у嚖绱濇潻娆庣昂鐠囧墽鈻兼稉杞扮稑閸︺劌鐨犳0鎴炲Η閺堫垶顣崺鐔枫亣鐏炴洘瀚甸懘姘剧礉閹垫挷绗呴崸姘杽閻ㄥ嫪绗撴稉姘唨绾偓...
- 瀵邦喗灏濈亸鍕暥濞村鍣洪幙宥勭稊閸╃顔勭拠鍓р柤閸氬牓娉�
鐠愵厺鎷遍崥鍫ユ肠閺囨潙鐤勯幆鐙呯礉缂冩垵鍨庨妴渚€顣剁拫鍙樺崕閵嗕胶銇氬▔銏犳珤閵嗕椒淇婇崣閿嬬爱閿涘本鍨滅憰浣圭壉閺嶉绨块柅锟�...