基于Matlab_DSP Builder的正弦信号发生器设计

合集下载

基于DSP的正弦信号发生器的设计

基于DSP的正弦信号发生器的设计

软件设计
正弦波子程序流程图 :
软件设计
调幅和调相流程图: 调幅和调相流程图:
汇报内容
• • • • • • 背景 正弦波信号发生器的几种实现方法比较 正弦波信号发生器的数字实现 硬件设计 软件设计 结论
结论
文中分析了正弦波的产生原理,并给出了硬 件电路和软件编写流程;设计了一个更好的 实现人机对话的正弦波信号发生器,给出了 显示和键盘的接口电路。该设计改进了传统 的需要用软件界面来输入幅值和频率值的方 法,更方便的实现调节输出波形的幅值和频 率值。
正弦波信号发生的数字实现 产生正弦波的方法有两种:
查表法。 优点:处理速度快;调频调相容易。 不足:要得到较高的精度,存储空间足够大以存放 查找表。 适用:对精度要求不高的场合。 泰勒级数展开法。 优点:需要的存储单元很少;精度高;展开的级数 越多,失真度就越小;调频调相易。 不足:处理速度慢。
正弦波信号发生的数字实现
硬件设计
DSP与LCD显示和键盘连接电路: DSP与LCD显示和键盘连接电路: 显示和键盘连接电路
硬件设计
键盘电路:
汇报内容
• • • • • • 背景 正弦波信号发生器的几种实现方法比较 正弦波信号发生器的数字实现 硬件设计 软件设计 结论
软件设计
主程序流程图: 主程序流程图:
设计采用采用模块化思路来编写,包括主程序、 设计采用采用模块化思路来编写,包括主程序、正 采用模块化思路来编写 弦波产生程序、调幅和调相子程序等功能子程序。 弦波产生程序、调幅和调相子程序等功能子程序。
性差,波形精度不够高且用较多硬件等。
正弦波信号发生器的几种实现方法比较
基于DSP的正弦波信号发生器:
组成:DSP处理芯片、 D/A转换器等。 优点:可程控调幅、调频,调节精度高,实

基于Matlab_DSP Builder的正弦信号发生器设计

基于Matlab_DSP Builder的正弦信号发生器设计

基于Matlab/DSP Builder的正弦信号发生器设计引言近年来随着通信技术的不断发展,信号的正确传输显得日益重要,也就是说要有一个可靠的能产生稳定确信号的发生器,基于Matlab/DSP Builder的正弦信号发生器是利用Matlab/DSP Builder的模块进行的模快化设计,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了、易懂、易学。

使硬件在软件的控制下协调运作。

DSP Builder可以帮助设计者完成基于FPGA的DSP系统设计设计,除了图形化的系统建模外,还可以完成及大部分的设计过程和仿真,直至将设计文件下载到DSP开发板上。

此次实验的目的就是将两者的优势有机的结合在一起,利用DSP的优势开发正弦信号发生器。

在设计中主要采用DSP Builder库中的模块进行系统的模型设计,然后再进行Simulink仿真。

1.设计思想1.1 DSP Builder特点DSP Builder系统级(或算法级)设计工具,它架构在多个软件工具之上,并把系统级(算法仿真建模)和RTL(硬件实现)两个领域的设计工具连接起来,最大程度的发挥了两种工具的优势。

DSP Builder依赖于MathWorks公司的数学分析工具Matlab/Simulink,可以在Simulink中进行图形化设计和仿真,同时又通过Signal Compilder把Matlab/Simulink的设计文件(.mdl)转换成相应的硬件描述语言VHDL设计文件(.vhd),以及用于控制和编译的tcl脚本。

而对后者的处理可以用Quartus II来实现。

1.2 QuartusII特点QuartusII提供了完整的多平台设计环境,能满足各种特定设计的需要,是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并且为Altera DSP开发包进行系统模型设计提供了集成综合环境。

QuartusII完全支持VHDL的设计流程,其内部嵌有VHDL逻辑综合器。

基于DSP设计正弦信号发生器

基于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)和项目管理等工作。

实验2 基于DSP Builder的信号发生器

实验2 基于DSP Builder的信号发生器

实验二基于DSP Builder的信号发生器丁晓明沈超北京交通大学2007-1-9目录1.信号发生器的功能 (5)2.各信号生成方法概述 (5)2.1.锯齿波信号的产生 (5)2.2.占空比可设的方波信号 (6)2.3.正余弦信号 (7)2.4.线性/二次调频信号 (9)3.各信号在DSP Builder下的具体实现 (11)3.1.锯齿波信号的产生 (11)[1]DSP Builder有效性测试 (11)[2]新建mdl文件 (12)[3]设置模型的配置参数 (12)[4]搭建锯齿波生成模型 (12)[5]各模块参数设置 (13)[6]运行模型,观测输出信号 (20)[7]模型验证 (20)3.2.占空比可设的方波信号 (21)[1]调用模块 (21)[2]各模块的参数设置 (21)[3]模型验证 (22)3.3.正余弦信号 (23)[1]余弦表的制作 (23)[2]地址信号的生成 (28)3.4.线性/二次调频信号 (36)[1]新建mdl文件 (36)[2]设置模型的配置参数 (36)[3]搭建chirp信号生成模型 (36)[4]模块参数设置 (37)[5]模型验证 (42)4.仿真模型转化为硬件模型 (45)4.1.调用相关模块 (45)4.2.转化参数设置,转化 ......................................................................................... 错误!未定义书签。

