MATLAB中fft

Posted JokerMan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB中fft相关的知识,希望对你有一定的参考价值。

   一般的fft需要将点数补成2的整数次幂,MATLAB中有fft函数,输入N点序列则输出也是N点序列,其中N不一定为2的整数次幂。所以会疑惑MATLAB做的fft和N点序列对应的dft是否一样。经过验证,MATLAB中对N点序列做fft的结果与N点dft的结果是完全一样的,没有对N点序列进行补0后再做操作。

  下面是MATLAB代码和结果。

n = 0: 49;
A = 444.128;
a = 50 * sqrt(2.0) * pi;
w0 = 50 * sqrt(2.0) * pi;
T = 0.001;
x = A * exp( -a * n *T) .* sin(w0 * n * T);
k = 0 : 49;
W = 2 * pi / 50;
X = x *(exp(-j * W)).^ (n\' * k);
magX = abs(X);%X的幅度谱
close all;
subplot(311);stem(x);title(\'理想信号采样1\');set(gca,\'box\',\'off\');%采样完成
subplot(312);stem(magX);title(\'理想采样信号的幅频特性1(dft)\');set(gca,\'box\',\'off\');
subplot(313);stem(abs(fft(x)));title(\'理想采样信号的幅频特性1(fft)\');set(gca,\'box\',\'off\');

结果显示:

以上是关于MATLAB中fft的主要内容,如果未能解决你的问题,请参考以下文章

Matlab实现FFT变换

MATLAB中fft的频率轴怎么计算

Matlab 模板匹配使用 FFT

谐波乘积谱的 MATLAB 代码

图像隐写基于matlab FFT数字水印嵌入含Matlab源码 1670期

如何在 Matlab 中使用 FFT(快速傅里叶变换)