APP下载

基于TMS320VC5416的大容量数据的功率谱估计

2014-10-22闫法钢第七一五研究所杭州310023

声学与电子工程 2014年3期
关键词:谱估计图法数组

闫法钢(第七一五研究所,杭州,310023)

功率谱是描述随机信号的一个主要特征量,在随机信号的分析和处理中有着重要的理论意义和实际应用[1]。为了得到尽可能接近于真实的功率谱,需要采集足够多的信号样本。但在实际工作中,处理器的数据空间有时制约了采集量,如何有效地利用有限的数据空间实现大容量数据的采集和处理成为一个有待解决的问题。

1 TMS320VC5416数据空间介绍

TMS320VC5416是TI公司推出的一款16位定点DSP,TI公司为用户免费提供了优化的信号处理函数库 DSPLIB,其中包含 FFT、FIR等常用函数接口,非常适合对数字信号进行实时处理。但其可访问的数据空间仅为64 k,在某些应用场合,需要连续采集大于 64 k的数据进行信号处理时,TMS320VC5416的数据空间不能满足使用要求。本文通过在 TMS320VC5416的数据空间内构建一块乒乓结构的数据空间,循环使用,实现了大容量数据的连续采集与功率谱估计。TMS320VC5416的数据空间如图1所示。其中,低32 k空间固定映射在片内 RAM,高 32 k空间可以配置为映射在片内RAM或片外RAM[2]。

图1 TMS320VC5416数据空间示意图

对于片内存储器的操作有如下优势:(1)高效率,不用插入等待周期;(2)高性能,数据流可以更快到达中心算术逻辑单元;(3)比外部存储器更低的硬件开销;(4)比外部存储器更低的功耗。

2 乒乓缓存算法介绍[3]

乒乓缓存算法用于实现两个buffer的数据交替存取。典型的乒乓操作方法如图2所示。输入数据流通过“输入数据流选择单元”将数据流等量分配到两个数据缓冲区。在第一个缓冲周期,将输入的数据流缓存到“数据缓冲模块1”;在第二个缓冲周期,通过“输入数据选择单元”的切换,将输入的数据流缓存到“数据缓冲模块2”,同时将“数据缓冲模块 1”缓冲的第一个周期数据通过“输出数据选择单元”的选择,送到“数据流运算处理模块”进行运算处理;在第三个缓冲周期通过“输入数据选择单元”的再次切换,将输入的数据流缓存到“数据缓冲模块1”,同时将“数据缓冲模块2”缓存的第2个周期的数据通过“输出数据选择单元”切换,送到“数据流运算处理模块”进行运算处理,如此循环。

图2 乒乓缓存操作示意图

3 软件实现

3.1 Bartlett法的介绍[1]

Bartlett法是功率谱估计常用的方法之一,它是用改进的平均周期图法来求取随机信号的功率谱密度估计。其思想是将长度为N的采样随机信号平均分成L段,每段长度为M,先用周期图法计算每一段的功率谱,然后再将总的功率谱密度加以平均(周期图法,即是把随机序列x(n)的N个观测数据视为一个能量有限的序列,直接计算x(n)的离散傅里叶变换(DFT),得X(f),然后再取其幅值的平方,并除以N,作为序列x(n)真实功率谱的估计)。

3.2 Bartlett法的软件实现

本文基于 TMS320VC5416平台[4],对 A/D采集的信号采用Bartlett法进行功率谱估计,设定A/D采样频率为35.714 kHz,采样量128 k,要求谱分辨率不低于40 Hz。为了满足最低分辨率的要求,本文采用1024点FFT,分辨率约为35 Hz。按照前面Bartlett法所述,将128 k数据等长度分成128段,每段长度1 k。分别对每段数据利用TI DSPLIB提供的cbrev、rfft库函数实现1024点FFT[4],先用周期图法计算每段的功率谱,然后再将总的功率谱密度加以平均,得到最终的功率谱估计。TMS320VC5416的数据空间大小为64 k。其中,存储器映射寄存器占用了128 byte,系统堆栈需要约1 k byte,剩余的数据空间不足以存放128 k的数据量。因此,无法一次性采集所有数据后再进行处理,只能采用采集与处理并行的方式进行。在数据空间构建一个乒乓数据结构,通过内存循环利用实现了A/D数据的连续采集、实时处理。使用内存分配如表1所示。