4.3.Quartus观测 (47)5.硬件模型的下载 (56)图表目录图1 锯齿波信号 (5)图2 锯齿波发生器 (6)图3 锯齿波发生器仿真结果 (6)图4 占空比可设的方波发生器 (7)图5 方波信号 (7)图6 正余弦信号发生器 (8)图7 典型的余弦信号 (8)图8 Chirp信号发生器 (11)图9 Chirp信号 (11)图10启动simulink ....................................................................................................... 错误!未定义书签。

正弦发生器模块方案

正弦发生器模块方案

SinCtrlAlteraDSPBuilderProductSignalTapII通过本例的学习可以掌握DSP Builder的使用方法。

这个简单的正弦波发生器,主要由4部分构成:IncCount是阶梯信号发生模块,产生一个按时钟线性递增的地址信号,送往SinLUT。

SinLUT是一个正弦函数值的查找表模块,由递增的地址获得正弦波的离散值输出。

由SinLUT输出的8位正弦波数据经过一个延时模块Delay后,送往Product乘法模块,与SinCtrl相乘,SinCtrl是一位输入,SinCtrl通过Product完成对正弦波输出有无的控制。

SinOut是整个正弦波发生器模块的输出,送往D/A即可获得正弦波模拟输出信号。

5.2.1建立设计模型<1)运行Matlab,Matlab的主窗口被分成3部分:Command Window、Workspace/Current Directory、Command History。

<2)建立工作目录。

在建立一个新的设计模型前,先要建立一个文件夹,作为工作目录,来保存相应的设计文件,在进行设计之前要先切换到该文件夹下。

新建和切换到工作目录可以在命令窗口中使用Matlab 命令,也可以在Current Directory窗口中实现。

<3)启动Simulink,建立模型。

在命令窗口中,键入Simulink,按回车键,启动Matlab图形化仿真工具Simulink,出现了Simulink Library Browser窗口,在窗口的左侧为Simulink Library 列表,右侧窗口显示的则是,被选中的库中的组件、子模块列表。

安装完DSP Builder之后,在Simulink 库列表中可以看到Altera DSP Builder的库出现在列表中。

在下面设计中,主要使用该库中的组件、模块来完成各项设计,再使用Simulink库来完成模型的仿真和验证。

选择File菜单,然后单击new,在弹出的子菜单中选择Model,出现了一个未命名的模型窗口。

基于DSP的正弦信号发生器

基于DSP的正弦信号发生器

基于DSP的正弦信号发生器1.正弦信号在各种科学和工程领域中广泛应用,如通信系统、音频处理、医学诊断等。

因此,制作一个能够生成正弦信号的设备是非常必要的。

传统的方法是使用模拟电路,但这种方法需要用到很多电子元器件,难以控制和调整。

同时,传统的模拟电路还容易受到电磁干扰、温度等环境因素的影响,导致输出的信号失真。

因此,数字信号处理(DSP)技术逐渐成为生成正弦波信号的常见方法,能够实现高精度、低失真的输出。

2. 设计概述本文介绍一种基于DSP的正弦信号发生器的设计。

该设计采用TMS320C5505数字信号处理芯片和信号解调电路,通过软件和硬件设计,实现了一个高精度、低失真的正弦信号发生器。

2.1 硬件设计本设计采用了TMS320C5505数字信号处理器集成电路作为主控芯片。

该芯片具有低功耗、高性能、灵活性和易于开发等优点。

除此之外,还需要电源模块、时钟模块、信号解调模块等。

2.2 软件设计本设计采用了C语言进行程序设计。

使用Code Composer Studio作为开发环境,将程序编译后烧录到芯片中。

代码的主要实现过程为:1.生成一个只包含一周期正弦波形的信号2.将该信号送入DA(Digital to Analog)转换器,使其变为模拟信号3.经过信号解调器后输出到外部接口信号的生成采用的是Taylor级数展开,可以实现高精度的波形生成。

信号解调电路主要是由低通滤波器、防干扰电路和放大电路等模块组成。

3. 实验结果经过实验测试,本设计输出的正弦波信号的频率可以在0~10kHz范围内任意设定。

信号的失真率小于0.1%。

同时,本设计还支持正弦波的相位调节和幅度调节等功能。

通过外部的控制,可以实现信号的精准控制和调节。

4.本文介绍了一种基于DSP的正弦信号发生器的设计,通过使用数字信号处理技术,实现了高精度、低失真的正弦波信号的生成。

该设计具有灵活性和可扩展性,可以为各种科学和工程领域提供高精度的正弦信号源。

基于DSP的正弦波信号发生器(汇编语言)

基于DSP的正弦波信号发生器(汇编语言)

正弦波信号发生器一、实验目的1.了解用泰勒级数展开法计算角度正弦值和余弦值;2.了解产生正弦信号的方法;3.熟悉使用汇编语言编写较复杂的程序;4.熟悉在CCS 环境下计算角度正弦值和余弦值及产生正弦波的方法;二、实验原理泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。

正弦函数和余弦函数可以展开成泰勒级数,其表达式:递推公式: sin()2cos()sin[(1)]sin[(2)]cos()2cos()sin[(1)]cos[(2)]nx x n x n x nx x n x n x =---=--- 由递推公式可以看出,在计算正弦和余弦值时,需要已知cos(x )、sin(n -1)x 、sin(n -2)x 和cos(n -2)x 。

用这种方法求少数点还可以,如产生连续正弦波、余弦波,则积累误差太大,不可取。

下面主要用泰勒级数展开法求正弦和余弦值,以及产生正弦波的方法。

