数字信号处理中,要想再现被采集信号,采样频率必须是被采样信号的2倍以上的关系, \( f_s = 2*f \) 。一般取3倍以上。
数字信号处理的关系演示见下图。
进行一次FFT分析所截取的时域信号长度,称为1帧数据或frame size,单位为s,也称1个时域数据块。由于实际采集的时域信号时间很长,而一次FFT分析只能分析有限长度的时域信号,因此,需要将采样时间很长的时域信号截断成一帧一帧的frame size。这个截取过程叫做信号截断
相邻两个时域数据点的采样时间差,称为时间间隔或时间分辨率,等于采样频率的倒数,单位为s。时间分辨率越小,采样率越高,采样越密集,信号越接近真实信号
一帧数据所对应的数据点数(样本点,分析点数),称为时域数据块大小(time block size)。因此,一帧数据除用时间长度来描述之外,也可以用数据点数来描述。它们之间的关系如下:
$$ T = N * \Delta{t} $$因此,一帧数据包含多少个数据点,是可以计算出来的。有的软件不是通过设置频率分辨率的大小来决定一帧数据的长度(等于频率分辨率的倒数),而是通过设置数据块大小 来决定一帧数据的长度。
由于计算机不能处理模拟信号,因此,必须通过采样将模拟信号转换成数字信号。用来表征采样快慢的参数称为采样(频)率,单位为Hz。本质上,称呼采样频率为采样率更合适,因为它表征的是采样的速率,采样率高,则采样快。采样率是表示每秒钟采集多少个样本点(或数据点),也可用sample/s或样本点数/秒表示。
采样频率的一半,称为带宽,或最大分析频率,或奈奎斯特频率。它与采样率的关系如下:
$$ f_{max} = f_s/2 $$也就是说,最终分析出来的所有频率都位于带宽以内,哪怕是存在频率混叠,呈现出来的频率也在这个区间。因此,为了防止高于带宽以上的频率成分混叠到带宽以内,需要在模数转换前进行抗混叠滤波。
我们已经明白采集到的时域信号是离散的,两个时域数据点的时间差称为时间分辨率。同理,频谱也是离散的,相邻两条谱线的频率差或频率间隔称为频率分辨率。FFT计算得到的结果只位于频率分辨率的整数倍处,也就是谱线处,其他地方无结果
频谱图中谱线的总条数,称为谱线数。也可以理解为带宽按频率分辨率进行等分,等分的份数即为谱线数。\( N \)个时域样本点的FFT得到\( N/2 \)条谱线,也就是说两个时域数据点能得到一条谱线。
谱线数与带宽、频率分辨率的关系如下:
$$ N/2 = f_{max}/\Delta{f} $$由于这三者是相互关联的,因此,当进行数据采集时,只需要设置其中两个参数就可以了,第三个参数,自动变化为相对应的值。像在Testlab软件中,这三个参数的设置界面如下图所示。在这,建议大家设置带宽和频率分辨率这两个参数。因为设置了带宽后,采样频率也就确定了。频率分辨率确定后,谱线数也随之确定了。另外,设置频率分辨率更直观。
时间分辨率与采样频率的关系:
$$ \Delta{t}=1/f_s $$帧长度与数据块大小、时间分辨率、采样频率和频率分辨率的关系:
$$ T = N* \Delta{t} =N/f_s = 1/\Delta{f} $$带宽与采样频率、频率分辨率、谱线数和帧长度的关系 :
$$ f_{max} = f_s/2 = \Delta{f} *N/2 = N/2 *1/T $$频率分辨率与帧长度、采样频率、数据块大小、带宽和谱线数的关系:
$$ \Delta{f} = 1/T = f_s/N= f_{max}/(N/2) $$频率分辨率: \( \Delta{f} \) 为1,分析带宽为20~2000Hz,采样频率为6400,那么FFT后获得的谱线数为2536,计算如下:
采样率为6400,那么FFT后求得的频率谱线数为3200,那么20~2000H的频率范围内共包含谱线数,2000-20 = 1981,一般情况下,为了防止采样过程中的泄露现象,将采样频率(3200)再乘以1.28,所以最终谱线数为:1981*1.28 = 2536
The diagram:
The polar form of the complax number:
以极点坐标表示的虚数:
$$ z = re^{i\phi} = r(cons\phi+isin\phi) $$The functional equation implies thus that, if x and y are real, one has :
$$ e^{x+iy} =e^{x}con(y) + ie^{x}sin(y) $$离散傅里叶计算的公式如下:
K :0 ~ N-1
假设上述公式中的N为2的整数倍,分别计算公式中的偶数想和奇数项,让后将两者组合,可以将上述公式的计算次数减少为:[ \( N\log N\) ]次
假设DFT计算公式的中偶数项: \( n = 2m\) ,奇数项为:\( n = 2m+1\)。得到如下公式:
进而求解
Note that the equalities hold for \( K = 0,...N-1\),but the cruix is the \(E_k\) and \(O_k\) are calculated in this way for \( k = 0,...,N/2 -1\) only.Thanks to the periodicity of the complex exponential ,\( X_{K+N/2}\) is also obtained from \(E_k\) and \(O_K\)。
Then we can rewrite \(X_k\) as:
This result ,expressing the DFT of length N recursively in terms fo two DFTs fo size N/2,is the core of the radix-2 DIT fast Fourier transform.The algorithm gains its speed by reusing the results fo intermediate computations to compute multiple DFT outputs.
图备注:Data flow diagram for N=8: a decimation-in-time radix-2 FFT breaks a length-N DFT into two length-N/2 DFTs followed by a combining stage consisting of many size-2 DFTs called "butterfly" operations (so-called because of the shape of the data-flow diagrams).