DSP多波形信号发生器
DSP课程设计——信号发生器(方波)

成绩评定表课程设计任务书目录1 绪论 (1)1.1 设计背景 (1)1.2 设计目的 (2)1.3 设计任务 (2)2 设计过程 (3)2.1 设计原理 (3)2.2 XF引脚周期性变化 (3)2.3 子程序的调用 (4)3 程序代码 (5)3.1 源程序 (5)3.2SDRAM初始化程序 (7)3.3 方波程序连接命令文件 (9)4 调试仿真运行结果分析 (10)4.1 寄存器仿真结果 (10)4.2 模拟输出仿真 (12)5.设计总结 (13)参考文献 (13)信号发生器(方波)1 绪论1.1 设计背景数字信号处理是20世纪60年代,随着信息学科和计算机学科的高速发展而迅速发展起来的一门新兴学科。
它的重要性日益在各个领域的应用中表现出来。
其主要标志是两项重大进展,即快速傅里叶变换(FFT)算法的提出和数字滤波器设计方法的完善。
数字信号处理是把信号用数字或符号表示成序列,通过计算机或通用(专用)信号处理设备,用数值计算方法进行各种处理,达到提取有用信息便于应用的目的。
例如:滤波、检测、变换、增强、估计、识别、参数提取、频谱分析等。
数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。
因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。
而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。
数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器(DSP)和专用集成电路(ASIC)等。
数字信号处理的研究方向应该更加广泛、更加深入.特别是对于谱分析的本质研究,对于非平稳和非高斯随机信号的研究,对于多维信号处理的研究等,都具有广阔前景。
数字信号处理技术发展很快、应用很广、成果很多。
多数科学和工程中遇到的是模拟信号。
以前都是研究模拟信号处理的理论和实现。
模拟信号处理缺点:难以做到高精度,受环境影响较大,可靠性差,且不灵活等。
数字系统的优点:体积小、功耗低、精度高、可靠性高、灵活性大、易于大规模集成、可进行二维与多维处理。
高阶调制信号发生器的DSP实现

高阶调制信号发生器的DSP实现高阶调制信号发生器(Higher Order Modulation Signal Generator,简称HOMSG)是一种用于产生高阶调制信号的设备。
它可以实现QAM、QPSK、16QAM、64QAM等高阶调制方式,并且能够实现多载波调制、单载波调制等多种调制方式。
DSP是数字信号处理技术的重要组成部分,可以对数字信号进行处理、分析和合成。
本文将介绍高阶调制信号发生器的DSP实现方法。
高阶调制信号发生器的工作就是产生高阶调制信号,其实现方法可以采用FPGA或DSP 等数字信号处理技术,这里主要介绍DSP实现方法。
高阶调制信号发生器的DSP实现中,需要进行信号生成、信号加工、信号发射等工作。
其中信号生成是通过模拟信号、计算信号等方法来产生原始信号,信号加工是将原始信号进行滤波、调制等处理,信号发射是将处理后的信号通过适当的载波发射给接收端。
1. 原始信号生成高阶调制信号发生器的信号生成可以采用模拟信号和数字信号混合的方式。
模拟信号如正弦信号、方波信号、噪声信号等可以通过芯片内部的DAC产生,数字信号可以通过CPU计算得到。
生成的信号需要满足高频带宽、高精度、低噪声等要求。
2. 信号加工信号加工是将原始信号进行调制、滤波等处理,得到符合要求的调制信号。
调制方式可以选择QAM、QPSK等高阶调制方式,滤波需要保证滤波器通带幅度响应平坦、抗干扰能力强等。
3. 信号发射信号发射是将处理后的信号通过载波发射,需要选择合适的载波频率,保证信号翻倍率足够大、国际电信联盟规定的辐射电平不超标,发射功率要与信噪比相匹配。
DSP是一种数字信号处理芯片,可以在单片上完成数字信号的处理工作。
为了保证高阶调制信号发生器的性能,需要选取高性能的DSP平台。
可以选择TMS320C6xxx系列、ADSP2106x系列、ADSP21060系列等高性能DSP芯片,并且需要配合相应的开发工具和软件库。
四、总结高阶调制信号发生器的DSP实现需要进行信号生成、信号加工和信号发射等工作。
基于DSP的正弦信号发生器的设计

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

