(信号与信息处理专业论文)基于dsp的频谱分析仪设计.pdf_第1页
(信号与信息处理专业论文)基于dsp的频谱分析仪设计.pdf_第2页
(信号与信息处理专业论文)基于dsp的频谱分析仪设计.pdf_第3页
(信号与信息处理专业论文)基于dsp的频谱分析仪设计.pdf_第4页
(信号与信息处理专业论文)基于dsp的频谱分析仪设计.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(信号与信息处理专业论文)基于dsp的频谱分析仪设计.pdf.pdf 免费下载

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

文档简介

基于d s p 的频谱分析仪设计 摘要 随着计算机和微电子技术的飞速发展,基于数字信号处理的频谱分析已经 应用到各个领域并且发挥着重要作用。但是在教学实践过程中,由于频谱分析 仪价格昂贵,不能直观地给学生展示信号的频谱,从而使教学效果受到影响。 基于这种情况,我利用t i 公司性价比很高的数字信号处理芯片 t m s 3 2 0 v c 5 4 0 2 设计了一套频谱分析系统。该系统可以对信号进行采集,并进 行数据的频域处理,然后直接在普通示波器上显示信号的频谱特性曲线。 本课题主要做了以下工作:首先设计了一套d s p - - v c 5 4 0 2 开发系统,包 括计算机串行通信、h p i 口与计算机并行口通信的接口电路:在该系统上开发 了全部频谱分析处理软件,设计开发了串口通信的d s p 算法和主机软件以及 计算机并行口对h p i 口自举的b o o t l o a d 程序;通过仿真器验证整个系统的 运行是否正确,最后下载程序到d s p 芯片,脱机用示波器直接观察信号的频 谱波形。 通过实验测试,频谱分析系统使用简便直观,只要接到信号源与示波器之 间,即可观察信号的频谱。利用d s p 开发频谱分析仪并用于实验教学目前还 少见,本系统在实验教学中填补了一项空白。该开发系统资源丰富,除可以做 频谱分析外,还可以进行d s p 其它方面的开发工作,为进一步在d s p 方面的 开发工作奠定了基础。 关键词:频谱分析,d s p ,f f t ,仿真,j t a g ,h p i d e s i g n0 fs p e c t r u ma n e l e s y s e r b a s e do nd s p a b s t r a c t w i t ht h ed e v e l o p m e n to fc o m p u t e ra n dm i c r o e l e c t r o n i c s ,s p e c t r u ma n a l y z i n g b a s e do nd i g i t a ls i g n a lp r o c e s s ( d s p ) h a sb e e na p p l i e di na l lk i n d so ff i e l d s ,a n di t a c t sa sa ni m p o r t a n tr o l e b u ti nt e a c h i n gp r o c e s s i o n ,t h ee f f e c to ft e a c h i n gw a s a f f e c t e db e c a u s ew ec o u l dn o ts h o wt h es p e c t r u mo fs i g n a ld i r e c t l ya n dc o u l dn o t a f f o r dt h ee x p e n s i v es p e c t r u ma n a l y z e r b a s e do na b o v ep h e n o m e n o n ,w ed e s i g n e da ns p e c t r u ma n a l y s e ss y s t e m u s i n gh i g hc a p a b i l i t yp r i c er a t i od s pc h i po ft m s 3 2 0 v c 5 4 0 2o ft ic o r p o r a t i o n i t c a na c q u i s i t es i g n a la n d p r o c e s st h e d a t ai nf r e q u e n c yf i e l d s ,t h e ns h o wt h e s p e c t r u mo fs i g n a li nc o m m o no s c i l l o s c o p ed i r e c t l y t h em a i nw o r ko fd e s i g na r ef o l l o w s :f i r s tw ed e s i g n e dd s p v c 5 4 0 2 d e v e l o p m e n ts y s t e mi n c l u d et h ei n t e r f a c eo fc o m m u n i c a t i n gw i t hp cs e r i e sp o r ta n d h p ip o r tc o m m u n i c a t i n gw i t hp cp a r a l l e l p o r t ;t h e nw ed e v e l o p e ds p e c t r u m a n a l y s e ss o f t w a r eo ni ta n dd s pa r i t h m e t i cf o rs e r i e sc o m m u n i c a t i n ga n ds o f t w a r e o fh o s ta n dh p ib o o t l o a d e rp r o g r a m ;f i n a l l yw ev a l i d a t e dt h es y s t e mb y j t a ge m u l a t o r , t h e nd o w n l o a dt h ep r o g r a mt od s pa n do b s e r v et h e s p e c t r u m w a v eb yo s c i l l o s c o p eo f f i i n e t h eu s i n go f s p e c t r u ma n a l y s e ss y s t e mi se a s ya n dv i s u a l ,a f t e rt e s t i n gi nl a b o n l yi n t e r f a c i n g i tb e t w e e nt h es i g n a la n do s c i l l o s c o p e ,t h e ny o uc a no b s e r v e s p e c t r u mo fs i g n a l i ti si n f r e q u e n tt ou s es p e c t r u ma n a l y z e rb a s e do nd s p i nl a b t e a c h i n g ,s ow ef i l l e du pa ni t e mo fb l a n k t h ed e v e l o p m e n ts y s t e mc a nb eu s e di n o t h e rd s pd e v e l o p m e n tw o r kb e s i d es p e c t r u ma n a l y s e sw i t hi t sr i c hr e s o u r c e ,s ow e l a yaf o u n d a t i o no ff a r t h e rd e v e l o p m e n t k e y w o r d s :s p e c t r u ma n a l y z e ,d s p ,f i t ,e m u l a t e ,j t a g ,h p i 引言 频谱分析仪在国外被当作频域中的“射频万用表”,可见它的重要性及应用泛围之广。由 于对其认识不够及价格较高等问题,在国内,频谱仪一直主要应用在军事、国防及科研等高 层面,是一个神秘、高档的仪器。随着通信的发展和普及,在通信、研究、生产、维修等方 面对频谱分析仪需求越来越迫切,应用也更普及。频谱仪成为一个必需的“射频万用表”的时 代已来到。频谱分析仪主要特点为:高灵敏度、频率高、频带宽、频率、幅度测量及对比特 性。频谱分析中主要就是将时域信号转化为频域进行处理,般要求使用时窗技术,如快速 傅氏变换( f f t ) 、离散傅氏变换等( d f t ) ,如果采样点为n ,直接的d f t 运算需要n 2 次乘 法操作,需要大量的运算时间。2 0 世纪6 0 年代的c o o l l e y 和t u c k e y 提出了f f t ,可以将运算 减少到2 ) | 0 9 2 n 次乘法,因此f f t 成为频谱分析的核心算法。 而f f t 算法中同样有大量的乘法运算存在,乘法运算的速度是数字信号处理实现中的 一个瓶颈问题,采用一般的计算机或c p l d 可以实现算法,但是速度不能达到要求。随着f f t 的广泛应用,人们做了大量的工作来改善其性能,一方面,是算法的改进,另一方面,是硬 件实现。t i 公司生产的d s p 芯片都有硬件乘法器和f f t 运算所需的位倒序的间接寻址方式、 并行算法,使得乘法运算可以在一个指令周期内完成。t m s 3 2 0 v c 5 4 0 2 具有很高的f f t 运算 速度,使得由它组成的复杂系统的实时处理能力大为提高。t m s 3 2 0 v c 5 4 0 2 是定点d s p ,由 于性能优越,价位比较低,近年来应用比较广泛。 本设计就是采用t i 公司的d s p 芯片t m s 3 2 0 v c 5 4 0 2 为核心,主要完成f f t 算法和a d d a 的控制。所要解决的问题主要是自行开发d s p - - 5 4 0 2 开发系统,然后作f f t 算法,经过 优化以后,下载到d s p 中利用示波器观察结果,最后应用到实验室中作为教学的辅助设备。 由于d s p 扩展外设需要分配地址空间,所以在开发系统中需要用到一片x i l i n x 的c p l d 芯片 x c 9 5 1 0 8 作逻辑控制,负责v c 5 4 0 2 的寻址、输入输出等。在f f t 算法上作一些优化,缩短 运行时间,提高系统性能。同时兼顾开发系统的其它功能,利用t l l 6 c 5 5 0 串并转换模块开 发了与计算机串口通信的软件,实现主机与d s p 的串行通信;利用p c 并口控制简单、速度 快的特点,开发了p c 并口与d s p 的h p i 口通信软件,进而实现通过p c 并口来实现d s p 的 h p i 口b o o t l o a d e r ,主要考虑时序配合、寻址方面的问题,在论文中将给出详细介绍。 本设计为实验教学提供了一种新思路,同时在硬件和软件丌发过程中所提出的一些设计 方案对d s p 方面的开发工作有重要参考价值。 频谱分析原理 在信号时域检测方面,示波器是一种极为重要且有效的量测仪器,它能显示信号的波 幅、频率、周期,但对于频谱的显示相对困难。频谱分析仪可以解决这个问题,它能同时 将含有许多频率成分的信号用频域方式来显示,以识别各种频率的功率特性。 一般频谱分析仪采用多种滤波、检波器和多工同步扫描器将信号的不同频率成分显示 在c r t 上,但随着滤波器的数目增加,其性能有所下降且价格随之增加,从而限制了其性 能和应用范围。 从数字信号处理入手我们可以找到另外的频谱分析方法。傅立叶变换是一种将信号从 时域变换到频域的变换形式。由傅立叶变换可知一个时域信号由若干频率成分构成,如果 能将傅立叶变换后的信号输出即可实现频谱分析。傅立叶变换的快速算法( f f t ) 需要大量 的运算,采用高速处理器才能实现。数字信号处理器( d s p ) 就是一种专用的高速处理器 它的内部结构设计可以做大量复杂运算,它的出现使f f t 变换变得非常方便。 频谱分析的核心即为f f t 变换,其算法的高效性、正确性直接影响到频谱分析的结果。 除此之外,还应该有a d 采样,d a 变换,存储器等外围电路,这样才能组成一个频 谱分析系统。 二硬件电路系统设计 ( 一) t m s 3 2 0 v c 5 4 0 2 简介 t m s 3 2 0 v c 5 4 0 2 是t i 公司的定点数字信号处理芯片”】,是一种特殊结构的微处理器, 为了达到快速进行数字信号处理的目的,将程序与数据分开的总线结构、流水线操作、单 周期完成乘法的硬件乘法器以及一套适合数字信号处理的指令集。 v c 5 4 0 2 具有高性能的改进的哈佛总线结构,不同于传统的冯诺依曼结构的并行体系, 将程序与数据分别存储,独立编址,独立访问,三条独立的1 6 b i t 数据存储器总线和一条1 6 b i t 的程序存储器总线使数据的吞吐量提高了倍,采用了6 级流水线,并行处理多条指令。 提供4 k x1 6 b i t 的片上r o m 和两块8 k x1 6 b i t 的片上d a r a m 。每一块可在一个指令周期 内完成两次读或一次读和一次写操作。具有一个4 0 b i t 的算术逻辑单元,包括一个4 0 b i t 桶 形移位器和两个独立的加法器;1 7 1 7 b i t 的并行乘法器与专用的4 0 b i t 加法器相结合可以在 一个并行指令周期内完成一次乘加操作( m a c ) 。具有专用于v i t e r b i 蝶形算法的比较、选 r e s e f v e ( f ( o v l y 一 ( o v i y = 0 5 【i v y1 1 i v l 、f - 1 , h ”) hc i i t i i l 。d a t a f ) v iy 一1 f l j v l yl j 、t ih f ” ,a r a n l ,1 h ) j ,j ”fj q e g s l t 。i l s r f mc d h i m = , j f t e i i f d r ( m 刮j l f l l r o m t l l o ie x t er i l d d r o m t 0 i v 一ic i 。1 1 1 1 1n l i _ l h l l 、1 、1 :( ) ( 、4 f 】二一+ ff * ? :j 一 1 c l l l ( i l 、1 、1 1 1n :lh 1 卜j 2 i ) ( 5 j ( 1 2 择和存储单元( c s s u ) ;指数译码器可以在一个指令周期内求一个4 0 b i t 累加数的指数值; 两个地址发生器、八个辅助寄存器和两个辅助寄存器算术单元( a r a u ) :单周期定点指令 执行时间为1 0 n s 。 i o 空间、数据区、基本程序区映射为6 4 k 1 6 b i t ,最大扩展程序区为1 0 2 4 k 1 6 b i t , 存储器映射见图2 一l 。 片上外设具有软件可编程的等待状态发生器、可编程的块切换等待状态:并行i o 【 : 一个增强的8 b i t 主机接口( h p l 8 ) ;两个多通道缓冲串口( m c b s p s ) ;两个硬件计时器;一 个带有锁相环( p l l ) 的时钟发生器;一个直接内存访问( d m a ) 控制器。 ( 二) d s p - - 5 4 0 2 开发系统 d s p 5 4 0 2 开发系统的核心部分为嵌入式v c 5 4 0 2 单元,为了合理利用资源,更好的利 用芯片,没有把v c 5 4 0 2 直接和其他部件设计在一块电路板上,采用嵌入方式,既可以单 独作为一块处理板使用,也可以插在母板上利用其他资源进行开发。整个丌发系统包括l o 个单元,图2 2 给出了整个系统的组成方框图。 图2 - 2d s p 5 4 0 2 开发系统方框图 f i g2 - 2f r a m eo fv c 5 4 0 2d e v e l o p m e n ts y s t e m 1 p a c k 式v c 5 4 0 2 p a c k 式v c 5 4 0 2 板其实就是一个最小系统,它设计有电源变换,从5 v 到1 8 v 和3 3 v , 满足v c 5 4 0 2 的核电压和管脚电压的要求,采用一块t p s 7 6 7 d 3 1 8 即可实现电压变换:由于 外部是5 v 电压的器件,所以需要驱动和隔离,采用一片l v c l 6 2 4 5 实现v c 5 4 0 2 管脚3 3 v 与外部5 v 电压的双向变换;还设计有复位、j t a g 接口、利用内部锁相环实现时钟倍频的 外部时钟设置电路,如图2 3 所示。 2 逻辑控制 逻辑控制部分是系统的核心管理中心,本系统采用x i l i n x 公司的可编程逻辑器件 x c 9 5 1 0 8 p c 8 4 1 5 实现逻辑控制。用可编程逻辑实现数字电路可以大大减少器件数目,节 约p c b 面积,降低功耗,减少调试时间,改善系统的性能,提高系统设计的可靠性,最大 优点在于设计灵活,容易更该逻辑关系,另外有强大的设计工具,容易实现逻辑电路。 本设计利用x i l i n x 的i s e 6 3 i 1 1 0 , 1 1 i 设计完成,采用顶层原理图输入法,调用i s e 的逻辑 宏模块实现。在原理图编辑器( e c s ) 中,把系统库中的元件通过拖放,可实现元件例化, 然后按照逻辑关系进行连线,也可以通过网络名实现逻辑上的连接,最后添加输入输出管 脚标记。 综合可以利用i s e 自带的x s t 来实现,也可以选用其它综合软件如s y n p l i f yp r o ,本 设计比较简单,利用x s t 进行综合。 然后,要对管脚进行分配,按照电路上每个管脚的定义把输入输出管脚标记添加到 x c 9 5 1 0 8 对应的管脚。 最后进行的是t r a n s l a t e 和f i t ,按照综合后的结果和管脚分配进行布线,生成网络表, 同时生成下载程序。 设计完成以后,最后要进行仿真,验证功能是否正确,时序是否满足要求。特别是对 i o 寻址时,选通信号有效性、读写时序正确要进行后仿真。我们采用x i l i n x 版本的 m o d e l s i m 软件m x e 5 8 进行后仿真,由i s e 综合布线后将产生一个s d f 反标注文件,s d f 是一种标准延时格式文件,用于记录综合布线后电路的线延迟和门延迟信息,在仿真输出 的波形上叠加上这些信息,将使波形更接近实际。 本系统中的c p l d 负责外部端口的寻址、时序的配合和编码译码工作。其它引脚做了 相应的扩展,以备以后更改逻辑或扩展功能使用:整个设计中使用的宏单元( m a c r o c e l l s ) 为4 0 ,使用的引脚比较多( 9 0 ) ,所以选用x c 9 5 1 0 8 ,引脚关系如图2 - 4 所示。 no寸nuqoo昌-o u一苛goluc_n嚣ik 田斟蜒ho蕊o e p p - - 5 1 0 0 蕊寞嚣 e p p - - 5 1 0 0 仿真器属于扫描仿真器,通道d s p 芯片已提供的几个仿真引脚实现仿真功 能,露戳勰决衰遥d s p 芯片熬菇囊。爱户纛窿运费在鏊酝系统戆冀瘗绒片步 存穗嚣蜜露运 行,不会影响仿真器引入额外的等待状态。 e p p - - 5 1 0 0 仿真器采用1 4 线的j t a g 仿真接口,如图2 一1 2 ,通避这个仿真接阴与目 菰系绞 的v c 5 4 0 2 相接进行仿真,功能如表2 - 6 所示。 4 匿2 - 1 2j t a g 接口 f i 9 2 - 12j t a gi n t e r f a c e i j t a g 边界扫描原理 j t a g 基本测试原理是在靠近器件的每一个i o 管脚处加一个移位寄存器单元。在测试 期间,这些寄存器单元用于控制输入管脚的状态( 高低) ,并读出输出管脚的状态,利用这 种基本思想即可测试出电路板中的器件的好坏及相互连接的正确性。在正常工作期间,这 些移位寄存器单元是透明的,不影响电路的正常工作。 表2 - 6j t a g 仿真信号 t a b l e2 - 6j t a ge m u l a t o rs i g n a l 仿真头信号仿真头状态d s p 芯片状态信号说明 t m s oi 测试方式选择 t d l0i 测试数据输入,在t c k 上升沿装入 t d oi o 测试数据输出,在t c k 下降沿移出 t c koi 测试时钟可用来驱动系统测试时钟 t r s t 拌 oi 测试复位 e m u 0i1 0 仿真脚0 e m u li i o 仿真脚1 v c cio 存在检测,指示系统加电。 t c kr s t io 测试时钟返回,为t c k 的缓存或非缓存信号 2 ,硬件设计 使用t i 公司的a c t 8 9 9 0 1 2 4 1 测试总线控制器( t b c ) ,它兼容i e e e l l 4 9 1 1 9 9 0 ( j t a g ) 边界扫描规范。它需要串行测试信号t c k ,t m s ,t d i ,t d o ,无需增加其他逻辑。他产 生t m s 和t d i 信号,从目标板接收t d o 信号。t m s ,t d i ,和t d o 信号可以直接连接 到目标器件。有六个独立的t m s 信号( t m s 5o m s o ) ,所以它可以控制六个并行扫描路径。 有四个事件1 0 引脚可以异步与目标器件通信,每一事件都有自己的产生探测逻辑,有两个 1 6 位事件计数器。它通过5 位地址总线 a d r s ( 4 - 0 ) 平n1 6 位读写数据总线 d a t a ( 1 5 _ 0 ) 受主机控制,在t c k i 周期读写选通,任何一个2 4 位的寄存器都可以进行读写操作。有两 个命令寄存器和一个写缓存器,一个读缓存器,可以访问控制寄存器和状态寄存器,它的 状态通过r d y 和i n t 通知主机。主机可以让它产生t m s 序列使目标器件从一个稳定的测 试访问端口( t a p ) 移到另一个稳定的测试访问端口,通过目标器件执行指令或测试数据。 一个3 2 位的计数器可以预置需要扫描或执行的指令数。串行数据从选择的t d i 输入到读缓 存,主机从这罩获得1 6 位串行数据流,同样主机通过写写缓存口j - 以把数据通过t d o 输出 到目标器件,图2 1 3 为功能图。 t a r t a r i n t e d a c e 惭t t ed a t ab u s1 6 , 删刊。e v 触e n te 习c 一 _ 一 h i 一 r = c o r n n m n d b l o c k h o s t t m s 0 一o l ;, h b l o c k t d i ( 1 0 i t 季一一 s e q u e n c e r 习 蛐础 b l o c k 一 _ 冠硝 + “ t c k 0 t c k l t k 歼t 图2 - 1 3a c t 8 9 9 0 功能图 f i g2 - 1 3a c t 8 9 9 0f u n c t i o n a lb l o c kd i a g r a m r d y i n t 兰算砥 三软件系统设计 软件系统主鼹由a d 采样、f f t 变换、d a 转换组成,同时利用板上资源丌发了h p l 日b o o t l o a d e r 程序,稍傲修改即可实现p c 极与d s p 的h p l 日通镶;开发了邋过仿真 器在线f l a s h 编程,也可以实现并行b o o t l o a d e r ;利用t i 公司静t l l 6 c 5 5 0 开发了 与计算机串口通储软件。 ( - - ) a d 采样 a d 采样部分使用了a d 公司的a d 7 8 2 1 实现,a d 7 8 2 1 工作在采用w r r d 模式( m o d e = 1 ) 棂攥时序霆,妇图2 - 5 聪示,在程序中控制读写与逸逶信号即可嶷观信号采爨。为了 编秘方便,使用c 代码实现( 程序觅附录 ) ,其中主要使用中断i n t 0 ,先向端目0 x 0 0 0 5 写个字,使w r # 出现下降沿,然后别的端口发读信号,w r # 出现上升沿,开始采样, 当聚襻完成嚣,i n t 出现下骚漆中数d s p 戆i n t 0 ,扶蠢触发中叛程序r e a d a d ( ) ,中鹾 程序负责向0 x 0 0 0 5 发读信号使r d # 出聪下降沿,从a d 7 8 2 1 读取数据并且存放剿数组 x 5 1 2 】中,然后向其它端口写,使r d # 出现上升沿,完成一次采样,中问加循环控制采样 率。采集完成蜃,开始f f t 嶷按,辕警嚣继续采群,它楚终为f f t 交羧靛子程序。 a d 7 8 2 1 最快在3 8 0n s 后藏完成a d 转换,所以最商采样率可以达到2 5 m h z ,由于采 集的数据要进行存储,要花费一定c p u 时间,所以采样率一般要控制在1 m 左右,采样点 数为5 1 2 点,采谨时闯为5 1 2 1 m = 5 1 2 n s ,f f t 交换大概甏要1 9 n s 约 重阚, e 样本积累露闻 小的多,非常棱:j 黩实时性,对信号要求不能大于3 0 0 k h z 。对频率低的信号可以出软僻控制, 降低采样率,保证5 1 2 点采样一个周期。 溅试程序辩,绘a d 送1 k h z 浆歪弦售号经过采搀爱,在数据区鼹藜波形,基本不失囊, 如潮3 1 所示。 ( 二) f f t 原理 浚速薅立咛交换( f f t ) l 瑙楚诗算n 点蹇鼗傅立跨交换( d f t ) 豹褰效算法,遥誊羲 入的序列为复数,利用对称性组合可以对实数实现更高散的d f t 变换。 所谓的组合算法就是把2 n 点的实信号组合成n 点的复数序列,然后进行n 点的复数 f f t 交按,最嚣疆n 点豹臻蘩分籀残2 n 杰豹实鼗。遗襻,翻矮缓台鞫分惩技术戆可夔实 现实数f f t 变换比普通的f f t 变换快2 倍左右。下面具体说明f f t 算法及其在 t m s 3 2 0 v c 5 4 0 2 上的实现。 1 d f t 摄瑾 d f t 是连续傅立叶交换的离敖形式,模拟信号x ( t ) 的连续时闯傅立时变换表示为: x ( 珊) = rx ( t ) e 刊d t ( 3 2 1 ) x 经撞祥嚣交为x ( n t ) ,t 为撩样瘸麓。鬻敬信号豹褥立时变挨表示为: 一1 ( | i ) = x ( 朋秽,k = o “1 一n - 1 ( 3 2 2 ) n = o 其中箨0 = e 啊。“,称为臻形因子,式( 3 2 ,2 ) 就是n 患d f t ,运髯餐为n 2 次粱法秘n 2 次加法。 驿其蠢慰称性孵= 一孵“”稆周麓| 羧蝶= 一哝”,翅瑟3 - - 2 掰示n = 8 露耪名兹对 称性和周期性。 哎= 暇4 嘲, 。 - v | | 一f 、 r w i = w i = 孵 岷2 = 吲。 霉3 - 2 n = 8 盼w k 砖对称柱和周期牲 f i g3 - 2s y m m e t r i ca n dp e r i o d i c a lo f w nw h e nn = 8 2 f f t 算法的导出 f f t 算法分为时问抽取f f t ( d i t ) 和频率抽取f f t ( d i f ) ,本设计采用了d i f ,所以 着重讨论d i t 的原理。 d i t 是将n 点的输入序列x ( n ) 按照偶数和奇数分解为偶序列和奇序列,因此,x ( n ) 的n 点f f t 可表示为: ( 3 2 3 ) 根据嵋= 2 “”】2 = e 川州2 = ,2 ( 3 2 4 ) 得: ( 3 2 5 ) 用y ( k ) 和z ( 1 ( ) 分别表示( 3 2 5 ) 右边第一个和第二个和式,则有 x ( t ) = 】,( t ) + 吲z ( 女)( 2 6 ) y ( k ) 和z ( k ) 得周期为n 2 ,所以k 得范围为o n 2 1 。计算k = n 2 n - l 的x ( k ) 可利用 蝶= 一畋“”得: x ( k + n 2 ) = y ( 七) 一:z ( k ) ( 3 2 7 ) 同理,进一步可得n ,4 点的f f t ,重复抽取即可得2 点f f t 。在基2 f f t 中,n = 2 m , 共有m 级运算,每级有n 2 个2 点f f t 蝶形运算,因此n 点f f t 共有( n 2 ) l 0 9 2 n 个蝶形 运算。基2d i t f f t 蝶形运算如图3 3 所示。 p 图3 - 3 基2 d i tf f t 蝶形运算 f i g3 - 3 r a d i x2d i tf f tb u t t e r f l ya l g o r i t h m 按照基2 d i t 计算8 点信号的f f t ,画出流图如3 4 所示,从图中可以看出输入是顺 序的,而输出是按照码位倒置的顺序排列的。 3 实数序列的f f t 实际应用中,通常输入的序列是实数,计算实数序列的f f t 可以采用复数算法,只要 将虚部置零即可,考虑f f t 的对称性,可以将实数序列组成复数序列然后进行复数f f t , 然后将计算结果分解成实数。 暇 +孙 。“ + - 薹 昨 拥 。“ = d以 嘴 肼 啦 噼 巾 睇m 。啦 = ”h 图3 - 48 点基2 d i t f f t 信号流图 f i g3 - 4 8p o i n tr a d i x2d i tf f ts i g n a ld i a g r a m ( 三) f f t 的t m $ 3 2 0 v c 5 4 0 2 实现 f f t 算法很多,但在定点d s p 上实现需要考虑具体的一些问题。首先要确定采样点数, f f t 的点数与频谱分辨率有直接关系,采样率为f s 的n 点f f t 频率分辨间隔为2 f s n ,频 谱宽度从0 到f s 2 。频率分辨问隔越小,频率分辨率越高。对于周期信号,如果n 点恰好 包含一个或整数个周期,则信号频谱上将在对应频点上出现尖峰,否则谱上没有f 好与信 号频率对应的频点,此频点能量将分散到相邻的频点上,实际的信号包含多种频率成分, f f t 样点不可能正好是这些分量周期的整数倍,在n 较小时,两个频率相近的分量可能在 频谱上无法分辨,而提高分辨率,增大n 值,将使f f t 运算量增加,综合考虑实时性和分 辨率,选取了n 等于5 1 2 点。 当n 值确定后,提高采样率将缩短采样时间,降低频率分辨率,得不到低频分量的信 息,因此需要根据信号的频率范围调整采样时间,可以在a d 采样程序中设置采样率,在 测试间段采样率定为l k 。 定点d s p 做f f t 还要考虑数据的溢出,由于采用原址运算,还要进行特殊的存储区分 配,在下面做详细的介绍。 1 ,溢出保护 用定点d s p 实现f f t 时,要防止中间结果的溢出,方法采用对中间数值归一化。由图 3 2 可得圪+ 2 己+ 9 卅蝶q 卅+ - = 只一q 卅孵,蝶形因子可表示为:峨= c o s ( x ) 一s i n ( ) , 其中2 ( 2 x n ) k 。把p m 和q m 用实部和虚部表示:p m = p r + j p i ,q m = q r + j q i ,可得: 2 0 0 4 2 6 u 幅口7 邶删删圳耶邶印邶删螂删 巴+ l = p r + _ ,p ,+ ( q 月e o s ( x ) + q s i n ( x ) + _ ,( o z c o s ( x ) 一q r s i n ( x ) ) = ( p r + q r c o s ( x ) + q ,s i n ( x ) ) + j ( p i + 0 1c o s ( x ) 一q r s i n ( x ” q m n = p r + j p i 一( q r c o s ( x ) 七q is i n ( x 1 一j 0 q ic o s ( x 1 一q r s i n ( x ) _ = ( p r q r e o s ( x ) 一q ,s i n ( x ) ) + j ( p i o l c o s ( x ) + o rs i n ( x ) ) ( 3 2 8 ) 每个蝶形因子采用q 1 5 格式表示,幅度小于i ,则( 3 2 8 ) 式的最大幅值为: 1 + s i n ( z 4 ) + c o s ( 万4 ) = 2 4 1 4 为了减少运算量,同时考虑到实数f f t 的( 3 2 8 ) 式的最大幅值一般不会超过2 ,因此 在每一级用因子2 进行归一化,即进行移位。 2 实现方法 ( 1 ) 存储区分配 如图3 5 所示,程序区在0 x 8 0 h o x l 5 f h 空 间,大约占2 2 4 个字。在数据空间0 x 0 h 一0 x 6 2 h 存放变量、指针。0 x 7 0 h 0 x 7 f h 为堆栈。0 x 4 0 0 h 0 x 5 f f h 为s i n 表,0 x 8 0 0 h 0 x 9 f f h 为c o s 表, 0 c 0 0 h 1 3 f f h 存放数据,原始数据放在低半部, 1 4 0 0 h 1 7 f f h 为功率谱输出缓冲区。 ( 2 ) r e a lf f t 算法 f f t 算法分为以下4 步: 数据的位倒序 2 5 6 点复数的f f t 分离奇数部分和偶数部分 数据输出 下面分别详细说明。 数据的位倒序 数据区 0 0 7 0 h s t a c k 0 0 7 f h 0 4 0 0 hs i n e 表 0 5 f f h 0 8 0 0 hc o s i n e 表 o o f f h 0 c 0 0 h数据处理缓冲 ( 2 0 4 8w o r d sm a x i m u m ) 1 3 f f h ( 抵半部为实数f f t 输入缓冲) 1 4 0 0 h 功率谱输出区 1 7 f f h ( 1 0 2 4w o r d sm a x i m u m ) 图3 - 5 实数f f t 内存分配 f i g3 - 5 r e a lf f tm e m o r ya l l o c a t i o n 由采样程序得到的5 1 2 点实数a 【n 】,存放在r e a l f i t _ i n p u t ,即数据区的0 x 0 e 0 0 h 处, 然后按照d 【n = t 【n 】+ j i 【n 】组合复数序列,其中r ( n ) = a ( 2 n ) ,i ( n ) = a ( 2 n + 1 ) n 可得2 5 6 点复序列, 对d 【n 】进行位倒序排列存放在f i td a t a ,即数据区的0 x 0 c 0 0 h 处,偶数地址为d n 】实部,奇 数地址为d 【n 】虚部,如图3 - 6 所示。 0 2 5 6 点复数f f t o c 0 0 h o c 0 1 h o d f e h 0 d f f h 0 e 0 0 h “o ) 0 e 0 1 h a ( 1 ) o f f e h a ( 5 1 0 ) 0 f f f h a ( 5 1 1 ) o c 0 0 h f r o ) = a ( o c o i h i ( 0 ) = a ( 1 ) o d f e h r ( 2 5 5 )= a ( 5 t o ) o d f f h i ( 2 5 5 )= a ( 5 1 1 ) o e o o h a ( o ) 0 e 0 1 h a ( 1 ) o f f e h a ( 5 1 0 ) o f f f h a ( 5 1 1 ) 图3 - 6 实数序列及复序列在数据区组织 f i g3 - 6o r g a n i z a t i o no f v a l u e si nd a mm e m o r y 在数据缓存区对d ( 1 1 ) 进行2 5 6 一点复数f f t 。q 1 5 格式的旋转因子s i n 表和c o s 表存储 在两个分离的表中,采用索引表对旋转因子进行寻址。结果为: d k 】= f d ( n ) = r k + j i k 其中r k 】和i 【k 】分别是d 【k 】的实部和虚部。d k 存放在数据缓存区的上半部分即0 c 0 0 h o d f f h 位置,如图3 7 所示。 o 分离奇数部分和偶数部分 根据下面公式把d k 】分离成实偶部分r p k ,实奇部分r m k ,虚偶部分i p k 】和虚奇 部分i m k : r p k 5 r p n k 】= 0 5 + ( r 陬】+ r i n k 】) r m k 2 一r m i n k 】- 0 5 + ( r 【k 】一r 【n k ) i p 【i 司2 i p n - k 】= 0 5 + ( i k + i i n k ) i m k 2 i m i n k 】= 0 5 + ( i 【k 】- i n - k 】) r p o = r 0 】 _ 【p o l = f r o r m 0 2 i m o :r m n 2 = i m n 2 = o r p i n 2 2 r n 2 】 i p n 2 2 i n 2 这样数据将占用数据区的o x c o o o h o x f f f h 地址。上半部分为r p 【k 】和i p k l ,下半 部分为砌v i 【k 】和i m k ,如图3 - 7 所示。 0 c o o h r 0 1 o c 0 1 h i i o 】 o d f e h r 2 5 5 j o d f f h 1 1 2 5 5 1 0 e 0 0 h o ( o ) 0 e 0 l h a ( 1 ) 0 f f e h a ( 5j o ) 0 f f f i l “5 1 1 ) 数据输出 0 c o o h r p 0 】- r 0 l 0 ( 2 0 l h w 0 】;1 0 】 0 d f e h r p l 2 5 5 】 0 d f f h i p 2 5 5 1 0 e 0 0 h a ( o ) o e o i ha ( 1 ) o f f e b i m l l 0 f f f h r m 【1 1 0 c o o h a r o l o c 0 1 h a i f o j 0 d f e h a r 2 5 5 】 0 d f f h a i 2 5 5 l 0 e 0 0 h a r l 2 5 6 1 0 e 0 1 h a 1 1 2 5 6 l 0 f f e b a r 5 】l 】 0 f f f h a l l 5 1 1 】 图3 - 7 数据的分离和重组 f i g3 - 7d a t au n p a c k i n ga n do r g a n i z a t i o ni nm e m o r y 由以下公式可以从l t r k ,r m 【k 】,i p 【k 】和i m k 】中计算出a ( n ) 的实f f t a r k 。a r 2 n - k 卜r p k + c o s ( k z n ) 4 i p k 一s i n ( k z n ) + r m k 】 a i i k l 2 - a i 2 n k 1 2 i m k 一c o s ( k 开瓜) + r m k - s i n ( k x b 4 ) + w k 】 a r 0 2 r p 0 + i p 0 】 a t 0 。i m 0 一r m 0 】 a r 【n 卜r o 一i o 】 a i n 】_ 0 其中 a 【k 】- a i 2 n - k = a r k + j a i k = f a ( n ) 这样实f f t 按照实数虚数的自然顺序填满1 0 2 4 个字的数据区,如图3 - 7 所示。 ( 3 ) 功率谱计算 将f f t 变换好的数据按照虚部平方加上实部平方和,对z i 、z 一,。垤, - 算。考 虑开方运算对数据输出没有多大意义,但浪费c p u 运算时间,所以不开方,直接输出到 0 x 1 4 0 0 h 位置。 对0 x 1 4 0 0 h 的数据用c c s 的g r a p h 窗口观测结果,如图3 - 8 所示。和理论上得到的频 谱结果一致。 图3 - 81 k h z 正弦信号频谱图 f i g3 - 8s p e c t r u mo f1k h zs i nw a v e ( 四) f f t 设计流程 整个f f t 变换过程和a d 采样、d a 输出是连续进行的,流程如图3 - 9 所示,程序见附 录i i 。 图3 - 9f f t 流程 f i g3 - 9d i a g r a mo f f f t 2 4 ( 五) d a 变换 d a 变换主要是把f f t 变换产生的功率谱数据模拟输出,而t l c 7 5 2 8 操作简便,只要 选通以后给数据端送数据即可输出。但是t l c 7 5 2 8 是并行8 位,而d s p 数据是1 6 位,所 以要进行数据的调整,将高8 位保留,然后将双极性的数据改为单极性输出,即高位与1 异或,把负数变成正数,程序见附录i 。 ( 六) 串口通信程序设计 系统软件设计包括p c 机、t m s 3 2 0 v c 5 4 0 2 以及t l l 6 c 5 5 0 的初始化和通信协议等。 初始化的主要任务是设置操作所需要的参数。这些参数包括串行通信时数据串的数据位数、 停止位数、奇偶校验等。另外,还需要设置发送和接收的波特率及中断方式

温馨提示

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

评论

0/150

提交评论