表1 内存分配图

在数据空间分配三段大小为1 k的空间。其中,数组Ping[1024]和Pang[1024]用于存放A/D采集的数据,数据类型为short型;数组powerSpecturm用于存放功率谱数据,数据类型为long型, 由于实数序列的傅里叶变换关于奈奎斯特点偶对称,因此一半的频谱已经可以反映完整的频谱信息。

本文A/D采集使用中断的方式进行,每开始计算一批新的数据的功率谱,需要先将数组powerSpecturm清零,然后打开A/D中断,开始接收A/D转换数据。将第一段1024个数据顺序存入数组Ping[1024],存满后,即对该段数据进行处理,包括:FFT运算、利用周期图法计算该段数据的功率谱、并将结果对应累加于数组 powerSpecturm。在对该段数据进行处理的同时,A/D采集依然在进行,将后续采集的数据顺序存入数组 Pang[1024]。在数组 Pang[1024]存满之前,须保证对数组Ping[1024]的处理已经完成。当数组Pang[1024]存满后,再对该段数据进行处理,将后续采集的数据存放于数组Ping[1024]。依此循环,待128批数据全部采集处理完后,关闭A/D中断,将powerSpecturm除以 128(总段数)取平均值,得到最终的功率谱估计。软件流程图如图3所示。

图3 软件流程图

采用上述方法,需要满足一个条件,即在下一段数据采满之前,对上一段数据的处理必须已经完成,否则,有用数据将会被覆盖,导致结果错误。利用TI DSPLIB提供的cbrev、rfft等库函数对数据进行处理[5],可以极大地缩短数据的处理时间,rfft库函数对1024点数据做FFT的时间仅为25716个机器周期,DSP系统时钟为160 M,经运行测试,每段数据的处理时间不超过1μs,而采集1 k数据需要31.3 μs,因此,满足要求。为了验证该方法的正确性,利用信号源产生9.6 kHz的正弦信号进行了验证,在CCS开发环境下, A/D采集数据如图4所示,功率谱如图5所示。从图5可以看出,峰值出现在第275根谱线处,该谱线对应于9.6 kHz的正弦信号,说明该方法有效。

图4 输入波形

图5 功率谱图

4 结束语

本文基于 TMS320VC5416处理器,通过使用乒乓技术,利用3 k的数据空间实现了128 k数据的连续采集与功率谱估计。采用这种方法,可以充分发挥系统的性能,在较低的数据配置下,实现大容量数据的处理,对于类似需要大量片内数据处理的应用场合具有重要意义。采用此方法进行的功率谱估计,能够充分利用片内的数据空间,满足使用要求。以该方法实现的功率谱估计已经应用,经过试验,验证了该方法的实用性,可以推广应用于类似的需要大量数据采集的应用场合。

[1]胡广书. 数字信号处理[M]. 北京: 清华大学出版社.1997.

[2]Texas Instruments. TMS320VC5416 Fixed-Point Digital Signal Processor Date Manual[M]. 2003.

[3]周如辉. 实时视频处理系统中乒乓缓存控制器的设计[J].电子元器件应用,2006,33(4):66-68.

[4]合忠达电子公司. SEED-DEC5416用户指南[M]. 2004.

[5]林静然. 基于 TIDSP的通用算法实现[M]. 北京:电子工业出版社, 2008.

猜你喜欢

谱估计图法数组
JAVA稀疏矩阵算法
思维导图法联合认知行为疗法对帕金森病患者负性情绪的影响
JAVA玩转数学之二维数组排序
Excel数组公式在林业多条件求和中的应用
基于博弈论和雷达图法的黑启动方案评估
经典功率谱估计方法的研究
关于抠图法在PS图像处理中的应用
寻找勾股数组的历程
高维随机信号THREE功率谱估计及其仿真
Welch谱估计的随机误差与置信度