DDS 正弦信号发生器 产生信号源是数字还是模拟的 公司一般选用哪种 为什么 dds信号源工作原理( 二 )


DDS基本原理及性能特点
DDS的基本原理是利用采样定理,通过查表法产生波形 。DDS的结构有很多种,其基本的电路原理如图所示 。
相位累加器由N位加法器与N位累加寄存器级联构成 。每来一个时钟脉冲fs,加法器将频率控制字k与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端 。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字k相加 。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加 。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率 。
用相位累加器输出的数据作为波形存储器(ROM)的相位取样地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换 。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号 。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号 。
DDS在相对带宽、频率转换时间、高分辨力、相位连续性、正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统提供了优于模拟信号源的性能 。
如何用FPGA实现
相位累加寄存器是DDS的核心,在我的设计中相位寄存器的字长为23位,之所以选择23位是因为项目要求频率步进可以达到1Hz,我们BASYS板上有25MHz的晶振,我们将其三分频为8.333MHz,我们相位寄存器字长23位则频率步进最小值为F/2N=8.333*106/223≈1Hz( 当然根据项目实际需要我们今后会通过外接晶振及DCM配合使其=1 Hz 。相位步进量字长为18位,最高输出频率为fmax=8.333*106/223*218 =260416 Hz 。
波形存储器用SPATAN3E内部RAM实现,通过core generator 生成ROM,我们的设计中用ROM存取256个点,这样到频率达到200kHz时每个周期输出可达到21个采样点,若是存512个点那么就能达到42个点,具体存多少个点根据后续要求,及芯片本身的内部资源决定 。用PC机的VC编写“正弦信号查找表”,将其写入ROM的初始化文件 。当然可以把其他任意周期性波形数据写入ROM,道理想同 。
生成“正弦信号查找表”有以下步骤:首先,确定每周期采样点数,这里256个点,计算各采样点的数值 。归一化,由于我们后续须将数字量通过DAC输出,所以计算所得数值的值域转化为[0,1],以方便转化为DAC对应的数值,由于8位的DAC的输出值最高为255,所以须将得到的数值乘以255 。
这里设计的相位累加寄存器,可根据实际需要产生无限周期个波形或1024以内个周期波形(periodn为10位)增加了设计的功能 。
程序说明
dds_rom是储存波形的储存器;
phaseregister是相位累加寄存器;
fredevider3是三分频电路;
sch_top是dds芯片顶层文件;
工程dds_version1是该设计的工程文件;
文件夹sin_test是生成正弦信号查找表的源文件 。
测试
在这个DDS 的设计过程中我们在BASYS板上跑了程序,程序与这个在I/O 端口方面有少许差别,需将源程序I/O口作了一下修改Clk为BASYS板上的50MHz,
Dout为LD0到LD7,在实际应用中将其引致I/O口外接D/A即可产生变化的电压值(波形),这里通过LED是为了看结果直观 。Reset为sw7,reset为’1’时DDS停止工作,并把相应寄存器置零,具体见代码 。Sw6,sw5用于输出波形周期选择,为’00’时一直输出波形,为’01’,’10’,’11’时分别输出1,2,3个周期波形 。Sw4到sw0为相位步进量(频率控制字),对应于1hz到31hz 。
关于dds信号源和dds信号源工作原理的介绍到此就结束了,不知道你从中找到你需要的信息了吗?如果你还想了解更多这方面的信息,记得收藏关注本站 。
查看更多关于dds信号源的详细内容...
【DDS 正弦信号发生器 产生信号源是数字还是模拟的 公司一般选用哪种 为什么 dds信号源工作原理】Tags:dds信号源dds信号源工作原理


推荐阅读