36 传感器与微系统(Transducer and Microsystem Technologies) 2012年第3l卷第2期 基于CORDIC算法的AM解调技术研究 王伟,张斌,吴松 (空军工程大学电讯工程学院,陕西西安710077) 摘要:提出了一种基于CORDIC算法的数字正交AM解调设计技术,讨论了AM解调的原理,重点分析 了利用CORDIC算法综合实现数控振荡器与混频器、计算开平方的过程,介绍了关键模块的设计方案,仿 真结果表明:该方法高精度地完成了AM解调,具有较高的工程应用价值。 关键词:AM解调;CORDIC算法;开平方 中图分类号:TN914 文献标识码:A 文章编号:1000-9787(2012)02-0036-03 Study of AM demodulation technology based on CORDIC algorithm WANG Wei,ZHANG Bin,WU Song (School of Telecommunication Engineering,Air Force Engineering University,Xi’an 710077,China) Abstract:A technique of di al quadrature AM demodulation design based on CORDIC algorithm is presented. The principle of AM demodulation is discussed,and the process of combining NCO and frequency mixer together and calculating square root using CORDIC algorithm are analyzed detailedly.The desing schemes of key modules are introduced.The simulation resuhs indicate that this method completes AM demodulation with high precision nad has great application value in project. Key words:AM demodulation;CORDIC algorithm;square root 0引 言 幅度调制(AM)方式是最常见的一类信号调制方式, 即将有用信息调制在载波的振幅之上的调制方式。其解调 方法有2种:相干解调与非相干解调(包络解调),其中,相 干解调需要提取与接收AM信号载波同步的本地载波 J, 在实际应用中,信号可能由于载波振荡器不稳定和多普勒 图1数字正交AM解调原理框图 效应而发生频率偏移,如采用相干解调则需要使用平方环 Fig 1 Principle block diagram of digital quadrature 或Costas环法提取载波,实现起来结构相对复杂,会消耗过 AM demodulation 多的资源。本文提出了一种利用CORDIC算法在FPGA上 样后的载波频率, 为采样后信号的随机相位。 实现数字正交AM解调的方法,通过对该方法的理论分析、 (n)分别与数控振荡器(NCO)产生的两路正余弦信 硬件实现和仿真结果分析表明:该方法免去了复杂的载波 号COS(O) n )和sin(to n )相乘,经过低通滤波器,滤除高 同步过程,减少了计算量,具有良好的抗干扰性能,可有效 频分量后,得到同相分量 (n)和Q (n) 用于实现数字中频AM解调。 ,2(n)=÷(1+ ・m(n))cos(AamT ̄+△ ), (2) 1数字正交AM解调原理 数字正交AM解调原理如图1所示,中频信号经A/D Q2(n)=÷(1+K・m(n))sin(AtonT ̄+△ ). (3) 采样后为 其中,△  ̄--'O) 一60L,A0= ,平方后得 ( )=(1+K.m( ))・cos(∞ n + ). (1) (n)= 1(1+K’m(n)2COS2(Aton +△ ),(4) 其中,m(n)为调制信号 为信号的采样频率 为采 收稿日期:2011-07-29 第2期 王伟,等:基于CORDIC算法的AM解调技术研究 37 (n)= 1(1+ ・ ( )2sin (△ +△ ). (5) 相加后开方 Y(n)=÷(1+ ・m(n)). (6) Y(n)即为AM信号的包络。从上述推导可以看出:这 种方法具有较强的抗载频失配能力,即允许本地载波与信 号载波之间有一定的频差和相差 。 2坐标旋转数字式计算机算法 坐标旋转数字式计算机(coordinate rotation digital con— puter,CORDC),可以通过简单的加法移位操作迭代计算 sin0,cos0,开平方等函数,避免了使用泰勒级数展开式计算 所需的复杂乘法运算,特别适合于FPGA实现。推广的 CORDIC算法适用于圆周坐标、线性坐标和双曲线坐标,每 种坐标系又分为向量模式和旋转模式,统一迭代方程如下 , ‘+1= 一硒‘Y 2 ?I H= +6 2一. (7) ltz +1=z -6 0 其中 ,arctan 2~,m=1 1 0 :I 2 ,m=O , (8) 【盯。t粕h 2--.m:--1 式中m为坐标系,6 为旋转方向,0 为旋转的角度,根据 m和占 取值的不同,CORDIC算法可经过不同的设置实现 不同的数学运算。 2.1 基于CORDIC算法的数控振荡器与混频器设计 NCO的作用是产生正交的正弦和余弦样本,传统做法 是采用查表法(LUT),即事先根据各个正/余弦波相位计算 好相位的正/余弦值,并按相位角度作为地址在存储器中对 其进行寻址,构成一个幅度/相位转换电路(即波形存储 器),通过该转换电路进行查表获得正/余弦信号样本。为 了提高NCO的频率分辨率,往往需要扩大波形存储器的容 量,占用大量资源。为了避免这一问题,考虑利用算法实时 产生正/余弦样本,CORDIC算法正好满足这一需求。。。 本文应用CORDIC算法圆周旋转模式产生正余弦信 号,令m=l,则0 =arctan2~,旋转方向由 决定,若 <0, 则6 =+1,若 >0,则6 =--1,经过n次迭代最终使z 趋 于0。迭代的最终结果为 f ( os 一yosin ) l =【 0击( s sin 其中, 兀c。s 0 =兀l /j_ o.607 253, 给定初值, =K ,Y。=0, 。= ,则式(9)可化为 , n 。。s 7 =sin . (1o) tz =O 给定相位值,利用CORDIC算法就可以实时产生相对 应的]E/余弦值,在本设计中,NCO产生的正/余弦样本要与 接收信号 (n)相乘,通过观察式(9),本文给定初值 。= ( ), =0,Z0= ,则式(9)可化为 = c。s ㈤sin ‘ lz =0 从式(11)可以看出:利用CORDIC算法同时实现了 NCO和混频器,既节省了资源,又提高了效率…。图2给出 了NCO和混频器的实现框图。在系统时钟的控制下,相位 累加器对频率控制字进行累加,这样,每来一个时钟,得到 一个相位 ,相位 和 (n)作为CORDIC迭代的初始值,迭 代完成后就得到, (tt)和Q (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, 则0 =arctanh2~,旋转方向由Y 决定,若Y <O,则 =+1, 若 >O,则占 =一1,经过n次迭代最终使Y 趋于0。迭代 的最终结果为 f = 一y2 {Yn=0 . (12) l tz =Z1+arctanh(Yl/x1) n一1 n一1 其中, n c。sh 0 =兀l _二= 1.207496, 38 传感器与微系统 第3l卷 给定初值 1 +l,yl=p一1, l=0,则有: =2 。即 当迭代完成时, /2 的值即为初始输Ap的开方值。 3 FPGA实现 CORDIC算法的实现方式有2种:基于状态机结构和基 于流水线结构 。状态机结构主要采用折叠/迭代方式,如 果计算时间不严格的话,可以采用此结构,在每个周期内都 将精确地计算一次式(7)所示的迭代,其缺点是计算速度 慢。流水线结构虽然占用资源相对较多,但对于现有FPGA 芯片资源来说并不是问题,且运算速度快,可以实现高速实 时处理。因此,本文采用流水线结构进行FPGA实现,单步 迭代结构如图3所示,其中,》对应移位操作,+/一对应加 减操作,符号对应对Y 或z 的符号位进行判断。可以看 出:在迭代过程中只有移位和加减运算,特别适合于FPGA 实现 。本文选用芯片为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级流水线结构,输人数据为l6位无符 号数,中间数据为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、信噪比 为1OdB的AM信号,时序仿真结束后,将生成的波形文件 保存为.n)l格式文件 J,以便将仿真结果导入Matlab中进 行验证,图4给出了AM解调仿真结果。对比AM调制信号 与解调信号,可以看出:两者包络一致,较好地完成了AM 调制信息的解调。 l5O > 乓100 墨50 0 l000 时间/ s (a)AM调制信号 (a)AM modulation signal 15O 姜 100 墨50 O 500 1000 1500 时间/gs (b)AM解调信号 (b)AM demodulation singal 图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. f71王旭东,潘广桢.Matlab及其在FPGA中的应用[M].北京:国 防工业出版社,2006. 作者简介: 王 ̄(1987一),男,河北石家庄人,硕士研究生,主要研究方 向为军用无线电导航。