zoukankan      html  css  js  c++  java
  • 快速傅里叶变换(FFT)

    一、FFT的意义

        DFT虽然实现了FT的计算机计算,但是计算量大,不适合实时的数字信号处理。FFT算法的出现,使DFT的计算效率更高,速度更快。

    二、FFT与DFT的关系

        从FT到DFT经过了数字角频率w的离散化,由此带来了一些数学公式的改写。而FFT是DFT算法上的突破,可以说数学理论上与DFT是一样的。可以认为,FFT就是DFT的一种快速好用的计算方法,FFT替代了定义法计算的笨拙,如此而已。正因为如此,所以可以看到FFT与DFT的运算结果是相同的。

    三、matlab实验

    1、程序

    L=4;                        %原离散信号有8点
    n=[0:1:L-1]                 %原信号是1行8列的矩阵
    xn=[1 1 1 1];                  %构建原始信号,为指数信号
    subplot(2,1,1);
    stem(n,xn);
    title('原信号');
    
    N=16;
    i=[0:1:N-1];
    Xk=fft(xn,N);
    subplot(2,1,2);
    stem(i,abs(Xk));
    title('FFT变换');

    说明:

        程序实现FFT的部分是直接调用matlab函数库中的fft()函数:

           Xk=fft(xn,N);
    至于它的算法详细实现,本人还未研究,待哪天空闲时再来补充。

    2、实验结果

    说明:从实验结果中可以看出,FFT的计算结果与DFT完全一样,也说明了FFT只是DFT的一种快速运算方法。

    参考:用matlab对信号进行傅里叶变换

            西电《数字信号处理》第三版

  • 相关阅读:
    C# 以GZip解压缩
    C# 获取时间戳(支持毫秒)
    C#中 DateTime 转 DateTimeOffset
    C# WPF中 SecureString 转 String
    C# 根据文件头判断文件类型
    C#中 MD5 32位加密
    C#中 Stream转为byte[]
    C#中byte[]转BitmapImage
    sql按天分组
    eclispe报错PermGen space
  • 原文地址:https://www.cnblogs.com/amanlikethis/p/3506696.html
Copyright © 2011-2022 走看看