三、实验内容与步骤1.用泰勒级数展开法计算sin(x)的值;(1)在 CCS 中新建项目:sinx.pjt ,建立文件sinx.asm 、vectors.asm 和sinx.cmd 。

并将此三个文件加入到项目中。

******************************************************* 用泰勒级数开展开式计算一个角度的正弦值 **sin(x)=x(1-x*x/2*3(1-x*x/4*5(1-x*x/6*7(1-x*x/8*9))))*******************************************************.title "sinx.asm".mmregs .def startSTACK: .usect "STACK",10start: STM #STACK+10,SPLD #d_x,DPST #6487H,d_x ;x-->d_x CALLsin_start end:B end sin_start:35792222sin()3!5!7!9! 111123456789(((())))x x x x x x x x x x x =-+-+=----⨯⨯⨯⨯24682222cos()12!4!6!8! 11112345678((()))x x x x x x x x x =-+-+=----⨯⨯⨯.def sin_startd_coeff .usect "coeff",4.datatable: .word 01C7H ;c1=1/(8*9).word 030BH ;c2=1/(6*7).word 0666H ;c3=1/(4*5).word 1556H ;c4=1/(2*3)d_x .usect "sin_vars",1d_squr_x .usect "sin_vars",1d_temp .usect "sin_vars",1d_sinx .usect "sin_vars",1c_1 .usect "sin_vars",1.textSSBX FRCTSTM #d_coeff,AR5RPT #3MVPD #table,*AR5+STM #d_coeff,AR3STM #d_x,AR2STM #c_1,AR4ST #7FFFH,c_1SQUR *AR2+,A ;A=x^2ST A,*AR2 ;(AR2)=x^2||LD *AR4,B ;B=1MASR *AR2+,*AR3+,B,A ;A=1-x^2/72,T=x^2MPYA A ;A=T*A=x^2(1-x^2/72)STH A,*AR2 ;(d_temp)=x^2(1-x^2/72)MASR *AR2-,*AR3+,B,A ;A=1-x^2/42(1-x^2/72),T=x^2(1-x^2/72)MPYA *AR2+ ;B=x^2(1-x^2/42(1-x^2/72))ST B,*AR2 ;(d_temp)=x^2(1-x^2/42(1-x^2/72))||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/20(1-x^2/42(1-x^2/72))MPYA *AR2+ ;B=x^2(1-x^2/20(1-x^2/42(1-x^2/72)))ST B,*AR2 ;(d_temp)=B||LD *AR4,B ;B=1MASR *AR2-,*AR3+,B,A ;A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))MPYA d_x ;B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))STH B,d_sinx ;sin(theta)RET.end*******************************************************中断向量文件vectors.asm******************************************************.title "vectors.asm".ref start.sect ".vectors"B start.end*******************************************************链接命令文件******************************************************vectors.objsinx.obj-O sinx.out-m sinx.map-estartMEMORY{PAGE 0:EPROM: org=0090H,len=0F70HVECS: org=0080H,len=0010HPAGE 1:SPRAM: org=1000H,len=1000HDARAM: org=2000H,len=2000H}SECTIONS{.text :>EPROM PAGE 0.data :>EPROM PAGE 0STACK :>SPRAM PAGE 1sin_vars :>DARAM PAGE 1coeff :>DARAM PAGE 1.vectors :>VECS PAGE 0}(2)编译、链接项目文件sinx.pjt。

基于Matlab-DSP Builder多波形信号发生器的设计

基于Matlab-DSP Builder多波形信号发生器的设计

基于Matlab/DSP Builder 多波形信号发生器的设计
1 引言
传统的波形发生器多采用模拟分立元件实现,产生的波形种类要受到电
路硬件的限制,体积大,灵活性和稳定性也相对较差。

采用FPGA 器件直接实
现多种波形信号发生器,配以相应的外围器件实现的波形发生器具有设计简单、外围电路少、频率稳定性高、可靠性高、输出波形稳定、现场可编程等优点,
因而在现代电子设计中,常常采用FPGA 器件来实现多种波形信号发生器,利
用FPGA 实现多种波形信号发生器的方法也很多,但其设计方法均过于复杂,
要求设计人员对VHDL 语言要相当熟悉,才能编写相应的程序。

采用Matlab/DSP Builder 建立模型来实现多种波形信号发生器,其设计简单,不需要编程,也能根据需要设计出相应的多波信号发生器[1][2][4][6]。

2、多波信号发生器的数学模型
2.1 锯齿波的产生
在Matlab/Simulink 下,有一模块名叫Increment Decrement 模块,由于Increment Decrement 模块随着时间的变化而不断的从0 计数到255 ,到了255 后清0,接着又从0 开始计数这样周期性的产生锯齿波。

2.2 正弦波的产生
利用Increment Decrement 不断计数,根据计数找到查找表的地址取出里面的值,正弦函数的调用格式为Sin(【起始值:步进值:结束值】),该模块
为一个输入为6 位输出值为8 位的正弦查找表模块。

2.3 方波的产生
由于产生的正弦波的值从0 到255,我们可以使用一个比较器进行比较,根据比较值的大小产生占空比不同的方波,此处我们设置一个值为127 的常数,。

基于DSP Builder的高精度正弦信号发生器的设计

基于DSP Builder的高精度正弦信号发生器的设计

