正弦信号发生器设计
正弦信号发生器的设计实验报告(2013070619)

正弦信号发生器的设计
一、实验目的
1、进一步熟悉QuartusII软件的使用,掌握可编程器件的开发设计的过程。
2、掌握QuartusII中国宏模块的使用方法,重点是LMP_ROM与FPGA硬件资源的使用方法。
3、进一步熟悉GW48-PK2 EDA实验系统。
二、实验内容
采用图形输入方法完成以下正弦信号发生器的设计。
其中6为二进制加法计数器采用兆功能库的arithmetic中的lpm_counter来实现。
ROM元件采用storage中的lpm_rom实现。
ROM数据表中的正弦信号为64字节。
操作如下:
1、新建工程文件,取名为SIN。
2、创建初始化文件,为SIN.mif。
3、建立LPM_ROM.
4、建立LPM_COUNTER文件
5、绘制电路图及编译
6、仿真波形的建立与存盘
7、仿真波形前的检查、仿真,检查结果
8、波形仿真前的检查,进行仿真,检查结果。
9、绑定管脚,进行仿真
10、下载程序,在实验箱上验证结果。
11、重复前面的步骤,设计多波形的信号发生器。
(老师对不起,由于我实验的照片找不到了,就借用了同学的多波形的图片。
)。
基于DSP设计正弦信号发生器

