基于某DSP的任意信号发生器设计汇总情况

合集下载

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

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

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

基于DSP的可调信号发生器设计讲解

基于DSP的可调信号发生器设计讲解

DSP处理器及应用课程设计报告(2012—2013学年第一学期)题目基于DSP的可调信号发生器设计系别电子与电气工程系专业电子信息工程班级0920311学号092031101姓名指导教师完成时间2013-1-6评定成绩目录一、设计的目的 (1)二、设计的内容与要求 (1)三、设计方案 (2)四、软件、硬件设计 (2)4.1软件调试 (2)1、波形的显示 (2)2、按键切换波形 (4)3、按键改变幅值与周期 (5)4、数码管显示 (5)4.2硬件调试 (7)4.3主程序 (7)五、设计总结 (12)5.1运行与调试 (12)5.2个人心得 (13)六、参考文献 (14)一、设计的目的根据已掌握的《DSP处理器及应用》课程知识,完成课程设计要求的项目。

了解正弦波的产生,以及正弦波幅值和频率的调整方法,掌握信号产生的一般方法并学习使用CCS图形显示功能进行程序调试。

通过硬件设计和程序编写过程,加深对《DSP处理器及应用》课程知识的理解和掌握,培养应用系统设计的能力,以及分析问题和解决问题的方法,并进一步拓宽专业知识面,培养实践应用技能和创新意识。

二、设计的内容与要求1)在CCS中运行调试程序代码,输出正弦信号波形,并使用CCS的图像显示窗口,实时显示输出的正弦波。

2)使用DSPF2812的GPIO功能,读取外部手动按键的信号,相应改变正弦信号的幅值(幅值,采用有符号16位整型变量定义)。

3)使用DSPF2812的GPIO功能,读取外部手动按键的信号,相应改变正弦信号的周期(每周期的离散采样点数,采用有符号16位整型变量定义)。

4)使用DSPF2812的GPIO功能,读取外部手动按键的信号,相应输出正弦波、三角波、方波、锯齿波、梯形波。

5)用8个七段数码管,每隔一秒依次循环显示三种信息,包括:①当前的幅值(格式为:AP-00000~AP-32767);②每周期的离散采样点数(格式为:tNUb-012~tNUb-512);③自己的学号(格式为学号的低8位,例如学号为092031234的同学,应当显示:92031234)。

基于DSP信号发生器的设计

基于DSP信号发生器的设计
在教学与科研中,通常选择几种典型的信号作为标准信号,如三角、方波、正弦信号等,来测试控制系统和电子电路的性能和参数。在系统开发与研究中,多通道任意信号发生器也日益成为系统的调试和研发中不可缺少的工具,其应用也越来越广泛。在生物医学中,医学模拟人作为一种复杂的、计算机控制的模拟仪器,在医学救助与训练中起着十分重要作用。其中心脏模拟人为医护人员提供训练仪器,而如何产生适当的心电信号则是心脏模拟人的关键技术之一。在通信、控制和等仪器仪表领域的信号系统中,经常要使用到正弦波以及其他波形发生器。
虚拟仪器是以计算机软件为核心,结合相应的硬件设备的测试系统代表了未来测试仪器的发展方向,人们可以在友好的人机界面环境中轻松地进行各种复杂的操作。信号发生器可作为虚拟仪器的一种模块实现,用户可以通过图形界面编辑波形,向屏幕输出演示,或者通过卡口机向外输出波形。它的优点是有很好的人机交互界面,编辑与增删波形很方便,波形种类、个数都无限制,但携带不便,需配备PC机,价格昂贵,使用环境受较多因素制约。
最后,对本文所做的工作进行简要总结,并对此次论文中给予我帮助的老师和同学致谢。
第二章总体方案的分析和设计
2.1
本次设计一个DSP信号发生器,通过软硬件实现了正弦波,方波,三角波的设计。数字信号发生器集波形参数选择、波形产生、数据传输、波形可视化等功能于一体。它既可产生16位数字量信号直接测试数字系统的性能,也可通过D/A转换把数字信号转换成模拟信号以测试模拟系统的性能。
图3-8显示电路原理图.....................................................9
图3-9矩阵键盘实现电路..................................................9

基于DSP的输出电压范围可调的高精度毫伏信号发生器设计(内附完整程序)

基于DSP的输出电压范围可调的高精度毫伏信号发生器设计(内附完整程序)

目录0 摘要--------------------------------------------------------21 设计任务与要求----------------------------------------------2 1.1 设计任务-----------------------------------------------2 1.2 基本电压-----------------------------------------------21.3 发挥部分-----------------------------------------------22 系统方案论证------------------------------------------------23 系统设计与理论分析------------------------------------------2 3.1 核心模块TMS320DSP芯片---------------------------------2 3.2 数模转换模块-------------------------------------------3 3.3 基准电压源模块-----------------------------------------33.4 模数转换模块-------------------------------------------43.5 485通信模块-------------------------------------------53.6 显示模块-----------------------------------------------64 系统调试----------------------------------------------------7 4.1 调试仪器仪表-------------------------------------------7 4.2 调试及分析---------------------------------------------74.3 误差分析-----------------------------------------------75 设计总结----------------------------------------------------86 元件清单----------------------------------------------------87 参考文献----------------------------------------------------98 程序清单----------------------------------------------------100、摘要:本系统以DSP芯片为核心,控制过程是DSP接收数据并送入DA电路,利用AD820作为比较器,正端接D/A输出,负端接地,反馈输出接AD采样,失调电压调零,输出形成闭环回路,通过AD转换电路将实际值采回DSP,由DSP进行运算,得输入值与采回值之差即误差,输出结果通过12864液晶屏显示。

基于DSP的信号发生器设计..

基于DSP的信号发生器设计..

基于DSP的信号发生器设计设计题目:正弦信号发生器专业班级电科11级-1班学号 ************学生姓名王博指导教师王科平摘要正弦信号发生器是信号中最常见的一种,它能输出一个幅度可调、频率可调的正弦信号,在这些信号发生器中,又以低频正弦信号发生器最为常用,在科学研究及生产实践中均有着广泛应用。

