DDS移相信号发生器
- 格式:doc
- 大小:1.00 MB
- 文档页数:11
DDS信号发生器设计DDS(直接数字频率合成)信号发生器是一种数字技术制造高质量频率合成信号的装备。
本文将介绍DDS信号发生器的设计原理、关键技术和性能评估。
一、设计原理:DDS信号发生器的设计原理基于数字频率合成技术,其核心是数字信号处理器(DSP)和数字锁相环(PLL)。
DDS信号发生器通过频率控制字(FTW)和相位控制字(PTW)控制DDS芯片的输出频率、波形和相位。
在DDS芯片中,数字频率合成器通过数模转换器将较高的待合成信号转换为模拟信号,进而通过滤波器、放大器等模拟电路产生高质量的输出信号。
二、关键技术:1.高精度的频率合成:DDS信号发生器需要具备高精度的频率合成能力。
此需求需要DDS芯片具备较高的分辨率和较低的相位噪声。
分辨率是DDS芯片产生频率变化最小步进的能力,通常用位数来表示。
较高的分辨率可以确保DDS信号发生器输出的频率表现更加连续平滑。
相位噪声则与DDS芯片的时钟抖动、量化噪声等因素有关,较低的相位噪声能够保证信号在频谱中的纯净度。
2.高动态范围的输出:DDS信号发生器通常需要提供广泛的频率范围和大范围内的输出功率调节。
此需求需要DDS芯片具备高动态范围的输出能力。
动态范围包括频率动态范围和幅度动态范围。
频率动态范围是指DDS信号发生器能够合成的频率范围,幅度动态范围则指DDS信号发生器能够调节的输出功率范围。
通过优化DDS芯片的设计,可以提高输出的动态范围。
3.高速的输出信号更新:DDS信号发生器需要具备快速更新输出信号的能力。
通常,DDS芯片具备更高的时钟频率和更大的内存储存能力可以实现更高的输出信号更新速率。
高速更新输出信号可以保证DDS信号发生器能够满足实时调节信号的需求。
三、性能评估:DDS信号发生器的性能评估包括频率稳定度、相位噪声、调制信号质量等几个方面。
频率稳定度是指DDS信号发生器输出频率的稳定性,通常通过测量短期和长期的频率漂移来评估。
相位噪声则是度量DDS信号发生器输出信号相位纯净度的参数,使用杂散频谱测量方法和相位噪声密度谱评估。
第9卷第1期2010年2月 无锡职业技术学院学报JOU RNAL O F W U X I I NS TITU TE O F TECHNOLO G Y V ol 19N o 11Feb 12010DDS 信号发生器的设计陈 慧1,2,云乃彰1(1.南京航空航天大学,江苏 南京 210016;2.无锡职业技术学院电子信息技术学院,江苏 无锡 214121)收稿日期:2009-12-13作者简介:陈 慧(1980— ),女,江苏丹阳人,硕士研究生,无锡职业技术学院讲师。
摘 要:利用现场可编程逻辑门阵列(FPGA )实现直接数字频率合成(DDS )原理以及以DD S 为核心的信号发生器的设计,并给出了以单片机80C 51为内核的FPGA 的设计方案及信号发生器产生的仿真波形。
关键词:直接数字频率合成技术(DD S );现场可编程逻辑门阵列(FPGA )中图分类号:TN 911 文献标识码:A 文章编号:1671-7880(2010)01-0028-04D e s i gn o f DD S S i gna l Gene ra t o rCH EN H u i 1,2,Y UN N a i 2zhang1(1.N anjing U niversity of A eronautics and A stronautics,N anjing 210016,C hina;2.E lectrical Info r m ation Institute,W uxi Institute of Technology,W uxi 214121,C hina )Abstract:The use of field p rogramm able gate arrays fo r direct digital frequency syn thesis p rinci p le andw ith DD S as the core of the signal generator .D esign on 80C 51single 2chi p m icrocom pu ter as the co re of the FPGA and p resent the si m ulation w ave for m from the signal generator .Key words:direct d igital frequency synthesis;field p rog ramm able gate array 作为电子系统必不可少的信号源,在很大程度上决定了系统的性能,因而常称之为电子系统的“心脏”。
DDS信号发生器1. 介绍DDS(Direct Digital Synthesis)信号发生器是一种基于数字技术的信号发生设备。
相比传统的模拟信号发生器,DDS信号发生器通过数字方式生成信号,具有更高的频率稳定性、精度和灵活性。
它已广泛应用于通信、无线电、测试测量等领域。
2. 原理DDS信号发生器基于数字方式生成信号,其原理如下:1.时钟生成器:DDS信号发生器的核心是时钟生成器,用于提供稳定的时基信号。
可以使用晶振、PLL(锁相环)等方式来生成时钟信号。
2.相位累加器(Phase Accumulator):相位累加器接收时钟信号,并累加相位信息。
相位累加器可以是一个加法器,用于将每个时钟周期的相位累加一定数值。
3.相位累加器控制器(Phase AccumulatorController):相位累加器控制器根据需要设置每个时钟周期的相位累加值。
可以通过调整控制器中的参数,实现频率、幅度、相位等信号参数的调节。
4.查找表(Look-up Table):查找表存储了一系列的数字信号样本点,每个样本点对应一个幅度值。
通过从查找表中读取相应的样本点,就可以得到特定频率和幅度的数字信号。
5.数字模拟转换器(Digital-to-Analog Converter,简称DAC):DAC将数字信号转换为模拟信号输出。
根据查找表读取的数字样本点和幅度值,DAC可以实现高精度的数字信号转模拟信号过程。
6.输出滤波器:输出滤波器用于去除DAC输出的高频成分,以得到平滑的模拟信号输出。
3. 特点DDS信号发生器具有以下特点:•高频率稳定性:DDS信号发生器使用数字方式生成信号,通过稳定的时钟信号提供高精度的频率稳定性。
•灵活性:DDS信号发生器可以通过调节相位累加器控制器中的参数,实现频率、幅度、相位等信号参数的灵活调节。
•高精度:DDS信号发生器通过数字方式生成信号,具有较高的精度,可以满足对信号质量要求较高的应用。
dds信号发生器
DDS信号发生器是一种基于直接数字合成(DDS)技术的
仪器,用于产生各种类型的电信号。
DDS技术通过数字控
制振荡器的频率和相位,可以产生高精度、稳定的频率和
相位可调的信号。
DDS信号发生器通常具有以下特点:
1. 高频率分辨率:DDS技术能够实现非常细小的频率调整,通常在数千分之一赫兹的范围内进行微调。
2. 高精度和稳定性:DDS信号发生器具有很高的频率精度
和稳定性,可以在长时间内保持非常准确的信号输出。
3. 多种波形选择:DDS信号发生器通常可以产生不同类型
的波形,如正弦波、方波、三角波、锯齿波等。
4. 调制功能:DDS信号发生器可以进行幅度调制(AM)、频率调制(FM)、相位调制(PM)等操作,使得信号具
有更多的应用灵活性。
5. 调频功能:DDS信号发生器可以实现频率扫描功能,即以一定的频率范围内按照一定的步进进行频率连续变化。
DDS信号发生器广泛应用于科研、教学、通信、无线电测试和制造等领域,可以用于信号发生、电子设备测试、频谱分析等应用。
DDS信号发生器原理
DDS(Direct Digital Synthesis)即直接数字合成技术,是一种使
用计算机和数字电路产生稳定频率的信号的方法。
1.时钟:DDS信号发生器首先需要一个高稳定性的时钟源。
通常使用
晶体振荡器提供时钟信号。
2.数字幅度控制:DDS信号发生器可以通过数字电路对信号的幅度进
行控制。
幅度控制器可以调整信号的振幅,使其符合输出要求。
3.数字相位控制:DDS信号发生器也可以通过数字电路对信号的相位
进行控制。
相位控制器可以改变信号的相位,使得信号的波形可以在不同
的相位偏移下生成。
4.数字频率控制:DDS信号发生器通过数字控制的方式来改变信号的
频率。
在DDS系统内部,以高精度的频率计数器计算频率参数,再经过数
位化处理输出,可以实现频率的高精度控制。
5.数字加法器:DDS信号发生器还包括数字加法器,该加法器用于将
振荡器频率和相位锁存,并与时钟信号进行累加。
6.數位对比:DDS信号发生器内部配备一个数字对比器,此器件用于
将输入的数字频率和相位与实际振荡器频率进行比较,以实现高精度的频
率控制。
7.低通滤波器:DDS信号发生器最后通过低通滤波器对信号进行滤波,去除掉高频噪声,使得输出的信号更加平滑。
总之,DDS信号发生器通过数字计算和控制技术,可以实现对信号的
频率、相位和幅度进行非常高精度的控制,输出的信号质量非常高。
DDS
信号发生器广泛应用于通信、无线电广播、测试测量、医疗设备和声音合成等领域。
DDS信号发生器设计DDS(Direct Digital Synthesis,直接数字合成)信号发生器是一种利用数字技术生成的高精度、高稳定度的周期性信号的设备。
它被广泛应用在电子测试、通信、雷达等领域。
首先是数字频率合成器(NCO),它是DDS信号发生器的核心部件。
NCO的主要任务是根据输入的控制参数(如频率、相位、振幅等),生成相应的数字信号序列。
在DDS信号发生器中,通常采用三角函数公式来生成幅度为1的正弦波或余弦波。
为了提高频率精度,NCO的输入通常由一个高精度的时钟和一个相位累加器组成。
相位累加器根据时钟信号进行累加,并通过查表方式生成相应的输出信号。
第二个重要模块是数字控制模块(DCM)。
DCM主要用于控制DDS信号发生器的频率、相位和振幅等参数。
用户可以通过控制接口输入相应的参数值,DCM会将这些参数值与NCO的输出信号进行运算,并控制相位累加器的速度和方向,从而实现对输出信号的控制。
此外,DCM还可以通过锁相环(PLL)技术来提高输出信号的稳定性和精度。
第三个模块是数字模拟转换器(DAC),它主要负责将数字信号转换为模拟信号。
DDS信号发生器中的DAC要求具有高速、高分辨率和低失真的特点,以保证输出信号的质量。
目前,比较常见的DAC有多比特模数转换器和多片并联数字到模数转换器。
在设计中,需要根据具体应用来选择合适的DAC。
最后是低通滤波器(LPF),其主要作用是滤除DAC输出信号中的高频噪声和杂散成分,保证输出信号的纯净度。
LPF通常采用RC滤波电路或者数字滤波器来实现,其中数字滤波器可以根据需求进行设计,具有灵活性和可调性。
在DDS信号发生器设计中,还有一些其他的关键问题需要考虑。
例如,时钟源的选择和稳定性、电源和地线的布局、抗干扰能力等。
此外,DDS信号发生器的接口设计也非常重要,它可以通过数字接口、模拟接口、触发接口等与外部设备进行连接和控制。
总之,DDS信号发生器设计需要综合考虑多个方面的因素,如精度、稳定性、抗干扰能力、易用性等。
多数示例提供完整源程序
KX3C10T+系统提供的大量电子设计自主创新
演示项目于宽领域大深度培养能力、启迪智慧、激励创新
杭州康芯公司
实验6
基于DDS的移相信号发生器设计示例
注意程序路径
注意单片机程序路径单片机Core程序代码
K X 康芯科技
键4控制输入频率字高8位键K3控制输入频率字中8位
键2控制输入频率字低8位键K5控制输入相位字
复位键
接DAC0832模块A 数据输入口接双综示波器接DAC0832模块B 数据输入口接+/-12V 电源
相位字8位
频率字高8位
频率字中8位
频率字低8位。
第一章绪论1.1 移相信号发生器简介移相技术广泛应用于工厂电子产品的品质分析检验、相位测量、相位表的检定、同步检测器的数据处理以及实验室和一些重要的科研机构。
在交流功率、交流电能的测量及测量线路的研究中,移相器是交流试验装置中不可缺的重要组成部分,诸如电能表校验台、交流电工仪表校验台、电量变送器校验台、继电器校验台等。
在对电能表进行不同功率因数下的误差试验时,需用移相器改变电路里电压和电流回路之间的相角;在对电力系统中用于方向电流保护的功率方向继电器和用于距离保护的方向阻抗继电器等进行试验和调整时,也要用到移相器以提供相位可变化的电气量。
两个同频信号之间的移相是电力行业继电保护领域中模拟、分析事故的一个重要手段。
因此,移相技术有着广泛的实用价值。
移相发生器的研究相对于其它仪器来说,起步比较晚,而基于微处理器的数字式移相信号发生器研究,更是近几年的事。
目前市场上主要有模拟移相信号发生器和基于微处理器的数字式移相信号发生器两类。
模拟移相信号发生器(如阻容移相、变压器移相、感应式移相)在移相的高频领域,具有很多的应用,如铁氧体微波移相器、模拟压控移相器等。
变压器式移相器利用三相制电源中三相电压相位互差120°的原理,通过变压器将电源电压分组组合为圆内接正多边形,可分段连续取得0°~360°范围内的任一相位。
圆内接正多边形包括正六边形、正十二边形和正二十四边形等。
它获得特殊角度的相位比变换接线的跨相式移相法更为简便。
以裂相正十二边形、移相细调30°电气角宽为例,其移相时输出电压幅值的最大波动量约达3 5%,为了抑制它可采用增多裂相相数如裂相24相、裂相48相的方法,但移相变压器的绕制将更加不便。
若采用在移相变压器外另加附件的方法,则有压降法(又称余弦补偿法)和电压抵消法两种形式。
前者的补偿效果受使用容量变化影响,且将阻抗分成近似余弦变化,印制板不易制做,阻抗分段的接点因间距很小,工作可靠性较差;后者须在移相变压器上加绕一组带抽头的丫绕组,这无疑将增加其绕制难度。
dds信号发生器原理DDS信号发生器是一种基于数字技术的信号发生器,其工作原理是将一个高频时钟信号经过相位累加、调制和滤波等处理后,得到所需的正弦、方波等各种类型的信号。
相比传统的模拟信号发生器,DDS信号发生器具有输出信号稳定、精度高、频率范围宽、调制功能强等优点,因此在现代电子设备的测试、测量和控制等领域得到了广泛应用。
DDS信号发生器的核心是一个相位累加器,其基本原理是将一个高频时钟信号与一个相位累加器输出的相位累加器相加,得到所需的调制信号。
相位累加器由一个二进制计数器和一个数字控制电路组成,计数器负责输出相位累加器的计数值,数字控制电路负责根据所需的输出信号模式和频率,控制相位累加器的计数值和速度,从而实现所需信号的生成。
DDS信号发生器的输出信号的频率由相位累加器的计数速度和时钟信号的频率共同决定,可以通过改变相位累加器的计数速度或修改时钟信号的频率来改变输出信号的频率。
调制功能是通过修改相位累加器输出的信号相位来实现的,可以根据需要对调制波形进行相位、幅度、频率等方面的控制。
DDS信号发生器由于采用数字技术实现,其输出信号的频率、精度和稳定度等很高,而且可以实现各种复杂的调制方式,因此被广泛应用于无线通信、测试测量、信号处理等多个领域。
但DDS信号发生器在实际应用中也存在着一些问题,如产生谐波和杂散等干扰信号,导致输出信号的纹波和失真等问题,需要采取一些措施进行抑制和补偿。
总之,DDS信号发生器是一种基于数字技术的高性能信号发生器,具有广泛的应用前景和发展空间。
近年来,随着数字技术的不断发展和应用扩展,DDS信号发生器将在更广泛的领域和应用场合中得到更加广泛的应用和拓展。
DDS系统结构原理——信号发生器基本系统DDS(Direct Digital Synthesis,直接数字合成)系统是一种通过数字方式来生成模拟信号的系统。
信号发生器(脉冲发生器)是DDS系统中的一个基本系统,用于产生脉冲信号。
下文将介绍DDS系统的结构原理以及信号发生器的基本系统。
1.数字控制部分:数字控制部分负责生成和控制DDS系统的输入信号。
它由一个时钟模块以及一系列数字控制逻辑电路组成。
时钟模块以固定的频率发出时钟信号,供其他逻辑电路使用。
数字控制逻辑电路根据用户设置的参数,生成控制相位累加器以及数模转换器的控制信号。
2.相位累加器:相位累加器是DDS系统中的核心部分,用于生成数字信号的相位信息。
相位累加器接收数字控制逻辑电路发出的控制信号,并根据控制信号对相位进行累加。
相位累加器使用一个计数器和一个累加器来实现。
计数器根据时钟信号递增,累加器将计数器的值加上一个可编程的相位增量,得到一个新的相位值。
相位累加器产生的相位信息用于表示输出信号的频率。
3. 数模转换器:数模转换器将相位累加器产生的数字信号转换为模拟信号输出。
数模转换器根据相位累加器的输出信号,查找一个存储器中存储的幅度信息,并将幅度信息转换为模拟信号输出。
数模转换器通常使用一个查找表(lookup table)来存储幅度信息。
查找表中的每个地址对应一个幅度值,数模转换器根据相位累加器的输出值作为地址,查找对应的幅度值。
信号发生器的基本系统:信号发生器是DDS系统中的一个基本系统,用于产生脉冲信号。
它由脉冲宽度控制电路、脉冲重复频率控制电路和脉冲幅度控制电路组成。
1.脉冲宽度控制电路:脉冲宽度控制电路用于控制脉冲的宽度。
它接收数字控制逻辑电路发出的控制信号,并根据控制信号生成一个可编程的脉冲宽度。
脉冲宽度控制电路通常使用一个计数器和一个比较器来实现。
计数器根据时钟信号递增,当计数值达到比较器设定的脉冲宽度值时,比较器输出一个脉冲宽度结束的控制信号。
基于DDS 的移相正弦信号发生器设计一.设计原理1.1 利用DDS 产生正弦波信号的工作原理由DDS 产生频率、相位可控制的正弦波。
频率累加器对输入信号进行累加运算,产生频率控制数据M( 或相位步进量)。
读出的数据送入D/A 转换器和低通滤波器以恢复实际波形。
频率控制字M 和相位控制字分别控制DDS 输出正(余)弦的频率和相位。
DDS 系统的核心是相位累加器,它由一个累加器和一个N 位相位寄存器组成。
每来一个时钟脉冲,相位寄存器以步长M 增加。
相位寄存器的输出与相位控制字相加,其结果作为正(余)弦查找表的地址。
ROM 查找表中储存着一个完整周期的正弦波数字幅度信息,,每个查找表的地址对应正弦波中O 一360度范围中的一个相位点。
ROM 查找表把输入的地址信息映射成正(余)弦幅度信号,同时输出数模转换器(DAC)的输入端,DAC 输出的模拟信号经过低通滤波器(LPF),可得到一个频谱纯净的正(余)弦波。
从而实现正弦波信号的产生。
直接数字合成DDS 的可移相数字信号发生器原理图:1.2 DDS 的数字移相原理DDS 技术的核心是相位累加器,它类似一个计数器. 每来一个时钟信号,相位累加器的输出就增加一个步长的相位增量,相位增量的大小由频率控制字确定. 经DDS 输出的信号可描述为)2sin()sin(t f A wt A S out out π== (1)其中, Sout 为经DDS 输出的信号,fout 为对应的输出频率,时间t 是连续的。
为便于数字逻辑描述该表达式,需进行离散化处理,用基准时钟信号clk 进行抽样,设正弦信号的相位φ= 2πfout t ,而在一个时钟周期Tclk 相位φ变化量为clk out clk out f f T f ππφ22==∆ (2) 式(2)中, fclk 是clk 的频率,对于2π可以看成是满相位的1为了对输出的相位进行控制,通过一个常数P 来实现,而每个clk 周期的相位增量Δθ用P 来表示,即Δθ= P ·Δφ式1 与式(2) 联立可得clkout f f P πθ2⋅=∆ (3) 显然,信号发生器的输出可描述为)sin().sin(θφφφ∆+=∆+=A p A S out上式中,φ代表正弦信号发生器原始相位值,可看出,对相位值进行简单的累加运算,就可以得到正弦信号当前相位值,也就得到了DDS 输出的正弦信号。
dds信号发生器简介DDS信号发生器(Direct Digital Synthesizer)是一种电子设备,用于生成高精度和可编程的信号波形。
它采用数字信号处理(DSP)技术,通过对数字信号进行频率和相位的调节,实现了精确的模拟信号生成。
DDS信号发生器广泛应用于通信、测量、仪器仪表以及无线电频率合成等领域。
原理DDS信号发生器的核心是数字控制振荡器(Digital Control Oscillator,DCO)。
它由相位累加器、相位解析器、频率控制单元和数字到模拟转换器等部分组成。
1.相位累加器:负责产生一个递增的数字相位值,用于控制信号的相位。
该相位值是一个固定的频率时钟脉冲在一定时间内的累积,通过累加操作可以产生一个递增的相位值。
2.相位解析器:将相位累加器的输出映射到一个固定的相位范围内。
相位解析器通常使用加法器和减法器来实现,用于将相位累加器的输出限制在一个设定的范围内。
3.频率控制单元:用于调节信号的频率。
通常通过改变相位累加器的累加速率来实现,可以通过改变频率控制寄存器中的值来调节累加速率。
4.数字到模拟转换器(DAC):将数字信号转换为模拟信号。
DDS信号发生器通常使用高速DAC来实现,将数字控制振荡器的输出转换为模拟信号。
优势DDS信号发生器相比传统的模拟信号发生器具有以下的优势:•高精度:DDS信号发生器具有更高的频率和相位分辨率,可以生成更精确、更稳定的信号。
•可编程:DDS信号发生器可以通过改变参数来生成不同频率、相位和形状的信号波形。
通过软件界面或者编程接口,用户可以方便地进行调节和控制。
•快速切换:DDS信号发生器可以实现信号的快速切换,适用于频率扫描、调频等应用。
•低失真:DDS信号发生器的输出信号质量高,谐波和杂散分量较低,保证了所生成信号的准确性和可靠性。
应用领域DDS信号发生器在以下领域有着广泛的应用:通信DDS信号发生器可以用于通信设备的测试和校准,用于产生基带信号、载波信号和调制信号等。
本人做的一DDS信号发生器(有图和完整代码)本人做的一DDS信号发生器(有图和完整代码)这个DDS信号发生器是本人在学了一段时间的VHDL语言,在理解了DDS信号发生器原理的基础上做出来的一个小程序。
频率控制字是用的32位的,相位控制字是10位的,这些都是从外部输入,严格地说这并不是一个完整的DDS信号发生器,这只能说是一个核心的部份,各种参数和性能几乎全都由外围电路决定(如晶振和DA器件的性能)。
不过通过这个也能说明本人对VHDL语言和QuartusII的使用有了一定程度上的了解了。
-这是顶层文件:library ieee;use ieee.std_logic_1164.all;entity dds isport(Frequency_contol: in std_logic_vector(31 downto 0);Xia_Contorl : in std_logic_vector(9 downto 0);clk:in std_logic;sin_out:out std_logic_vector(7 downto 0));end dds;architecture behav of dds is --32位的加法器用来产生地址component adder32bport(in_data_a,in_data_b:in std_logic_vector(31 downto 0);sum:out std_logic_vector(31 downto 0));end component ;component adder10b --相位加法器也叫相们市制器port(in_data_a,in_data_b:in std_logic_vector(9 downto 0);sum:out std_logic_vector(9 downto 0));end component ;component reg32b --32位的寄存器用来输入频控制字也可以用来做设频用port(load: in std_logic;in_data:in std_logic_vector(31 downto 0);out_data: out std_logic_vector(31 downto 0));end component ;component out_32REG --一个32位寄存有一个口用来反馈一个用来输出port(data_in : in std_logic_vector(31 downto 0);load: in std_logic;data_feedbake: out std_logic_vector(31 downto 0);data_out: out std_logic_vector(9 downto 0));end component ;component sin_son --正弦查找表PORT(address : IN STD_LOGIC_VECTOR (9 DOWNTO 0);clock : IN STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0));end component;component REG10b --10位寄存器模块用来存相位控制字port(load: in std_logic;in_data:in std_logic_vector(9 downto 0);out_data: out std_logic_vector(9 downto 0));end component ;signal Frequency_Con :std_logic_vector(31 downto 0);signal Fre_feedback :std_logic_vector(31 downto 0);--这是那个反馈回去的信号signal sum_data :std_logic_vector(31 downto 0);--这是丛32位加法器里出来的和信号signal Xian_Con :std_logic_vector(9 downto 0);--用来传递相位控制字--signal data_high_10B :std_logic_vector(9 downto 0); --用来传递累加器出的高10位signal adderss_10b :std_logic_vector(9 downto 0);beginu1: reg32b port map(load=>clk,in_data=>Frequency_contol,out_data=>Frequency_Con);u2: adder32b port map(in_data_a=>Frequency_Con,in_data_b=>Fre_feedback,sum=>sum_data);--u3: out_32REG port map(load=>clk,data_in=>sum_data,data_feedbake=>Fre_feedback,data_out=>data_high_10B);u3: reg32b port map(load=>clk,in_data=>sum_data,out_data=>Fre_feedback);u4: reg10b port map(load=>clk,in_data=>Xia_Contorl,out_data=>Xian_Con);u5: adder10b port map(in_data_a=>Fre_feedback(31 downto 22),in_data_b=>Xian_Con,sum=>adderss_10b);u6: sin_son port map(clock=>clk,address=>adderss_10b,q=>sin_out);end;--////////////////////////////////////////////////////////////////////////////////////////////////////////////--/////////////////////////////////////////////////////////////////////////////////////////////////////////////--这个是10位的加法器也可以说是相位调制器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity adder10b is --32位的加法器port(in_data_a,in_data_b:in std_logic_vector(9 downto 0);sum:out std_logic_vector(9 downto 0));end adder10b;architecture behav of adder10b isbeginsum<=in_data_a+in_data_b;end behav;--////////////////////////////////////////////////////////////////////////////////////////////////////////////--/////////////////////////////////////////////////////////////////////////////////////////////////////////////--这里是个32位的加法器用来把输出和32的频率控制字累加library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity adder32b is --32位的加法器port(in_data_a,in_data_b:in std_logic_vector(31 downto 0);sum:out std_logic_vector(31 downto 0));end adder32b;architecture behav of adder32b isbeginsum<=in_data_a+in_data_b;end behav;--////////////////////////////////////////////////////////////////////////////////////////////////////////////--/////////////////////////////////////////////////////////////////////////////////////////////////////////////--32位的寄存器library ieee;use ieee.std_logic_1164.all;entity out_32REG is --这是那个用来寄存反馈和输入相位调制的模块port(data_in : in std_logic_vector(31 downto 0);load: in std_logic;data_feedbake: out std_logic_vector(31 downto 0);data_out: out std_logic_vector(9 downto 0));end out_32REG;architecture behav of out_32REG isbeginprocess(load)beginif load'event and load='1' then data_feedbake<=data_in ; data_out<=data_in(31 downto 22); end if;end process;end behav;--////////////////////////////////////////////////////////////////////////////////////////////////////////////--/////////////////////////////////////////////////////////////////////////////////////////////////////////////--10位寄存器模块用来存相位控制字library ieee;use ieee.std_logic_1164.all;entity REG10b is --10位寄存器模块用来存相位控制字port(load: in std_logic;in_data:in std_logic_vector(9 downto 0);out_data: out std_logic_vector(9 downto 0));end reg10b;architecture behav of reg10b isbeginprocess(load)beginif load'event and load='1' then out_data <= in_data;end if;end process;end behav;--////////////////////////////////////////////////////////////////////////////////////////////////////////////--/////////////////////////////////////////////////////////////////////////////////////////////////////////////--最后再就是一个利用MegaWixard plug-in Manager定制的一个1024位的正弦ROM这里就不贴出来了。
DDS信号发生器原理DDS(Direct Digital Synthesis)信号发生器是一种基于数字信号处理技术实现的信号发生器,其原理是利用数字信号处理器(DSP)或者现场可编程门阵列(FPGA)等硬件实现对信号频率的精确控制,从而实现高精度、高稳定性的信号发生。
相位累加器是DDS信号发生器的核心部分,它主要负责生成连续变化的相位信号。
相位累加器的输入是一个固定频率的时钟信号,输出是一个连续变化的相位信号。
相位累加器的输出相位信号通过一个幅度控制器以及一个正弦函数表查找器得到对应的幅度。
频率控制字是用于控制相位累加器的频率的参数。
频率控制字可以通过DSP或者FPGA实时计算得到,根据用户设置的频率以及系统时钟的频率,计算出相应的频率控制字发送给相位累加器。
频率控制字的改变会直接影响到相位累加器的输出,从而实现对信号频率的精确控制。
数模转换器负责将相位累加器的输出转换成模拟信号输出。
通常采用的是高速数字模拟转换器(DAC)来实现。
数模转换器将相位累加器的输出映射到一组固定幅度的数字代码,然后再通过滤波去除采样频率带来的混频等杂散分量,得到模拟输出信号。
在DDS信号发生器的实际应用中,还会加入一些附加功能来增强其输出信号的精度、稳定性等性能。
比如,引入自动幅度控制(AGC)功能,通过对输出信号进行反馈控制,保证输出信号的幅度在给定范围内稳定;引入相位调制(PM)或频率调制(FM)功能,实现对信号相位或频率的变化等。
总之,DDS信号发生器的工作原理是通过数字信号处理技术实现对信号频率的精确控制,从而实现高精度、高稳定性的信号发生。
它具有工作频率范围广、频率稳定度高、频率调节范围宽、信号质量好等优点,在通信、测量、仪器仪表等领域有着广泛的应用前景。
DDS信号发生器原理DDS(Direct Digital Synthesis,直接数字合成)信号发生器是一种基于数字技术的信号发生器,它将数字数据转换为模拟信号,并通过数字控制进行频率和相位调制。
下面将详细介绍DDS信号发生器的原理和工作过程。
1.DDS信号发生器的基本原理数字控制器:用于控制DDS信号发生器的各个参数,如频率、相位等。
相位累加器:累加器用于存储当前相位值,并在每个时钟周期更新相位值。
它根据设定的输入频率和时钟频率,累加相应的相位值。
频率累加器:累加器用于存储当前频率值,并在每个时钟周期更新频率值。
它根据设定的输入频率和时钟频率,累加相应的频率值。
数字到模拟转换器(DAC):将数字数据转换为模拟信号。
该模块接收相位累加器和频率累加器输出的数值,并输出相应的模拟信号。
低通滤波器(LPF):对DAC输出的模拟信号进行滤波,以去除高频噪音和杂散分量,得到平滑的模拟信号输出。
2.DDS信号发生器的工作过程当DDS信号发生器启动时,数字控制器初始化相位累加器和频率累加器的值。
然后,相位累加器开始累加相位值,频率累加器开始累加频率值。
在每个时钟周期内,相位累加器和频率累加器的值被读取,并传递给数字到模拟转换器进行转换。
DAC将相位累加器和频率累加器输出的数字值转换为模拟信号。
转换后的模拟信号经过低通滤波器滤波,去除高频噪音和杂散分量,得到平滑的模拟信号输出。
通过控制数字控制器的参数,可以调整信号的频率和相位。
当需要改变频率或相位时,数字控制器重新计算相位累加器和频率累加器的初值,以达到所需的调制效果。
3.DDS信号发生器的优点(1)频率和相位调制精度高:DDS信号发生器通过数字控制,可以实现对频率和相位的高精度调制,具有较小的频率和相位跳变。
(2)频率范围广:DDS信号发生器的频率范围通常可以达到几百兆赫兹,满足了大多数应用的需求。
(3)信号稳定性好:DDS信号发生器采用数字技术,减少了模拟电路的误差,信号稳定性较高。
目录1 DDS原理 (1)1.1 关于频率发生器 (1)1.2 DDS的工作原理和电路结构 (2)1.3 DDS的主要优点 (3)2 方案及选取 (3)2.1 基于DDS的信号发生器方案 (3)2.2 不同方案的介绍 (3)3 单元电路设计 (4)3.1 关于设计 (4)3.2显示模块 (4)3.3 频率控制字模块 (5)3.4 波形存储模块 (6)3.5模数转换模块 (8)3.6 基准时钟产生电路 (9)3.7 按键消抖电路 (10)4 关于仿真及调试 (11)5 设计体会及今后的改进意见 (11)参考文献 (12)1 DDS原理1.1 关于频率发生器高精度、高分辨力、低噪声、高频谱纯度、宽频率范围的信号源,在通信、电子等各个方面都具有极其广泛的用途.要设计这样的信号源一般使用频率合成技术。
锁相环路(PLL)是传统频率合成技术的核心,也是目前主要采用的技术。
但在要求输出频率范围很宽而分辨力又很高的信号时,往往需要采取多锁相环路及小效分频等复杂方法和补偿措施。
这种思路不仅结构复杂,可靠性低,而且成本高,很不利于其推广。
美国推出的直接数字式频率合成器(Direct Distal Synthesizer,简称DDS) 利用单片DDS芯片加D/A变换器、低通滤波器(LPF)便可输出高分辨力、宽频率范围的正弦信号。
它直接从相位出发合成所需的波形。
其建立在采样定理的基础上,首先对需要产生的波形进行采样,将采样值数字化后存入存储器作为查找表,然后再通过查表将数据读出,经过D/A转换器转换成模拟量,把存入的波形重新合成出来。
它具有频率切换速度快、频率分辨率高、相位可连续线性变化、生成的正弦/余弦信号正交特性等特点,并且其数字压控振荡器NCO的相位、幅度均得以数字化。
DDS如果和PLL相配合,可以极大地减小信号源的体积和复杂程度。
1.2 DDS的工作原理和电路结构D DS的工作原理是以数控振荡器的方式,产生频率、相位可控制的正弦波(SineWave)。
dds信号发生器原理DDS信号发生器原理DDS信号发生器,即直接数字频率合成技术(Direct Digital Synthesis),是一种用于产生高精度、高稳定度的周期性信号的设备。
它广泛应用于电子测试、通信、测量以及科学研究等领域。
本文将从原理的角度介绍DDS信号发生器的工作原理及其优势。
一、原理概述DDS信号发生器的原理基于数字频率合成技术,它通过数字方式产生信号,相比于传统的模拟方式,在频率和相位的精度、调制能力等方面具有更大的优势。
其基本原理如下:1. 频率控制器:DDS信号发生器内部有一个频率控制器,它用于确定输出信号的频率。
频率控制器通常由一个晶振或参考信号源提供参考频率,然后经过频率分频器、多路选择器等模块,最终生成所需的输出频率。
2. 数字信号发生器:DDS信号发生器内部还有一个数字信号发生器,它用于产生数字信号。
数字信号发生器通常由一个相位累加器和一个查表器组成。
相位累加器负责累加相位,查表器根据累加器的值查找对应的幅值,从而实现信号的产生。
3. 数模转换器:DDS信号发生器的输出通常是一个数字信号,为了将其转换为模拟信号,需要通过一个数模转换器。
数模转换器将数字信号转换为模拟信号,然后经过滤波器等模块进行进一步处理,最终得到所需的模拟输出信号。
二、工作原理DDS信号发生器的工作原理可以分为以下几个步骤:1. 设置频率:用户通过界面或命令设置所需的输出频率,这个频率会被输入到频率控制器中。
2. 相位累加:频率控制器接收到用户设置的频率后,将其转换为相位累加的速度。
相位累加器开始从初始相位开始逐渐累加,累加的速度由频率控制器控制。
3. 查表输出:相位累加器的输出值会作为查表器的输入,查表器根据输入值在查表表格中查找对应的幅值,并输出。
4. 数模转换:查表器的输出是一个数字信号,为了得到模拟输出信号,需要通过数模转换器进行转换。
数模转换器将数字信号转换为模拟信号,并经过滤波器等模块进行进一步处理。
DDS移相信号发生器设计一、实验目的1.会用VHDL语言编写加法器、寄存器、以及本实验的主程序;2.能够用Quartus II软件生成PLL20和SIN_ROM元件;3.熟练掌握本次实验的波形仿真、引脚锁定、编程下载;4.透彻的理解本次实验的VHDL的含义以及其需要实现的功能,做好硬件测试工作;5.熟练地掌握实验室里示波器的使用。
二、实验原理FWORD是8位频率控制字,控制输出信号的频率;PWORD是8位相移控制字,控制输出信号的相移量;ADDER32B和ADDER10B分别为32位和10位加法器;SIN_ROM是存放正弦波数据的ROM,10位数据线,10位地址线,其中的数据文件是LUT10X10.mif,REG32B和REG10B 分别是32位和10位寄存器;POUT和FOUT分别为10位输出,可以分别与两个高速D/A相接,它们分别输出参考信号和可移相正弦信号。
三、实验内容1.完成10位输出数据宽度的移相信号发生器设计,要求使用锁相环,设计正弦波形数据MIF文件,给出仿真波形,最后进行硬件测试。
2.修改设计,增加幅度控制电路。
3.将此信号发生器改成具有扫频功能的波形发生器,扫速可数控,点频扫频可控。
四、实验步骤1.创建本次实验所在的文件夹在桌面创建一个文件夹,取名为DDS。
2.创建工程File->New Project Wizard(具体的参数设置如下图所示)3.使用VHDL语言编写代码先创建编写VHDL语言的文本,编写好代码之后保存,保存的名称即实体名。
File->New编写好的代码如下:主代码(DDS):library ieee;useieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity DDS isport(CLK2: IN STD_LOGIC;CLK_DA: OUT STD_LOGIC;FWORD: IN STD_LOGIC_VECTOR(7 DOWNTO 0);PWORD: IN STD_LOGIC_VECTOR(7 DOWNTO 0);FOUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0);POUT :OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END;ARCHITECTURE one OF DDS ISCOMPONENT PLL20PORT(inclk0 : in STD_LOGIC :='0';c0 : OUT STD_LOGIC);END COMPONENT;COMPONENT REG32BPORT(LOAD : IN STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0));END COMPONENT;COMPONENT REG10BPORT(LOAD : IN STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(9 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END COMPONENT;COMPONENT ADDER32BPORT(A : IN STD_LOGIC_VECTOR(31 DOWNTO 0);B : IN STD_LOGIC_VECTOR(31 DOWNTO 0);S : OUT STD_LOGIC_VECTOR(31 DOWNTO 0));END COMPONENT;COMPONENT ADDER10BPORT(A : IN STD_LOGIC_VECTOR(9 DOWNTO 0);B : IN STD_LOGIC_VECTOR(9 DOWNTO 0);S : OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END COMPONENT;COMPONENT SIN_ROMPORT(address : IN STD_LOGIC_VECTOR(9 DOWNTO 0);clock : IN STD_LOGIC;q : OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END COMPONENT;SIGNAL CLK : STD_LOGIC;SIGNAL F32B : STD_LOGIC_VECTOR(31 DOWNTO 0);SIGNAL D32B : STD_LOGIC_VECTOR(31 DOWNTO 0);SIGNAL DIN32B : STD_LOGIC_VECTOR(31 DOWNTO 0);SIGNAL P10B : STD_LOGIC_VECTOR(9 DOWNTO 0);SIGNAL LIN10B : STD_LOGIC_VECTOR(9 DOWNTO 0);SIGNAL SIN10B : STD_LOGIC_VECTOR(9 DOWNTO 0);SIGNAL DOUT : STD_LOGIC_VECTOR(9 DOWNTO 0);SIGNAL DIN : STD_LOGIC_VECTOR(31 DOWNTO 0);BEGINF32B(27 DOWNTO 20)<=FWORD;F32B(31 DOWNTO 28)<="0000";F32B(19 DOWNTO 0)<="00000000000000000000";P10B(9 DOWNTO 2)<=PWORD;P10B(1 DOWNTO 0)<="00";CLK_DA <= CLK;u1:ADDER32B PORT MAP(A=>F32B,B=>D32B,S=>DIN32B);u2:REG32B PORT MAP (DOUT=>D32B,DIN=>DIN32B,LOAD=>CLK);u3:SIN_ROM PORT MAP(address=>SIN10B,q=>FOUT,clock=>CLK);u4:ADDER10B PORT MAP(A=>P10B,B=>D32B(31 DOWNTO 22),S=>LIN10B);u5:REG10B PORT MAP(DOUT=>SIN10B,DIN=>LIN10B,LOAD=>CLK);u6:SIN_ROM PORT MAP(address=>D32B(31 DOWNTO 22),q=>POUT,clock=>CLK); u7:PLL20 PORT MAP(inclk0=>CLK2,c0=>CLK);END;其中的例化语句中调用的各类器件代码如下:ADDER32B:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDER32B ISPORT(A : IN STD_LOGIC_VECTOR(31 DOWNTO 0);B : IN STD_LOGIC_VECTOR(31 DOWNTO 0);S : OUT STD_LOGIC_VECTOR(31 DOWNTO 0));END;ARCHITECTURE bhv OF ADDER32B ISBEGINS <= A + B;END;ADDER10B:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDER10B ISPORT(A : IN STD_LOGIC_VECTOR(9 DOWNTO 0);B : IN STD_LOGIC_VECTOR(9 DOWNTO 0);S : OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END;ARCHITECTURE bhv OF ADDER10B ISBEGINS <= A + B;END;REG32B:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B ISPORT(LOAD : IN STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0));END;ARCHITECTURE bhv OF REG32B ISSIGNAL Q1 : STD_LOGIC_VECTOR(31 DOWNTO 0);BEGINPROCESS(LOAD,Q1)BEGINIF LOAD'EVENT AND LOAD ='1'THEN Q1 <= DIN;END IF;END PROCESS;DOUT <= Q1;END;REG10B:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG10B ISPORT(LOAD : IN STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(9 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END;ARCHITECTURE bhv OF REG10B ISSIGNAL Q1 : STD_LOGIC_VECTOR(9 DOWNTO 0);BEGINPROCESS(LOAD,Q1)BEGINIF LOAD'EVENT AND LOAD ='1'THEN Q1 <= DIN;END IF;END PROCESS;DOUT <= Q1;END;其中的SIN_ROM和PLL20则是通过Quartus II软件定制得来的,其定制方法如下:SIN_ROM的定制:PLL20的定制:4.创建波形文件并仿真1)创建波形文件:File->New2)添加节点:3)选择节点,设置各节点的输入信号,设置好后的图形如下:4)仿真,仿真后的结果如下:5.引脚锁定,仿真成功后进行引脚锁定:Assignments->Pin planner,设置好引脚后如下图:然后在次全编译主程序:Processing->Start Compilation(快捷键:Ctrl+L) 6.进行硬件下载:Tools->Programmer,按照下图的参数进行设置,然后下载即可五、实验总结1.实验结果:通过观察示波器上的波形,可以得到我们预期的试验结果。