函数信号发生器课程设计报告

                                                                                                                                                                                                                                                                             漳州师范学院

《模拟电子技术》课程设计

函数信号发生器

姓    名:

学    号:

系    别:

专    业:

年    级:

指导教师:

20##年4月3日

          函数信号发生器

               摘要

利用集成电路LM324设计并实现所需技术参数的各种波形发生电路。根据电压比较器可以产生方波,方波再继续经过基本积分电路可产生三角波,三角波经过低通滤波可以产生正弦波。经测试,所设计波形发生电路产生的波形与要求大致相符。

关键词:波形发生器;集成运放;RC充放电回路;滞回比较器;积分电路


目录

中文摘要........................................................................................... 1

1.系统设计...................................................................................... 4

1.1设计指标................................................................................................................ 4

1.2方案论证与比较...................................................................................................... 4

2.单元电路设计.............................................................................. 5

2.1方波的设计............................................................................................................. 5

2.2三角波的设计......................................................................................................... 8

2.3正弦波的设计....................................................................................................... 10

3.参数选择................................................................................... 11

3.1方波电路的元件参数选择....................................................................................... 11

4.系统测试..................................................................................... 11

4.1正弦波波形测试.................................................................................................... 11

4.2方波波形测试....................................................................................................... 12

4.3三角波波形测试.................................................................................................... 12

5.结果分析.................................................................................. 12

6.工作总结.................................................................................. 12

7.参考文献.................................................................................. 13

8.附录........................................................................................... 13


1.系统设计

1.1设计指标

1.1.1 电源特性参数

①输入:双电源12V

②输出:正弦波>1V,方波≈12 V,三角波≈5V,幅度连续可调,线性失真小。

1.1.2工作频率

工作频率范围:10 HZ~100HZ ,100 HZ~1000HZ

1.2方案论证与比较

1.2.1 方案1:采用集成运放电路设计方案产生要求的波形

主要是应用集成运放LM324,其芯片的内部结构是由4个集成运放所组成的,通过RC文氏电桥可产生正弦波,通过滞回比较器能调出方波,并再次通过积分电路就可以调试出三角波,此电路方案能实现基本要求和扩展总分的功能,电路较简单,调试方便,是一个优秀的可实现的方案。

1.2.2 方案2:采用集成运放电路设计方案产生要求的波形

   主要是应用集成运放LM324,其芯片的内部结构是由4个集成运放所组成的,

通过电压比较器可以形成方波,方波经过积分之后可以形成三角波,三角波再经过低通滤波可以形成正弦波,此电路方案能实现基本要求和扩展总分的功能,电路较简单,调试方便,相比第一方案,其操作成功率较低.

2.单元电路设计

2.1方波的设计         

     2.1.1原理图

 2.1.2工作原理

   矩形波发生电压只有两种状态,不是高电平,就是低电平,所以电压比较器是它的重要成分;因为产生振荡,就是要求输出的两种状态自动地相互转换,所以电路中必须引入反馈,因为输出状态应按一定时间间隔交替变化,即产生周期性变化,所以电路中要有延迟环节来确定每种状态维持的时间.


   图所示的矩形波放生电路,它由反相输入的滞回比较器和RC电路组成.RC回路既作为延迟环节,又作为反馈网络,通过RC充放电实现输出状态的自动转换.

   设某一时刻输出电压Uo=+Uz,则同相输入端电位Up=+Ut。Uo通过R3对电容C正向充电,反相输入端电位随时间t增长而逐渐升高,当t趋近于无穷时,Un趋于+Uz;但是,一旦Un=+Ut,再稍增大,Uo就从+Uz跃变为—Uz,与此同时Up从+Ut跃变为—Ut。随后,Uo又通过R3对电容C反向充电,或者说放电。反相输入端电位Un随时间t增长而逐渐降低,当t趋于无穷时,Un趋于—Uz;但是,一旦Un=—Ut,再稍减小,Uo就从—Uz跃变为+Uz,与此同时Up从—Ut跃变为+Ut,电容又开始正向充电。上述过程周而复始,电路产生了自激振荡。