目前,常用的信号发生器绝大部分是由模拟电路构成的,当这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积大和功耗都很大,而由数字电路构成的低频信号发生器,虽然其低频性能好但体积较大,价格较贵,而本文借助DSP运算速度高,系统集成度强的优势设计的这种信号发生器,比以前的数字式信号发生器具有速度更快,且实现更加简便。

正弦信号发生器是信号中最常见的一种,它能输出一个幅度可调、频率可调的正弦信号,在这些信号发生器中,又以低频正弦信号发生器最为常用,在科学研究及生产实践中均有着广泛应用。

目前,常用的信号发生器绝大部分是由模拟电路构成的,当这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积大和功耗都很大,而由数字电路构成的低频信号发生器,虽然其低频性能好但体积较大,价格较贵,而本文借助DSP运算速度高,系统集成度强的优势设计的这种信号发生器,比以前的数字式信号发生器具有速度更快,且实现更加简便。

目录一、概述 (3)二、系统设计 (4)2.1 总体方案 (4)2.2正弦波信号发生器 (4)三、硬件设计 (5)3.1硬件组成部分 (5)3.2控制器部分 (6)3.4人机接口部分 (7)四、软件设计 (8)4.1流程图 (8)4.2 正弦信号发生器程序清单 (9)五、总结 (14)参考文献 (14)一、概述数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。

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

基于DSP的音频信号发生器的设计及实现

基于DSP的音频信号发生器的设计及实现

基于DSP的音频信号发生器的设计及实现摘要本课题介绍了基于DSP芯片TMS320C5402实现正弦信号发生器的设计原理和实现方法。

使用TMS320C5402作为数据处理器,AT89C51作为控制器引导并控制DSP芯片。

采用直接数字合成(DDS)技术,在DSP上建立一个信号发生器,可产生指定频率(音频范围)的正弦波、方波等信号。

该信号发生器所产生的正弦波波形清晰、稳定性好,调频、调幅功能均由软件实现。

本设计主要实现正弦音频信号发生器,该系统由DDS模块、单片机控制模块、语音提示、输出运算放大模块、D/A转换模块、幅度控制模块组成。

这里介绍一种采用DSP实现的正弦信号发生器,其调幅、调频功能均由软件实现,而且有较好的可扩展性、稳定性,与计算机接口方便。

关键词:音频信号发生器,正弦波,DSP ,DDSAUDIO SIGNAL GENERATOR BASED ON TMS320C5402 DESIGN AND LMPLEMENTATIONABSTRACTThis design uses TMS320C5402 of DSP chip as a data processor,STC89C51 as a controller to guide and control the DSP chip. use TMS320C5402 as a data processor, STC89C51 as a controller to guide and control the DSP chip. Synthesis of direct sequence (DDS) technology, DSP, a signal generator, can generate the specified frequency (audio range) of the sine wave, square wave signal. Synthesis of direct sequence (DDS) technology, DSP, a signal generator, can generate the specified frequency (audio range) of the sine wave, square wave signal. The design of the main sine wave audio signal generator, the system by the DDS module, microprocessor control module, voice prompt, the output operational amplifier module, D/A converter module, rate control module.High-speed direct-sequence synthesis (DDS) technique, D/A and other technology, can generate any frequency sinusoidal signal and a variety of analog and digital modulation signal. Wide frequency range of the system, step small, magnitude and frequency with high accuracy.KEY WORDS:Signal generator,Sine tonic train signal, DSP ,DDS目录前言 (1)第1章系统描述 (3)§1.1 系统方案选择 (3)§1.2 本系统的方案 (3)§1.2.1 方案系统框图 (3)§1.2.2 DSK5402开发板硬件结构 (4)§1.2.3 DSK5402系统概述 (6)第2章音频信号发生器的硬件描述 (7)§2.1 DSP芯片 (7)§2.1.1 DSP芯片特点 (7)§2.1.2 C54x的引脚功能 (8)§2.2 串行口MCBSP (12)§2.3 主机接口 (13)第3章音频信号发生器的外设 (16)§3.1 89C51芯片的描述 (16)§3.1.1 89C51的主要性能高如下 (16)§3.1.2 89C51的引脚及说明 (17)§3.2 串口描述 (19)§3.2.1 RS232接口电路 (19)§3.2.2 RS232通信原理 (21)§3.3 声卡 (21)第4章音频信号发生器设计的算法 (24)§4.1 DDS算法简介 (24)§4.2 步长计算查表 (25)§4.3 DDS的特点 (25)第5章系统软件设计 (27)§5.1 DSP程序设计 (27)§5.2 单片机程序设计 (27)第6章系统调试及测试 (29)§6.1 DSP程序编写 (29)§6.2 把DSP程序转化成单片机程序 (35)§6.3 程序调试 (36)§6.3.1 调试流程 (36)§6.3.2 系统的调试 (37)结论 (39)参考文献 (40)致谢 (42)外文资料翻译 (43)前言随着21世纪的到来,人类跨入了信息网络时代。

基于DSP的可调信号发生器设计

基于DSP的可调信号发生器设计

目录一、设计的目的 (2)二、设计的内容与要求 (2)三、设计方案 (3)四、软件、硬件设计(根据设计内容适当处理,硬件设计应包括PCB (4)4.1、软件设计 (4)4.1.1 按键矩阵模块 (4)4.1.2 波形发生模块 (4)4.1.3 数码管显示模块 (4)4.1.4 点阵显示模块 (4)图3.3点阵模块及原理图 (5)4.2.1 4*5按键矩阵 (5)4.2.2 数码管显示 (6)五、设计总结 (7)5.1调试结果 (7)5.2心得体会 (10)六、参考文献 (10)七、附录 (11)一、设计的目的根据已掌握的《DSP技术及应用》课程知识,完成课程设计要求的项目。

了解正弦波的产生,以及正弦波幅值和频率的调整方法,掌握信号产生的一般方法并学习使用CCS图形显示功能进行程序调试。

通过硬件设计和程序编写过程,加深对《DSP技术及应用》课程知识的理解和掌握,培养应用系统设计的能力,以及分析问题和解决问题的方法,并进一步拓宽专业知识面,培养实践应用技能和创新意识。

二、设计的内容与要求(一)、课程设计题目:基于DSP的可调信号发生器设计(二)、具体设计要求如下:1)基础设计:在CCS中运行调试程序代码,输出正弦信号波形,并使用CCS的图像显示窗口,实时显示输出的正弦波。