基于DSP Builder的高精度正弦信号发生器的设计闫璞【摘要】该文基于DSP Builder设计了一款新型高精度、高性能、宽频率范围的正弦信号发生器;通过DSP builder设计一个幅度调制模型使正弦波发生器产生的波形能够进行幅度调制.系统通过调试后,能成功产生正弦波形信号,其精度高、波形稳定、失真小.【期刊名称】《中国新技术新产品》【年(卷),期】2018(000)023【总页数】2页(P46-47)【关键词】信号发生器;DSP技术;DSP Builder【作者】闫璞【作者单位】兰州理工大学技术工程学院,甘肃兰州730050【正文语种】中文【中图分类】TN9110 前言在现代电子测量中,人们对于信号源的要求不断提高,除了频率准确度和稳定的要求外,还要求输出有较宽的频率范围和更高的稳定度和准确度。

本论文基于DSP Builder设计了一款新型高精度、高性能、宽频率范围的正弦信号发生器。

1 正弦信号发生器的预期要求及设计原理该文运用DSP Builder设计正弦波发生器和幅度调制器并将正弦波发生器产生的正弦波通过幅度调制器进行调制,预期达到的要求见表1。

表1 预期要求预期要求预期性能正弦波输出频率范围 10 Hz~10 MHz具有频率设置功能,频率步进 100 Hz输出信号频率稳定度优于10-4输出电压幅值无明显失真本设计中,为了一步步罗列DSP Builder 基于手动流程的的使用方法,我们列举了一个正弦波发生模块的设计,并且这个正弦波是可控的。

如图1所示是一个正弦波发生器。

图1 正弦波发生器模块原理图1.1 设计流程设计流程如下:1)打开 Matlab工作环境。

2)完成工作库的建立。

3)了解simulink 库管理器。

4)simulink 的模型文件。

5)放置 SignalCompiler。

6)添加 Increment Decrement模块。

7)设置 IncCount。

8)添加 SinLUT 模块:( LUT)。

DSP Builder设计初步

DSP Builder设计初步

11.4 基于DSP Builder的DDS设计
11.4.3 正交信号发生器设计
11.4 基于DSP Builder的DDS设计
11.4.3 正交信号发生器设计
11.4 基于DSP Builder的DDS设计
11.4.4 数控移相信号发生器设计 11.4.5 幅度调制信号发生器设计
11.4 基于DSP Builder的DDS设计
11.2 正弦信号发生器设计
11.2.1 建立设计模型 11.放置Product模块
11.2 正弦信号发生器设计
11.2.1 建立设计模型 12.放置输出端口sinOt
13. 设计文件存盘
11.2 正弦信号发生器设计
11.2.2 Simulink模型仿真 1.加入仿真步进模块
11.2 正弦信号发生器设计
11.2.2 Simulink模型仿真 2.添加波形观察模块并设置参数
11.2 正弦信号发生器设计
11.2.2 Simulink模型仿真 3.设置仿真激励
11.2 正弦信号发生器设计
11.2.2 Simulink模型仿真 3.设置仿真激励
11.2 正弦信号发生器设计
11.2.2 Simulink模型仿真 4.启动仿真
11.2.3 SignalCompiler使用方法 1.分析当前的模型
11.2 正弦信号发生器设计
11.2.3 SignalCompiler使用方法 2.设置SignalCompiler
11.2 正弦信号发生器设计
11.2.4 使用ModelSim进行RTL级仿真
11.2 正弦信号发生器设计
11.2.4 使用ModelSim进行RTL级仿真
第11章ห้องสมุดไป่ตู้

基于Matlab/DSP Builder任意波形信号发生器的两种设计

基于Matlab/DSP Builder任意波形信号发生器的两种设计

基于Matlab/DSP Builder 任意波形信号发生器的两种设计0 引言在当今的科技信息社会中,尤其是在电子设计和信号测试系统中,通常需要一些复杂、特定频率的信号,通常的信号发生器难以满足要求,市场上出售的一些任意信号发生器的价格昂贵,体积较大,不能满足实际的需要。

Altera DSP Builder 是一款系统级的设计工具,依赖于Mathworks 公司的数学分析工具Matlab/Simulink,可以在Sireulink 中进行图形化设计和仿真,同时又可以通过signalCompiler 把Matlab/Simulink 的模型文件(.mdl)转换成相应的硬件描述语言VHDL,本文用两种方法,即传统型的任意信号发生器和基于直接数字频率合成(DDS)的任意信号发生器,在DSPBuilder 的开发工具下实现任意信号发生器的设计,不涉及到编程,操作简单。

1 传统型任意信号发生器的设计1.1 设计原理传统型任意信号发生器原理比较简单,将时钟源作为地址发生器(计数器)的输入时钟,通过改变时钟源的频率,可以实现调整地址发生器(计数器)产生地址的变化速率,从而达到改变输出波形与输出频率的目的。

当地址发生器输出值等于待生成波形数据存储器中波形数据的地址时,待生成波形数据存储器将输出此数据到高速D/A 转换,将其变为模拟信号,经低通滤波器后输出所需波形。

D/A 的输出频率fuot 与待生成波形数据存储器的波形数据点数N 以及时钟源的频率fclk 关系为:由式(1)可知,只要改变数据波形点数N 就能控制输出信号的频率。

1.2 系统设计根据图1 所示的原理框图,在Matlab/DSP Builder 平台上,建立传统型任意信号发生器的Simulink 模型,如图2 所示。

在图2 中,Increment Decrement 模块起到一个地址发生器的作用,随着时。

基于FPGA和MTLAB的DDS正弦信号发生器设计报告

基于FPGA和MTLAB的DDS正弦信号发生器设计报告