多种波形发生器实验分析报告目录一、实验概述 (2)1. 实验目的 (2)2. 实验设备与材料 (3)3. 实验原理 (4)二、实验内容与步骤 (5)1. 波形发生器设计与搭建 (6)1.1 设计要求与方案选择 (7)1.2 波形发生器硬件搭建 (9)1.3 波形发生器软件编程 (10)2. 多种波形合成与输出 (12)2.1 合成波形的设计与实现 (12)2.2 波形输出设置与调整 (13)2.3 实时监控与数据分析 (15)3. 实验测试与结果分析 (16)3.1 测试环境搭建与准备 (17)3.2 实验数据采集与处理 (18)3.3 结果分析与讨论 (19)三、实验结果与讨论 (20)1. 实验结果展示 (21)2. 结果分析 (22)2.1 各波形参数对比分析 (23)2.2 性能评估与优化建议 (24)3. 问题与改进措施 (25)四、实验总结与展望 (26)1. 实验成果总结 (27)2. 存在问题与不足 (28)3. 后续研究方向与展望 (29)一、实验概述本次实验旨在研究和分析多种波形发生器的性能特点,包括产生信号的频率、幅度、波形稳定性等方面。
实验中采用了多种类型的波形发生器,如正弦波、方波、三角波、梯形波等,并对其输出波形进行了详细的测量和分析。
实验过程中,我们首先对各种波形发生器的基本功能进行了测试,确保其能够正常工作。
我们对不同波形发生器产生的波形进行了对比分析,重点关注了波形的频率、幅度和波形稳定性等关键指标。
我们还对波形发生器的输出信号进行了频谱分析和噪声测试,以评估其性能表现。
通过本次实验,我们获得了丰富的实验数据和经验,为进一步优化波形发生器的设计提供了有力支持。
实验结果也为我们了解各种波形发生器在实际应用中的性能表现提供了重要参考。
1. 实验目的本次实验的主要目的是深入研究和理解多种波形发生器的原理及其在实际应用中的表现。
通过搭建实验平台,我们能够模拟和观察不同波形(如正弦波、方波、三角波等)的产生与特性,进而探究其各自的优缺点以及在不同场景下的适用性。
基于DSP的DDS信号发生器硬件设计电路图

---------------------------------------------------------------范文最新推荐------------------------------------------------------ 基于DSP的DDS信号发生器硬件设计+电路图摘要在21世纪的今天,基于DSP的信号发生器以其编程的高度灵活性,波形的高精度与高稳定性等特点而脱颖而出,具有极大的应用价值和广泛的应用前景。
本文利用高性能DSP芯片加上合理的外围控制电路构成基于DSP的DDS信号发生器,完成电压监测电路的硬件设计工作。
通过对DDS的相应介绍采用查表法实现正弦波的产生,采用高速微处理器实现DDS。
然后完成硬件芯片的选型(TMS320LF2407)和硬件电路的设计工作。
硬件设计主要有核心控制模块电路、片选电路、串行通信电路、AD转换电路及信号采集电路,以此实现硬件电路完成接收上位机的控制信号,采集外部电压信号处理后送给上位机,实现对电压的监控。
关键词:信号发生器,DDS,电压监控,硬件设计11870毕业设计说明书(论文)外文摘要1 / 10TitleDDS signal generator hardware design based on DSPAbstractIn the 21st century,the DSP signal generator stand out for its high degree of flexibility of the programming waveforms, high precision and high stability characteristics, shows great value and broad application prospects.This article takes use of high performance DSP chip with peripheral control circuit DSP-based DDS signal generator,complete the hardware design of the voltage monitoring circuit.Achieve the generation of sine wave with look-up table method corresponding introduction of DDS.Then complete selection of hardware chip(TMS320LF2407)and hardware design.The hardware design mainly consists of core control module circuit, chip select circuit, the serial communication circuit, AD converter circuit and the signal acquisition circuit,In order to achieve the hardware circuit to complete the PC to receive the control signal.The acquisition of an external---------------------------------------------------------------范文最新推荐------------------------------------------------------voltage signal processing to give the host computer,in order to monitoring the voltage.Key words: signal generator,DDS,voltage monitoring,hardware design4.4 PC机与DSP的点对点的串行通信接口244.5 输入输出接口254.5.1A/D的接口254.5.2电压信号采样电路265电路设计中注意的问题28致谢30参考文献313 / 10附录硬件电路原理图321 绪论1.1 信号发生器简介信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。
基于Proteus的多波形信号发生器仿真设计