2)提高设计:使用DSPF2812的GPIO功能,读取外部手动按键的信号,相应改变正弦信号的幅值、相位、频率和偏移(幅值,采用有符号16位整型变量定义)。

3)附加设计:使用DSPF2812的GPIO功能,读取外部手动按键的信号,相应输出正弦波、三角波、方波、锯齿波。

并分别实现四种波形的幅值和频率的调节。

4)高级设计:用8个七段数码管,每隔一秒依次循环显示三种信息,包括:①日期(格式为2014-06-12);②自己的学号(格式为学号的低8位,例如学号为112033101的同学,应当显示:12033101);③当前的幅值(格式为:AP-00000~AP-32767);○4频率即每周期的离散采样点数(格式为:PEAD-012);○5当前按键坐标(格式为:X X)。

dsp课程设计基于DSP的信号发生器设计

dsp课程设计基于DSP的信号发生器设计

目录一、摘要 (3)二、概述 (4)2.1设计要求 (4)2.2 基本组成 (4)三、系统设计 (4)四、硬件设计 (5)4.1组成及实现功能 (5)4.2硬件电路方案及电路原理 (5)4.3核心电路芯片TMS320VC5402 (6)4.4 D/A转换器TLC7528设计 (6)4.5电源电路复位电路和晶振电路设计 (8)五、软件设计 (11)5.1方波的设计方案 (11)5.1余弦波的设计方案 (13)5.3三角波的设计方案 (17)六、实验结果 (19)七、总结 (20)八、参考文献 (21)附录 (22)摘要根据已掌握的《手把手教你学DSP》课程知识,完成课程设计要求的项目。

了解正弦波方波三角波的产生,以及幅值和频率的调整方法,掌握信号产生的一般方法并学习使用CCS图形显示功能进行程序调试。

通过硬件设计和程序编写过程,加深对课程知识的理解和掌握,培养应用系统设计的能力,以及分析问题和解决问题的方法,并进一步拓宽专业知识面,培养实践应用技能和创新意识。

信号发生器发展到今天,在电子测试、电子设计、模拟仿真、通信工程中,扮演着一个相当重要的角色,有着相当广泛的应用,极大加快了电子测试与设计工作中的效率,在电子技术和信号仿真应用中已发挥了巨大的作用。

本文主要介绍了基于TMS320VC5402 DSP的信号发生器的设计情况。

这是一个以DSP为核心来实现信号发生器的系统,该系统具有结构简单灵活,抗干扰能力强、产生频率较高、应用广泛等特点。

该系统的组成核心TMS320VC5402 DSP芯片,这个设计的硬件部分是有该DSP 芯片和D/A转换芯片TLC7528组成,DSP芯片用于产生各种波形,D/A转换芯片用于把数字信号转换为模拟信号。

在以上硬件的基础上,通过软件编程来实现三角波,方波和余弦波等波形。

关键词:DSP,D/A转换器,波形概述2.1设计要求:(1)绘制出系统框图;(2)包括电源设计、复位电路设计、时钟电路设计、JTAG 接口设计等,绘制原理图;(3)给出程序流程图;(4)能够实现方波信号(余弦信号、三角波信号)通过对系统的全面分析得出设计结论(被处理信号的频率范围、采用的信号处理算法等);2.2 基本组成:硬件电路是由TMS320VC5402 DSP芯片和D/A转换芯片TLC 7528组成,通过ICETEK-5100USB V2.0A连接PC机和DSP芯片。

dsp课程设计基于DSP的信号发生器设计

dsp课程设计基于DSP的信号发生器设计

目录一、摘要 (3)二、概述 (4)2.1设计要求 (4)2.2 基本组成 (4)三、系统设计 (4)四、硬件设计 (5)4.1组成及实现功能 (5)4.2硬件电路方案及电路原理 (5)4.3核心电路芯片TMS320VC5402 (6)4.4 D/A转换器TLC7528设计 (6)4.5电源电路复位电路和晶振电路设计 (8)五、软件设计 (11)5.1方波的设计方案 (11)5.1余弦波的设计方案 (13)5.3三角波的设计方案 (17)六、实验结果 (19)七、总结 (20)八、参考文献 (21)附录 (22)摘要根据已掌握的《手把手教你学DSP》课程知识,完成课程设计要求的项目。

了解正弦波方波三角波的产生,以及幅值和频率的调整方法,掌握信号产生的一般方法并学习使用CCS图形显示功能进行程序调试。

通过硬件设计和程序编写过程,加深对课程知识的理解和掌握,培养应用系统设计的能力,以及分析问题和解决问题的方法,并进一步拓宽专业知识面,培养实践应用技能和创新意识。

信号发生器发展到今天,在电子测试、电子设计、模拟仿真、通信工程中,扮演着一个相当重要的角色,有着相当广泛的应用,极大加快了电子测试与设计工作中的效率,在电子技术和信号仿真应用中已发挥了巨大的作用。

本文主要介绍了基于TMS320VC5402 DSP的信号发生器的设计情况。

这是一个以DSP为核心来实现信号发生器的系统,该系统具有结构简单灵活,抗干扰能力强、产生频率较高、应用广泛等特点。

该系统的组成核心TMS320VC5402 DSP芯片,这个设计的硬件部分是有该DSP 芯片和D/A转换芯片TLC7528组成,DSP芯片用于产生各种波形,D/A转换芯片用于把数字信号转换为模拟信号。

在以上硬件的基础上,通过软件编程来实现三角波,方波和余弦波等波形。

关键词:DSP,D/A转换器,波形概述2.1设计要求:(1)绘制出系统框图;(2)包括电源设计、复位电路设计、时钟电路设计、JTAG 接口设计等,绘制原理图;(3)给出程序流程图;(4)能够实现方波信号(余弦信号、三角波信号)通过对系统的全面分析得出设计结论(被处理信号的频率范围、采用的信号处理算法等);2.2 基本组成:硬件电路是由TMS320VC5402 DSP芯片和D/A转换芯片TLC 7528组成,通过ICETEK-5100USB V2.0A连接PC机和DSP芯片。

