电力参数监控仪测控电路研发_第1页
电力参数监控仪测控电路研发_第2页
电力参数监控仪测控电路研发_第3页
电力参数监控仪测控电路研发_第4页
电力参数监控仪测控电路研发_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江科技学院毕业设计(论文)电力参数监控仪测控电路研发戴映(自动化与电气工程学院 指导教师:周克宁)摘要:科学技术突飞猛进的今天,生产力不断的发展,无线、远程、精确、小型化、智能化引领着科技发展的方向。在配电屏配电等生产实践中,对电力参数实时监控的快速、精确要求越来越高,并向无线远程化发展。所以有必要对这一方面做些研究。研究的成果可以解决一些生产上的问题,提高生产效率,降低人工成本,提高生产自动控制程度。本文主要介绍了基于DSP2407的电力参数监控仪测控电路的研制,包括数据采集、快速傅立叶变换、液晶显示和数据传输等各部分的软硬件设计。本系统的硬件设计,采用模块化的设计思想,并尽可能的采用高性能集成电路,简化了电路设计并提高了可靠性。在软件设计中采用了自顶向下的设计思想,所有程序采用分层次模块化设计,提高了软件的可移植性。本系统运行稳定可靠,相信能很好的运用到实际生产中。关键词:电力参数监控;数字信号处理;快速傅立叶变换Abstract:Science and technology are advancing rapidly today, and the development of productive forces, wireless, long-range, precision, small, Intelligent technology guides the direction of development. In distribution of power, and other production practice, The demand for real-time monitoring and high accurate of power parameters is getting higher and higher. Wireless Remote to development. There is a need to do research on this matter. The results of the study can solve the problems of production, improve production efficiency and reduce labor costs. production automation. This thesis mairly introduces the parameters of power measured part of the strument based on DSP2407, including data collection, Fast Fourier Transform, liquid crystal display and data transmission. The hardware of system adopts the idea of modular design, it adopts the high-parformance integrated circuits as much as possible ,and jredigests circuits design and improves reliability .The software design ,using in the top-down design ideas, all the procedures used hierarchical modular design, improving the portability of the software. The system is stable and reliable, I believe,it can be good used in the production. Key word: Power Parameters Monitoring;digital signal processing;Fast Fourier Transform (FFT)1 绪论电力参数实时、准确的测量对于保证电网安全,经济地运行和实现电网调度的自动化具有非常重要的意义。电网中非线性设备的日益增多,导致多种电力运行指标的恶化。其中最主要的问题就是谐波污染和无功损耗的增加。谐波污染会导致电网损耗的增加,降低用电设备的效率和性能,引起设备的过载,威胁用电安全。要想治理谐波污染,就必须对相关的电力参数进行实时测量。基于上述原因,设计一种运行稳定可靠,精度高,远程控制的电力参数监控仪就成为业内有待解决的问题。目前市场上同类产品也逐步增多,但都存在着某些不足的地方,比如精度不高,运算速率慢,达不到远程无线遥控的目的等。设计一款功能强大,智能化水平高的电力参数监控仪就更是值得研究讨论。电网系统电能质量监控的实时性要求较高,不仅含有频率、电压、电流、有功、无功、谐波分量等,而且有些采集的特征量频率变化快而且复杂,如暂态突变量、高频的故障行波等,普通的采集处理方法对多路进行采样计算显得困难甚至难以实现,为了克服以上不足,满足现代电力系统的要求,将先进的数字信号处理技术应用到电力系统中充分发挥其快速强大的运算及并行运行处理能力,满足电力系统监控实时性和处理算法的复杂性等要求,并为不断发展的新理论和新算法应用于电力系统的实践奠定技术基础。本文以TMS320LF2407A型DSP为控制核心,设计了响应快、延时小的电能质量监控系统,在整个控制系统中,信号采集单元的转换精度决定整个控制系统性能的优劣。TMS320LF2407带有内置采样和保持电路的10位模/数转换器,但只能接收0V3.3V的单极性信号,对于交流信号需要另外设计限幅降压电路,同一排序器内各通道的串扰严重,所以10位的转换精度难以满足高性能系统的要求,由于本应用对采集精度要求高,要求采用14位A/D转换器,所以采用Maxim公司的MAX125型转换器作为信号采集单元的核心。该装置能够对电力参数的实时、准确的测量和分析并传输到短信平台发送到远端显示平台。本文设计的电力参数监控仪具有响应速度快,检测精度高,远程无线监控的特点,满足了现代生产实践的要求,能运用于各种场合,具有普遍的现实意义。2 电力参数监控仪检测电路设计方案2.1电力参数检测理论传统的电力参数是基于电压和电流为正弦波的情况下定义的,电压和电流没有发生畸变. 但是,实际上电网中含有谐波,电压和电流并不是理想的正弦波.针对这种情况,我们采用离散傅立叶变换(DFT)的方法进行参数的测量。 设测得的电压序列和电流序列为 un和in,将电压和电流构成一个复序列:Xn的离散傅立叶变换为那么,电压和电流的离散傅立叶变换为设第k次谐波电压的实部和虚部分别为,则第k次谐波的电压幅值为电压有效值为同理,电流有效值为系统视在功率为S=UI。离散化后的第k次谐波有功功率表达式为其中,k为第k次谐波电压和电流的相位差。系统的有功功率为式中,N为需要计算的最高谐波次数。无功功率的表达式为功率因数的表达式为=P/S。2.2 检测电路特点及框图本系统采用数字信号处理器TMS320LF2407A做为控制核心,MAX125作为数据采集通道,对三相电压电流进行数据采集。达到高精度,高速率的数据采样,采用性能强劲的数字处理器使得快速傅立叶变换(FFT)得到很好的的实现。图形液晶显示屏的应用,使检测结果能够直观的显示,并通过RS232串行口传到短信平台,发送到远程终端。硬件设计采用模块化设计思想,并尽可能的采用高性能的集成电路,简化了电路设计,提高了可靠性。三相电压电流经过互感器变压后输入MAX125进行A/D转换处理,送入DSP2407进行运算处理,包括电压、电流有效值的计算,有功功率、无功功率、功率因素的计算,FFT变换等。通过键盘操作在液晶显示屏上查看检测结果,数据结果通过232接口传输到短信收发平台。电路框图如图2.1。UinIinTMS320LF2407A看门狗与实时钟显示电路键盘电路RS232采样保持A/D转换RAM电源电路前置电路JTAG仿真接口图2.1 检测电路框图3 电力参数监控仪检测电路的设计3.1硬件设计3.1.1 3.3V和5V混合逻辑系统设计TMS320LF2407A为低功耗DSP,所有引脚除VCCP引脚在对FLASH编程时接5V电压外,其他供电电源引脚供电电压均为3.3V。而大部分外围芯片都是5V电压工作,所以必须进行电压的转换。3.3V器件和5V器件接口有4钟情况,第一,5V TTL器件驱动3.3V TTL器件,这种情况由于5V TTL和3.3V TTL的逻辑电平是相同的,因此,如果3.3V器件能够承受5V 电压,从电平上来说两者可以直接相连,而不需要额外的元器件;第二,3.3V TTL器件驱动5V TTL器件,这种情况一样不需要额外器件就可以将两者直接相连;第三,5V CMOS器件驱动3.3V TTL器件,虽然逻辑电平不同,但如果3.3V 器件能够承受5V电压,而3.3V器件能够识别5V CMOS送过来的电平值,所以5V CMOS驱动3.3V TTL是可能的;第四,3.3V TTL器件驱动5V CMOS器件,这种情况下,3.3V器件是无法驱动5V CMOS器件的,所以必须采用额外的芯片来驱动。1、2在本系统设计中,采用的是LVTH245A这个低功耗双向电压转换芯片来实现DSP2407和各外围芯片的连接。DSP2407的供电电源是通过对5V电源进行变换得到。采用PS767D318芯片,如图3.1图3.1 电源电路3.1.2TMS320LV2407外部数据存储器和程序存储器的扩展存储器是DSP系统中最重要的部件之一,它的存取时间和容量直接影响到DSP系统的操作性能。TMS320LF2407A具有16位地址线,可以独立访问三个空间:64K字的程序空间、64K字的数据空间、64K字的I/O空间。虽然LF2407A DSP内含544字的片内DARAM,还具有32K字的内部程序存储器,但在这个系统中存储器容量是不够的,必须进行外部数据存储器和程序存储器的扩展。DSP2407A 的单周期指令执行时间为25ns、33ns、50ns等 ,为了不影响系统访问外部存储器的速度,通常选用高速存取时间的SRAM芯片,以使系统工作于全速运行方式(即零等待状态)。应用在零等待状态的高速SRAM存取时间至少应不大于25ns,设计中选用ISSI公司的64K大小的IS61LV6416芯片作为外部数据存储器,其工作电压为3.3V,不需要额外使用电压转换芯片,可直接连接到DSP2407的16位地址线上。外部程序存储器选用大小为8K的X25650,其工作电压也为3.3V可直接连接DSP。接口电路如图3.2图3.2 6416接口电路3.1.3TMS320LF2407与A/D的接口电路在整个控制系统中,信号采集单元的转换精度决定整个控制系统性能的优劣。TMS320LF2407带有内置采样和保持电路的10位模/数转换器,但只能接收0V3.3V的单极性信号,对于交流信号需要另外设计限幅升压电路,同一排序器内各通道的串扰严重,所以10位的转换精度难以满足高性能系统的要求,由于本应用对采集精度要求高,要求采用14位A/D转换器,所以采用Maxim公司的MAX125型转换器作为信号采集单元的核心。MAX125是8通道高速14位模/数转换器,它内设采样/保持器(T/H),单次转换时间为3s,通过对MAX125写控制字,可以使之工作于单通道转换,也可以使之工作于多通道的连续转换,且其转换数据具有缓冲功能,DSP可以方便地读取,MAX125采用双极性供电,输入电压范围为5V,转换器的最高输入过电压高达17V,而且某个通道的损坏不会影响整个电路的正常工作, MAX125较好地满足了精度要求,通过合理的控制电路设计,该数据采集通道能较好地满足系统的实时性要求。MAX125的工作时序,每个CONVST脉冲启动14个T/H转换,MAX125初始化后,设置工作模式为0X0002,系统利用2个MAX125的CH1A、CH2A、CH3A通道分别对三相电压和三相电流进行转换,即每个MAX125只有3个通道需要转换,每个通道的转换时间为3s,转换三个通道需要9s,采样速率最高为100kS/s。通过CONVST脉冲启动MAX125的转换,大约9s后,3个通道转换完毕,产生1个中断信号,中断信号传送到可编程逻辑控制器(GAL)中,由GAL通知DSP读取采样数据,同时GAL给MAX125的RD引脚施加读脉冲,3个连续的读操作可以读取3个连续的数据。MAX125拥有A、B2组信号输入端,每组4个输入通道,内置4路采样保持器,在实际应用中分别采集负载电流、补偿电流、电源电流和逆变器直流侧的电容器电压。MAX125可以和DSP并行工作以减轻DSP的工作负担,MAX125的输出数据要经过电平转换后才能送到TMS320LF2407的数据线上,如果直接将MAX125的输出直接送到TMS320LF2407的数据输入引脚上,则有可能超过TMS320LF2407的引脚的耐压值(3.6V),本系统使用74AHCT245作为电平转换器,MAX125的输出DOD13接入74AHCT245锁存后进行电平转换,再进入TMS320LF2407的数据总线,74AHCT245的工作电压为3.3V,输出信号电平为3.3V,可以接受5.5V的输入信号,本设计中使用了2个74AHCT245作为电平转换单元,输入数据来自MAX125的14位数据,多余的2路输入引脚接地,输出信号接入TMS320LF2407的DOD15引脚,2个74AHCT245控制信号由GAL发出。控制系统的主要指令都在定时器中完成。当定时器计数器的值与定时器周期寄存器的值相等时,产生周期中断请求,中断被响应后就进入中断服务程序,确认中断源正确后,首先启动外部A/D转换器,采集负载电流、电压,再对转换结果进行移位等必要的处理。接口原理图如图3.3。图3.3 数据采集接口电路3.1.4 TMS320LF2407与液晶显示屏接口电路液晶显示可以使检测结果更直观的展示出来,在这里采用CM12864-10,是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128*64全点阵液晶显示器组成。可完成图形显示,也可以显示6*4个(16*16点阵)汉字。显示屏由5V电源供电,模块内自带-10V负压,用与LCD的驱动电压。其控制芯片为T6963。接口电路如图3.4:图3.4 LCD接口电路3.1.5 TMS320LF2407与时钟芯片接口电路DS1216是一个具有日历时钟功能、非易失存储器控制电路和嵌入式锂电池的CMOS集成器件。DS1216提供百分之一秒、秒、分、小时、星期、日期、月和年等信号。精度高于1分钟/月。在年月信号控制下,它能自动对每月天数进行调整,包括闰年调整。时钟可以运行于24小时制或带上下午指示的12小时制。接口电路如图3.5:TMS320LF2407A/CE/OE/WEDQ0R_DIOPB4W_RIOPB5图3.5 时钟芯片接口电路3.1.6 TMS320LF2407串口通讯接口电路在进行串口通讯电路设计中,选用的是MAX232芯片。美国电子工业协会(EIA)公布的RS-232C是用的最多的一种串行通信标准,它定义了数据终端设备(DTE)和数据通信设备(DCE)之间的串行接口标准,该标准包括按位串行传输的电气和机械方面的规定。RS-232C的机械指标规定:RS-232C接口通向外部的连接器(插针插座)是一种“D”型25针插头。由于25芯中有许多是不常用的,IBM-PC对其进行了简化,取了其中常用的9芯TS-232C串行接口,使其成为一种事实上的串行接口标准配置。TS-232C标准接口中的主要信号是“发送数据”和“接收数据”,它们用来在两个系统或设备之间传送串行信息。对于异步通信,传输的串行位数据信息的单位是字符。MAX232与TMS320LF2407的接口电路如图3.6:图3.6 串口接口电路3.1.7 键盘接口电路键盘是若干按键的集合,是向系统提供操作人员干预命令及数据的接口设备。是人机交互的通道,通过键盘来查看结果、设定参数等。接口电路如图3.7。图3.7 键盘电路3.1.8 JTAG仿真接口设计对DSP的仿真调试需要通过DSP仿真器进行,DSP仿真器通过DSP芯片上提供的扫描仿真引脚实现仿真功能,这种扫描仿真方法为TI公司所开发,用来解决高速DSP芯片的仿真。扫描仿真消除了传统的电路仿真存在的仿真电缆过长会引起信号失真,仿真插头的可靠性差的问题。采用扫描仿真,使得在线仿真成为可能,给调试带来极大的方便。DSP仿真头采用14根信号线,并符合JTAG IEEE1149。1标准。图3.8给出了LF2407A的JTAG仿真接口电路。在该图中,JP15是用于与DSP仿真器相连的仿真头。其中第5脚所接VCC为5V,该信号用与点亮仿真器上的Target Power灯,必须接,否则Target Power 灯不亮。仿真头上的第6脚在目标板上请不要焊插针,因为该引脚在ICETEK-5100的仿真头上已封上,以确保仿真头的方向正确。在画目标板PCB图时,应使仿真头靠近DSP芯片,以使仿真调试可靠进行。TDI、TCK、TMS、EMU0、EMU1引脚接上拉电阻,/TRST引脚接下拉电阻4。JTAG仿真接口电路图如图3.8:图3.8JTAG接口电路3.2软件设计对于软件的设计,采用自顶向下的设计思想,其结构图如图3.9所示。首先根据设计任务,对DSP的资源进行合理的分配,并对相应的设计文件如命令文件、头文件和库文件等进行编写或者修改。然后根据模块化的的设计思想,编写主程序、A/D转化子程序、FFT子程序、LCD子程序、键盘处理子程序、串口通讯子程序等软件模块。当然,对于每一个程序模块,也是采用自顶向下的编程思想进行设计的。DSP系统的资源分配DSP系统的中断向量表DSP系统主程序A/D转换驱动程序LCD驱动程序键盘处理程序FFT变换程序串行通讯程序DOWNTOP图3.9程序总结构图3.2.1 A/D转换程序设计图3.10表示的是MAX125的工作时序,其工作过程主要分为两部分,即采样方式的设置和信号的采样转换。 设置采样方式 MAX125上电工作后,芯片默认的采样方式是只采集A组的第一通道。如果采集其它通道,就要对采样方式进行设置以确定采集的通道数,最多可以同时采样四个通道。设置参数是通过引脚A3A0写入的,其格式如附表所示。地址一旦写入,采样方式即被确定,若要改变已写入的方式,必须重新写入新值。这些操作对应图中CS和WR为低电平的部分。5图3.10 MAX125工作时序当A3写入0时,芯片处于一般工作状态,A2A0的不同组合确定所要采集的通道;当A3写入1时,芯片进入省电工作状态,功耗降低,当重新写入0时就返回到一般工作状态。 采样和转换 采样方式确定后,MAX125就可以开始采样和转换输入信号,这些操作通过外部的CONVST信号的上升沿来启动。采样/保持器在上升沿到来之前跟踪输入信号;在CONVST的上升沿保持输入电压,输入信号被采样,各通道的转换开始依次连续地进行。每个通道的转换时间为3s ,当全部的四个通道都需要转换时,一个转换周期需要12s。在此转换完成之前,所有输入的CONVST信号都将被忽略。当最后一个通道转换完毕后,INT信号产生,其下降沿标志着转换过程的结束,转换结果保存在14位4的RAM中。INT信号变为低电平后,采样/保持器就返回到跟踪状态,为下一次的采样做准备。在读数据的过程中,第一次的读操作使INT信号变高。在读取转换所得的数字量时,CS、RD两个信号需要同时为低电平,每一个RD信号对应着一个通道的数据(如图3.10所示),四个连续的读脉冲可依次从数据总线读取四个通道的数据。程序流程图如3.11:YN定时器中断确认中断?启动A/D转换读转换结果并处理数据设置比较方式开中断中断返回图3.11 AD转换程序流程图3.2.2 液晶显示程序设计在本设计中使用的液晶显示屏为图形点阵液晶屏,所以在显示过程中首先要对液晶显示屏初始化,然后判断其显示模式。文本显示比较简单,显示屏自带一个CGROM字符库,包含常用符号、数字、字母等128个字符。显示这部分字符可直接调用。如果汉字要以文本方式显示,那么先要将汉字写入CGRAM,这样带来的好处是,显示速度快,加速系统响应速率6。汉字文本显示的原理是利用液晶固有的CGRAM,将一个汉字作为四个字符,以文本方式显示汉字。CGRAM中能显示的字符从80H到FFH,共128个,每连续四个字符作为显示的一个汉字。故能显示的汉字量为32个。但在系统中使用的汉字数可能会超过32个。所以,采用数据缓冲技术,在需要显示汉字时,临时构成字符显示码。 汉字点阵是以表格形式ChineseTable保存在数据区中。 建立一个长度为16的字符数组CharFlagTable,用来保存当前系统CGRAM中可显示的汉字编号。为了加快系统显示汉字的速度,将汉字分成两组:一级汉字;二级汉字,一级汉字永远保存在CGRAM中,不需要记录编号;而二级汉字在需要显示时,才调于到CGRAM中,需要CharFlagTable来记录编号。其中一级汉字为16个,规定在ChineseTable中前16个汉字为一级汉字,其余的汉字为二级汉字。 程序初始化时,将一级汉字调入和前16个二级汉字同时调入CGRAM;并将CharFlagTable的内容清为0。 WriteOneChin函数实现方法: 根据需要显示的汉字的编号,计算此汉字对应的CharFlagTable编号Num和序列编号Offset,计算方法为: if (汉字的编号=16) Num=(汉字的编号-16)%16; Offset=(汉字的编号-16)/16; 再判断对应Num编号的CharFlagTable中的序列编号,如果两者相等,则直接显示该汉字字符,否则,将对应汉字字模调入CGRAM中后,再显示该汉字。 为了提高显示速度,可以将整个显示模式改为非图形模式。 定义全局静态数组: static signed char CharFlagTable16; 定义如下函数: void InitCGRAM(void); /功能:完成初始化CGRAM字符显示区,初始化CharFlagTable表格,程序逻辑如下: for (I=0;I16;I+) CharFlagTableI=0; for (I=0;I32;I+)WriteCGRAM(I); void WriteCGRAM(unsigned int ChinNo); /功能:完成将对应编号的汉字的字模点阵信息写入到对应的CGRAM内存区,程序逻辑如下: if (ChinNo16) Num=ChinNo; else Num=(ChinNo-16)%16+16; Num*=4; Num+=0x80; /得到对应编号汉字的四个字符中第一个字符编号; 将编号为ChinNo的汉字数组送入到Num到Num+3四个字符中 。程序设计流程图如图3.12:NY初始化LCD判断显示模式文本?文本显示图形显示结束开始图3.12液晶显示程序流程图3.2.3 键盘程序设计键盘有编码键盘和非编码键盘,虽然编码键盘使用方便,接口简单,响应速度快,但需要专用的硬件电路,而后者虽然没有前者速度快,但他不需要专用的硬件支持,所以本设计中采用非编码键盘,键值通过软件扫描来确定。程序流程图如图3.14Y开始扫描整个键盘有键按下吗?延时再次扫描整个键盘有键按下吗?计算键值结束YNN图3.14 键盘扫描程序流程图3.2.4 FFT变换程序设计3.2.4.1 FFT变换原理介绍为了更好的理解在TMS320LF2407DSP上实现FFT变换编程的原理和方法,在此有必要对FFT的原理做一个粗略的介绍。傅立叶变换是一种将时域信号转变为频域信号的变换形式。在频域分析中,频谱分析是信号分析的重要内容,它反映了系统性能的好坏。所谓信号的频谱,就是指信号的频率及对应的幅度值、相位,也可以分别称为幅度谱和相位谱。7傅立叶变换是数字信号处理中对信号进行分析向经常采用的一种方法。但是如果采用常规的傅立叶变换,则该算法的运算量会特别大,不适于需要高速运行的嵌入式控制系统中采用,而通常方法是采用快速傅立叶变换(FFT)。下面将讨论快速傅立叶变换(FFT)的基本原理。非周期连续时间信号x(t)的傅立叶变换可以表示为:X()=edt(3.1)上式中计算出来的是信号X(t)的连续频谱。但是,在实际的控制系统中能够得到的是连续信号x(t)的离散采样值x(nT),其中T是采样周期。因此,与要利用离散信号x(nT)来计算假设经过采样得到了N点采样值x(nT),n-0,1,2,,n-1,那么其频谱取样的谱间距为:=2/nT可以推倒出式(3.1)的离散形式为: (3.2)令=e,并省略符号和T,则上式可写为: (3.3)式(14.3)中,X(k)是时间序列x(n)的频谱,称为蝶形因子。对于N点时域采样值,经过式(3.3)的计算,就可以得到N个频谱条,这就是离散傅立叶变换(DFT)。可以DFT需要计算大约N次乘法和N次加法,在N较大时,这个计算量是非常大的。但是经过细致研究就可以看出蝶形因子具有如下的特性。(1)的周期性 (2)的对称性: 利用蝶形因子的对称性和周期性,将N点的DFT分解为两个N/2点的DFT,这样两个N/2点的DFT总的计算量只是原来的一半。这样的分解可以继续下去,将N/2点的DFT再分解为N/4点的DFT等。最小的分解点数称为基数。基数为2的FFT就是最小变换为2点DFT。对于N= 2点的DFT都可以基2的FFT来实现,这样其计算量可以减为个加乘运算,这就在很大程度上减少了DFT的计算量。需要特别指明的一点是FFT不是DFT的近似计算,他们是完全等效的。实现FFT通常有如下两种方法:第一,按时间抽取(DIT)的FFT算法;第二,按频率抽取(DIF)的FFT算法。下面重点讨论DIT。(3.4)若记: (3.5)则式(3.4)可以改写为: X(k)=G(k)+ H(k) (3.6)如求N点的DFT被分解为求两个N/2点的DFT,即H(k)和G(k)。以N=8的DFTx(n)为例,利用式(3.6)则有: (3.7)根据式(3.5),G(k)和H(k)都为4点的DFT,它们均是以4为周期的,故有G(k+4)=G(k),H(k+4)=H(k).再考虑的对称性= (0K3),则式(3.7)可写为: (3.8)式(3.8)可以用信号流图来表示,如图3.1。信号流图的形式如图3.1的右半部分所示。根据输入输出数据的运算结构可把信号流图分为4个基本运算单位,如故3.2(a)。由图3.2中可以看出,蝶形运算单元有如下规律:左方两节点为输入节点,代表输入数值;右方两节点为输出节点,表示输入值的叠加。蝶形运算是自左向右进行的。线旁标注的加权系数,与相应的输入数值作乘法运算,即: 图3.1 把8点DFT分解为两个4点DFT的信号流图图3.2 蝶形运算单元信号流图X(1)与X(5)取值都仅与G(1) 、H(1)有关,因此把X(1)与X(5) 、G(1)与H(1)称为对偶节点,计算对偶节点的数值,如X(1)和X(5),仅需做一次复数乘法; H(1)、两次复数加法:G(1)+ H(1) 、G(1) H(1)。蝶形单元也可以画成图3.2(b)的形式。G(k)是4点的DFT,G(k)各点的数值的计算可由式(3.5)将x(2r)按r的奇偶继续分组,把4点DFT进一步分解成两个2点的DFT,即:R为偶数时,记r=2l;r为奇数时,记r=2l+1(l均为正数),则G(k)可以写成:由A(k),B(k)计算G(k)的蝶形信号流图见图3.3(a)。与G(k)的分解类似,也可以将H(k)分解为2点的DFT的组合,即:图3.3 4点DFT分解为2点DFT的蝶形信号流图至此,A(k),B(k),C(k),D(k)都已经是2点的DFT8。它们均是由原始数据x(n)的两点通过一个蝶形运算计算而成,对于A(k),有:这就是最简单的DFT运算了。综上所述,可得出8点DT的蝶形信号流图,如图3.4所示。它的逐级分解的框图如图3.5所示。由图3.4所示的结构得出的算法即为快速傅立叶变换(FFT)。图3.4 8点DFT蝶形信号流图图3.5 8点DFT逐级分解运算框图由图3.4可见,蝶形信号流图的输出序列X(k)是按k由小到大的顺序排列的,而输入序列x(n)则是按所谓的码位倒序排列的。如果把十进制数换成二进制数,然后把这些二进制数的首位至末位的顺序颠倒过来再重新换算成十进制数,即该十进制数的排列即为码位倒序排列。N=8时的自然顺序与码位倒序的比较见表3.1。表3.1 自然顺序与码位倒序(N=8)十进制数二进制数二进制数的码位倒序码位倒序后的十进制数0000000010011004201001023011110641000011510110156110011371111117码位倒序的排列规律是由FFT的算法决定的。如果输入按自然顺序排列,则输出就会变成码位倒序排列;如果输入、输出均要求按自然顺序排列,则蝶形流图的形状就会发生扭曲,造成不能即位运算或计算机内存增加等新问题。在控制系统中,一般都令输入为码位倒序,而输出为自然顺序。上述FFT算法是把时间序列x(n)按n的奇偶分组分解后再来计算的,又称为按时间抽取(DIT)的FT算法。与此对应,也可以把X(k)按k的奇偶分组分解后再来计算DFT,称为按频率抽取(DFT)的FFT算法。这两种方法的推导过程相仿,计算工作量是一样的,仅仅是算法的结构有所不同。3.2.4.2 快速傅立叶变换(FFT)的DSP实现FFT较之DFT的计算量介绍了许多,但FFT要做到多点(N较大)、实时运算,对于普通的单片机来说还是一件比较困难的事。一方面,FFT需要对原始自然序列进行码位倒序排列;另一方面,由于X(k)是复数,蝶形运算是复数运算,需要多次查表相乘运算才能实现。因此,为了实现实时的FFT,需要单片机的指令系统有着丰富的间接寻址方式,并且最好能在一个指令周期内完成乘和累加的工作9。DSP控制器就是针对这些需求而设计,具有这样的指令和运算能力。DSP控制器特有的反序间接寻址,就是专为FFT算法而设计的;其他的间接寻址方式还可以实现增减1或增减一个变址量,这就为各种查表方法的实现提供了方便。另外,DSP控制器能在一个指令周围内完成乘和累加的工作。因此,以DSP控制器来实现FFT算法较普通的单片机容易许多。前面的分析过程重点结合图3.4和图3.5可以得知N=2点的FFT运算是非常有规律的,可以通过下面的3个循环来完成。For L=1 To m For k=0 To 21 For i=k Tl 21 Step 2 j=i+2 (i)= (i)+W(j) (j)= (i)+W(j) (3.9) Next i Next k Next L上面语句中的m为图3.5中所示的FFT运算的级数,k为每一级运算中每个子DFT运算中蝶形运算的个数,i为每一级运算过程中子DFT运算的个数(子DFT运算即为图3.5中每个方框内的运算,如在该图中第1级运算中共有4个子DFT运算,每个子DT运算中有个蝶形运算,在第2级运算中共有两个子DFT运算,每个子DFT运算中有两个蝶形运算)。注意式(3.9)需要通过中间变量进行缓存,并且(i) 、(j)和W是复数形式,在第一次循环时式(3.9)中的(i)的值是原始序列x(n)经过码位倒序排列后的数据,经过上面的三重循环后最后放在(i)中的数正好对应X(k)的值10。考虑到式(3.9)是复数运算,令: (3.10)(3.11)则式(3.9)可以化为: (3.12)上述过程是实现一个蝶形运算的迭代过程。为了用DSP控制器来实现上述的过程,还需要考虑数据的大小以免发生溢出。假设原始时间序列x(n)已经进行归一化,即为Q15的格式(最高位为符号位,其余是小数位)。可以推出,式(3.9)或式(3.12)可能的最大值为:这将超出Q15的格式范围。因为很多情况下是实数的FFT,这个值不超过2,因此在每一级用因子2进行归一化。运用DSP控制器指令系统的移位特性,用2归一化不增加任何运算量。这样,对子N=2点FFT的运算,若每级用2归一化,则最后的输出相当于除以了N=2。式(3.12)的运算涉及到正弦函数和余弦函数,因此需要预先制作好正弦和余弦表。为了容易实现查表并节省存储容量,在式(3.11)中令L=m并按如下的规律存放这个表: (3.13)可以验证,当Lm时,也可以从上面这个表中找到所需要的正弦和余弦值。分析式(3.9)的循环可知,第1层循环的次数为m;第2层虚幻的次数为2(L=1,2,m);第3层循环的次数为2(L=1,2,m)。程序代码如下:include math.h#include 2407c.hfloat pi=3.;int r=4;int N=16;int k,i,j,bfsize,p,t;float u_real,u_imag,v_real,v_imag;float x1_real16,x1_imag16,x2_real16,x2_imag16;float wk_real16,wk_imag16;float y_real16,y_imag16,z_imag16,z_real16,x_real16,x_imag16;void interrupt none(void)main()*WDCR=0x6f;*WDKEY=0x5555;*WDKEY=0xaaaa; /* 关闭看门狗中断 */*SCSR1=0x81fe; /* 打开所有外设,设置时钟频率为40MHz */for(i=0;iN/2;i+)wk_reali=cos(-2*pi*i/N);wk_imagi=sin(-2*pi*i/N);for(i=0;iN;i+)x1_reali=exp(-i);x1_imagi=0;for(i=0;iN;i+)y_reali=x1_reali;y_imagi=x1_imagi;z_reali=x2_reali;z_imagi=x2_imagi;for(k=0;kr;k+)for(j=0;j1k;j+)bfsize=1(r-k);for(i=0;ibfsize/2;i+)p=j*bfsize;t=i*(1k);u_real=y_reali+p-y_reali+p+bfsize/2;u_imag=y_imagi+p-y_imagi+p+bfsize/2;v_real=u_real*wk_realt-u_imag*wk_imag

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论