满 足实 际应 用 需 要 。 实验 结果 表 明 , 使用 P r o t e u s 仿 真 与 硬 件 电 路 实 验 结 果 基 本 一 致 。信 号 发 生 器 各 波 形 的 输 出为 :
方 波( O ~1 0 V) 、 三角波( 4 ~2 0 V) 、 正弦波 ( 6 ~2 0 V) ; 输 出频 率 范 围 为 : 5 0 5 Hz  ̄4 9 k Hz 。该 信 号 发 生 器 具 有 简 单 、 实
信号发生器在教学和电子测量中具有广泛的应用为了更好地对信号发生器的实现方法进行研究采用仿真的方法对信号发生器的实现进行模拟
删
E I E C T R O N I C 电子 M E A S 测量技术 U R E M E N T T E C H N O L O G Y
第 2 0 3 6 1 3 卷 年 第 3 月 3 期
h a r d wa r e c i r c u i t . Th e o u t p u t v a l u e o f t h e wa v e f o r ms o f t h e s i g n a l g e n e r a t o r a r e : s q u a r e wa v e ( 0  ̄1 0 V), t r i a n g l e wa v e
s i gna l ampl i f yi n g c i r c u i t .The c i r c ui t i s s i m ul a t e d i n Pr o t e us s o f t wa r e e n vi r onm e nt 。 an d t he h a r d wa r e c i r c ui t i s v a l i da t e d . T he e xpe r i me nt a l r e s u l t s s h ow t ha t us i n g Pr ot e u s s i mu l a t i o n e x pe r i me nt a l r e s ul t s ar e ba s i c a l l y c o ns i s t e nt w i t h t he
基于DSP和DDS技术相位及频率严格可调的多路同步信号发生器

Absr t: e sg lg n r t rb s d o P c i t ac Th ina e e ao a e n a DS h p TMS 2 281 n li l 3 0F 2 a d mu tpe DDS c i s AD9 3 a e e ae hp 8 3 c n g n rt
基于 DP D S S 和 D 技术相位及频率严格可调的多路同步信号发生器冰
邓 腾, 吴校 生 周 晓玲 , , 陈文元 , 张卫平 , 崔 峰 , 武 刘
( 微米/ 纳米加工技术重点实验室 , 上海交通大 学微 纳科 学技 术研 究院 , 上海 2 0 4 ) 0 20
ቤተ መጻሕፍቲ ባይዱ
摘 要 : 基于 D P S 芯片 T S2f 1 控制多片 D S M 30 82 2 D 芯片 A 93 构成的信号发生器. D 83 能够产生频率和相位均严格可调的多
to g e e iai n mir moo t ttr e e e Th o to r r o ie y C a d la e e al o r ma n tl vtto c o t rwih sa o mb dd d. e c n r lwo ds a e c mp ld b n o d d s r ly t i
路信号 。该 电路应用于是定子嵌入式 电磁悬浮微 马达 的旋 转驱动 电路 , 实现转 子的旋转 驱动 。通过 C语言 编译并采 用 串行 方式加载芯片控制字 , 实现 软件控制 信号频率 和相 位差的调整。产生的信号具有频 率稳定性好 。 低频频 率准确度 高及 频率分 辨率高 , 相位差精准等特点。
关 键词 : 信号发生器;S ;D ; D P D S相位差; 频率; 可调 中图分 类号 : N 3 T 4 文献标 识码 : A 文章编 号 :0 5 9 9 ( 0 2 0 — 1 3 0 10 — 4 0 2 1 )2 06 — 5
多波形信号发生器设计