基于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 模块起到一个地址发生器的作用,随着时。

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

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

2011届本科生毕业论文(设计)题目:基于DSP的信号发生器的设计作者姓名:学号:系(院):机械与电子工程学院专业:电子信息工程指导教师姓名:指导教师职称:2012年3 月9 日Year 2011 Bachelor Graduation assignment(Design)Title: Design of Signal Generator based on DSP Author:Tao Li-juanStudent ID: 2007080305Department: Mechanical and electronic engineering faculty Major: Electronic and information engineering Instructor: Wen YanProfessional Title: LecturerMARCH 9, 2012摘要阐述了基于TMS320V5402 DSP(以下简称C5402) 芯片实现信号发生器的设计方法和原理。

首先介绍了实现信号发生器的几种算法及信号生成原理,接着阐述了系统的软件和硬件的设计。

该信号发生器可以产生任意波形,且信号的幅度和频率可以由DSP程序控制。

具有易于修改,灵活性强等优点。

克服了通常信号发生器模式固定,波形不可编程的不足。

该发生器满足信号发生器的小型化,低成本和方便使用发展趋势的需要,充分利用DSP信片的优点。

这个设计的硬件部分有该DSP芯片和D/A转换芯片TLC7528组成,DSP芯片用于产生各种波形,D/A转换芯片用于把数字信号转换为模拟信号。

在以上硬件的基础上,通过软件编程来实现三角波,方波和正弦波等波形。

关键词:数字信号处理器;信号发生器;D/A转换器;波形ABSTRACTThis paper expounds the design of signal generator based on TMS320VC5402DSP. First,several algorithms of signal generator reality and the principle of signal generation is introduced. Next,the hardware and the software design is discussed in paper .This signal generator can generate several waveforms,not only the voltage and the frequency of the signal are both controlled by DSP programs,but also it can be easily modified,more flexible and many other advantages. Therefore it improved the shortcoming of fixed pattern and waveform can not program. The generator signal generator to meet the miniaturization, low cost and easy to use development trend of the need to fully use the advantages of DSP signal .The hardware of this design is made by TMS320VC5402DSP C chip and D/A conversion chip TLC7528.DSP chip produce waves and D/A conversion chip is used change digital signals to analog signals. Based on the hardware, we use software to carry out triangle wave, square wave and sine wave.Key words: digital signal processing; signal generator; D/A conversion; wave目录绪论 (1)1 正弦信号生成算法的简介 (2)1.1采样回放法 (2)1.2查表法 (2)1.3查表结合插值法 (2)1.4泰勒展开法 (3)2 系统的硬件设计 (4)2.1硬件系统设计思想 (4)2.2系统相关电路的介绍 (4)2.2.1 DSP芯片的特点及使用说明 (4)2.2.2 D/A转换器TLC7528使用说明 (7)2.2.3电源电路和晶振电路使用说明 (9)2.3DSP芯片与D/A转换器的接口电路 (10)3系统的软件设计 (12)3.1基于泰勒展开实现正弦波 (12)3.2基于MATLAB语言实现正弦波 (13)3.2.1 如何用MATLAB产生数据序列 (13)3.3基于C语言实现正弦波 (14)4软件调试系统使用说明及实验结果 (17)结论 (19)参考文献 (20)附录一 (21)致谢 (22)宿州学院2011届本科生毕业设计绪论绪论信号发生器在现代工程中的应用非常广泛。

基于DSP的信号发生器的设计与实现

基于DSP的信号发生器的设计与实现

基于D SP 的信号发生器的设计与实现刘剑科,王艳芬,王胜利(中国矿业大学信息与电气工程学院 江苏徐州 221008)摘 要:阐述了基于TM S 320V C 5402D SP 实现信号发生器的设计原理和实现方法,详细介绍了所设计的信号发生器的硬件电路结构和程序设计流程图。

该信号发生器可以产生任意复杂的波形,且信号的幅度和频率全部由D SP 程序控制,易于修改,弥补了通常信号发生器模式固定、波形不可编程以及精度低的不足。

此外,还运用了D SP 的外部并行16位FLA SH 引导装载设计方法,通过在线FLA SH 编程,使得所设计的D SP 目标系统成为一个独立的脱机运行系统,灵活性大大增强,使用也更加方便。

关键词:数字信号处理器;信号发生器;多通道缓冲串口;引导装载;D A 转换中图分类号:TN 911125 文献标识码:B 文章编号:1004373X (2005)1612603D esign and Rea l iza tion of Signa l Genera tor Ba sed on D SPL I U J ianke ,W AN G Yanfen ,W AN G Shengli(Schoo l of Info r m ati on &Engineering ,Ch ina U niversity of M ining and Techno l ogy ,Xuzhou ,221008,Ch ina )Abs tra c t :T h is paper expounds the design and realizati on of signal generato r based on TM S 320V C 5402D SP 1T he hardw are circu itstructu re and the p rogram flow charts are also given in th is paper 1U n like the general signal generato rs w h ich are often mode fixed ,it has unp rogram ab le and low p recisi on ,th is signal generato r can generate comp lex w avefo rm s ,and the vo ltage and frequency of the signal generated by th is signal generato r are con tro lled by D SP p rogram s w h ich can be easily modified 1In o rder to i m p rove the independence of th is D SP system and the flex ib ility of its app licati on ,the design of parallel boo t (16b )is also app lied to the D SP system by in system p rogramm ing 1Ke yw o rds :D SP ;signal generato r ;M c BSP ;boo t load ;D A conversi on收稿日期:20050509 信号发生器在现代工程中应用非常广泛。

基于DSP的数字信号发生器设计

基于DSP的数字信号发生器设计

基于DSP的数字信号发生器设计一、本文概述随着数字信号处理技术的快速发展,数字信号发生器作为一种能够产生多种复杂波形信号的重要设备,在通信、雷达、电子对抗、测试测量等领域中得到了广泛应用。

传统的模拟信号发生器由于其波形种类有限、精度低、稳定性差等缺点,已经无法满足现代电子设备对高精度、高稳定性信号源的需求。

因此,基于数字信号处理器(DSP)的数字信号发生器成为了研究的热点。