摘要DDS是一种新型的频率合成技术,具有较高的的频率分辨率,可以实现快速的频率切换,并且在改变时能够保持相位的连续,很容易实现频率、相位和幅度的数控调制。

因此,在现代电子系统及设备的频率设计中,尤其在通信领域,直接数字频率合成器的应用尤为广泛。

本课程设计的主要内容是利用Quartus II9.0中的FPGA直接设计DDS。

以及以MATLAB09a的Simulink为设计平台、以DSP Builder为中间媒介、而将QuartusII 作为底层设计工具置于后台设计DDS。

且第二种设计途径最大程度地发挥了各种工具的优势。

关键词:DDS;QuartusII9.0;FPGA;MATLAB09a;Simulink;DSP Builder目录1绪论 (1)1.1DDS研究的目的和意义 (1)1.2国内研究现状 (1)1.3研究思路和方法 (4)2相关理论 (5)2.1DDS理论 (5)2.2相关器件FPGA (7)3系统分析与设计 (9)3.1总体设计 (9)3.2各模块设计 (9)4硬件设计 (11)4.1实体设计 (11)4.2子系统设计 (12)5软件设计 (17)5.1流程图设计 (17)5.2程序设计 (18)5.3QuartusII直接调用DSP Builder生成的VHDL文件 (22)6仿真调试及结果分析 (25)6.1仿真调试 (25)6.2仿真结果分析 (26)7结论 (28)致谢 (29)参考文献 (30)第1章绪论1.1DDS研究的目的和意义频率合成器是电子系统的心脏,是决定电子系统性能的关键设备,随着现代无线电通信事业的发展,移动通信、雷达、制导武器和电子对抗等系统对频率合成器提出越来越高的要求,低相噪、高纯频谱和高速捷变的频率合成器一直是频率合成技术发展的主要目标,DDS 技术的发展将有力地推动这一目标的实现。

频率合成技术从30 年代发展到现在,已经进入成熟阶段。

目前最常用的频率合成方案有两种,直接混频级联法和数字锁相环法。

DSP课程设计--正弦信号发生器的设计

DSP课程设计--正弦信号发生器的设计

DSP课程设计–正弦信号发生器的设计简介正弦信号发生器是一种常见的电子信号发生器。

在数字信号处理中,正弦信号是非常重要的一种基础信号。

在本次课程设计中,我们将使用MATLAB软件设计一个正弦信号发生器。

设计步骤步骤一:信号采样我们的信号采样频率为fs,即每秒采样多少个点。

首先我们需要设置采样频率。

信号采样频率的选取需要满足采样定理,保证采样信号能够完全还原原信号。

我们使用MATLAB的“fs”命令设置采样频率。

假设我们的采样频率为10KHz,代码为:fs = 10000; % 设置采样频率为10KHz步骤二:生成时域正弦信号根据正弦波方程,我们可以生成时域上的正弦信号:f0 = 1000; % 正弦信号的频率为1kHzA = 1; % 正弦信号的幅度为1Vt = 0:1/fs:1; % 假设信号长度为1秒y = A * sin(2 * pi * f0 * t);代码中,我们生成了一个正弦信号,频率为1kHz,幅度为1V,信号长度为1秒,并将其存放在y变量中。

步骤三:对信号进行FFT变换为了验证我们生成的信号是否正确,我们需要对信号进行FFT变换。

FFT变换可以将一个时域信号转化为频域信号。

我们使用MATLAB的“fft”命令对信号进行FFT变换。

代码如下:Y = fft(y); % 对信号y进行FFT变换,得到频域信号YL = length(y); % 计算信号的长度P2 = abs(Y/L); % 取FFT变换结果的绝对值,然后除以长度LP1 = P2(1:L/2+1);P1(2:end-1) = 2*P1(2:end-1);f = fs*(0:(L/2))/L; % 生成频率坐标轴代码中,我们使用FFT变换对信号y进行变换,并将结果存放在Y变量中。

然后我们根据FFT变换结果,得到频率分量以及对应的幅度分量。

步骤四:绘制频域正弦信号最后,我们使用MATLAB的plot函数绘制频域信号采样结果图。

正交信号发生器

正交信号发生器

湖南人文科技学院课程设计报告课程名称:EDA技术与VHDL设计题目:正交信号发生器系别:通信与控制工程系专业:电子信息组别:电信本二班22组学生姓名: 雷海军、杨辉学号: 08409203、08409239 起止日期: 2011 年 6月 13日~2011 年 6月27日指导教师:姚毅教研室主任:田汉平前言VHDL简介硬件描述语言是EDA技术的重要组成部分,VHDL是电子设计的主流硬件描述语言。

VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。

1987年底,VHDL被IEEE(The Institute of Electrical and Electronics Engineers)和美国国防部确认为标准硬件描述语言。

自IEEE公布了VHDL的标准版本(IEEE-1076)之后,各EDA公司相继推出了自己的VHDL 设计环境,或宣布自己的设计工具可以和VHDL接口。

此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准硬件描述语言。

1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本。

现在,VHDL 作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。

VHDL的优点VHDL主要用于描述数字系统的结构、行为、功能和接口。

除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。

VHDL的程序结构特点是将一项设计实体(可以是一个元件、一个电路模块或一个系统)分成外部和内部两个基本点部分,其中外部为可见部分,即系统的端口,而内部则是不可视部分,即设计实体的内部功能和算法完成部分。

[论文] 基于dsp的正弦波信号发生器设计

[论文] 基于dsp的正弦波信号发生器设计