基于DSP设计正弦信号发生器一.设计目的设计一个基于DSP的正弦信号发生器二.设计内容利用基于CCS开发环境中的C54X汇编语言来实现正弦信号发生装置。
三.设计原理一般情况,产生正弦波的方法有两种:查表法和泰勒级数展开法。
查表法是使用比较普遍的方法,优点是处理速度快,调频调相容易,精度高,但需要的存储器容量很大。
泰勒级数展开法需要的存储单元少,具有稳定性好,算法简单,易于编程等优点,而且展开的级数越多,失真度就越小。
本文采用了泰勒级数展开法。
一个角度为θ的正弦和余弦函数,可以展开成泰勒级数,取其前5项进行近似得:式中:x为θ的弧度值,x=2πf/fs(fs是采样频率;f是所要发生的信号频率。
正弦波的波形可以看作由无数点组成,这些点与x轴的每一个角度值相对应,可以利用DSP处理器处理大量重复计算的优势来计算x轴每一点对应的y的值(在x轴取N个点进行逼近)。
整个系统软件由主程序和基于泰勒展开法的SIN子程序组成,相应的软件流程图如图。
三.总体方案设计本设计采用TMS320C54X系列的DSP作为正弦信号发生器的核心控制芯片。
通过计算一个角度的正弦值和余弦值程序可实现正弦波,其步骤如下:1.利用sinx和cosx子程序,计算0°~45°(间隔为0.5°)的正弦和余弦值2.利用sin(2x)=2sin(x)cos(x)公式,计算0°~90°的正弦值(间隔为1°)3.通过复制,获得0°~359°的正弦值4.将0°~359°的正弦值重复从PA口输出,便可得到正弦波四.软件操作DSP 集成开发环境 CCS是 Code Composer Studio 的缩写,即代码设计工作室。
它是 TI 公司推出的集成可视化 DSP 软件开发工具。
DSP CCS 内部集成了以下软件工具:◆ DSP 代码产生工具(包括 DSP 的 C 编译器、汇编优化器、汇编器和链接器)◆ CCS 集成开发环境(包括编辑、建立和调试 DSP 目标程序)◆ 实时基础软件 DSP/BIOS (必须具有硬件开发板)◆ RTDX、主机接口和 API(必须具有硬件开发板)在 CCS 下,用户可以对软件进行编辑、编译、调试、代码性能测试(profile)和项目管理等工作。
基于fpga的dds正弦信号发生器的设计和实现

基于FPGA的DDS正弦信号发生器的设计和实现引言在电子领域中,正弦信号是一种重要的基础信号,被广泛应用于通信、音频、视频等各个领域。
而DDS(Direct Digital Synthesis)直接数字合成技术则是一种通过数字方式生成高精度、高稳定性的正弦波信号的方法。
本文将详细介绍基于FPGA的DDS正弦信号发生器的设计和实现。
设计目标本次设计旨在实现一个可配置频率范围广泛且精度高的DDS正弦信号发生器。
具体设计目标如下: 1. 实现频率范围可调节,覆盖从几Hz到数十MHz; 2. 提供高精度的频率控制,满足特定应用场景对频率稳定性和相位精度的要求; 3. 支持模数转换器(DAC)输出,并能够通过外部接口控制输出幅值; 4. 使用FPGA作为主要硬件平台,以满足高速计算和灵活配置需求。
系统架构基于FPGA的DDS正弦信号发生器主要由以下几个部分组成: 1. 数字控制模块(Digital Control Module):负责接收外部输入的频率、相位和幅值等参数,并将其转换为对DDS核心模块的控制信号; 2. DDS核心模块(DDS Core Module):根据接收到的控制信号,通过数学运算生成正弦波形的离散采样值; 3. 数字模拟转换模块(Digital-to-Analog Converter, DAC):将DDS核心模块输出的数字采样值转换为模拟电压信号; 4. 输出放大器(Amplifier):用于放大DAC输出的电压信号,并通过外部接口提供可调节幅值的正弦波输出。
DDS核心模块设计DDS核心模块是整个系统中最关键的部分,它负责根据输入参数生成正弦波的离散采样值。
下面是DDS核心模块设计中需要考虑的几个关键要素:相位累加器相位累加器是DDS核心模块中最基础且重要的组件之一。
它根据输入的频率和时钟信号,在每个时钟周期内累加相位增量,从而实现相位连续变化。
相位累加器可以使用一个定点数或浮点数寄存器来表示,并通过固定步长进行相位递增。
EDA正弦波信号发生器的设计

利用LPM 设计正弦信号发生器一、设计目的:进一步熟悉maxplu sII 及其LPM 设计的运用。
二、设计要求:1、利用原理图输入方式。
2、信号数据点值自行想法实现。
3、得出正确时序仿真文件。
三、设计原理:图1 正弦信号发生器结构框图图1所示的正弦波信号发生器的结构由三部分组成计数器或地址发生器(这里选择8位),正弦信号数据ROM (8位地址线,8位数据线),含有256个8位数据(一个周期)。
四、VHDL 顶层设计。
设计步骤:1、建立.mif 格式文件建立C 语言文件sin.cpp ,运行产生sin.exe 文件。
sin.cpp 程序代码:#include <iostream>#include <cmath>#include <iomanip>using namespace std;int main(){int i;float s;VHDL 顶层设计sin.vhd8位计数器 (地址发生器) 正弦波数据 存储ROM 产生波形数据cout<<"WIDTH=8;\nDEPTH=256;\n\nADDRESS_RADIX=HEX;\nDA TA_R ADIX=HEX;\n\nCONTENT\nBEGIN\n";for(i=0;i<256;i++){s=sin(atan(1)*8*i/256);cout<<" "<<i<<" : "<<setbase(16)<<(int)((s+1)*255/2)<<";"<<endl;}cout<<"END"<<endl;return 0;}把上述程序编译后,在DOS命令行下执行命令:sin.exe > sin.mif;将生成的sin.mif 文件。
vhdl语言正弦波信号发生器设计

AS正弦波信号发生器设计一、实验内容1.设计一正弦信号发生器,采用ROM进行一个周期数据存储,并通过地址发生器产生正弦信号。
(ROM:6位地址8位数据;要求使用两种方法:VHDL编程和LPM)2.正弦信号六位地址数据128,140,153,165,177,188,199,209,219,227,235,241,246,250,253,255,255,254,252,248,244,238,231,223,214,204,194,183,171,159,147,134,121,109,96,84,72,61,51,41,32,24,17,11,7, 3,1,0,0,2,5,9,1420,28,36,46,56,67,78,90,102,115,127。
二、实验原理正弦波信号发生器是由地址发生器和正弦波数据存储器ROM两块构成,输入为时钟脉冲,输出为8位二进制。
1.地址发生器的原理地址发生器实质上就是计数器,ROM的地址是6位数据,相当于64位循环计数器。
2.只读存储器ROM的设计(1)、VHDL编程的实现①基本原理:为每一个存储单元编写一个地址,只有地址指定的存储单元才能与公共的I/O相连,然后进行存储数据的读写操作。
②逻辑功能:地址信号的选择下,从指定存储单元中读取相应数据。
(2)、基于LPM宏功能模块的存储器的设计①LPM:Library of Parameterized Modules,可参数化的宏功能模块库。
②Quartus II提供了丰富的LPM库,这些LPM函数均基于Altera器件的结构做了优化处理。
③在实际的工程中,设计者可以根据实际电路的设计需要,选择LPM库中适当的模块,并为其设置参数,以满足设计的要求,从而在设计中十分方便的调用优秀的电子工程技术人员的硬件设计成果。
三、设计方案1.基于VHDL编程的设计在地址信号的选择下,从指定存储单元中读取相应数据系统框图如下:2.基于LPM宏功能模块的设计LPM宏功能具有丰富的由优秀的电子工程技术人员设计的硬件源代码可供调用,我们只需要调用其设计的模块并为其设计必要的参数即可。
EDA实验-正弦波信号发生器设计

实验八正弦信号发生器的设计一、实验目的1、学习用VHDL设计波形发生器和扫频信号发生器。
2、掌握FPGA对D/A的接口和控制技术,学会LPM_ROM在波形发生器设计中的实用方法。
二、实验仪器PC机、EDA实验箱一台Quartus II 6.0软件三、实验原理如实验图所示,完整的波形发生器由4部分组成:• FPGA中的波形发生器控制电路,它通过外来控制信号和高速时钟信号,向波形数据ROM 发出地址信号,输出波形的频率由发出的地址信号的速度决定;当以固定频率扫描输出地址时,模拟输出波形是固定频率,而当以周期性时变方式扫描输出地址时,则模拟输出波形为扫频信号。
•波形数据ROM中存有发生器的波形数据,如正弦波或三角波数据。
当接受来自FPGA的地址信号后,将从数据线输出相应的波形数据,地址变化得越快,则输出数据的速度越快,从而使D/A输出的模拟信号的变化速度越快。
波形数据ROM可以由多种方式实现,如在FPGA外面外接普通ROM;由逻辑方式在FPGA中实现(如例6);或由FPGA中的EAB模块担当,如利用LPM_ROM实现。
相比之下,第1种方式的容量最大,但速度最慢;,第2种方式容量最小,但速度最最快;第3种方式则兼顾了两方面的因素;• D/A转换器负责将ROM输出的数据转换成模拟信号,经滤波电路后输出。
输出波形的频率上限与D/A器件的转换速度有重要关系,本例采用DAC0832器件。
DAC0832是8位D/A转换器,转换周期为1µs,其引脚信号以及与FPGA目标器件典型的接口方式如附图2—7所示。
其参考电压与+5V工作电压相接(实用电路应接精密基准电压).DAC0832的引脚功能简述如下:•ILE(PIN 19):数据锁存允许信号,高电平有效,系统板上已直接连在+5V上。
•WR1、WR2(PIN 2、18):写信号1、2,低电平有效。
•XFER(PIN 17):数据传送控制信号,低电平有效。
•VREF(PIN 8):基准电压,可正可负,-10V~+10V.•RFB(PIN 9):反馈电阻端。
实验九定制LPM_ROM设计简单的正弦信号发生器

定制LPM_ROM设计简单的正弦信号发生器
实验名称:利用定制好的LPM_ROM设计简单的正弦信号发生器。
实验过程:
1:LPM_ROM的定制
图1 调用LPM_ROM
图2 LPM_ROM的参数设置
图3 加入初始化文件配置
2:LPM_ROM的仿真测试
图4 LPM_ROM仿真测试
3:波形分析
由图4可以看出,随着CLK的上升沿的出现,对应地址A的数据输出与初始化文件的数据完全吻合,实验得证。
再利用次模块完成一个简单的正弦信号发生器设计,该模块可以用来作为地址信号发生器(7位输出)和数据存储器(7位地址线,8位数据线),含有128个8位波形数据(一个正弦波形周期)。
4:正弦信号发生器的VHDL顶层设计
包括了对定制LPM_ROM时文件模块ROM78的例化调用。
图5 正弦信号发生器的VHDL描述
图6正弦信号发生器的仿真波形输出
5:波形分析
随着每个时钟上升沿的到来,输出端口将正弦波数据依次输出。
输出的数据与初始化配置文件相符。
6:观察RTL图
图7 正弦信号发生器的RTL电路图
分析:其中左边三个元件:加法器,寄存器构成7位计数器:其输出接右边ROM的地址输入端。
输出可接FPGA外的DAC,完成正弦波形输出。
实验结论:作为数据和程序的存储单位,ROM还有很多其他用处,如数字信号发生器的波形数据存储器,正弦信号发生器等。
正弦波信号发生器电压跟随器设计

正弦波信号发生器电压跟随器设计
设计一个正弦波信号发生器电压跟随器需要
确定电路拓扑:选择合适的电路拓扑,常用的拓扑包括运放反相放大器、非反相放大器或振荡器电路。
选择运放:选择一个合适的运放作为信号发生器电压跟随器的核心元件。
常用的运放包括通用运放放大器(Op-Amp)或运算放大器(OA)。
设计反馈电路:为了实现电压跟随功能,需要设计适当的反馈电路。
可以选择负反馈电路,如反相放大器或非反相放大器,以便输出电压与输入信号保持一致。
确定放大倍数:根据需求确定所需的电压放大倍数。
这取决于所需的输出电压幅度和输入信号的幅度。
选择合适的元件:根据设计要求选择合适的电阻、电容和其他元件。
确保它们的额定值能够满足电路的要求。
进行仿真和调试:使用电路仿真软件,如LTSpice或Multisim,对设计进行仿真。
检查输出波形是否为正弦波,并调整电路参数以满足要求。
PCB布局和制造:根据设计结果进行PCB布局,并制造电路板。
确保布局合理,减少信号干扰和噪声。
调试和测试:将制造好的电路连接到电源,并通过示波器检查输出波形是否符合要求。
根据需要进行调试,如调整电路参数或更换元件。
优化和改进:根据测试结果,对电路进行优化和改进。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
正弦信号发生器设计方案
1 引言
为了精确地输出正弦波、调幅波、调频波、PSK及ASK等信号,并依据直接数字频率合成(Direct Digital FrequencySvnthesizer,简称DDFS)技术及各种调制信号相关原理,设计了一种采用新型DDS器件产生正弦波信号和各种调制信号的设计方法。
采用该方法设计的正弦信号发生器已广泛用于工程领域,且具有系统结构简单,界面友好等特点。
2 系统总体设计方案
图1给出系统总体设计方框图,它由单片机、现场可编程门阵列(FPGA)及其外围的模拟部分组成。
在FPGA的内部数字部分中,利用FPGA内部的总线控制模块实现与键盘扫描、液晶控制等人机交互模块的通信,并在单片机与系统工作总控制模块之间的交互通信中起桥梁作用。
系统工作总控制可统一控制各个时序模块;各时序模块用于完成相应的控制功能。
在模拟部分中,利用无源低通滤波器及放大电路,使AD9851型DDS模块的输出信号成为正弦波和FM调制信号;再利用调幅电路,使FPGA内部DDS模块产生的信号与AD9851输出的载波信号变为调幅信号,同时在基带码控制下通过PSK/ASK调制电路得到PsK和ASK信号。
最后,各路信号选择通道后,经功率放大电路驱动50Ω负载。
3 理论分析与计算
3.1 调幅信号
调幅信号表达式为:
式中:ω0t,ωt分别为调制信号和载波信号的角频率;MA为调制度。
令V(O)=Vocos(ω0t),V(ω)=MAcos(ωt),则V(t)=V(O)+V(O)V(ω)。
故调幅信号可通过乘法器和加法器得到;通过改变调制信号V(ω)的幅值改变MA,V(ω)的范围为0.1~l V,MA对应为10%~100%。
3.2 调频信号
采用DDS调频法产生调频信号,具体实现方法:通过相位累加器和波形存储器在FPGA内部构成一个DDS模块,用于产生1 kHz的调制信号。
其中,波形存储器的数据即为调制信号的幅度值。
将这些表示幅度值的数据直接与中心频率对应的控制字相加,即可得到调频信号的瞬时频率控制字,再按调制信号的频率切换这些频率控制字,即可得到与DDS模块输出相对应的调频信号。
3.3 PSK和ASK信号
ASK信号是振幅键控信号,可用一个多路复用器实现。
当控制信号为1时,选择载波信号输出;当控制信号为0时,不选择载波信号输出;当控制信号由速率为10 Kb/s的数字脉冲序列给出时,可以产生ASK信号。
PSK信号是移相键控信号,这里只产生二相移相键控,即BPSK信号。
它的实现方法与ASK基本相同,只是在控制信号为0时,选择与原载波信号倒相的输出信号,该倒相信号可由增益倍数为l的反相放大电路实现。
4 主要功能电路设计
图2给出调幅电路。
它采用ADI公司的乘法器AD835实现。
该器件内部自带加法器,可直接构成调幅电路。
图3给出PSK/ASK电路。
它主要由多路复用器和移相器构成。
其中,移相器采用Maxim公司的高速运算放大器MAX477所构成的反相放大电路实现,多路复用器采用ADI公司的AD7502。
当两条通道选择控制线A1AO为ll时,输出原信号;当A1A0为00时,输出原信号的反相信号;当A1A0为01时,无信号输出。
这样只要FPGA按固定速率通过Al和AO两条控制线给出基带序列信号,就能相应输出PSK和ASK信号。
FPGA内部DDS调频电路由分频器、累加器、ROM和AD985l时序控制电路构成。
分频器用于得到20 kHz的信号,作为AD985l控制字的切换频率;ROM中存储了1 kHz的正弦波表,接收累加器给出的控制字切换信号,同时向AD985l时序控制模块发送频偏控制字;AD985l时序控制电路根据中心频率并结合频偏控制字向AD985l器件发送频率控制字,以实现DDS调频。
功率放大电路由ADI公司的高速运算放大器AD811和T1公司的缓冲器BUF*构成,如图4所示。
AD8ll采用同相放大器接法,将输入信号放大到电压峰峰值为6 V;后级缓冲电路用于提供足够的输出电流,使负载的输出电压峰值稳定在6 V。
由于AD81l的输出电流较大,所以在AD811与缓冲器之间串接了一只l kΩ的电阻用于限流。
电路调试时发现.输出高频信号有衰减。
经过分析获知,主要原因在于后级缓冲器有8 pF的等效输入电容(见图4中虚线),该电容影响电路的高频响应。
于是在AD811输出与BUF*输入之间接入了一只330nF的补偿电容,补偿后的电路高频响应效果良好。
5 系统软件设计
该系统软件采用结构化和层次化的设计方法。
前者指相应的基本功能模块利用底层处理该系统较好地完成了预期的各项功能和指标。
正弦波的输出频率范围为l kHz~10 MHz,在其内频率稳定度为10~4;调频波的输出频率范围为100 kHz~10 MHz,在其内最大频偏可分为5 kHz/10 kHz二级程控调节;调幅波的输出频率范围为l~10 MHz,在其内调制度可在10%~100%之间程控调节,且步进为10%;ASK及PSK信号则通过移相电路和多路复用器的结合,在FPGA给出的基带序列信号控制下产生。
(国外电子元器件作者:马海洋,曾真,徐广嵌)
该系统测试主要由高频毫伏表、频率计、示波器完成。
其中,高频毫伏表测试输出信号峰值;频率计测试输出信号的频率;示波器用于测试正弦波、调幅波、调频波、PSK以及ASK等信号波形。
这里选取1 kHz,lO kHz,100 kHz,l MHz 和10 MHz这5个频率点对正弦信号发生器进行测试,将实际频率与预置频率相比较,得到各频率点的相对误差均小于0.05‰。
其中100 kHz和10 MHz处的相对误差小于0.02‰;5个频率点所对应正弦信号的电压峰值分别为6.28 V,6.25 V,6.10 V,5.90 V,5.60 V。
整个程序以按键中断为主线,分为正弦波、调幅波、调频波、键控波4种输出模式和1个复位模式。
在不同的模式下分别执行相应的子程序,最后分别向FPGA写入相应的控制字。
模块功能。
最后由主程序调用全功能模块构建系统。
图5给出程序流程图。
子程序所处理的数据,向上层全功能模块提供处理后的数据;后者指利用前者的接口完成该模块功能。
最后由主程序调用全功能模块构建系统。
图5给出程序流程图。
整个程序以按键中断为主线,分为正弦波、调幅波、调频波、键控波4种输出模式和1个复位模式。
在不同的模式下分别执行相应的子程序,最后分别向FPGA写入相应的控制字。
6 测试数据
该系统测试主要由高频毫伏表、频率计、示波器完成。
其中,高频毫伏表测试输出信号峰值;频率计测试输出信号的频率;示波器用于测试正弦波、调幅波、调频波、PSK以及ASK等信号波形。
这里选取1 kHz,lO kHz,100 kHz,l MHz 和10 MHz这5个频率点对正弦信号发生器进行测试,将实际频率与预置频率相比较,得到各频率点的相对误差均小于0.05‰。
其中100 kHz和10 MHz处的相对误差小于0.02‰;5个频率点所对应正弦信号的电压峰值分别为6.28 V,6.25 V,6.10 V,5.90 V,5.60 V。
7 结语
该系统较好地完成了预期的各项功能和指标。
正弦波的输出频率范围为l kHz~10 MHz,在其内频率稳定度为10~4;调频波的输出频率范围为100 kHz~10 MHz,在其内最大频偏可分为5 kHz/10 kHz二级程控调节;调幅波的输出频率范围为l~10 MHz,在其内调制度可在10%~100%之间程控调节,且步进为10%;ASK及PSK信号则通过移相电路和多路复用器的结合,在FPGA给出的基带序列信号控制下产生。
(国外电子元器件作者:马海洋,曾真,徐广嵌)。