图2.3滞回比较器的电压传输特性    图2.4方波发生电路的波形

2.3三角波的设计

2.2.1原理图

图2.3 三角波发生电路原

     2.4 三角波发生电路的波形图


2.2.2工作原理          

积分电路是一种运用较为广泛的模拟信号运算电路,它是组成各种模拟电子电路的重要基本单元,它不仅可以实现对微分方程的模拟,同时在控制和测量2.6方波-三角波发生电路波形图系统中,积分电路也有着广泛运用,利用其充放电过程可以实现延时,定时以及各种波形的产生.积分电路还可用于延时和定时。

在图2.3所示三角波发生电路图中,将方波电压作为积分运算电路的输入,在积分运算电路的输出就得到三角波电压。         .            

                                 (式2.10)

                        (式2.11)

式中为初始状态时的输出电压。设初始状态时正好从-跃变为+,则式2.10应写成

                        (式2.12)

积分电路反向积分, 随时间的增长线性下降,根据图2.4所示电压传输特性,一旦,再稍减小,将从+跃变为-。使得式2.10变为

                        (式2.13)

产生跃变时的输出电压。积分电路正向积分,随时间的增长线性增大,根据图2.3的电压传输特性,一旦,再稍增大,将从-跃变为+,回到初态,积分电路又开始反向积分。


2.3正弦波的设计

2.3.1工作原理

   采用低通滤波的方法将三角波变换为正弦波。图中采用的是简单的二阶低通滤波电路,与同相输入端电路类似,增加RC环节,可以使滤波器的过渡带变窄,衰减斜率的值加大,电路如图所示。

   输出三角波。三角波再经R10、C1积分网络,输出近似的正弦波。

      总的原理图


3.参数选择

3.1方波电路的元件参数选择

3.2.1 稳压管

由于要求方波输出电压约等于12V,所以采用的稳压管的稳压约等于6V,所以应采用6.2V的稳压管两支。

电容

库房里可以提供0.1uF的电容,所以电路里都采用0.1uF的电容,

电阻

   

频率范围是10HZ~100HZ ,100HZ~1000HZ,

根据公式f=R2/(4*R1*R3*C)取

                     

R1=2K

R2=5K

R3=100

RW1=5K

Rw2=100K

经过公式计算后得到接近的电阻阻值,再把数据代入到仿真软件进行仿真调整,得到正确的波形图和数值。

4.系统测试

4.1方波波形测试

由于在电路图中方波的幅值约等于+12V,所以只要电路没有出现问题,阻值选择合适,那么波形就可以出来。

4.2三角波波形测试

同样保持电路完整,接入电源,通过调节RW1可改变三角波伏值及频率,通过调整RW2使电路的周期发生变化,同时频率也发生变化。

4.3正弦波波形测试

电源电路接入变压器使双电源输出12V,通过调节RW1、RW2可调节正弦波的峰峰值和频率。

                   5.结果分析

  

实验结果和预先所设定的参数存在一定的误差,其中跟元器件的选择参数有关,在电子仿真软件中的电阻参数在库房里没有相吻合的参数,其次在实验焊接过程中也可导致误差,库房所提供的电阻其本身误差较大,综合各方面的考虑,实验结果的误差不可避免,而制作出来的电路板所能出现的波形,在一定程度上会出现失真现象。

                6.工作总结

在这次课程设计中,我学会了怎样去根据课题的要求去设计电路和调试电路。动手能力得到很大的提高。从中我发现自己并不能很好的熟练去使用我所学到的模电知识。在以后学习中我要加强对使用电路的设计和选用能力。但由于电路比较简单、定型,而不是真实的生产、科研任务,所以我们基本上能有章可循,完成起来并不困难。把过去熟悉的定型分析、定量计算逐步,元器件选择等手段结合起来,掌握工程设计的步骤和方法,了解科学实验的程序和实施方法。这对今后从事技术工作无疑是个启蒙训练。通过这种综合训练,我们可以掌握电路设计的基本方法,提高动手组织实验的基本技能,培养分析解决电路问题的实际本领,为以后毕业设计和从事电子实验实际工作打下基础。

