基于CORDIC算法的AM解调技术研究

2012-07-25 05:35伟,张斌,吴
传感器与微系统 2012年2期
关键词:混频器余弦载波

王 伟,张 斌,吴 松

(空军工程大学电讯工程学院,陕西西安 710077)

0 引言

幅度调制(AM)方式是最常见的一类信号调制方式,即将有用信息调制在载波的振幅之上的调制方式。其解调方法有2种:相干解调与非相干解调(包络解调),其中,相干解调需要提取与接收AM信号载波同步的本地载波[1],在实际应用中,信号可能由于载波振荡器不稳定和多普勒效应而发生频率偏移,如采用相干解调则需要使用平方环或Costas环法提取载波,实现起来结构相对复杂,会消耗过多的资源。本文提出了一种利用CORDIC算法在FPGA上实现数字正交AM解调的方法,通过对该方法的理论分析、硬件实现和仿真结果分析表明:该方法免去了复杂的载波同步过程,减少了计算量,具有良好的抗干扰性能,可有效用于实现数字中频AM解调。

1 数字正交AM解调原理

数字正交AM解调原理如图1所示,中频信号经A/D采样后为

其中,m(n)为调制信号,fs为信号的采样频率,fc为采样后的载波频率,θc为采样后信号的随机相位。

图1 数字正交AM解调原理框图Fig 1 Principle block diagram of digital quadrature AM demodulation

x(n)分别与数控振荡器(NCO)产生的两路正余弦信号cos(ωLnTs)和sin(ωLnTs)相乘,经过低通滤波器,滤除高频分量后,得到同相分量I2(n)和Q2(n)

其中,Δω=ωc-ωL,Δθ=θc,平方后得

相加后开方

y(n)即为AM信号的包络。从上述推导可以看出:这种方法具有较强的抗载频失配能力,即允许本地载波与信号载波之间有一定的频差和相差[2]。

2 坐标旋转数字式计算机算法

坐标旋转数字式计算机(coordinate rotation digital computer,CORDC),可以通过简单的加法移位操作迭代计算sinθ,cosθ,开平方等函数,避免了使用泰勒级数展开式计算所需的复杂乘法运算,特别适合于FPGA实现。推广的CORDIC算法适用于圆周坐标、线性坐标和双曲线坐标,每种坐标系又分为向量模式和旋转模式,统一迭代方程如下

其中

式中m为坐标系,δi为旋转方向,θi为旋转的角度,根据m和δi取值的不同,CORDIC算法可经过不同的设置实现不同的数学运算。

2.1 基于CORDIC算法的数控振荡器与混频器设计

NCO的作用是产生正交的正弦和余弦样本,传统做法是采用查表法(LUT),即事先根据各个正/余弦波相位计算好相位的正/余弦值,并按相位角度作为地址在存储器中对其进行寻址,构成一个幅度/相位转换电路(即波形存储器),通过该转换电路进行查表获得正/余弦信号样本。为了提高NCO的频率分辨率,往往需要扩大波形存储器的容量,占用大量资源。为了避免这一问题,考虑利用算法实时产生正/余弦样本,CORDIC算法正好满足这一需求[3]。

本文应用CORDIC算法圆周旋转模式产生正余弦信号,令m=1,则θi=arctan2-i,旋转方向由zi决定,若zi<0,则δi=+1,若zi>0,则δi= -1,经过n次迭代最终使zi趋于0。迭代的最终结果为

给定相位值,利用CORDIC算法就可以实时产生相对应的正/余弦值,在本设计中,NCO产生的正/余弦样本要与接收信号x(n)相乘,通过观察式(9),本文给定初值x0=x(n),y0=0,z0=φ,则式(9)可化为

从式(11)可以看出:利用CORDIC算法同时实现了NCO和混频器,既节省了资源,又提高了效率[4]。图2给出了NCO和混频器的实现框图。在系统时钟的控制下,相位累加器对频率控制字进行累加,这样,每来一个时钟,得到一个相位φ,相位φ和x(n)作为CORDIC迭代的初始值,迭代完成后就得到I1(n)和Q1(n)。

图2 基于CORDIC算法的NCO和混频器实现框图Fig 2 Block diagram of NCO and frequency mixer based on CORDIC algorithm

2.2 基于CORDIC算法的开平方设计

开平方作为整个系统的核心部分,其精度直接影响着AM解调的性能。传统的开平方计算方法主要有实函数近似法、牛顿迭代法、SRT-冗余算法、非冗余算法等,这些算法从根本上讲是使用了查表法或多项式展开近似法,它们的速度和精度难以满足实用要求,硬件实现也非常困难,本文用CORDIC算法实现开方,兼顾了速度、精度、简单性和高效实现性。

