周锦荣,冯翰辉
(闽南师范大学物理与信息工程学院,漳州 363000)
在本科电类专业特别是通信专业教学中,频谱分析是理论教学和实验实践教学的重点和难点。频谱分析主要就是将时域信号转化为频域进行处理,如利用快速傅氏变换(FFT)、离散傅氏变换(DFT)等。通过基2 - 按时间抽取的FFT 运算理论, 利用TMS320VC5416 DSP 与液晶接口等硬件,对采集到的信号进行FFT 运算,实现信号的频谱变换,并由液晶显示出转换结果波形[1]。设计中基于案例教学需要,采用北京瑞泰创新科技有限责任公司生成的ICETEKVC5416-A 实验板,通过CCS 编程仿真平台,实现对输入信号的频谱分析和显示[2-4]。系统方框图如图1 所示[1-3]。
图1 系统模块框图Fig.1 System block diagram
信号采集电路使用ICETEK-VC5416-A 实验板自带的AD 转换模块,AD 芯片采用TI 公司生产的ADS7864,如图2 所示。该模块中,采用8 MHz 的有源晶振为AD 芯片提供时钟,在该时钟下采样速率最高可达500 kHz。ADS7864 使用的方式是非差分方式,采用输入信号的范围为0~5 V,而5416DSP 为3.3 V 器件,所以在硬件连接设计时要采用电平转换芯片对信号线和数据线进行隔离。电平转换芯片采用TI 公司生产的SN74LVTH162245,该芯片为3.3 V低功耗器件,16 位三态输出总线收发器,同时提供与TTL 兼容的5 V 系统接口,可用于不同电平系统之间的接口芯片,同时提高总线的驱动能力[5-6]。设计中使用IO 地址port0782 读AD 转换数据,port0783 用于AD 通道选择,port0784 用于启动AD 转换[3]。
图2 信号采集电路框图Fig.2 Signal acquisition circuit diagram
由于DSP 速度较快而液晶速度较慢,在设计DSP 与液晶的接口电路时,需要对数据进行锁存,以保证数据在DSP 执行内部延时程序时不会发生不可预知的变化,设计中选用SN74HC573 对总线信号锁存,同时满足与液晶接口8 位需求[7]。液晶控制端口E、RS、RW 均为MCU 到液晶的单向控制线,无复用,因此该处锁存器芯片的输出使能端接地,一直处于输出使能状态,数据接口的芯片连接方式与其相近,读液晶数据时,打开总线收发器74LS245,同时使数据输出锁存器输出使能处于无效状态。IO 地址portFEFF 用于给液晶的三个控制端口E、RW、RS 写控制命令,portFBFF 和portFBFF 用于液晶数据端口的读和写[3]。显示接口电路如图3 所示。
系统程序分为信号采集、频谱变换以及LCD 显示三个主要模块,主流程图如图4 所示。
图3 液晶显示接口电路Fig.3 Interface circuit of liquid crystal display
图4 系统主流程图Fig.4 The main flow chart of system
信号采集模块利用定时器中断读取AD 转换结果,通过设置中断的时间可以改变实际的采样频率,采集到的信号存放到ptr 指针指向的以0×6000 开始的512 个单元中,供第二个模块使用。当采集完成时,关定时器中断,终止对信号的采集,同时设置state 等于FOURIER,在下个主循环来临时,转移到频谱变换模块。FFT 变换模块通过指针方式将采集到的信号复制到傅里叶变换程序的入口中,然后调用汇编编写的傅里叶变换程序rfft_task(),转换结果存储在real_fft_output 数组中,供LCD 显示时使用。变换完成后令state=LCD_DISP,当下个主循环来临时进入LCD 显示模块。LCD 显示模块主要调用了两个函数,ShowFFT()和Showwave()。ShowFFT()主要用于显示实际转换后的FFT 波形,由于采用打点方式,波形具有离散性,显示贴近真实但是不易观察。Showwave()主要用于显示放大后的FFT 波形,该波形经过处理,易于观察,但是由于LCD 显示空间有限,处理过的波形只能在一个比较窄的范围内显示。两种显示波形进行对比,易于观察。
频谱变换模块采用基2-按时间抽取的FFT 运算实现对信号的傅里叶变换,其流程如图5 所示[8]。由于采集的信号为实数序列,为简化运算,需要对实数序列进行一定的变换。
图5 FFT 程序流程图Fig.5 FFT program flow chart
LCD 显示流程如图6 所示。设计中利用GUI_Point(unsigned int x,unsigned int y,unsigned int flag)函数实现,该函数中x 代表显示横坐标,y 代表显示纵坐标,flag=1 点亮,flag=0 代表擦除。根据该函数沿顺序地址取出FFT 结果,显示在LCD 上,显示结果为离散的打点图形,不易观察。因此显示函数分为两部分,ShowFFT()用于显示实际的FFT 波形,Showwave()用于显示放大修正后的波形。
图6 LCD 显示流程图Fig.6 LCD display chart
对于本系统而言,软件程序所实现的功能相对独立,因此可以对特定功能的程序单独调试,例如FFT 子程序。在对程序进行仿真时,可以利用CCS 软件自带的图形显示功能,将采集到的信号以及FFT输出结果通过图形方式显示出来[9]。
图7 输入信号波形Fig.7 Actual input signal waveform
如图7 为用示波器观测到的实际信号的波形,图8 为采集到的信号数据,通过图形显示功能显示出来的波形。波形显示采集得到的信号准确。
图8 CCS 采集到的信号波形Fig.8 Collected signal waveform of CCS
如图9 为采集到信号的实际频谱波形,该波形用CCS 自带图形显示功能产生,为实际的信号频谱。图10 为经过FFT 变换后得到的信号频谱,通过观察可发现,经过FFT 变换后的频谱波形特征量与实际频谱相同,基本可以反映原来信号的特性。
图9 信号实际频谱图Fig.9 Actual signal spectrum
图10 信号FFT 变换后的波形Fig.10 Signal FFT transform waveform
在程序运行正确后,将处理结果显示到液晶显示器上,显示效果如图11 所示。该图中下半屏为实际显示的波形,上半屏为修正放大后的频谱波形,两图中剔除了直流分量的显示。从图中可以看到频谱波形与软件仿真出来的波形接近,反映的信号特性一致,达到了预期的效果。
图11 液晶显示的波形Fig.11 Liquid crystal display waveform
系统基于案例教学需要,以TI 公司的TMS320VC5416 芯片为核心部件,利用快速傅里叶变换FFT 对采集到的信号进行频谱变换,设计并制作完成基于DSP 的频谱分析系统,在频率点确定上虽然存在一些误差,但整体基本符合预期要求,具有案例教学或实际应用设计参考价值。该系统还留有许多改进的余地,例如可以增大FFT 的点数,以提高频率分辨率,提高采样率,获得更大的频带宽度。但是采样率的提高伴随着的FFT 点数也得相应增大,否则频率分辨率将会降低,因此必须两者互相匹配,才能达到要求。
[1] 卜红霞,胡永杰,齐焱焱,等. 基于DSP 的频谱分析系统的设计与实现[J].微计算机信息,2008,24(7-2):208-209.
[2] 周锦荣,冯翰辉,王辉,等. 基于DSP 的交通灯控制系统的硬件设计[J]. 黑龙江八一农垦大学学报,2012,24(2):84-86.
[3] 北京瑞泰创新科技有限责任公司.ICETEK-VC5416-A板及教学实验箱说明书[EB/OL].[2013-04-10].http://wenku.baidu.com/view/534f5002bed5b9f3f90f1c52.html.
[4] 刘益成. TMS320C54x DSP 应用程序设计与开发[M]. 北京:北京航空航天大学出版社,2002.
[5] 刘明成,刘瑞安. 基于AD9852 多模式信号的应用研究[J]. 天津师范大学学报:自然科学版,2011,31(3):59-62.
[6] 池志鹏,陶然,单涛. 基于TMS320C6701 控制多片AD9852 的接口电路的设计[J]. 电子技术应用,2004,30(3):58-60.
[7] 许敬淑,傅华明,刘川. 一种基于DSP 实现的LCD 液晶屏显示技术[J]. 现代电子技术,2007,30(24):52-54.
[8] 吴宏钢,秦树人. 基于DSP 技术的虚拟式FFT 频谱分析仪[J]. 重庆大学学报,2004,27(7):21-23.
[9] 彭启琮 张诗雅,常冉. TI DSP 集成开发环境(CCS)使用手册[M].北京:清华大学出版社,2005.