在实验过程中收益最大的就是懂得如何去调试电路,查找电路的缺陷和看PCB图,通过自己动手更能对电路有更深刻的了解。

                7. 参考文献

元件清单表

附录1 器件清单

         

附录2     原理图

 

 附录3    电子仿真

3.1输出方波电路的仿真

图 输出方波电路的仿真

 3.2方波—三角波电路的仿真


3.3正弦波电路的仿真


 

第二篇:湘潭大学数字信号处理实验报告(第二次)-正弦信号发生器

数字信号处理实验报告(第二次)

                                                                                                                  

     学    院:

     班    级:

     姓    名:

     学    号:

     指导老师:

     完成日期:

内容:

实验四、正弦信号发生器

实验四、正弦信号发生器

一、   实验目的

1. 掌握利用DSP产生正弦信号的原理

2. 熟悉子程序调用的程序结构以及堆栈的使用

3. 掌握CCS的图形输出操作

二、   实验设备

1. 集成开发环境Code Composer Studio(简称CCS)

2. 实验代码Sin.s54、Lab.cmd和Lab.gel

三、实验内容

1. 阅读理解多项式逼近正弦的文档

 为第一象限内的弧度值。因为,所以只需将第二,三,四象限内的弧度值转换到第一象限即可计算出相应的正弦函数值。由于有限精度,规定弧度值从,其中=0x7FFF,/2=0x4000,=0x8000。利用级数展开产生正弦波,必须在调用计算子程序之前备份好累加器A中的当前弧度值,以便计算结束后实现增量。正弦波的频率可以通过增幅的大小来进行控制,如果假定程序循环一次为一个时间单位,则正弦波的周期为65536/步长,频率为周期倒数。自动增长时要注意当超过后必须调整到的范围内才能调用计算子程序,即若

2. 阅读和理解Sin.s54

Sin.s54程序如下:

;******************************************************************************

;                         SJTU DSP Tech. Center

;        Copyright (c) 20## SJTU DSP Tech. Center. All Rights Reserved.

;  Description:

;               TMS320C54x Program for Students Experiment

;  History:

;                 Date                   Authors                      Changes

;                 20##/08/01      Fu Xuan                       Created.

;******************************************************************************

STACK_ADDR            .set  0x0500

STEP                   .set  0x0400     ;delta x (must be positive), the more the higher frequency

                                                                           ;T=65536/STEP, f=1/T

         .bss           sin_out, 1

         .mmregs

         .global               main

        

         .text

main:

         stm           #STACK_ADDR, SP

         stm           #0x00A8, PMST                 ;IPTR=0x0080

         stm           #0x0000, SWWSR              ;software wait status register

        

         sub            A

         ssbx CPL                                      ;direct address using SP

         ssbx FRCT                                     ;fraction mode

         ssbx OVM                                              ;overflow mode

         ssbx SXM                                      ;sign extension

         stm           #sin_out, AR6

sin_loop:

         pshm        AG                                         ;save current x ;ddian OK

         pshm        AH                  ;ddian OK

         pshm        AL                  ;ddian OK

         call   calculate_sin             ;-pi <= x <= pi ;ddian OK

         sth             A, *AR6                                ;store sin(x), add probe point ;ddian OK

         popm        AL                  ;ddian OK

         popm        AH                  ;ddian OK                  断点设置处            

         popm        AG                  ;ddian OK

         add            #STEP, A                      ;add delta ;ddian OK

         sub            #0x7fff, A, B               ;test if x>pi, B=A-pi ;ddian OK

         bc              normal_increase, BLT;ddian OK

         ld               #0x8000, A                          ;A=-pi

         add            B, A                              ;A=B+(-pi)=x - 2*pi

normal_increase:              

         b                sin_loop            ;ddian OK

                  

dead_loop:

         nop

         nop

         nop

         nop

         b               dead_loop

        

;******************************************************************************

sign                                      .set  0       ;local variable

