>
首页 » 业界动态 » 基于ADSP-TS101的频谱细化

基于ADSP-TS101的频谱细化

作者:  时间:2007-11-26 11:03  来源:

在信号处理分析中,最常用到的是时域分析和频域分析。其中信号的频域分析有着广阔的发展和研究空间。随着对信号处理要求的不断提高,用简单的FFT变换来对信号进行时频变换的方法在某些场合可能达不到我们所要求的频率分辨率。如果靠简单的加大FFT点数来增加分辨率无疑也大大地增加了系统的运算量,这在某些实时性要求较高的场合是不允许的。本文详细介绍了如何在快速傅里叶变换(FFT)的基础上辅以傅里叶变换来实现频谱细化。并给出了具体的设计实例加以说明。

1 原理介绍

对于一个有限长时间的离散信号序列而言,其频谱是连续的。对信号序列作离散傅里叶变化只能得到某些离散点的频率值,而且速度较慢,更多的情况下用的是快速傅里叶变换,可以很快得到信号的频谱。但是离散傅里叶变换有频率分辨率的限制,只能得到fs/N整数倍频率点的幅度和相位,对于他们之间频率的幅度和相位无法得到,这种现象称作栅栏效应。下面以如何准确求得雷达系统中的多普勒频率为例说明如下:

对于一个采样频率为fs,采样点数为N,的离散时间序列x(tk),设:

序列的离散傅里叶级数的系数为:

n△f处的幅度矢量表达式为an-ibn。

快速离散傅里叶变换(FFT)是上述傅里叶变化的特殊情况,即N=2m(m为正整数)的时候,可以很快地计算出信号的频谱。离散傅里叶变换分辨率为△f,和采样长度N成反比,一旦N,确定,频率分辨率无法提高。

我们知道,离散信号序列是对连续信号的采样,采样以后的信号的谱以fs为周期重复,因此离散序列x(tk)中已经包含了原始信号中0~fs/2的频率信息,如果把离散傅里叶变换中的n看作是连续的变量,便可得到下面的式子:

其中:0≤f≤fs/2。

通过以上的式子可以得到离散信号的连续频谱,而且没有分辨率的限制,可以以任意分辨率来分析信号的频谱,下面介绍工程上如何利用上面的公式来估计出信号的准确频率。

2 应用实例

在雷达系统中需要估计出多普勒频率,以便计算出自己或敌机的飞行速度,这就需要精确地估计出回波信号的多普勒频率是多少,但对于信号的整个频谱不是很关心,因此不需要很细致地去研究信号频潜,所以可以先以粗的分辨率估计出信号的频率大概在那里,然后再用更小的分辨率来细化这段感兴趣的区间,这样就能够更加准确地计算出信号的多普勒频率。ADSP-TSl01是AD公司生产的一款高性能浮点数字信号处理器,他计算1 024点的FFT只需要用32.78 μs,内部有两个计算单元以及大容量的SRAM,能够满足实时信号处理的目的。为了计算出回波信号的多普勒频率是多少,可以这样做:先用FFT计算出信号的整个频谱,找到信号频率所在的大概位置,此时估计的频率比较粗,误差不超过±△f/2,为了能够精确地测出信号的频率,我需要在进一步的细化该点附近±△f/2以内的频谱,找到幅度最大的频率是多少,便可以得到回波信号确切的多普勒频率。

为了在粗估计的基础上进一步细化频谱,需要知道每个要细化点的cos(2πkf/fs)和sin(2πkf/fs)系数,但是由于这两个系数没有固定的周期性,因此如果要考虑到整个频段内的情况,并把所有情况下的系数都存起来,这样做显然不行,需要很大的存储空间。可以这样做:先分别把cos(2πkΔf/fs)和sin(2πkΔf/fs)存储一个周期的长度,其中0≤k≤N-1,假设要细化的精度是0.5 Hz,那么还需要把cos(2πk0.5/fs)和sin(2πk0.5/fs)存起来,其中0≤k≤m,其中m取决于△f/2,假设要细化点的频率为:f=nΔf+0.5m,我们把f代入式(4)和式(5),并利用和差化积的公式展开可得下面的式子:

可以利用cos(2πkΔf/fs)和sin(2πkΔf/fs)的周期性,再利用DSP-TS101支持的循环寻址的功能进行查找就可以了,对于cos(2πk0.5m/fs)和sin(2πk0.5m/fs)可以先查表得到第一个系数,再利用倍角公式进行叠代,这样能够得到式(4)和式(5)中的系数,可以节省很大的空间范围,ADSP-TS101的存储容量足够存放上面所提到的系数,不需要外扩存储器,简化了系统的设计,也提高了实时处理的效果,下面举个实际细化的例子:

设:fs=1 000 Hz;N=128;f=145 Hz;Hz;x(t)=COS(2π*f*t)

图1所示为FFT后的频谱,即粗估计频谱。细化后的频谱如图2所示。

从上面的例子可以看到,第一次粗估计的频率误差为3.44 Hz,细化后的误差为0.13 Hz,和真实频率只差零点几个赫兹,这对于后面的测速很有帮助。上面的方法已经在工程中验证了他的正确性,ADSP-TSl01是一款性能极高的浮点信号处理器,内部有两个计算块X和Y,这两个计算块可以同时工作也可以相互独立工作,为了提高实时处理的效果,可以让其中一个计算块计算系数,另一个计算块用于乘加运算,内部6 Mb的SRAM足够存储系数,再加上单指令多数据的特点,细化一个点的频率只需要花费l ms(N=16 384)的时间,计算的点数越少所花的时间越短,而且还可以利用对称性,只需要计算一次系数便可以得到细化两个点的系数,这样算来从粗估计到得到真实频率只需要花费十几毫秒左右的时间,能够满足实时处理的要求,满足系统设计的要求。

3 结 语

经在实际系统中的调试证明,该方法能有效提高信号的频谱分辨率,且方法简单易行,无需大幅增加系统的成本和运算量,具有一定的实际意义。

相关推荐

elmos在2019传感器+测试展会展示多款卓越的半导体解决方案

ADI公司表彰出色战略供应商

ADI  信号处理  2012-04-16

对FPGA设计进行编程并不困难

信号处理  PCIX  FPGA  2011-05-25

基于双单片机的信号处理系统设计

单片机  信号处理  2011-02-18

Pericom发布三款全新信号处理产品

2010-11-17

仪器和测量技术中的DSP

信号处理  DSP  2010-10-13
在线研讨会
焦点