zoukankan      html  css  js  c++  java
  • 快速傅里叶变换(Fast-Fourier Transform,FFT)

    数学定义:

    (详细参考:https://www.baidu.com/link?url=oYAuG2o-pia_U3DlF5n_MJZyE5YKfaVRUHTTDbM1FwM_kDTjGCxKpw_PbOK70jE2geVioprSVyPTTQuLwN-IhMH8NREmWSDnmcfQEY8w0kq&wd=&eqid=8244c46a0009451a000000035c0e2c39)

    有限长序列可以通过离散傅里叶变换(DFT)将其频域也离散化成有限长 序列.但其计算量太大,很难实时地处理问题,因此引出了快速傅里叶变换 (FFT).  1965 年,Cooley 和 Tukey 提出了计算离散傅里叶变换(DFT)的快 速算法,将 DFT 的运算量减少了几个数量级。从此,对快速傅里叶变换(FFT) 算法的研究便不断深入,数字信号处理这门新兴学科也随 FFT 的出现和发 展而迅速发展。根据对序列分解与选取方法的不同而产生了 FFT 的多种算 法,基本算法是基2DIT 和基2DIF。FFT 在离散傅里叶反变换、线性卷积 和线性相关等方面也有重要应用。

    快速傅里叶变换(FFT是计算离散傅里叶变换(DFT快速算法。

    DFT 的定义式为:

    代码示例:

    %fft示例:产生60Hz和150Hz带噪声的信号源,并用傅里叶变换方法查找主频信号
    %产生带噪声的声源信号,并提取离散信号
    t=0:0.001:0.6;
    %噪声信号的主频是60Hz和150Hz
    x=sin(2*pi*60*t)+sin(2*pi*150*t);
    y=x+2*randn(size(t));
    plot(1000*t(1:50),y(1:50))
    title('Signal Corrupted with Zero-Mean Random Noise')
    xlabel('time(ms)')
    grid on;
    
    %进行512点的快速傅里叶变换
    Y=fft(y,512);
    %功率谱测量计算
    Pyy=Y.*conj(Y)/512;
    f=1000*(0:256)/512;
    %绘制频谱图形
    figure;
    plot(f,Pyy(1:257))
    title('Frequency content of y')
    xlabel('frequency(Hz)')
    grid on;
    

      

  • 相关阅读:
    Python基础
    pip install psycopg2出现python setup.py egg_info failed with error code 1 in /tmp/pip-build-YtLeN3/psycopg2错误处理
    Python基础
    C语言基础
    benchmarks
    用 MuGo 搭建 Go Engine 在 KGS 对战
    GPU
    linux 杀掉僵尸进程 (zombie process, defunct)
    CMakeLists.txt 语法
    软件列表(按字母排序)
  • 原文地址:https://www.cnblogs.com/Ann21/p/10099331.html
Copyright © 2011-2022 走看看