Main Content

离散傅里叶变换

离散的傅里叶变换或DFT是数字信号处理的主要工具。该产品的基础是快速的傅里叶变换(FFT),一种用于计算DFT的方法,减少执行时间。许多工具箱功能(包括Z.-domain frequency response, spectrum and cepstrum analysis, and some filter design and implementation functions) incorporate the FFT.

The MATLAB® environment provides the functionsfftandIFFT.分别计算离散傅里叶变换及其逆。输入序列X及其变革的版本X(在单位圆周周围等间隔频率时离散时间傅里叶变换),这两个功能实现了关系

X K. + 1 的) = σ. N. = 0. N. - 1 X N. + 1 的) W. N. K. N.

and

X N. + 1 的) = 1 N. σ. K. = 0. N. - 1 X K. + 1 的) W. N. - K. N.

在这些等式中,由于MATLAB矢量索引方案,串联下标从1而不是0开始,而不是0

W. N. = E. - j 2 π / N.

笔记Matlab惯例是使用负面的jfor thefftfunction. This is an engineering convention; physics and pure mathematics typically use a positivej

fft, with a single input argument,X,计算输入向量或矩阵的DFT。如果X是矢量,fftcomputes the DFT of the vector; ifXis a rectangular array,fft计算每个数组列的DFT。

For example, create a time vector and signal:

t = 0:1/100:10-1/100;% Time vectorX=sin(2*pi*15*t) + sin(2*pi*40*t);% 信号

计算信号的DFT和变换序列的幅度和相位。通过将小幅度变换值设置为零,减少循环误差。

y = fft(x);% Compute DFT of xm = abs(y);% 震级Y(m <1e-6)= 0;p = unwrap(角度(y));% Phase

要在度数中绘制幅度和相位,请键入以下命令:

f =(0:长度(y)-1)* 100 /长度(y);%频率矢量子图(2,1,1)绘图(F,M)标题('震级'斧头= GCA;ax.xtick = [15 40 60 85];子图(2,1,2)绘图(F,P * 180 / PI)标题('阶段'斧头= GCA;ax.xtick = [15 40 60 85];

图包含2个轴对象。具有标题幅度的轴对象1包含类型线的对象。带标题阶段的轴对象2包含类型线的对象。

第二个论点fft指定许多点N.for the transform, representing DFT length:

N.=512; y = fft(x,n); m = abs(y); p = unwrap(angle(y)); f = (0:length(y)-1)*100/length(y); subplot(2,1,1) plot(f,m) title('震级'斧头= GCA;ax.xtick = [15 40 60 85];子图(2,1,2)绘图(F,P * 180 / PI)标题('阶段'斧头= GCA;ax.xtick = [15 40 60 85];

图包含2个轴对象。具有标题幅度的轴对象1包含类型线的对象。带标题阶段的轴对象2包含类型线的对象。

在这种情况下,fft如果短于零点,则用零填充输入序列N.,或者如果它长于序列)截断序列N.。如果N.未指定,它默认为输入序列的长度。执行时间fft取决于长度,N.,它表现的DFT;看看fft参考页面有关算法的详细信息。

笔记The resulting FFT amplitude is一种*n/2, 在哪里一种is the original amplitude andN.是fft点的数量。仅当FFT点的数量大于或等于数据样本的数量时,这才是如此。如果FFT点的数量较小,则FFT幅度低于上述量的原始幅度。

逆离散傅立叶变换功能IFFT.还接受输入序列,并且可选地,转换的所需点的数量。尝试下面的例子;原始序列Xand the reconstructed sequence are identical (within rounding error).

t = 0:1/255:1; x = sin(2*pi*120*t); y = real(ifft(fft(x))); figure plot(t,x-y)

图包含轴对象。轴对象包含类型线的对象。

此工具箱还包括二维FFT及其逆的功能,FFT2.andIFFT2.。这些功能对于二维信号或图像处理是有用的。Goertzel函数,它是一个计算DFT的另一种算法,也包含在工具箱中。该功能对于计算长信号的一部分的DFT是有效的。

It is sometimes convenient to rearrange the output of thefftorFFT2.功能使零频率分量处于序列的中心。功能FFTSHIFT.将零频率分量移动到向量或矩阵的中心。

也可以看看

|||||