本文旨在探讨基于DSP的数字信号发生器设计,介绍其基本原理、设计方案、实现方法以及性能测试等方面的内容。

文章将简要介绍数字信号发生器的概念、分类及应用领域,阐述其研究背景和意义。

文章将详细介绍基于DSP的数字信号发生器的设计思路,包括硬件平台的选择、DSP芯片的性能要求、信号发生器的总体结构设计等。

接着,文章将重点阐述数字信号发生器的核心算法,包括波形生成算法、频率合成算法、幅度调制算法等,并分析其实现原理和性能优劣。

文章将通过实验测试验证数字信号发生器的性能,包括波形精度、频率稳定性、幅度调制精度等指标,为实际应用提供参考依据。

本文旨在为从事数字信号发生器设计、开发和应用的相关人员提供有益的参考和指导,推动数字信号发生器技术的进一步发展。

二、数字信号发生器的基本原理数字信号发生器是一种能够产生各种预设或自定义数字信号的设备,这些信号包括但不限于正弦波、方波、三角波、锯齿波等。

其基本原理主要依赖于数字信号处理(DSP)技术和数字到模拟转换器(DAC)。

波形数据存储:各种预设波形的数据会被存储在设备的存储器中。

这些数据通常是以数字形式存在的,可以是固定的预设波形,也可以是用户自定义的波形。

波形选择:用户可以通过设备的用户界面选择需要的波形。

一旦用户选择了特定的波形,相应的波形数据就会被加载到DSP处理器中。

数字信号处理:DSP处理器会对加载的波形数据进行处理。

这可以包括改变波形的频率、振幅、相位等参数,以及实现更复杂的信号调制和处理。

基于DSP技术的任意波形发生器的设计与实现

基于DSP技术的任意波形发生器的设计与实现

94 E I C Vo l .16 2009 No.1欢迎光临本刊网站h tt p://www.e i Umax 、U i m n 、Qmax 、Qm in 。

对于Umax 、Um in 的整定,可参照当地的电网运行规程,设定合格电压的上下限。

例如:如果当地10k V 的合格电压的范围为9.8~10.7k V,因此Umax 设定为10.7,Um in 设定为10.0,对于10k V 因馈线长网损较大的特殊情况,可将Um in 适当增大。

4.1.2 无功Qmax 、Qm i n 的整定Qmax 与Qm in 的整定比较复杂,因为Q 与负荷大小密切相关。

对于Qmax 、Qm in 的整定,应先根据当地电网对于功率因数的运行规定,确定C OSΦmax 及COS Φm in 。

例如:COSΦmax 规程允许0.98,COS Φm in 规程允许0.9。

现假设对于一台两卷变压器,容量为50000k VA 。

