《毕设论文--于基dsp的简易频谱分析仪设计.doc》由会员分享,可在线阅读,更多相关《毕设论文--于基dsp的简易频谱分析仪设计.doc(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于DSP的简易频谱分析仪设计摘要我们对一个信号的认识只在时间域是远远不够的,所以还要在频域去认识和分析它。在电子测量中,测量网络阻抗特性以及传输特性是经常遇到的问题问题,其中,幅频特性、增益和衰减特性、相频特性等是属于传输特性内的。它很大程度方便了调整,校准被测网络及排除故障。本此设计制作了一个简易频谱分析仪从而可以更直观的看到信号的特性。为了实现这一目标,我们需要利用快速傅里叶变换(FFT)来实现对信号的频谱分析。由于DSP可以处理比较复杂的算法本次设计采用FFT算法通过DSP分析显示输入波形的频率值。关键词:频谱分析 DSP FFT 显示频率 The Simple Spectrum An
2、alyzer Design Based on DSPAbstractWe cant know a signalonlyin the time domain.It is far fromenough, so wealso recognize andanalyze itin the frequency domain.In theelectronicmeasurement, impedanceand transmission characteristicsof the networkare often encountered in the measurement problems; Transmis
3、sion characteristics include the gain characteristics, attenuation characteristics, amplitude-frequency characteristic and phase frequency characteristics. It provides a great convenience for the adjustment of the network under test, calibration and troubleshooting.We design a simple spectrum analyz
4、er to see the characteristics of the signal more intuitively. In order to achieve this goal, we need to use the fast Fourier transform ,that is FFT which make spectrum analysis of the signal. Since the DSP can solve the more complex algorithms than others. Hence, we designed a simple spectrum analyz
5、er using the FFT algorithm by DSP to show the frequency of the input waveform.Key words: Spectrum Analyzer ; DSP; FFT ; Frequency Display目录第1章 概 述 11.1 引 言1 1.2 定点DSP的数据格式21.3 TMS320F2812 DSP介绍21.3.1 TMS320F2812概述21.3.2 TMS320F2812芯片结构及性能描述3第2章 总体设计思路42.1 系统指标42.2 系统方案42.2.1 信号发生器模块52.2.2 DAC转换模块52.
6、2.3 陷波网络模块62.2.4 信号调理模块62.2.5 AD采集模块62.2.6 FFT计算处理模块7第3章 具体设计73.1 工程建立73.2 正弦波发生模块93.2.1 定时器模块113.2.2 中断模块123.2.3 GPIO模块153.3 DAC转换模块153.4 陷波网络模块163.5 信号调理电路模块183.6 AD采集模块193.6.1 事件管理器定时设置203.6.2 ADC设置模块223.7 FFT模块.27第4章 实验结果31第5章 总结与展望375.1 总 结375.2 展 望38参考文献38致 谢39第1章 概 述1.1 引 言DSP的2种理解:广义理解:digit
7、al signal processing数字信号处理狭义理解:digital signal processor数字信号处理器数字信号处理的概念是利用计算机或者专用的处理设备,对连续的数字信号进行各种数学运算,最终得到我们想要的分析结果。而快速傅立叶变换是其运算基础。如今是崭新的数字化时代,DSP已然成为数字化的不可或缺的元素,广泛的应用于社会各领域。数字信号处理器(DSP芯片)应运而生,使数字信号处理理论与实际很好的连接,并促进了深入发展数字信号处理技术,拓宽应用领域。数字信号处理以广泛的学科作为理论基础,包含极广泛的内容。当中包含,语音处理、通信等方方面面,涵盖面很大。具体实现数字信号处理的
8、方法:(1) 在通用PC上利用软件或在系统中加专用加速处理机来实现。来实现。(2) 用DSP实现。DSP的软件和硬件各项资源对于数字信号处理非常适用,因此可用于各种复杂算法;(3)用CPLD/FPGA实现。1.2 定点DSP的数据格式在定点处理器(例如TMS320F2812)之中,数据采用的是定点表示法,整数小数均可表示。在定点处理器中,决定数据精度和其动态范围的是格式和字长,当然,它也是决定DSP处理器的成本、功耗以及编程难度的因素之一。定点DSP的两种基本表示方法:整数表示和小数表示。整数表示方法应用:非信号处理,例如地址计算、控制操作等小数表示方法应用:数字和各种信号处理算法计算。定点数
9、常使用Q表示法。处理小数时须由程序员确定小数点所处位置,称为数的定标。由于是人为决定,因此大小和精度可以表示多种范围。例如:0 010 0000 0000 0000b=0.25,用Q15表示 0 010 0000 0000 0000b=8192,用Q0表示总结来说,Q值越大,精度越高,但数值范围越小; Q值越小,数值范围越大,但精度就越低。1.3 TMS320F2812 DSP介绍1.3.1 TMS320F2812概述F28x系列是TI公司生产的32位定点数字信号处理器,其具有丰富的外设资源。相对于单片机来说,它能实现更为复杂的控制算法。适合于控制应用,不同于其他芯片,该系列芯片含FLASH,
10、异步串口。同时,它有数字信号处理能力和事件管理能力以及嵌入式控制能力,且由于可以用较低的成本实现开发、控制最优化,因此被广泛使用。1.3.2 TMS320F2812芯片结构及性能描述1、最大可达150MHz的系统时钟频率;2、F2812具有8级流水操作,指令时间为6.67ns;3、F2812内有4M的程序空间和4M的数据空间;4、片上外设资源多,包含串口外围设备接口、事件管理器、16通道12位ADC、控制器局域网络CAN总线、串行通讯接口SCA,SCB、多通道缓冲串行接口以及JTAG;第2章 总体设计思路2.1 系统指标信号调理陷波网络DACDSP2812本系统设计基本要求完成简易频谱分析仪,
11、组成框图如图2.1电脑DSP2812 图2.1 简易频谱分析仪组成框图1、 扫频信号发生:采用DSP2812产生正弦波信号,扫频信号频率范围为100-10kHz。2、陷波网络设计:陷波网络中心频率约为3kHz。3、 FFT设计,显示幅频特性曲线。2.2 系统方案 本设计目标为采用TMS320F2812 DSP芯片设计简易频谱分析仪。该分析仪由四部分模块组成,分别为:信号发生器模块、DAC转换模块、陷波网络模块、信号调理模块、AD采集模块、FFT计算处理模块。2.2.1 信号发生器模块信号发生模块由DSP芯片来完成,产生100Hz10kHz的扫频信号。DSP产生正弦波的方法有如下几种:(1)利用
12、DSP内置的PWM模块产生SPWM波形,之后连接低通滤波器发出正弦波;(2)利用泰勒级数展开法经过DSP计算得出正弦波;(3)利用查表法直接将正弦波形的表存入数组中;以上三种产生波形的方法都可以实现正弦波的发生,但是相比之下第一种较为复杂;第二种方法虽然占用存储空间较少,但是运算量比较大,占用CPU资源较多;查表法一种很直接的方法,它的原理是根据需要提前算好所有可能出现的正弦函数值,按照顺序编制为数据表,当用时只需要根据输入查出对应值。虽然查表法占用存储空间较多,但是占用CPU资源少,而且根据正弦表的数组长度和数据位数可以改变其分辨率及精确度。因此本次设计采用查表法产生正弦波,之后正弦波将以数
13、字量的形式发送至IO口,通过数模转换产生模拟量的正弦波。而正弦表可以通过例如正线波信号发生器来这类的软件生成,本设计产生的是输出点数为100点,输出精度为8位的正弦波。2.2.2 DAC转换模块首先,先确定正弦波的分辨率、精度等各项参数以方便确定DAC型号及设计电路。本次设计利用8位分辨率,一个周期内取100点的正弦表实现正弦波发生。因为本次设计要求最高可采集到10kHz的正弦波,因而有:100点*10kHz=1MHz (2-1)(2-1)表明了对DA的要求是它的采样率必须达到1MHz以上才可以实现10kHz的正弦波发生;因为是8位分辨率且通过IO口的8位来输出,因而需要一个8位并口的DA实现
14、。总结来说,就是选取DA满足以下两个条件:1、8位并行输入;2、采样率在1MHz以上;经过查阅各种资料后确定采用DAC0832来完成将数字正弦波转化为模拟正弦波的部分。2.2.3 陷波网络模块利用Sallen_Key电路结构设计二阶有源带阻网络,简单而且比较容易实现。2.2.4 信号调理模块利用分压的办法改变输入信号的幅度,后接一个电压跟随器,目的是使其输出信号电压控制在03v以内,以避免直接输入DSP中的AD输入引脚而烧坏芯片,同时避免后边的电路对信号产生影响。2.2.5 AD采集模块AD采集模块可有以下两种设计方案:(1)利用外接的AD通过硬件连接的方式对模拟量的波形进行转化,将转化后的数
15、字量通过IO输入DSP中。例如使用16位并行输出ADS8364连接F2812。(2)利用F2812包含的12位,16通道的ADC通过软件设置的方式将模拟量波形转化为数字量。上述两种方案中,由于第二种可直接通过软件方式利用DSP包含的模数转换模块采集模拟量的波形而不用外接芯片节省成本并且充分利用了DSP的资源,因而在精度不要求很高的情况下更加适用,因而采用第二种方案。2.2.6 FFT计算处理模块因为F2812芯片上专门有指令用于FFT操作,使得在F2812芯片上实现FFT算法速度更快且更为方便用户使用,所以直接采用即可。第3章 具体设计3.1 工程建立本设计的集成开发环境为CCS3.1,CCS
16、提供了配置、建立、调试、跟踪和分析程序的工具,便于编制和测试实时、嵌入式信号处理程序,可提高开发进程速度,提高工作效率。支持如下所示的开发周期的所有阶段。 图3.1 CCS的开发周期各阶段开发工具包括:C编译器、汇编器、连接器等。库文件(.lib),头文件(.h),源文件(.c)和CMD文件(.CMD)组成一个完整的工程,缺一不可。1、头文件:用于其他文件的引用、程序中的函数、参数、变量和一些宏单元的定义,和库函数配合使用。所以在使用库时须用相应头文件说明。文件格式为“.h”,编译过程中自动添加进入工程,无需手动添加。一般情况下头文件不需修改便可直接使用。2、库文件:C语言系统库rts2xx.
17、lib。系统库包含了编译器的所有功能:初始化C语言环境,标准C的函数库,设置堆栈等,还可以添加其他的库文件。将函数封装,编译供自己或其他用户调用。其优点是库文件编译后看不到源代码,保密性好;同时便于维护。文件格式为“.lib”。3、源文件:有且须有一个含main()函数的C语言源程序文件。main()函数在系统库初始化后掌握控制权。文件格式为“.c”。一个工程必不可少的几个源文件有: (1)DSP28_GlobalVariableDefs.c:定义全局变量,例如寄存器,中断向量表等内容。 (2)主函数 (3)DSP28_PieCtrl.c:PIE初始化函数(与中断相关)。 (4)DSP28_P
18、ieVect.c:PIE中断向量表定义及其初始化。 (5)DSP28_SysCtrl.c:系统初始化,以保证F2812正常工作。4、cmd文件:DSP系统中有大量的各种存储器,cmd文件所描述的是开发工程师对物理存储器的管理、分配及使用情况。cmd文件的作用是定位DSP代码。由于DSP的编译器的编译结果是未定位的,DSP无法定位执行代码,同时用户设计的DSP系统的配置也不尽相同,因此要自己定义代码的安装位置。cmd文件就是在编译源程序、生成机器代码的过程中发挥作用。cmd文件包含:(1) 存储器的资源清单(2) 存储器的资源分配3.2 正弦波发生模块 想要实现发出扫频正弦波,必须要有三个步骤:
19、(1) 通用定时器定时;(2) 定时时间到后进入中断程序,输出数字正弦波;(3) 输出正弦波通过通用IO口输出给后续电路; 其软件流程图如下:开始N初始化定时中断?Y进入中断处理函数N当前频率点送出?YN改变频率N一次扫频结束?YNN禁止中断,输出送至IO口结束 图3.2 扫频信号发生流程图3.2.1 定时器模块F2812共有3个32位的CPU定时器, CPU定时器Timer1和Timer2用于实时操作系统(如DSPBIOS),Timer0可以被用户所用。CPU定时器结构较简单,工作模式较单一,同时一旦启动就会循环往复工作,因此使用非常方便,所以很适合为用户程序提供一个基准时钟实现软件各模块的
20、同步。 图3.3 CPU定时器内部结构从上图可以看出,CPU定时器可以分为16位的分频器及32位的计数器。可将计数周期先存到PRDH:PRD(周期寄存器)中,当计数器启动时,PRDH:PRD的值载入TIMH:TIM(计数器)中进行减计数,当值减为0时,发出中断请求信号,同时计数值重新装载到周期寄存器中。定时器初始化主要程序如下:void InitCpuTimers(void)CpuTimer0Regs.PRD.all =150; /初始化定时器0周期寄存器CpuTimer0Regs.TIM.all = 0; /清零定时器0的计数器CpuTimer0Regs.TPR.all = 0; /初始化定
21、时器0预定标计数器使其分频系数为sysclkout/1,即150MHz;CpuTimer0Regs.TPRH.all = 0;CpuTimer0Regs.TCR.bit.TSS = 1; /停止定时器0的运行 CpuTimer0Regs.TCR.bit.TRB = 1; /将周期寄存器PRD中的值装入计数器寄存器TIM中, /重装载控制位写1,控制分频系数和计数初值的装载 CpuTimer0Regs.TCR.bit.SOFT=1; /将soft和free设为1,在遇到调试断点CpuTimer0Regs.TCR.bit.FREE=1; /定时器0将继续运行CpuTimer0Regs.TCR.bi
22、t.TIE=1; /使能定时器0中断,若计数器递减到0同时tie位为1,定时器发出中断请求3.2.2 中断模块F2812的中断管理共分为外设级、PIE级和CPU级。由于多种外设集成于芯片内部,会产生许多外设中断,因为CPU无法处理所有的CPU级中断请求,因而F2812有一个专门用于处理判定外设中断的中断扩展控制器(PIE)。中断仲裁机制确定中断服务程序的位置的原理是根据PIE向量表存放的每个中断服务程序的地址来确定。1、外设级 一当外设有中断事件,对应外设的中断标识位就会置1,若对应中断使能位设1,那么外设中断的请求信号 INTx.y就可送至 PIE控制器。若外设的中断被禁止输入进来,那么外设
23、中断标志将一直保持为 1,直到软件清 0。 2、PIE 级 PIE的中断都有一个PIEIFRx.y(中断标志位) 和一个PIEIERx.y(中断使能位),另外,每个 CPU 中断组都有一应答位 PIEACKx。若 PIE来了中断请求,相应中断标志位 PIEIFRx.y就会置1,若 PIEIERx.y也为 1,那么 PIEACKx 就可决定 CPU可否响应此中断。3、CPU级 CPU 级中断标志寄存器一旦在中断请求送入后标志位就会置 1。在IER (CPU 中断使能寄存器)中相应位置 1,且INTM(全局中断屏蔽位)为 0的情况下时,CPU会进入中断。实现中断主要语句如下:DINT; /禁止中断
24、EINT; /使能INTM(全局中断)ERTM; /使能DBGM(全局实时中断)EALLOW; /有些寄存器受到写保护,要写它就先用此语句禁止写保护,写自由PieVectTable.TINT0=&cpu_timer0_isr;EDIS; /使能写保护PieCtrl.PIEIER1.bit.INTx7=1;/PIE级中断使能IER|=M_INT1;/使能CPU中断进入中断子程序如下:interrupt void cpu_timer0_isr(void)CpuTimer0Regs.TCR.bit.TIF=1;ReloadCpuTimer0(); time+; if(time=fre) time=0
25、; GpioDataRegs.GPADAT.all=sin_dancount+ ; if(ncount=100) ncount=0;round+;if(round=1000/fre) round=0; fre+; if(fre=100) fre=1; PieCtrl.PIEACK.all=PIEACK_GROUP1;这段程序中ncount用来一个周期内计送出的点数,当到达一个周期的100点时,ncount变为0;fre为从100Hz到10KHz的100个不同频率档,time是用于定时器进入中断次数的计数,当time计数值=fre的值时会向IO送出正弦表的值,同时time清零;round为不同频
26、率档下波形的不同显示次数,其设置为1000/fre,即当round当前值为1000除以当前的fre时,说明1000/fre个当前频率下的正弦波已经全部送出,fre自动加1,round变为0。3.2.3 GPIO模块GPIO就是通用IO口。嵌入式系统中常有很多的简单外部设备/电路,对它们的控制,使用GPIO(通用可编程IO接口)即可。F2812包含有56个多功能引脚,其第一功能是作为通用意义数字I/O口(GPIO),为了使用通用I/O,我们需要对GPIO进行相应的设置。为了将数字量的正弦波输出,设计需要通过设置GPIO实现,具体语句如下:void InitGpio(void) EALLOW; G
27、pioMuxRegs.GPAMUX.all=0x0000;/将gpio设置为通用i/o口 GpioMuxRegs.GPADIR.all=0x00ff;/设置gpio为输出 GpioMuxRegs.GPAQUAL.all=0x0000; /窗宽为0,无抗噪声能力 EDIS;3.3 DAC转换模块DAC0832是采用CMOS工艺实现。它是8位分辨率的数模转换集成芯片。与微处理器完全兼容。这个DA转换器应用很广泛因为它相比其他芯片来说价格低、接口电路简单、转换控制容易。DAC0832包含有8位DAC寄存器、8位输入寄存器、8位D/A转换器,它的采样频率高达5MHz,因而可以实现对需要采样率高于1MH
28、z的正弦波的采集。 图3.4 DA模块电路图如图所示,DA模块采用的是0832器件手册上的应用例程。图中Q1的作用是将电流输出型信号改为电压输出型信号;Q2的作用是由于输出是反向的电压,因此此处是起到反相器的作用。3.4 陷波网络模块本次设计采用的是有源带阻滤波器。本有源带阻滤波器主要通过双T网络实现。电阻电容组成外围网络和LM358芯片一起实现功能。通过电容电阻的谐振作用实现帯阻作用,通过358芯片实现放大信号的作用。图3.5 陷波网络模块电路图图3.5所示,RF和Rf(即R4和R5)选择了稍大一些的电阻值是为了使电路更稳定,这里使用的分别是160K和200K。选择较小电容也是为了使电路运行
29、更稳定,这里取C=1pF.带入fo=1/2RC可得R的值约为27K,考虑到实际连接电路的问题,减少元件的个数,取R1=R2=56K。其各项参数如下:R1=R2=R=56k; R3=27kC1=C2 =1Nf ; C3=2.2nFR5=Rf;R4=RF;中心频率fo=1/2RC=2.78k带宽 f2-f1=2(2-Kf)=0.4kHz增益 Kf=1+RF/Rf=1.8Q点 Q=1/2(2-Kf)=0.1图3.6 陷波网络模块电路图使用multsim中的波特图实现了仿真,如图3.6所示。3.5 信号调理电路模块其电路图如下图所示: 图3.7 信号调理电路图中R6以及R7用于分压,使信号电压降低在D
30、SP所要求的03v内,后面利用LM358制成的电压跟随器,以“隔离”前后级之间的影响。3.6 AD采集模块AD采集模块实现信号采集需要如下两个步骤:(1)利用事件管理器中的定时器定时决定采样频率;(2)设置ADC模块;其软件流程图如下所示,开始DSP初始化ADC模块初始化配置ADC配置EVA设置定时器1AD采集中断服务程序入口AD采样,将采样结果送入循环采样数组采样满512次?消除AD中断标志开总中断中断返回NY 图3.8 信号调理电路3.6.1 事件管理器定时设置在AD采集过程中,利用事件管理器EV的通用定时器实现采样频率的确定。事件管理器包括EVA和EVB,有通用定时器1、2、3、4,每个
31、定时器有如下特点:16 位TxCNT(定时器增/减计数器)。16 位TxCMPR(定时器比较寄存器)。 16 位TxPR(定时器周期控制寄存器)。 16 位TxCON(定时器控制寄存器)。 一个TxCMP用于通用定时器比较输出。定时器按照寄存器 TxCON 中的 TMODE1,TMODE0 位确定的工作模式工作分别是停止/保持模式、连续增计数模式、定向增/减计数模式还是连续增/减计数模式,较为常用的是第二种和第三种。本设计采用的是连续增计数模式,下图为其工作模式图: 图3.9 通用定时器连续增计数模式当计数器和周期寄存器在一个时钟周期匹配时,中断标志位会置为1。在外设中断未被屏蔽的情况下将产生
32、外设中断请求。此周期中断通过 GPTCONA开启ADC,中断标志置1,同时AD启动信号送至AD。具体实现语句如下:EvaRegs.T1CMPR=0xfd11;/给比较寄存器赋值EvaRegs.T1PR=0xFFFF; /给周期寄存器赋值EvaRegs.GPTCONA.bit.T1TOADC=1; / EVA 中的通用定时器1中断产生AD启动 EvaRegs.T1CON.all=0x1042; /递增模式,x/1分频,内部时钟,使能比较,使用自己的周期,立即启动定时器计数3.6.2 ADC设置模块ADC(模数转换器)有 16个12位通道,可通过软件设置成两个8 通道,或一个 16 通道,本次设计
33、因为只需要输入一个通道,所以两种方式都没有什么影响。ADC 包含一个转换器,两个排序器。排序器在级联模式下变为单 16 通道。转换完成后结果存放在ADCRESULT里。它比普通单采样转换分辨率高是因为自动排序器允许相同通道多次转换,因而可以实现过采样算法。 图3.10 ADC模块原理框图其原理如图3.9所示。排序器分别有SEQ1和SEQ2,也可级联为SEQ。其作用是自动排序多个转换。若只需要一个通道输入信号,16个通道任意一个都可选择。转换之后结果就存于相应的ADCRESULTn(结果寄存器)中。 AD有顺序采样以及同时采样两种工作模式。利用对CONVxx 位(位于排序寄存器中)置不同的值确定
34、用于AD采集的信号从哪个管脚输入。本次设计采用的是级联顺序采样的模式,则CONVxx 中共有 4 个位定义是从哪个管脚输入。采样保持器 A(S/H-A)的任意一个输入管脚是从0到7中任意一个数表示。例如,若 CONVxx 中的值为 5,则选择需要进行AD转换信号的输入管脚为 ADCINA5。采样保持器 B(S/H-B)的任意一个输入管脚是从8到15中任意一个数表示。例如,若CONVxx 中的值为11,则选择 ADCINB3管脚。在本次设计中,采用的输入管脚是ADCINA3,因此CONVxx 中的值为2进入中断程序的作用为:定时时间到后程序进入中断模块,每次进入中断采样一次,之后进行中断标志位清
35、除,响应中断等过程而重新等待进入中断;当采样点数为512时,采样结束。3.7FFT模块DFT(傅里叶变换)用于信号分析处理,它是一种非常重要的变换。但是直接计算DFT的计算量与变换区间长度N的平方成正比,但是它比较难在实际应用中实现,尤其是处理大量采样点时,计算量将会非常大。20世纪中科学家发现了DFT的一种快速算法,使DFT的运算效率提高,推动数字信号的发展。一个N点序列x(n)的DFT为: (3-1)为了减少运算量,把N点DFT分解为几个短DFT,可使计算量大幅度减少。另外,旋转因子W的周期性、对称性可以减少不必要的计算。具体方法如下: 分把一个N点的序列分解为若干个较短的序列,分别计算其
36、DFT值; 利用旋转因子的周期性、对称性进行处理。 周期性: (3-2) 对称性: (3-3)时域抽取法F思想: 首先,N点序列x(n)分为奇序列x2(n)和偶序列x1(n),分别计算这两个序列可求得x(n)的FFT。 (3-4)那么x(n)的DFT可写为: (3-5)因为X1(k)和X2(k)的周期都是N/2,同时由于 , X(k)又可表示为: (3-6)如上式表明,一个N点DFT分两个N/2点的DFT,图3.9表示了上式的运算过程,其成为蝶形运算。 图3.9 蝶形运算符号第二次分解: 将按r取奇、偶分为2个N/4点的序列 l=0,1,,N/4-1; (3-7) (3-8)将也按r取奇、偶可
37、分解成2个长N/4的子序列 , 同理得在F2812中,TI公司直接提供了用于计算FFT的函数,因此给我们带来了很大方便,我们只要学会使用计算FFT的如何使用语句即可。实现FFT过程如下:fft256.ipcbptr=ipcb;/cal()函数处理数据起始位置fft256.init(&fft256);/复制旋转因子for(i=0;iSampleLong/2;i+)ipcbi = Ad_datai;RFFT32_brev(ipcb,ipcb,N);/位倒序处理fft256.calc(&fft256);/调用256点复数FFT运算fft256.split(&fft256);/劈分256点复数结果m=
38、0;for(i=0;iSampleLong/2;i+=2) p=ipcbi;q=ipcbi+1; n=p*p+q*q; n=sqrt(n); modm=n; m+;程序中ipcb是用来存放傅里叶变换后X(k)的数组,它是复数形式a+bi,存放形式是实部和虚部间隔存储,因而需要利用求n来计算它的模值。 第4章 设计结果(1) 扫频信号:用示波器观察,如下图所示:图4.1 扫频信号用示波器观察,DA转换后信号幅值为2v*2.6=5.2v,周期为0.5ms*3=1.5ms=667Hz作为输出信号接后续电路。(2) 陷波网络:用示波器观察,结果如下。图4.2 通过陷波网络的波形在通过陷波网络扫频信号如
39、图4.2所示,左边是经过陷波网络的不是频率为3kHz的正弦波,右边是经过陷波网络的频率为3kHz的正弦波,二者的具体数据如下:频率幅值左图T=0.5ms*2.6=1.3msF=770Hz2v*4.5=9v右图T=0.5ms*0.7=0.35msF=2.86kHz1v*1.8=1.8v用示波器观察,经过陷波网络模块后其他频率信号幅值为4.6*2=9.2v,大约是输入信号5.2v的1.769倍,约等于1.8倍,符合增益Kf=1.8(3) 调理电路:里用示波器观察,结果如下图所示:图4.3 通过调理电路的波形频率幅值左图T=0.5ms*3=1.5msF=667Hz1v*2=2v右图T=0.5ms*0
40、.7=0.35msF=2.86kHz1v*0.4=0.4v(4)AD采样:用CCS3.1中的viewgraphtime/frequency观察结果,如下图所示。图4.4 1kHz正弦波AD采样结果观察横坐标是时域的,一个周期波形采集回来之后横坐标间隔为0.001,单位为s,因此采集到的正弦波的频率为1kHz。(5)FFT结果观察:用CCS3.1中的viewgraphtime/frequency项观察,如下图所示。图4.5 输入波形FFT结果输入的是1kHz正弦波,CCS直接分析出输入波形的频率,正好在1kHz处有一峰值,同时由于输入的是单极性正弦波,因此在频率为0处有一个直流分量(横坐标为频率
41、域)。图4.6 1kHz正弦波输入计算FFT结果图4.5输出的是经过DSP计算1kHz正弦波FFT的结果,由于它的横坐标是时域,因此横坐标为9.2*10(-4),取倒数结果约为1kHz,纵坐标误差较大。最后是毕业作品的实物图:图4.6 作品实物图第5章 总结与展望5.1 总 结在前期准备中,我主要复习了C语言,学习DSP以及滤波器相关知识,设计过程中通过各种途径我查阅了很多资料,例如图书馆、上网等,将这些资料全部记录下来,尽量使我的资料完整、精确、数量多,为完成毕业设计做充分准备 。之后就开始进行软硬件的各种设计,编程,学习CCS集成开发环境,学习建立工程,学习利用DSP的各部分模块来实现毕业
42、设计要求的功能,学习设计滤波器,DA以及调理电路,不断明确设计思路,改进设计方案,最终敲定一个相对比较具体又可以实现的方案,开始进一步设计。接着对设计出来的东西进行调试修改,使其达到需要的功能,这个过程比较吃力,是一个不断排查以及修改的过程,费时较多。最后进行论文的编写。本次设计基本实现了毕业设计的要求:(1)发出了扫频信号,频率为100Hz10kHz;(2)制作了中心频率为3kHz的陷波网络;(3)实现了AD采集以及FFT分析,可以分析100Hz到10kHz的单一正弦波。但是FFT分析精度不太高,也只能分析单一输入频率,因此有些不完美。5.2 展 望 本次设计精度不太高,因而以后如果想要进一
43、步把它做得更好,精度这一块可以多下一些工夫提高;同时,由于用电脑显示频谱,所以便携方面是一个问题,今后可以用液晶的方式显示频谱,便可增加它的便携性。参考文献1 万山明编著。TMS320F281x DSP原理及应用实例. 北京:北京航空航天大学出版社,2007WAN Ming-shan. The Principle and Application Example of TMS320F281x DSP. Beijing: Beijing University of Aeronautics and Astronautics Press, 2007.2 苏奎峰、吕强、耿庆锋、陈圣俭编著。TMS320F2812原理与开发.,北京:电子工业出版社,2005SU Kui-feng,LV Qiang,GENG Qing-feng,CHEN Sheng-jian. The principle and developm