目录第1章绪论 (1)1 DSP简介 (1)第2章总体方案的分析和设计 (2)2.1 总体方案设计 (2)2.2正弦波信号发生器 (2)第3章硬件设计 (3)3.1硬件组成 (3)3.2控制器部分 (4)3.4人机接口部分 (5)第4章软件设计 (6)4.1流程图 (6)4.2 正弦信号发生器程序清单 (7)第5章总结 (12)参考文献 (12)第1章绪论1 DSP简介数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。

20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。

数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。

在过去的二十多年时间里,信号处理已经在通信等领域得到极为广泛的应用。

图一是数字信号处理系统的简化框图。

此系统先将模拟信号转换为数字信号,经数字信号处理后,再转换成模拟信号输出。

其中抗混叠滤波器的作用是将输入信号x (t)中高于折叠频率的分量滤除,以防止信号频谱的混叠。

随后,信号经采样和A/D 转换后,变成数字信号x(n)。

数字信号处理器对x(n)进行处理,得到输出数字信号y (n),经D/A转换器变成模拟信号。

此信号经低通滤波器,滤除不需要的高频分量,最后输出平滑的模拟信号y(t)。

图1.1数字信号处理系统简化框图数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。

例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。

近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。

可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。

第2章 总体方案的分析和设计2.1 总体方案设计1.基于DSP 的特点,本设计采用TMS320C54X 系列的DSP 作为正弦信号发生器的核心控制芯片。

基于DSP Builder的正弦信号源优化设计及其FPGA实现

基于DSP Builder的正弦信号源优化设计及其FPGA实现

基于DSPBuilder的正弦信号源优化设计及其FPGA实现作者:杨应琼李明来源:《现代电子技术》2008年第11期摘要:主要介绍了直接数字频率合成器的原理和特点,研究了用DSP Builder实现正弦信号发生器的设计方法,继承了传统DDS信号源调频、调相迅速的优点,给出了查找表压缩优化方法。

并应用Altera公司推出的DSP Builder和QuartusⅡ进行了仿真实现。

实际结果表明,此设计方法在节约芯片资源的基础上达到了较高了精度。

关键词:正弦信号源;直接数字频率合成;压缩存储查找表;现场可编程门阵列中图分类号:TN911 文献标识码:B文章编号:1004-373X(2008)11-029-Design of an Optimized Sine-Abstract:This paper mainly describes the principle and features of Direct Digital Frequency Synthesizer(DDS),studies ways of designing DDS based on DSP Builder,inherits the virtue of fast transition of frequency and phase,which is possessed by traditional DDS.Meanwhile,puts forward the optimized method of look-up table compression,besides,implements the simulation through DSP Builder and QuartusⅡ born from Altera Company.The actual results show that a system designed by this method is resource-Keywords:sine-wave generator;DDS;look-up table compression;FPGA实现信号源常用的方法是频率合成法,其中直接数字频率合成法是继直接频率合成法和间接频率合成法之后,随着电子技术迅速发展的第三代频率合成技术。

可控正弦信号发生器的MATLAB和Quartus实现[技巧]

可控正弦信号发生器的MATLAB和Quartus实现[技巧]

&逃之^_~夭夭可控正弦信号发生器执行双击MA TLAB图标,在命令窗口输入simulink,在弹出的窗口中执行File->New->Model,建立名为SinOut.mdl文件,在按给出的原理图放置元器件并连接线路,最后结果如下图所示:参数设置如下1、IncCount模块:Altera DSP Builder库Arithmetic库改为2、SinLUT模块:Altera DSP Builder库Gate&Control库改为3、Delay模块:Altera DSP Builder库Storagel库改为5、Product模块:Altera DSP Builder库Arithmetic库将改为5、SinOut模块:Altera DSP Builder库I/O&Bus库、改为6、AltBus模块:Altera DSP Builder库I/O&Bus库改为7、Step模块:Simulink库Source库改为Scope中将端口设为两个双击进行分析,分析完成后,打开Quartus II软件,打开分析转换后的Quartus文件,进行编译和仿真,根据出现的提示信息将iSinOuti改为SinOut并将该文件另存为SinOut.vwf,执行Assignments—Device单击simulator setting,在simulation input中选择SinOut.vwf,单击OK即可,再编译仿真Assignment –assignment editor,引脚锁定Tools—programmer 下载执行File->New->SignaiTap II,在中间区域的左边点击鼠标右键添加节点SinOut,在右侧的区域进行如下设置采用模式5,单击采样,使用嵌入式逻辑分析仪看到的结果如下图所示。

基于DSP的正弦波信号发生器本科毕业设计论文

基于DSP的正弦波信号发生器本科毕业设计论文

基于DSP的正弦波信号发生器本科毕业设计论文摘要:本文以数字信号处理(DSP)为基础,设计并实现了一种正弦波信号发生器,该发生器能够生成高质量、稳定的正弦波信号。

通过对DSP算法和各模块的设计,实现了信号的频率、幅度和相位的可调节,以及频谱图的显示功能。

在硬件实现方面,本文采用了TMS320F2808型号的DSP芯片,并结合了一些外围电路,使得信号的输出更加稳定和准确。

实验结果表明,本设计具有较高的性能和可靠性,达到了预期的设计要求。

关键词:数字信号处理,正弦波信号发生器,DSP芯片,频率可调节,幅度可调节,相位可调节1.引言正弦波信号在很多领域中应用广泛,如通信、电子音乐、声音合成等。

传统的正弦波信号发生器一般是采用模拟电路实现的,但其稳定度和精度受到一些固有的限制。