calculate_sin:

         frame       -1                                           ;allocate sign

         nop                                                          ;no direct addressing next frame

         st              #0, @sign                            ;decide sign, 0 for 1st and 2nd quadrant, 1 for 3rd and 4th quadrant

         xc               2, ALT

         st              #1, @sign

         abs            A                                            ;change to 1st and 2nd quadrant

         sub            #0x4000, A, B           ;test for 1st quadrant

         bc              first_quadrant, BLEQ;if not change to 1st quadrant

         sub            #0x7fff, A                    ;As sin(pi-x)=sinx, let x=pi-x

         neg            A      

first_quadrant:        

         stm           #coef, AR2

         stlm A, T                                      ;T=x

         ld               *AR2+, 16, A            ;AH=C5

         ld               *AR2+, 16, B            ;BH=C4

         rpt             #5-1                             ;AH=C5*x^5+C4*x^4+C3*x^3+C2*x^2+C1*x+0

         poly  *AR2+

         ld               @sign, B                    ;pick out sign

         sfta  A, 3                              ;make Q15 format

         nop                                                          ;nop for B condition test by xc

         xc               1, BNEQ                               ;test sign

         neg            A                                           ;sin(-x)=-sinx

         frame       1                                  

         ret

;******************************************************************************

         .sect                   "vectors"

int_RESET:

         b               main

         nop

         nop

         .space      124*16

;sin(x)=0 + 3.140625x + 0.02026367x^2 - 5.325196x^3 + 0.5446778x^4 + 1.800293x^5

         .data

coef:                                               ;As the max value is -5.325196, so Q12 is used

         .word        0x1cce               ;1.800293 * 4096

         .word        0x08b7      ;0.5446778 * 4096

         .word        0xaacc      ;-5.325196 * 4096

         .word        0x0053      ;0.02026367 * 4096

         .word        0x3240      ;3.140625 * 4096

         .word   0x0000               ;0     

         .end

;end of Sin.s54

3. 调试正弦波发生器

图形观测时选择菜单View->Graph->Time/Frequency,然后设置如下图:

4. 加入断点,并选取图形观测,利用动画及时更新

         popm        AH                  ;ddian OK                  断点设置处            

5. 试利用迭代的方法来实现正弦信号发生器

得到正弦信号迭代公式:,因为为常数,所以为常数,则利用此公式迭代计算每次只需一次乘法和一次加法。

四、实验结果及注意事项

1. 需要使用临时数据时,必须用frame语句留出所需空间,使用结束后要将堆栈指针还原以防堆栈内存泄漏。要注意的是frame的下一条指令不能使用直接寻址。

2.利用累加器写乘法寄存器T(stlm)之后的下一条指令不能使用T;条件转移指令xc在指令访问阶段判断条件,该条件必须在先于xc指令的2个指令之前产生;条件转移指令bc是在指令执行阶段判断条件,不存在这方面的问题。具体细节请参见《数字信号处理系统的应用和设计》3.6节和4.5节。

3. 在断点及动画运行方式实现正弦波显示的情况下,查找到存储器中对应存储正弦波数据实时更新的数据单元。

5.实验结果汇总

断点(start address=sin_out,step=0x0400)

断点设置截屏

断点及探针(start address=sin_out,step=0x0400)

断点及探针设置截屏

断点(start address=sin_out,step=0x0500)

断点及探针(start address=sin_out,step=0x0500)

断点(start address=AR6,step=0x0400)

断点及探针(start address=AR6,step=0x0400)

断点(start address=0X2000,step=0x0400)

断点及探针(start address=0X2000,step=0x0400)

6.程序流程图

五、实验心得

这次实验的主要内容包括阅读理解多项式逼近正弦的文档;阅读和理解Sin.s54;调试正弦波发生器;加入断点,并选取图形观测,利用动画及时更新;

试利用迭代的方法来实现正弦信号发生器。是为了掌握利用DSP产生正弦信号的原理;熟悉子程序调用的程序结构以及堆栈的使用;掌握CCS的图形输出操作。

相对于前三次试验有所难度,但是在老师的精辟讲解以及助教的帮助下,还是顺利完成了试验。这次试验学到了很多,实践与理论的一次经典结合。在本次试验中学会了设置断点以及怎样连接探针,通过两次试验觉得自己的动手能力有所提高。感谢老师和助教的悉心指导。

相关推荐