FPGA通信设计基础_第五章_DDS设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第五章DDS设计频率合成器是通信系统的心脏,是决定系统性能的关键设备,随着现代无线电通信事业的发展,移动通信、雷达、制导武器和电子对抗等系统对频率合成器提出越来越高的要求,低相噪、高纯频谱和高速捷变的频率合成器一直是频率合成技术发展的主要目标,DDS技术的发展将有力地推动这一目标的实现。5.1DDS的基本原理5.2DDS的模块设计5.3FSK调制器设计5.1DDS的基本原理我们知道,对于正弦信号发生器,它的输出可以用下式来描述:).π2sin(sinoutouttfAtAS(5-1)其中Sout是指该信号发生器的输出信号波形,fout指输出信号对应的频率。上式的表述对于时间t是连续的,为了用数字逻辑实现该表达式,必须进行离散化处理。用基准时钟clk进行抽样,令正弦信号的相位:tfoutπ2(5-2)在一个clk周期Tclk内,相位的变化量为:clkoutclkoutπ2π2ΔffTf(5-3)其中fclk指clk的频率,对于,可以理解成“满”相位。为了对进行数字量化,把切割成2N份,由此,每个clk周期的相位增量可用量化值来表述为NB2π2且为整数。与(5-3)式联立,可得:clkout2ffBNclkout2ffBN(5-4)显然,信号发生器的输出可描述为:11out1Δ2πsin(Δ)sinsin2kkkNSAABBABB(5-5)其中,指前一个clk周期的相位值,同样可以得出NkkB2π211(5-6)由上面的推导可以看出,只要对相位的量化值进行简单的累加运算,就可以得到正弦信号的当前相位值;而用于累加的相位增量量化值决定了信号的输出频率fout,并呈现简单的线性关系。直接数字合成器DDS就是根据上述原理而设计的数字控制频率合成器。图5-1所示是一个基本的DDS结构,主要由相位累加器、相位调制器、正弦ROM查找表和D/A构成。图中的相位累加器、相位调制器、正弦ROM查找表是DDS结构中的数字部分,由于具有数控频率合成的功能,又合称为NCO(NumericallyControlledOscillators)。同步寄存器寄存器正弦信号输出clk系统时钟相位累加器相位调制器NNM数据线位宽频率字输入N同步寄存器M正弦ROM查找表D/A相位字输入图5-1基本DDS结构相位累加器是整个DDS的核心,在这里完成上文原理推导中的相位累加功能。相位累加器的输入是相位增量,又由于与输出频率fout是简单的线性关系:,故相位累加器的输入又可称为频率字输入,事实上,当系统基准时钟fclk是2N时,就等于fout。频率字输入在图5-1中还经过了一组同步寄存器,使得当频率字改变时不会干扰相位累加器的正常工作。clkout/2ffBN相位调制器接收相位累加器的相位输出,在这里加上一个相位偏移值,主要用于信号的相位调制,如PSK(相移键控)等。在不使用时可以去掉该部分,或者加一个固定的相位字输入。相位字输入也需要用同步寄存器保持同步。需要注意的是,相位字输入的数据宽度M与频率字输入N往往是不相等的,MN。正弦ROM查找表完成的查表转换,也可以理解成相位到幅度的转换,它的输入是相位调制器的输出,事实上就是ROM的地址值;输出送往D/A,转化成模拟信号。由于相位调制器的输出数据位宽M也是ROM的地址位宽,因此在实际的DDS结构中N往往很大,而M总为10位左右。M太大会导致ROM容量的成倍上升,而输出精度受D/A位数的限制未有很大改善。因此,在实际应用中,对于ROM容量的缩小,人们提出了很多解决方法。下面给出一些关于基本DDS结构的常用参量计算。1. DDS的输出频率fout由DDS工作原理推导的公式中很容易得出输出频率的计算:clkout2fBfN(5-7)是频率输入字,fclk是系统基准时钟的频率值,N是相位累加器的数据位宽,也是频率输入字的数据位宽。B2. DDS的频率分辨率或称频率最小步进值,可用频率输入值步进一个最小间隔对应的频率输出变化量来衡量。由(5-7)易得Nff2clkout(5-8)3. DDS的频率输入字的计算的计算公式如下:clkout2ffBN对于通信上的应用,往往需要得到一对正交的正弦信号,以便进行正交调制和正交解调。在用模拟的压控振荡器VCO时,输出一组完全正交的信号较为困难,而对于DDS而言,只要在基本DDS结构中增加一块ROM查找表,在两块ROM中分别放置一对正交信号即可(如一个放置sin表、另一个放置cos表),如图5-2所示。同步寄存器寄存器正弦信号输出clk系统时钟相位累加器相位调制器NNM数据线位宽频率字输入N同步寄存器M正弦ROM查找表D/A相位字输入余弦信号输出余弦ROM查找表D/A图5-2正交信号发生器幅度调制在很多场合是需要的。我们改进基本DDS结构,在正弦ROM表后、D/A前放置一个幅度控制模块,一般采用乘法器来实现。如图5-3。相位累加器clk频率字输入相位字输入幅度调制送D/A相位调制器正弦ROM查找表图5-3幅度调制5.2DDS的模块设计5.2.1建立DDS模型首先在Simulink中新建一个模型,调用DSPBuilder模块构成图5-4所示的基本DDS子系统SubDDS。图5-4DDS子系统SubDDS图中,DDS子系统SubDDS共有三个输入,分别为Freqword(频率字输入)、Phaseword(相位字输入)和Amp(幅度控制输入);一个输出,为DDSout。输入/输出模块的参数设置如下:Freqword模块:(Altbus)库:AlteraDSPBuilder中BusManipulation库参数“BusType”设为“signedInteger”参数“NodeType”设为“Inputport”参数“numberofbits”设为“32”Phaseword模块:(Altbus)库:AlteraDSPBuilder中BusManipulation库参数“BusType”设为“signedInteger”参数“NodeType”设为“Inputport”参数“numberofbits”设为“16”Amp模块:(Altbus)库:AlteraDSPBuilder中BusManipulation库参数“BusType”设为“signedInteger”参数“NodeType”设为“Inputport”参数“numberofbits”设为“10”DDSout模块:(Altbus)库:AlteraDSPBuilder中BusManipulation库参数“BusType”设为“signedInteger”参数“NodeType”设为“Outputport”参数“numberofbits”设为“10”由Delay模块和ParallelAdderSubtractor模块以及Phaseword1模块构成相位累加器,其参数如下:ParallelAdderSubtractor模块:(ParallelAdderSubtractor)库:AlteraDSPBuilder中Arithmetic库参数“NumberofInputs”设为“2”,“Add(+)Sub(-)”设为“++”选择“Pipeline”参数“ClockPhaseSelection”设为“1”Delay模块:(Delay)库:AlteraDSPBuilder中Storage库参数“Depth”设为“1”参数“ClockPhaseSelection”设为“1”Phaseword1模块:(Altbus)库:AlteraDSPBuilder中BusManipulation库参数“BusType”设为“signedInteger”参数“NodeType”设为“InternalNode”参数“numberofbits”设为“32”相位调整部分由ParallelAdderSubtractor1模块和BusConversion2模块构成,参数如下:ParallelAdderSubtractor1模块:(ParallelAdderSubtractor)库:AlteraDSPBuilder中Arithmetic库参数“NumberofInputs”设为“2”,“Add(+)Sub(-)”设为“++”选择“Pipeline”参数“ClockPhaseSelection”设为“1”BusConversion2模块:(BusConversion)库:AlteraDSPBuilder中BusManipulation库参数“InputBusType”设为“signedInteger”参数“Input[numberofbits].[]”设为32参数“OutputBusType”设为“SignedInteger”参数“Output[numberofbits].[]”设为“10”参数“InputBitConnectedtoOutputMSB”设为“31”参数“InputBitConnectedtoOutputLSB”设为“22”使用“Round”剩下的模块构成幅度控制部分,模块参数如下:Product模块:(Product)库:AlteraDSPBuilder中Arithemtic库参数“Pipeline”设为“2”参数“ClockPhaseSelection”设为“1”不选择“UseLPM”BusConversion3模块:(BusConversion)库:AlteraDSPBuilder中BusManipulation库参数“InputBusType”设为“signedInteger”参数“Input[numberofbits].[]”设为“20”参数“OutputBusType”设为“SignedInteger”参数“Output[numberofbits].[]”设为“10”参数“InputBitConnectedtoOutputMSB”设为“18”参数“InputBitConnectedtoOutputLSB”设为“9”使用“Round”使用“Saturate”最后,建立子系统。至此,基本DDS模型就建立完成。5.2.2DDS模型的使用在此调用上面设计的DDS子系统SubDDS,构建一个简单的DDS应用模型,见图5-5。图5-5DDS的使用输入相位字为0,频率字为2000000,幅度控制值为124,设置Simulink的仿真停止时间StopTime为5,仿真步进FixedStepSize设为1e-3。下面开始仿真。图5-6显示了仿真结果。图5-6仿真结果5.3FSK调制器设计5.3.1FSK调制器原理二进制数字频率调制(2FSK)是利用二进制数字基带信号控制载波进行频谱变换的过程。在发送端,产生不同频率的载波振荡来传输数字信息“1”或“0”;在接收端,把不同频率的载波振荡还原成相应的数字基带信号。相邻两个振荡波形的相位可能是连续的,也可能是不连续的,因此有相位连续的FSK及相位不连续的FSK之分。FSK调制的方法有两种:(1)直接调频法。用数字基带矩形脉冲控制一个振荡器的某些参数,直接改变振荡频率,输出不同频率的信号。(2)频率键控法。用数字矩形脉冲控制电子开关在两个振荡器之间进行转换,从而输出不同频率的信号。5.3.2FSK模型在此设计一个FSK模型,在调制方法上选择直接调制法。采用DDS方法来生成频率可控的正弦信号,利用数字基带信号控制DDS的频率字输入,实现FSK调制。如图5-7所示,这是一个简化的DDS结构,由8 bit累加器作为相位累加器,由二选1选择器来选择累加器的相位,相位是由数字基带信号控制的。采用改变相位增量来控制频率的方法,可以产生相位连续的调制波形。在实际应用中,数据输出data_out需要经过DAC进行数模转换,然后经低通滤波器后产生最终的模拟输出信号。图5-7FSK调制模型FSK调制的仿真结果如图5-8所示,高电平控制的时候,正弦波的频率较高,而低电平的时候正好相反。图5-8FSK调制的Si

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功