类问题的分析,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的下一个较高幂次 |

[摘要]针对级进模排样的特点以及人...

您知道全球最小的机器人到底有多小呢。这么小的机器人到底有什么样的法宝呢。中国台湾...

前言 线切割加工通过电极丝与导电工件之间放电腐蚀成型来完成工件加工,由于是非接触加...

更新切削理念,加大工具的投入,以高速、高质、高效率加工振兴冶金重型企业已成当务之...

另外由于目前整个国家进行产业升级,也为推动中国普通机床的需求向数控机床的发展。目...