本文应用CORDIC算法双曲线向量模式,令m=-1,则θi=arctanh2-i,旋转方向由yi决定,若yi<0,则δi=+1,若yi>0,则δi=-1,经过n次迭代最终使yi趋于0。迭代的最终结果为

3 FPGA实现

CORDIC算法的实现方式有2种:基于状态机结构和基于流水线结构[5]。状态机结构主要采用折叠/迭代方式,如果计算时间不严格的话,可以采用此结构,在每个周期内都将精确地计算一次式(7)所示的迭代,其缺点是计算速度慢。流水线结构虽然占用资源相对较多,但对于现有FPGA芯片资源来说并不是问题,且运算速度快,可以实现高速实时处理。因此,本文采用流水线结构进行FPGA实现,单步迭代结构如图3所示,其中,≫对应移位操作,+/-对应加减操作,符号对应对yi或zi的符号位进行判断。可以看出:在迭代过程中只有移位和加减运算,特别适合于FPGA实现[6]。本文选用芯片为ALTER公司 Cyclone系列中的EP2C5AF256A7,在QuartusII 8.0平台上进行设计仿真。

图3 CORDIC流水线单步迭代结构Fig 3 Single step interation structure of CORDIC pipeline

由于 CORDIC算法旋转的角度范围为 -99.9°~99.9°,不能达到 NCO 角度范围 -180°~180°的要求。因此,需要在初次迭代前增加一个特定的“起始”骤来扩大角度覆盖范围,根据三角函数的对称性,如果输入相位处于第一,四象限,则第一步不需要旋转,如果处于第二,三象限,则需旋转+180°或-180°。NCO和混频器采用8级迭代加1级初始角度旋转运算实现。

开平方采用12级流水线结构,输入数据为16位无符号数,中间数据为20位无符号数,输出数据为16位无符号数(8位表示小数),仿真结果如表1所示,可以看出:开方的误差在0.1以内,完全满足实际需求,如果要求更高精度,可以增加小数位数和迭代次数。

表1 CORDIC算法计算开平方仿真结果分析Tab 1 Analysis of square root simulation results based on CORDIC algorithm

某中频接收机接收处理调制信号为5 kHz和8 kHz的复合信号、采样率为8 MHz、载频为1 MHz±50 kHz、信噪比为10 dB的AM信号,时序仿真结束后,将生成的波形文件保存为.tbl格式文件[7],以便将仿真结果导入Matlab中进行验证,图4给出了AM解调仿真结果。对比AM调制信号与解调信号,可以看出:两者包络一致,较好地完成了AM调制信息的解调。

图4 AM解调仿真结果Fig 4 Simulation result of AM demodulation

4 结束语

本文提出了一种基于CORDIC算法的数字正交包络AM解调方法,利用CORDIC算法将NCO和混频器合在一起完成,占用资源少,效率高;计算开平方精度高、速度快。采用流水线结构,只有加法和移位单元,易于FPGA实现,具有较高的工程应用价值。

[1]达新宇,陈树新.通信原理教程[M].北京:北京邮电大学出版社,2007.

[2]田 丰,程 韧.正交解调算法在OFDM信号解调中的应用[J].西安电子科技大学学报:自然科学版,2004,31(4):648-651.

[3]张科峰,彭 帅,蔡 梦.基于CORDIC算法的NCO[J].现代雷达,2008,30(6):91 -94.

[4]刘 奕,曾文海.CORDIC算法在数字下变频中的应用[J].电视技术,2006(4):14-16.

[5]骆艳卜,张会生,张 斌.一种CORDIC算法的FPGA实现[J].计算机仿真,2009,26(9):305 -307.

[6]杨 宇,毛志刚,来逢昌.一种改进的流水线CORDIC算法结构[J].微处理机,2006(4):10-13.

[7]王旭东,潘广桢.Matlab及其在FPGA中的应用[M].北京:国防工业出版社,2006.

猜你喜欢
混频器余弦载波
应用于信道产品中混频器的简单分析
随机解调中RC开关混频器的频域分析与硬件设计
两个含余弦函数的三角母不等式及其推论
实施正、余弦函数代换破解一类代数问题
漏/阻双模高性能D波段无源混频器
分数阶余弦变换的卷积定理
应急广播系统中副载波的构建与应用
图像压缩感知在分数阶Fourier域、分数阶余弦域的性能比较
宽带3 GHz至8 GHz混频器凭借25 dBmOIP3和2 dB转换损耗改善上变频性能
低压载波通讯测试仪的开发与应用