多波形信号发生器设计一、简介设计一个能够产生多个信号输出的信号发生器,要求输出波形分别为方波、三角波、正弦波。
特别适合电子爱好者或学生用示波器来做观察信号波形实验。
该信号发生器电路简单、成本低廉、调整方便。
它是基于ne555计时器接成振荡器工作形式和电容积分而产生的波形。
其工作频率为1KHz左右,调节滑动变阻器可改变振荡器的频率。
波形发生器是信号源的一种,主要给被测电路提供所需要的己知信号(各种波形),然后用其它仪表测量感兴趣的参数。
可见信号源在各种实验应用和试验测试处理中,它的应用非常广泛。
它不是测量仪器,而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以满足测量或各种实际需要。
目前我国己经开始研制波形发生器,并取得了可喜的成果。
但总的来说,我国波形发生器还没有形成真正的产业。
就目前国内的成熟产品来看,多为一些PC仪器插卡,独立的仪器和VXI系统的模块很少,并且我国目前在波形发生器的种类和性能都与国外同类产品存在较大的差距,因此加紧对这类产品的研制显得迫在眉睫。
二、设计目的1、掌握方波—三角波——正弦波函数发生器的原理及设计方法。
2、掌握ne555计时器工作原理和各种电子器件的简单认识。
3、能够独立的进行电路板焊接和电路检查与故障排除。
4、学会用示波器来观察发生器的波形输出并作出判断。
三、硬件介绍及其原理1、元件列表ne555是一种应用特别广泛作用很大的的集成电路,属于小规模集成电路,在很多电子产品中都有应用。
ne555的作用是用内部的定时器来构成时基电路,给其他的电路提供时序脉冲。
ne555时基电路有两种封装形式有,一是dip双列直插8脚封装,另一种是sop-8小型(smd)封装形式。
其他ha17555、lm555、ca555分属不同的公司生产的产品。
内部结构和工作原理都相同。
ne555的内部结构可等效成23个晶体三极管.17个电阻.两个二极管.组成了比较器.RS触发器.等多组单元电路.特别是由三只精度较高5k 电阻构成了一个电阻分压器.为上.下比较器提供基准电压.所以称之为555.ne555属于cmos工艺制造.NE555引脚图介绍如下1地GND2触发3输出4复位5控制电压6门限(阈值)7放电8电源电压Vcc应用十分广泛.下面是一个简单的ne555电路应用内部结构几种工作形式第1种(图1)是人工启动单稳,又因为定时电阻定时电容位置不同而分为2个不同的单元,并分别以1.1.1和1.1.2为代号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理(DSP)综合设计性实验报告学院:电子信息工程学院班级:自动化指导教师:学生:北京交通大学电工电子教学基地2014年9月20日目录一实验目的 (3)二实验技术指标与设计要求 (3)三实验原理 (3)四实验操作 (4)五程序设计 (10)六硬件输出演示 (16)七实验感想与体会 (22)八参考文献 (23)一 实验目的1 掌握多波形信号发生器的DSP 设计可使学生更加透彻的理解和应用奈奎斯特采样定理,提 高学生系统地思考问题和解决问题的能力。
2 通过对DSP 信号处理器及D/A 转换器的编程,可以培养学生C 语言编程能力以及使用DSP 硬件平台实现数字信号处理算法的能力。
3 学习并掌握使用DSP 产生正弦波、方波、三角波、锯齿波灯信号的原理和算法,并利用GEL 文件实现频率和幅度的自动可调。
4 掌握利用CCS 建立工程、编译与调试代码的基本过程,可以在软件中观察图形及变量,并利用硬件进行输出显示。
5 掌握产生多种波形的理论方法,并比较产生信号的两种主要方法(查表发和计算法)的优缺点。
二 实验技术指标与设计要求1 基本部分1) 使用DSP 产生300—16000Hz 的正弦、方波、锯齿波和三角波信号,输出信号的幅度从 0~1VRMS (有效值)。
要求使用计算法,并且频率可变、幅度可变。
2) 调节信号的频率和幅度时不能中断程序的运行。
(提示:可以使用CCS 下的GEL 语言实现此功能)2 发挥部分在实验板的信号输出端分别接入16欧姆和32欧姆负载电阻,信号仍然保持空载时所设定的输出幅度。
三 实验原理1 产生连续的波形的方法主要有以下两种方法:1)查表法:把事先将需要输出的数据计算好,存储在DSP 中,然后依次输出就可以了。
查表法的优点是速度快,可以产生频率较高的波形,而且不占用DSP 的计算时间;查表法的缺点是在于需要占用DSP 的内部的存储空间,尤其对采样频率比较大的输出波形,这样,需要占用的内部的空间将更大,而DSP 内部的存储空间毕竟有所限制。
这使得查表法的应用场合十分有限。
2)计算法:计算法可以使用泰勒级数展开法进行计算,也可以使用差分方程进行迭代计算或者直接使用三角函数进行计算。
计算结果可以边计算边输出,也可以先计算后输出。
计算法的使用比查表法灵活。
计算法的优缺点正好和查表法相反。
即:其优点是不占用DSP 的存储空间,其缺点是占用DSP 的计算时间,使得执行程序的开销变大。
本实验将用第二种方法即计算法产生一个正弦波信号,从DA 输出。
正弦函数和余弦函数的泰勒级数数学表达式为:=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 ∀),(∞-∞∈. 如果要计算一个角度ⅹ的正弦和余弦值,可以取其前五项进行近似计算。
利用递推公式计算正弦和余弦值需要已知cos(x)和正弦、余弦的前两个值。
计算时所需的计算量小,但如果用来产生连续的正弦和余弦信号,则累积误差太大。
要得到精确的计算结果,可以使用泰勒级数展开法进行计算,当然计算时所需的计算量很大。
在实际应用时可以根据需要选择相应的算法。
对于周期信号,一般先使用计算法算出多个周期内的样点值,再将样点逐个循环发送到D/A 转换器。
因为sin(x)的值总是小于1 的小数,而DSP 是16 位的定点处理器,同时D/A 转换器可以接收16bit 的数据,所以要将其乘以32767,变为Q15 的数据格式,才能够在DSP 中送到D/A 转换器进行数模转换处理。
要产生正弦信号,其信号频率F 可以表达为F=Fs/N ,其中Fs 是D/A 转换器的转换频率,N 是一个周期内信号的样点数。
所以DSP 能够产生的正弦信号的最高频率为Fs/2。
DSP 实验板上的TLV320AIC23 立体声音频Codec 芯片A/D 和D/A 转换速率从8K 到96KHz ,故本DSP 实验板可产生的信号的频率最高为48KHz 。
2 调频调幅若要修改正弦信号的频率,幅值和直流分量,直接修改程序中宏定义的f,amp 和q 的值即可。
可通过Gel 控件实现。
四 实验操作1 首先点击Setup CCSstudio 进入CCS 设置。
2 接着会出现这个界面,我们选择C55xx,然后选择SEEDXDS5 10PLUS Emulator ,最后选择big.然后双击C5502芯片。
3 关闭窗口,点击Save图标,启动CCS。
4 右击Projects,选择Open project,加入放在更目录My projects 下的duoboxing 文件夹里的Taylorsine.pjt工程,把工程添加到CCS里。
5 将鼠标移动到Debug图标,选择Connect,连接设备。
6 移除Gel fiels 里原本的C5502.gel控件文件,重新加入自己的编写的SEED-C5502.gel.7 对主程序进行编译,选择Rebuild all ,对程序进行编译。
8 将程序加载到DSP上,选择Files中的Load Program.9 右击GEL,将三个GEL控件调出来,分别为app调幅控件,Wave调波控件,Fre调频控件。
按说明填好音量控制,打开虚拟仪器,点击Run运行程序,通过虚拟仪器观察结果。
10 选择Halt,可以退出程序。
五程序设计Taylorsine.c 将sineCODEC和sinecompute合并,实现计算并实时输出,利用Taylor展开式法计算正弦波,并将信号从J6端口发送出去,平台为BJTU-DSP5502板。
#include <math.h>#include <stdio.h>#include <csl.h>#include <csl_chip.h>#include <csl_i2c.h>#include <csl_pll.h>#include <csl_mcbsp.h>#include <csl_emif.h>#include <csl_emifBhal.h>#include <stdio.h>//#include "E2PROM_Function.h"#include "CODEC.h"#define q 0 //定义函数的直流分量//定义函数的幅度值#define pi 3.14159265 //给pi赋值#define Nx 1070 //每周期抽取点数#pragma DATA_SECTION(output1,"data_out1"); //存放sin数据,浮点型float output1[Nx];#pragma DATA_SECTION(output,"data_out"); //存放sin数据,定点型int output[Nx];#pragma DATA_SECTION(output2,"data_out2"); //存放sin数据,浮点型float output2[Nx];int amp, amm;int choose,temp;int frequence,tempb;#undef CODEC_ADDR#define CODEC_ADDR 0x1A// 定义McBSP的句柄MCBSP_Handle hMcbsp;/*------------------------------------------------------------------------------------*/// FUNCTION: MAIN///*------------------------------------------------------------------------------------*/void main(void){Uint16 i,k=0;float input0=0,x1,x2,step;/*****************新增函数段*****************/// Initialize CSL library - This is REQUIREDCSL_init();// The main frequency of system is 240MHz// 该频率是为了设置IIC模块的需要设置的,为了使用I2C_setup函数PLL_setFreq(1, 0xC, 0, 1, 3, 3, 0);//EMIF初始化Emif_Config();// Open McBSP port 1 and get a McBSP type handlehMcbsp = MCBSP_open(MCBSP_PORT1,MCBSP_OPEN_RESET);// ConfigMcBSP port 1 by use previously defined structureMcbsp_Config(hMcbsp);//I2C初始化I2C_cofig();//CODEC寄存器初始化inti_AIC();start://---------------------------------------------------正弦波程序-----------------------------------------------if(choose==1){PPP:for(i=0;i<=Nx-1;i++){float angle,xx;float input0=0,x1;float a,b,c,d,e,f,g,h,ii,step;//step为角度步长step=360.0/Nx; temp=choose; // Nx为360度内取样点数angle=input0+step*i;x1=3.1415926*angle/180;xx=x1*x1;a=1-xx/16/17;b=1-xx/14/15*a;c=1-xx/12/13*b;d=1-xx/10/11*c;e=1-xx/8/9*d;f=1-xx/6/7*e;g=1-xx/ 4/5*f;h=1-xx/2/3*g;ii=x1*h;output1[i]= 32767*ii; //利用泰勒级数计算出正弦波的数值,存放到output1中output[i]=amp*output1[i]/8+q/8;/*------------------------------------------------------------------------------------*/// Receive the ADC output data of CODEC// Then output the received data to DAC of CODEC/*------------------------------------------------------------------------------------*/amm=amp;tempb=frequence;while(1){while(!MCBSP_xrdy(hMcbsp)) {};MCBSP_write16(hMcbsp, output[k]); //左声道输出while(!MCBSP_xrdy(hMcbsp)) {};MCBSP_write16(hMcbsp, output[k]); //右声道输出// k=k+1; //正弦波每周期的样点为360个,输出信号的频率为Fs/N=32000/1070=29.9Hz k=k+frequence/30; //正弦波每周期的样点为36个,输出信号的频率为Fs/N=32000/107=299Hzif (k>=Nx) k=k%Nx;if( amm!=amp)goto PPP;if( temp!=choose)goto start;if( tempb!=frequence)goto PPP;}}//----------------------------------------------------方波程序如下---------------------------------else if(choose==2){PPP2:for(i=0;i<=Nx/2;i++) //方波{float angle,xx;float input0=0,x1;float step;//step为角度步长step=360.0/Nx; temp=choose; // Nx为360度内取样点数output[i]=amp*4096;}for(i=Nx/2+1;i<=Nx;i++){output[i]=-1*amp*4096;}amm=amp;tempb=frequence;while(1){while(!MCBSP_xrdy(hMcbsp)) {};MCBSP_write16(hMcbsp, output[k]); //左声道输出while(!MCBSP_xrdy(hMcbsp)) {};MCBSP_write16(hMcbsp, output[k]); //右声道输出// k=k+1; //正弦波每周期的样点为360个,输出信号的频率为Fs/N=32000/1070=29.9Hz k=k+frequence/30; //正弦波每周期的样点为36个,输出信号的频率为Fs/N=32000/107=299Hzif (k>=Nx) k=k%Nx;if( amm!=amp)goto PPP2;if( temp!=choose)goto start;if( tempb!=frequence)goto PPP2;}}//-----------------------------------------------锯齿波程序------------------------------------------else if(choose==3){PPP3:for(i=0;i<=Nx-1;i++) //锯齿波{float angle,xx;float input0=0,x1;float step;//step为角度步长step=360.0/Nx; temp=choose; // Nx为360度内取样点数angle=input0+step*i;x1=3.1415926*angle/180;output[i]=amp*1500*x1*(-1);}amm=amp;tempb=frequence;while(1){while(!MCBSP_xrdy(hMcbsp)) {};MCBSP_write16(hMcbsp, output[k]); //左声道输出while(!MCBSP_xrdy(hMcbsp)) {};MCBSP_write16(hMcbsp, output[k]); //右声道输出// k=k+1; //正弦波每周期的样点为360个,输出信号的频率为Fs/N=32000/1070=29.9Hz k=k+frequence/30; //正弦波每周期的样点为36个,输出信号的频率为Fs/N=32000/107=299Hzif (k>=Nx) k=k%Nx;if( amm!=amp)goto PPP3;if( temp!=choose)goto start;if( tempb!=frequence)goto PPP3;}}//-------------------------------------------------三角波程序--------------------------------------else if(choose==4){PPP4:for(i=0;i<=Nx-1;i++) //三角波{float angle,xx;float input0=0,x1;float step;//step为角度步长step=360.0/Nx;temp=choose; // Nx为360度内取样点数angle=input0+step*i;x1=3.1415926*angle/180;for(i=0;i<=Nx-1;i++){float angle;angle=input0+step*i;x1=3.1415926*angle/180;output1[i]=32767/128*(-x1);}for(i=0;i<=Nx/2;i++){output2[i]=0;}for(i=Nx/2;i<=Nx-1;i++){float angle;angle=input0+step*i;x1=3.1415926*angle/180;output2[i]=32767/128*(2*x1-2*3.1415926);}{output[i]=amp*6*(output1[i]+output2[i]);}amm=amp;tempb=frequence;while(1){while(!MCBSP_xrdy(hMcbsp)) {};MCBSP_write16(hMcbsp, output[k]); //左声道输出while(!MCBSP_xrdy(hMcbsp)) {};MCBSP_write16(hMcbsp, output[k]); //右声道输出// k=k+1; //正弦波每周期的样点为360个,输出信号的频率为Fs/N=32000/1070=29.9Hz k=k+frequence/30; //正弦波每周期的样点为36个,输出信号的频率为Fs/N=32000/107=299Hzif (k>=Nx) k=k%Nx;if( amm!=amp)goto PPP4;if( temp!=choose)goto start;if( tempb!=frequence)goto PPP4;}}}}Gel文件:我们在GEL文件中增加了appliction control的菜单,子菜单下有三种可调参数分别是幅度app方波选择wave和频率选择frequence。