现考虑该台变压器运行在额定负荷的80%情况下,则可得出Qmax 及Qm in 在80%的额定负荷条件下的值:Qmax =80%3S 3√(1-C OSΦm in 3COS Φm in =17436k VarQm in =80%3S 3√(1-C OSΦmax 3COS Φmax =7960k Var因为负荷是变化的,因此Qmax 与Qm in 随着不同的负荷变化而变化。

因此VQC 软件一般都要求分时段执行定值。

所以可根据当地的负荷变化规律,在不同的时段整定不同的Qmax 与Qm in 大小。

本装置有可分为5个时段。

4.2 投退一组并联电容器对电压的变化率ΔU确定投一组并联电容器对母线电压的影响,通常比较困难。

因为负荷受时间、季节的变化而不同,因此要精确整定是比较困难的。

可以利用综合自动化系统的遥测数据来确定此定值。

4.3 投一组并联电容器对无功的变化率对于一组并联电容器,其出厂铭牌都会注明其容量,例如对于某电容器组,其参数为5010k Var,则其容量可直接作为投一组并联电容器对无功的变化大小,例如对于上述电容,则其对无功的变化率为5010k Var 。

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

数字信号处理(DSP)综合设计性实验报告学院:电子信息工程学院班级:通信0708指导教师:高海林学生:原凌云07211253张丽康07211256北京交通大学电工电子教学基地2004年12月28日目录一、设计任务 (3)二、实验目的 (3)三、设计内容 (3)四、实验原理 (4)五、程序设计 (6)1、程序源代码2、实验截图和结果六、实验总结 (22)七、参考资料 (23)一、设计任务书信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。

各种波形曲线均可以用三角函数方程式来表示。

能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。

函数信号发生器在电路实验和设备检测中具有十分广泛的用途。

信号发生器在现代工程中应用非常广泛。

在实际中常需要产生一些特殊波形,用于仿真实际信号的波形,以检测和调试测量装置。

使用DSP 和D/A 转换器可以产生连续的正弦波信号,同样也能产生方波、锯齿波、三角波等其它各种信号波形。

本设计要求采用DSP及其D/A转换器产生上述各种信号波形。

二、实验目的(1)了解产生信号的两种方法及各自的优缺点。

(2)掌握使用DSP产生正弦波的原理和算法,进而掌握一般信号产生的原理和方法。

(3)掌握5402DSK CODECC(A/D、D/A)的工作原理和初始化过程。

(4)掌握使用指针访问片上ROM中正弦查找表的方法。

三、设计内容使用DSP 产生300—4000HZ 的正弦信号,要求使用查表法,测量产生的信号波形的频率和幅度,并且频率可变、幅度可变、直流分量可变。

用软件CCS5000编程实现,并硬件(DSK 板或示波器)连接进行功能演示。

使用计算法产生余弦波分量。

发挥部分:(1)使用DSP 产生300—4000HZ 的方波、锯齿波和三角波。

(2)使用现有程序,实现不改变源程序,频率和幅度自动可调。

四、实验原理产生连续信号的方法通常有两种:查表法和计算法,查表法不如计算法使用灵活。

计算法可以使用泰勒级数展开法进行计算,也可以使用差分方程进行迭代计算或者直接使用三角函数进行计算。

计算结果可以边计算边输出,也可以先计算后输出。

正弦函数和余弦函数的泰勒级数数学表达式为:=x sin ΛΛ+--+-+-+---)!12()1(!9!7!5!31219753n x x x x x x n n ,x ∀),(∞-∞∈ =x cos ΛΛ+-+-+-+-)!2()1(!8!6!4!2128642n x x x x x n n ,x ∀),(∞-∞∈. 如果要计算一个角度ⅹ的正弦和余弦值,可以取其前五项进行近似计算。

或使用下面递归的差分方程进行计算。

y [n ]=A*y [n -1]-y [n -2] 其中:A=2cos(x ),x =2πF/F S 。

F —信号频率,F S—D/A转换频率。

利用递推公式计算正弦和余弦值需要已知cos(x)和正弦、余弦的前两个值。

计算时所需的计算量小,但如果用来产生连续的正弦和余弦信号,则累积误差太大。

要得到精确的计算结果,可以使用泰勒级数展开法进行计算,当然计算时所需的计算量很大。

在实际应用时可以根据需要选择相应的算法。

要产生一个正弦信号,首先要算出一个周期内各样点的值,因为sin(x)的值总是小于1的小数,而5402 DSP是16位的定点处理器,所以要将其乘以215,变为Q15的数据格式,才能够在DSP中送到D/A转换器进行处理。

优缺点的比较:查表法,即事先将要输出的数据计算好,存储在DSP的内部RAM中,然后依次循环输出,从而才生波形。

这种方法的优点在于其速度快,可以产生频率很高的波形,而且不占用DSP的计算时间,它的缺点是需要占用DSP的内存空间,尤其是对采样频率比较大的输出波形,所需要的内部空间很大,所以这种方法用于对精度和频率要求不高的场合。

第二个方法是计算法,即采用计算的方法依次计算数据然后输出。

计算法的优缺点正好和查表法相反。

其优点是不占用DSP的存储空间,可以根据信息随时间改变或调整输出波形的周期波形;其缺点是占用DSP的计算时间,使得执行程序的开销大在实验中我们将采用查表法来实现正弦波,计算法产生余弦波。

余弦法的递推公式:cos(nx)=2cosxcos[(n-1)x]-cos[(n-2)x]其中,cosx=cos(2*pi/N)=cos(2*pi*Fs/F),n=0时cos(nx)=1,n=1时cos(nx)=cosx,令N=256,Fs=16000,F=1000调幅调频:我们将使用下面的一个界面来实现频率和幅度的连续可调,但因为此界面和CCS运行界面不能同时存在,所以我们需要脱离CCS,而将程序烧至板子,然后在虚拟示波器上面观察波形的变化。

频率、幅度及直流分量可调也可以通过改变源程序来实现。

五、程序设计基本部分:【1】查表法实现正弦波的程序:/**********正弦信号产生程序[1]**********************/#include <type.h>#include <board.h>#include <codec.h>#include <mcbsp54.h>#include <dsplib.h>void delay(s16 period);HANDLE hHandset;s16 data;/*****************************************************************************//* 片上ROM中的正弦函数查表法*//*****************************************************************************/s16 SINE_TABLE[]={0x00000,0x00324,0x00647,0x0096A,0x00C8B,0x00FAB,0x012C7,0x015E1,0x018F8,0x01C0B,0x01F 19,0x02223,0x02527,0x02826,0x02B1E,0x02E10,0x030FB,0x033DE,0x036B9,0x0398C,0x03C56,0x03F16,0x041CD,0x0447A,0x0471C,0x049B3,0x04C3F,0x04EBF,0x05133,0x05 39A,0x055F4,0x05842,0x05A81,0x05CB3,0x05ED6,0x060EB,0x062F1,0x064E7,0x066CE,0x068A5,0x06A6C,0x06C23,0x06DC9,0x06F5E,0x070E1,0x07254,0x073B5,0x07 503,0x07640,0x0776B,0x07883,0x07989,0x07A7C,0x07B5C,0x07C29,0x07CE2,0x07D89,0x07E1C,0x07E9C,0x07F08,0x07F61,0x07FA6,0x07FD7,0x07FF5,0x07FFE,0x07F F5,0x07FD7,0x07FA6,0x07F61,0x07F08,0x07E9C,0x07E1C,0x07D89,0x07CE2,0x07C29,0x07B5C,0x07A7C,0x07989,0x07883,0x0776B,0x07640,0x07503,0x073B5,0x07 254,0x070E1,0x06F5E,0x06DC9,0x06C23,0x06A6C,0x068A5,0x066CE,0x064E7,0x062F1,0x060EB,0x05ED6,0x05CB3,0x05A81,0x05842,0x055F5,0x0539A,0x05133,0x04E BF,0x04C3F,0x049B3,0x0471C,0x0447A,0x041CD,0x03F16,0x03C56,0x0398C,0x036B9,0x033DE,0x030FB,0x02E10,0x02B1E,0x02826,0x02527,0x02223,0x01F19,0x01C 0B,0x018F8,0x015E1,0x012C7,0x00FAB,0x00C8B,0x0096A,0x00647,0x00324,0x00000,0x0FCDC,0x0F9B9,0x0F696,0x0F375,0x0F056,0x0ED39,0x0EA1F,0x0E708,0x0E3 F5,0x0E0E7,0x0DDDD,0x0DAD9,0x0D7DA,0x0D4E2,0x0D1F0,0x0CF05,0x0CC22,0x0C947,0x0C647,0x0C3AA,0x0C0EA,0x0BE33,0x0BB86,0x0B8E4,0x0B64D,0x0B3C1,0x0 B141,0x0AECD,0x0AC66,0x0AA0C,0x0A7BE,0x0A57F,0x0A34D,0x0A12A,0x09F15,0x09D0F,0x09B19,0x09932,0x0975B,0x09594,0x093DD,0x09237,0x090A2,0x08F1F,0x08 DAC,0x08C4C,0x08AFD,0x089C0,0x08895,0x0877D,0x08677,0x08584,0x084A4,0x083D8,0x0831E,0x08277,0x081E4,0x08164,0x080F8,0x0809F,0x0805A,0x08029,0x080 0B,0x08002,0x0800B,0x08029,0x0805A,0x0809F,0x080F8,0x08164,0x081E4,0x08277,0x0831E,0x083D8,0x084A4,0x08584,0x08677,0x0877D,0x08895,0x089C0,0x08 AFD,0x08C4B,0x08DAC,0x08F1F,0x090A2,0x09237,0x093DD,0x09594,0x0975B,0x09932,0x09B19,0x09D0F,0x09F15,0x0A12A,0x0A34D,0x0A57F,0x0A7BE,0x0AA0B,0x0AC66,0x0AECD,0x0B141,0x0B3C1,0x0B64D,0x0B8E4,0x0BB86,0x0BE33,0x0C0EA,0x0C3AA,0x0C674,0x0C947,0x0CC22,0x0CF05,0x0D1F0,0x0D4E1,0x0D7DA,0x0DAD9,0x 0DDDD,0x0E0E7,0x0E3F5,0x0E708,0x0EA1E,0x0ED38,0x0F055,0x0F375,0x0F696,0x0F9B9,0x0FCDC,0x00000};/*****************************************************************************//* 主程序*//*****************************************************************************/void main(){s16 amp=1; //输出的正弦信号的幅度系数,可变s16 cnt=2;u16 i=0;if(brd_init(100)) //初始化5402DSK板return;/*LED发光二极管闪烁两次,表示程序开始正常运行*/while(cnt--){brd_led_toggle(BRD_LED0);delay(1000);brd_led_toggle(BRD_LED1);delay(1000);brd_led_toggle(BRD_LED2);delay(1000);}/*获得Codec(D/A转换器)的句柄*/hHandset=codec_open(HANDSET_CODEC);/*初始化D/A转换器*/codec_dac_mode(hHandset,CODEC_DAC_15BIT); //DAC设置为15比特模式codec_aout_gain(hHandset,CODEC_AOUT_MINUS_12dB); //设置模拟输出增益为-6dB codec_sample_rate(hHandset,SR_16000); //D/A转换速率为16kHz/*正弦信号发生程序*/while(1){/*D/A转换器是否准备好*/while(!MCBSP_XRDY(HANDSET_CODEC)){};/*将信号样点输出到D/A转换器*/*(volatile u16*)DXR1_ADDR(HANDSET_CODEC)=amp*SINE_TABLE[i];i=i+100; //此时产生的正弦信号频率为6250Hz,每个周期的样点N=256/100=2.56i+=0x00ff; //修正样点指针}}/*将输出信号样点存入数据输出缓冲区,可使用图形观察窗口观察输出信号波形*/void delay(s16 period){int i,j;for(i=0;i<period;i++){for(j=0;j<period>>1;j++);}}实验成果截图:/**********正弦信号产生程序[2]**********************/ #include <type.h>#include <board.h>#include <codec.h>#include <mcbsp54.h>#include <math.h>#define N 256#define pi 3.1415927#define pi2 2*pi#define F0 1000#define Fs 16000 //Sampling frequency#pragma DATA_SECTION(_sinx,"data_buf1")double _sinx[256];#pragma DATA_SECTION(dacdata,"data_buf2")int dacdata[256],outbuffer[256];int amp=1;void delay(int);void main(void){double t=0, dt;unsigned int i=0;HANDLE hHandset;int cnt=2;if(brd_init(100))return; //初始化5402DSK板while(cnt--){brd_led_toggle(BRD_LED0); //切换LED指示灯0的显示状态delay(1000);brd_led_toggle(BRD_LED1); //切换LED指示灯1的显示状态delay(1000);brd_led_toggle(BRD_LED2); //切换LED指示灯2的显示状态delay(1000);}dt=pi2*F0/Fs;for(i=0;i<N;i++){_sinx[i]=(sin(t));----------查表法实现正弦波dacdata[i]=_sinx[i]*2047;outbuffer[i]=amp*dacdata[i];t=t+dt;}hHandset = codec_open(HANDSET_CODEC); // 获取设置codec的句柄codec_dac_mode(hHandset, CODEC_DAC_15BIT); // 15bit工作模式codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB); //模拟输出增益为-6dB codec_sample_rate(hHandset,SR_16000); // 转换速率为16KHzwhile(1){while (!MCBSP_XRDY(HANDSET_CODEC) ) {}; //如果D/A未准备好,则等待*(volatile u16*)DXR1_ADDR(HANDSET_CODEC) =outbuffer[i++]; // 将数据写入D/A转换器}}void delay(s16 period){int i,j;for(i=0; i<period; i++){for(j=0;j<period>>1;j++);}}实验成果截图:【2】计算法实现余弦波的程序:/**********余弦信号产生程序**********************/ #include<type.h>#include<board.h>#include<codec.h>#include<mcbsp54.h>void delay(s16 period);HANDLE hHandset;s16 data;#define _COSX 0.999390827#pragma DATA_SECTION(_cosx,"data_buf1") float _cosx[200];#pragma DATA_SECTION(dacdata,"data_buf2") int dacdata[180];void main(void){s16 cnt=2;u16 i=0;/*计算余弦信号的样点值,计算得到的样点存储在dacdata[]数组中*/ _cosx[0]=1.000;dacdata[0]=4095;_cosx[1]=_COSX;dacdata[1]=_COSX*2047+2048;i=2;while(1){if(i++>179)break;_cosx[i]=2*_COSX*_cosx[i-1]-_cosx[i-2];dacdata[i]=_cosx[i]*2047+2048;}if(brd_init(100)) //初始化5402DSK板return;/*LED发光二极管闪烁两次,表示程序开始正常运行*/while(cnt--){brd_led_toggle(BRD_LED0);delay(1000);brd_led_toggle(BRD_LED1);delay(1000);brd_led_toggle(BRD_LED2);delay(1000);}/*获得Codec(D/A转换器)的句柄*/hHandset=codec_open(HANDSET_CODEC);/*初始化D/A转换器*/codec_dac_mode(hHandset,CODEC_DAC_15BIT); //DAC设置为15比特模式codec_aout_gain(hHandset,CODEC_AOUT_MINUS_6dB); //设置模拟输出增益为-6dB codec_sample_rate(hHandset,SR_16000); //D/A转换速率为16kHzi=0;while(1){if(i>179) i=0;/*D/A转换器是否准备好*/while(!MCBSP_XRDY(HANDSET_CODEC)){};/*将dacdata[i]输出到D/A*/*(volatile u16*)DXR1_ADDR(HANDSET_CODEC)=dacdata[i++];}}void delay(s16 period){int i,j;for(i=0;i<period;i++){for(j=0;j<period>>1;j++);}}实验成果截图:发挥部分(1):【1】锯齿波:/**********锯齿波信号产生程序**********************/#include <type.h>#include <board.h>#include <codec.h>#include <mcbsp54.h>#include <math.h>#define N 256#define pi 3.1415927#define pi2 2*pi#define F0 1000 //Signal frequency#define Fs 16000 //Sampling frequency#pragma DATA_SECTION(saw,"data_buf1") double saw[N];#pragma DATA_SECTION(dacdata,"data_buf2")int dacdata[N],outbuffer[N];int amp=1;unsigned int L=0;void delay(int);void main(void){double t=0, dt;unsigned int i=0;HANDLE hHandset;int cnt=2;brd_init(100);while(cnt--){brd_led_toggle(BRD_LED0); //切换LED指示灯0的显示状态delay(1000);brd_led_toggle(BRD_LED1); //切换LED指示灯1的显示状态delay(1000);brd_led_toggle(BRD_LED2); //切换LED指示灯2的显示状态delay(1000);}dt=8*pi*F0/Fs;for(t=0,i=0;i<=N/4;i++,t+=dt){saw[i]=t;saw[i+N/4]=0;}for(t=0,i=N/2;i<3*N/4;i++,t+=dt){saw[i]=t;saw[N-i+N/2]=0;}for(i=0;i<N;i++){ dacdata[i]=saw[i]*10;outbuffer[i]=amp*dacdata[i];}hHandset = codec_open(HANDSET_CODEC);// 获取设置codec的句柄codec_dac_mode(hHandset, CODEC_DAC_15BIT); // 15+1bit工作模式codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB);//模拟输出增益为-6dB codec_sample_rate(hHandset,SR_16000); // 转换速率为16KHzwhile(1){while (!MCBSP_XRDY(HANDSET_CODEC) ) {}; //如果D/A未准备好,则等待*(volatile u16*)DXR1_ADDR(HANDSET_CODEC) =outbuffer[i++]; // 将数据写入D/A转换器}}void delay(int period){int i,j;for(i=0; i<period; i++){for(j=0;j<period;j++);}}实验成果截图:【2】方波:/**********方波信号产生程序**********************/#include <type.h>#include <board.h>#include <codec.h>#include <mcbsp54.h>#include <math.h>#define N 256#define pi 3.1415927#define pi2 2*pi#define F0 1000 //Signal frequency#define Fs 16000 //Sampling frequency#pragma DATA_SECTION(squ,"data_buf1") double squ[N];#pragma DATA_SECTION(dacdata,"data_buf2")int dacdata[N],outbuffer[N];int amp=1;unsigned int L=0;void delay(int);void main(void){unsigned int i=0;HANDLE hHandset;int cnt=2;brd_init(100);while(cnt--){brd_led_toggle(BRD_LED0); //切换LED指示灯0的显示状态delay(1000);brd_led_toggle(BRD_LED1); //切换LED指示灯1的显示状态delay(1000);brd_led_toggle(BRD_LED2); //切换LED指示灯2的显示状态delay(1000);}for(i=0;i<=N/4;i++){squ[i]=1;squ[i+N/4]=-1;squ[i+N/2]=1;squ[N-i]=-1;}for(i=0;i<N;i++){ dacdata[i]=squ[i];outbuffer[i]=amp*dacdata[i];}hHandset = codec_open(HANDSET_CODEC);// 获取设置codec的句柄codec_dac_mode(hHandset, CODEC_DAC_15BIT); // 15+1bit工作模式codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB);//模拟输出增益为-6dB codec_sample_rate(hHandset,SR_16000); // 转换速率为16KHzwhile(1){while (!MCBSP_XRDY(HANDSET_CODEC) ) {}; //如果D/A未准备好,则等待*(volatile u16*)DXR1_ADDR(HANDSET_CODEC) =outbuffer[i++]; // 将数据写入D/A转换器}}void delay(int period){int i,j;for(i=0; i<period; i++){for(j=0;j<period;j++);}}实验成果截图:【3】三角波:/**********三角波信号产生程序**********************/#include <type.h>#include <board.h>#include <codec.h>#include <mcbsp54.h>#include <math.h>#define N 256#define pi 3.1415927#define pi2 2*pi#define F0 1000 //Signal frequency#define Fs 16000 //Sampling frequency#pragma DATA_SECTION(tri,"data_buf1") double tri[N];#pragma DATA_SECTION(dacdata,"data_buf2")int dacdata[N],outbuffer[N];int amp=2;unsigned int L=0;void delay(int);void main(void){double t=0, dt;unsigned int i=0;HANDLE hHandset;int cnt=2;brd_init(100);while(cnt--){brd_led_toggle(BRD_LED0); //切换LED指示灯0的显示状态delay(1000);brd_led_toggle(BRD_LED1); //切换LED指示灯1的显示状态delay(1000);brd_led_toggle(BRD_LED2); //切换LED指示灯2的显示状态delay(1000);}dt=8*pi*F0/Fs;for(t=0,i=0;i<=N/4;i++,t+=dt){tri[N/2-i]=tri[i]=t;}for(t=0,i=N/2;i<=3*N/4;i++,t+=dt){tri[i]=t;tri[N-i+N/2]=tri[i];}for(i=0;i<=N;i++){ dacdata[i]=tri[i]*10;outbuffer[i]=amp*dacdata[i];}hHandset = codec_open(HANDSET_CODEC);// 获取设置codec的句柄codec_dac_mode(hHandset, CODEC_DAC_15BIT); // 15+1bit工作模式codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB);//模拟输出增益为-6dBcodec_sample_rate(hHandset,SR_16000); // 转换速率为16KHzwhile(1){while (!MCBSP_XRDY(HANDSET_CODEC) ) {}; //如果D/A未准备好,则等待*(volatile u16*)DXR1_ADDR(HANDSET_CODEC) =outbuffer[i++]; // 将数据写入D/A转换器}}void delay(int period){int i,j;for(i=0; i<period; i++){for(j=0;j<period;j++);}}实验成果截图:发挥部分(2):关于发挥部分(2),即使用现有程序,实现不改变源程序,频率和幅度自动可调。

相关文档
最新文档