随着数字信号处理(DSP)技术的发展和普及,利用DSP芯片实现正弦波信号发生器成为可能。

本文基于DSP技术,设计并实现了一种高性能的正弦波信号发生器。

2.正弦波信号发生器的算法设计通过对正弦波信号的数学表示和DSP算法的分析,本文设计了一种高效的正弦波信号生成算法。

算法的核心是离散傅里叶变换(DFT),通过将正弦波信号分解为多个频率分量的叠加,从而实现了频率可调节的功能。

另外,为了实现幅度和相位的可调节,本文还引入了振幅缩放和相位偏移的技术。

3.正弦波信号发生器的硬件设计本文选取了TMS320F2808型号的DSP芯片作为核心控制器,并结合了一些外围电路,实现了正弦波信号的输出。

其中,DSP芯片负责信号的计算和控制,外围电路则负责信号的放大和滤波以及频谱图的显示。

为了提高信号的稳定性和准确性,本文还采用了高精度的时钟模块,以及稳定的电源供应。

4.正弦波信号发生器的实验结果通过在实验中对正弦波信号发生器进行功能测试和性能评估,本文验证了该设计的有效性。

实验结果表明,该正弦波信号发生器具有较高的稳定性和精度,能够生成高质量的正弦波信号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Matlab/DSP Builder的正弦信号发生器设计引言近年来随着通信技术的不断发展,信号的正确传输显得日益重要,也就是说要有一个可靠的能产生稳定确信号的发生器,基于Matlab/DSP Builder的正弦信号发生器是利用Matlab/DSP Builder的模块进行的模快化设计,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了、易懂、易学。

使硬件在软件的控制下协调运作。

DSP Builder可以帮助设计者完成基于FPGA的DSP系统设计设计,除了图形化的系统建模外,还可以完成及大部分的设计过程和仿真,直至将设计文件下载到DSP开发板上。

此次实验的目的就是将两者的优势有机的结合在一起,利用DSP的优势开发正弦信号发生器。

在设计中主要采用DSP Builder库中的模块进行系统的模型设计,然后再进行Simulink仿真。

1.设计思想1.1 DSP Builder特点DSP Builder系统级(或算法级)设计工具,它架构在多个软件工具之上,并把系统级(算法仿真建模)和RTL(硬件实现)两个领域的设计工具连接起来,最大程度的发挥了两种工具的优势。

DSP Builder依赖于MathWorks公司的数学分析工具Matlab/Simulink,可以在Simulink中进行图形化设计和仿真,同时又通过Signal Compilder把Matlab/Simulink的设计文件(.mdl)转换成相应的硬件描述语言VHDL设计文件(.vhd),以及用于控制和编译的tcl脚本。

而对后者的处理可以用Quartus II来实现。

1.2 QuartusII特点QuartusII提供了完整的多平台设计环境,能满足各种特定设计的需要,是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并且为Altera DSP开发包进行系统模型设计提供了集成综合环境。

QuartusII完全支持VHDL的设计流程,其内部嵌有VHDL逻辑综合器。

QuartusII也可以利用第三方的综合工具,如:Leonardo Spectrum、Synplify Pro、FPGA Compiler,并能直接调用这些工具。

同样QuartusII具备仿真功能,同时也支持第三方的仿真工具,如:ModelSim 。

此外,QuartusII与Matlab和DSP Builder结合,可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具。

1.3 DSP的一般设计流程图1—1所示的是DSP Builder的一般设计流程的框图,它针对不同情况提供了两套设计流程,即自动流程和手动流程。

它们的在设计输入、图形化仿真、分析功能等步骤是几乎一样的,只是设计模型采用DSP Builder的Simulink库。

再往后若采用自动流程,则几乎可以忽略硬件的具体实现过程,直至在Matlab 中完成FPGA的配置下载过程;但若想采用第三方综合器和仿真器,就需要采用手动流程,有设计者制定综合、适配条件,最后用QuartusII产生相应的编程文件用于FPGA的配置。

图1—1DSP Builder设计流程框图1.4 系统的工作原理正弦信号发生器的结构由4个部分组成:数据计数器或地址发生器(6位);正弦信号数据ROM(6位地址线,8位数据线),含有一个周期共64个8位数据;VHDL语言顶层设计;8位D/A转换。

如图1-2所示,顶层文件Singt.vhd在FPGA中实现,包含两个部分:ROM的地址信号发生器,由6位计数器担任;一个正弦数据ROM,由LPM__ROM模块构成。

LPM__ROM底层是FPGA中的EAB、ESB或M4K等模块。

地址发生器的时钟CLK的输入频率f与每周期的波形数据点数(在此选择64点),以及D/A 输出的频率f的关系是:f= f/64图1—2 正弦信号发生器结构图本系统是一正弦波发生器。

它通过IncCount产生一个按时钟线性递增的地址信号,送往SinLUT。

SinLUT由递增的地址获得正弦波的量化值输出。

由SinLUT 输出的8位正弦波数据经过一个延时模块后送往乘法模由SinLUT输出的8位正弦波数据经过一个延时模块后送往乘法模块Product与SinCtrl相乘。

由于SinCtr是一位(bit)输入,SinCtr通过Product就完成了对正弦波输出有无的控制。

SinOut是整个正弦波发生器模块的输出,送往D/A即可获得正弦波的输出(模拟信号)。

设计完成以后,将其转化成VHDL语言,再通过QuartusII对将模块进行编译。

这个过程包括分析/综合、适配、装配、时序分析等等.最后在实验箱上模拟。

