fft,简述离散傅立叶变换DFT及快速算法FFT在数字信号处理中所处的
来源:整理 编辑:智能门户 2025-03-17 12:28:43
本文目录一览
1,简述离散傅立叶变换DFT及快速算法FFT在数字信号处理中所处的
FFT只是DFT的一种计算机快速算法,结果与DFT相同DFT可以说是是一切离散变化分析的前身,因为变化形式相似。DFT就是把时域信号变化为频域,以得简明的物理含义与处理方法。
2,振型分析中FFT和FRF是什么意思
简单地说,模态分析是根据用结构的固有特征,包括频率、阻尼和模态振型,这些动力学属性去描述结构的过程。那只是一句总结性的语言,现在让我来解释模态分析到底是怎样的一个过程。不涉及太多的技术方面的知识
3,FFT是什么意思
音频处理里面常用。
就是把波形(时域信号)变换到频域,使得用户更好的分析。
频域就是类似于“千千静听”的频谱。
这个过程叫“离散傅立叶变换”(DFT)。
而FFT是DFT的一种高效快速算法。
4,什么是FFT
快速傅里叶变换,是计算机算傅里叶变换的常用方法。 FFT(Fast Fourier Transformation),即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的 FFT算法图发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。
5,FFT什么意思
FFT,即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。
设x(n)为N项的复数序列,由DFT变换,任一X(m)的计算都需要N次复数乘法和N-1次复数加法,而一次复数乘法等于四次实数乘法和两次实数加法,一次复数加法等于两次实数加法,即使把一次复数乘法和一次复数加法定义成一次“运算”(四次实数乘法和四次实数加法),那么求出N项复数序列的X(m),即N点DFT变换大约就需要N^2次运算。当N=1024点甚至更多的时候,需要N2=1048576次运算,在FFT中,利用WN的周期性和对称性,把一个N项序列(设N=2k,k为正整数),分为两个N/2项的子序列,每个N/2点DFT变换需要(N/2)^2次运算,再用N次运算把两个N/2点的DFT变换组合成一个N点的DFT变换。这样变换以后,总的运算次数就变成N+2(N/2)^2=N+N^2/2。继续上面的例子,N=1024时,总的运算次数就变成了525312次,节省了大约50%的运算量。而如果我们将这种“一分为二”的思想不断进行下去,直到分成两两一组的DFT运算单元,那么N点的DFT变换就只需要Nlog(2)(N)次的运算,N在1024点时,运算量仅有10240次,是先前的直接算法的1%,点数越多,运算量的节约就越大,这就是FFT的优越性。
6,对图像进行二维FFT变换
象富里哀级数,富里哀变换以及它们离散时间相应部分构成了信号处理的基础。为了便于这类问题的分析,MATLAB提供了函数fft,ifft,fft2,ifft2和fftshift。这类函数集执行一维和二维离散富里哀变换及其逆变换。这些函数允许人们完成很多信号处理任务。除此之外,还可在可选的信号处理工具箱中得到其他扩展的信号处理工具。
因为信号处理包含如此广泛的领域,甚至要说明用MATLAB中离散富里哀变换函数可解决的这类小问题,就超出了本书的范围。因此,这里将只介绍用函数fft近似连续时间信号的富里哀变换的一个例子。此外,还将讨论《精通MATLAB工具箱》中处理富里哀级数的函数集。
14.1 快速富里哀变换
在MATLAB中,函数fft计算一个信号的离散富里哀变换。在数据的长度是2的幂次或质因数的乘积的情况下,就用快速富里哀变换(FFT)来计算离散富里哀变换。当数据长度是2的幂次时,计算速度显著增加,因此,只要可能,选择数据长度为2的幂次或者用零来填补数据,使得数据长度等于2的幂次显得非常重要。在《MATLAB参考指南》中可找到有关该问题的讨论。
MATLAB中实现的快速富里哀变换,是按照工科教材中常使用的方法。
F(k)=FFT{f(n)}
因为MATLAB不允许零下标,所以移动了一个下标值。
相应的逆变换为:
为了说明FFT的使用,考虑估计连续信号的富里哀变换的问题。
解析上,该富里哀变换为:
虽然在这种情况下,由于知道了富里哀变换的解析结果,再运用FFT没有多大的实用价值,但这个例子说明了对不常见的信号,特别是那些解析上难以找到富里哀变换的信号,一个估计富里哀变换的方法。下面的MATLAB语句用FFT估计F(w),并且用图形把所得到结果与上面的解析表达式的结果进行比较:
>>N=128; % choose a power of 2 for speed
>>t=linspace(0, 3, N); % time points for function evaluation
>>f=2*exp(-3*t); % evaluate the function and minimize aliasing:f(3)~0
>>Ts=t(2)-t(1); % the sampling period
>>Ws=2*pi/Ts; % the sampling frequency in rad/sec
>>F=fft(f); % compute the fft
>>Fp=F(1 : N/2+1)*Ts;
图14.1 富里哀变换两种结果的比较
仅从F中取正频率分量,并且乘以采样间隔计算F(w)。
>>W=Ws*(0 : N/2)/N
它建立了连续频率轴,该轴起始于0,终止于奈魁斯特(Nyquist)频率Ws/2,
>>Fa=2./(3+j*w); % evaluate analytical Fourier transform
>>plot(W, abs(Fa), W, abs(Fp), + ) % generate plot, + mark fft results
>>xlabel( Frequency, Rad/s ),ylabel( |F(w)| )
MATLAB提供了大量的完成一般信号处理任务的函数。它们列于表14.1:
表14.1
信号处理函数
conv 卷积
conv2 2维卷积
fft 快速富里哀变换
fft2 2维快速富里哀变换
ifft 逆快速富里哀变换
ifft2 2维逆快速富里哀变换
filter 离散时间滤波器
filter2 2维离散时间滤波器
abs 幅值
angle 四个象限的相角
unwrap 在360°边界清除相角突变
fftshift 把FFT结果平移到负频率上
nextpow2 2的下一个较高幂次
14.2 富里哀级数
MATLAB本身没有特别关于富里哀级数分析和处理的函数。不过,通过创建M文件函数,可容易加上这些函数。在这一节,将介绍《精通MATLAB工具箱》中富里哀级数函数。在介绍之前,首先定义实周期信号f(t)的富里哀级数表示形式。
给出富里哀级数的复指数形式为:
式中的富里哀级数的系数是:
且基频为 。式中T0满足f(t+ T0)=f(t)。
给出富里哀级数的三角数形式为:
式中的富里哀级数的系数是:
且基频为 。式中T0满足f(t+ T0)=f(t)。
表14.2
精通MATLAB的富里哀级数函数
fsderiv(Kn,Wo) 富里哀级数的微分
fseval(Kn,t,Wo) 计算富里哀级数
文章TAG:
简述 离散 傅立叶 傅立叶变换 fft