图1—3 正弦波发生器模块原理图:2.技术实现2.1总体设计本正弦信号发生器由6位的地址信号发生器IncCount产生一个按时钟线性递增的地址信号,送到含有64个8位数据的正弦信号数据ROMSinLUT,由SinLUT 输出的8位正弦波数据经过一个延时模块后送往乘法模由SinLUT输出的8位正弦波数据经过一个延时模块Delay后送往乘法模块与一位控制信号相乘,再输出即可。

然后用QuartusII直接完成适配和时序仿真,最后下载至实验箱模拟。

2.2设计及实现部分2.2.1 建模准备在Matlab界面里建立一个新的文件夹(mkdir /zhangkui/yezi),作为工作目录,并把Matlab当前的Work目录切换到新建文件夹下。

Simulink是基本模型库。

在以下的DSP Builder应用中,主要是使用该库中的组件、子模块来完成各种设计,再使用“simulink”库来完成模型的仿真验证。

新建一个simulink的模型文件(后缀为.mdl)就会出现是新模型窗口。

2.2.2 建立模型文件⑴把AltLab库管理器中的Signal Compilder组件拖到Signal Compilder到新模型窗口中。

当在simulink库管理器中选中模块(Block)后,在库管理器的提示栏中会显示对应模块的说明,有简单的功能介绍。

⑵Increment Decrement模块是DSP Builder库中Arithmetic(算术)模块。

把Arithmetic条中的Increment Decrement模块拖到新建模型窗口中。

将Increment Decrement的名字修改为“IncCount”。

然后把IncCount模块做成一个线性递增的地址发生器,然后对IncCount的参数进行相应的设置。

在IncCount模块的参数设置对话框“Block Parametres:IncCount”中,在“参数设置”对话框的上半部分是该模块的功能描述和使用说明:对话框的下半部分的参数设置部分,对于Increment Decrement模块共有下面几种参数可以设置:①总线类型(Bus Type);②输出位宽(Number of bits);③增减方向(Direction);④开始值(Starting Value);⑤是否使用控制输入(Use control Inputs);⑥时钟相位选择(Clock Phase Selection);对于总线类型(Bus Type),在下列列表框中共有3种选择:A、有符号整数(Signed Integer);B、有符号小数(Signed Fractional);C、无符号整数(Unsiged Integer);在这里选择“Signed Integer”,即有符号整数。

对于输出位宽,由于正弦查找表(SinLUT)地址为6位,所以设置位宽设置为6。

IncCount是一个按时钟增1是计数器,Direction设置为Increment(增量方式)。

Use Control Input项不选。

因为如果选中此项,此模块会出现两个输入端分别是复位端和时钟端。

通常在simulink图中的元件的复位和时钟端(如果存在的话)是分别默认接于低电平和与全局时钟相连的。

Clock Phase Selection可设置为1(二进制)其它的设置采用Increment Decrement模块的默认设置。

图2—1 递增递减模块改为IncCount⑶把Gate库中LUT拖到新建模型窗口名字修改为“Sin LUT”。

设置参数,把输出(Output[number of bits])改为8,查找表地址线宽(LUT Address Width)设为6。

总线数据类型选择为有符号整数(Signed Integer);在MATLAB Array 编辑框中输入计算查找表内容的计算式。

在此直接使用sin(正弦)函数,在这里sin函数的格式调用为:Sin[起始值:步进值:结束值]SinLUT是一个输入地址为6位,输入值位宽为8的正弦查找表模块,且输入地址总线为有符号数,可以设置起始值为0、结束值为2∏、结束值为2∏/2^6。

计算式可写成:127*sin([0:2*pi/2^6]:2*pi) 其中pi就是常数∏。

上式的数值变化范围是-127~+127,总值为256,恰好的8位二进制数是最大值。

但应注意,如果带边地址线宽,如8,以上的2的6次方要改为2的8次方,即:127*sin([0:2*pi/2^6]:2*pi)如果将SinLUT模块的总线数据类型设置为无符号整数(Unsiged Integer),且输出位宽(Number of bits)改为10,若想得到完整满度的波形输出,则上式应该为:511*sin([0:2*pi/2^6]:2*pi)+512 在“Use LPM”(LPM:library of Pparameterrized Modules参数化模块库)处若选中,表示允许Quartus II 利用目标库中的嵌入式RAM(在EAB、ESB或M4K 模块中)来构成SinLUT,即将生成的正弦波数据放在嵌入式RAM构成的ROM中,这样可以节省大量的逻辑资源,否则SinLUT只能用芯片中的LCs来构成。

图2—2 LUT模块改为Sin LUT⑷Storage库下的Delay模块Delay模块是一个延时环节,在这里可以不修改其默认参数设置。

Delay模块的“参数设置”对设置如下,参数Depthd是描述信号延时深度的参数。

但Depth为1时,信号传输函数为1/z,表示为通过Delay 模块的信号延时一个时钟周期;当Depth为整数n,其传输函数为1/z^n,表现为通过Delay模块的信号延时n 个周期。

Delay模块在硬件上可以采用寄存器(锁存器)来实现。

图2—3 Delay模块及其参数设置窗口Clook Phase Selection参数主要是控制采样的。

当设置为1时就表示每一个主频脉冲后数据都能通过;如果设置为01则表示每隔一个脉冲通过一个数据;若设置为0011每隔两个脉冲通过两个数据;0100则表示Delay在每隔2个时钟被使能通过,而在第1、3、4个失踪时被禁止通过等等。

相关文档
最新文档