zoukankan      html  css  js  c++  java
  • DFT公式的一个简单示例

    一个简单的离散傅里叶变换公式如下面所示

    X(k) = ∑<N>x(n)e-j2πkn/N, k = 0,1,2```N-1

    傅里叶变换用于分析时域信号中的频域成分,即从时域信号x(n)得到频域信号X(k)

    这里的∑<N>表示对求和项从n=0加到N-1,为N点傅里叶变换,输入时域信号为N个,输出频域信号也为N个

    看一个简单的例子

    x(t) = sin(2π*1000*t) + 0.5sin(2π*2000*t+3*π/4)

    它由一个1kHz的信号和一个2kHz的信号组成,频率成分非常明显,所以我们能一眼看出,而有些信号则不是那么明显,则可以借助傅里叶变换来求出频率成分

    此处以该简单例子验证,也可以说是做一个简单的傅里叶变换的演示。

    为了对该信号进行处理,我们需要对它进行采样,假设采样频率为fs=8kHz,以n为采样得到的值的索引,并以此为变量重新表示上述信号为

    x(n) = sin(2π*1000*n/8000) + 0.5sin(2π*2000*n/8000+3*π/4)

    并设N=8即做8个点的DFT变换,下面我们将借助MATLAB工具进行计算和演示

    首先我们使用MATLAB画出x(t)的波形,如下图

    图中x轴的数字为我为了绘制该波形所用到的信号的个数,不要与时间单位秒对应,知道这里显示了两个周期的信号即可

    下面再给出一组8点DFT输入信号的图示

    图中的8个点即我们使用8倍于信号周期(8kHz)采样所得到的一个周期的样本,利用这8个数据,我们便可以利用DFT求得其频率成分

    在MATLAB中,直接调用FFT并将结果用图形显示如下,FFT为计算DFT的一种快速算法,其结果和直接使用DFT是一样的

    如上图,我们可以看到,计算的结果和我们已知吻合。计算得到信号中有1kHz和2kHz的频率成分,且幅值前者为后者两倍

    这里有个小点,上面4个图除了其中一个都是由FFT的计算结果直接绘制的,由于MATLAB对于0的表示,或者说是机器计算原本应该是0的值,它得到了一个很小的值(这很正常),所以用调用angle函数求得的相位是不正确的,

    我直接根据正确的结果而绘制了相位图

    关于频域信号的单位,很简单,采样率为fs的信号做N点DFT,所得到的频域信号单位为

    fanalysis(k) = k*fs/N

    对于我们的例子,fs为8kHz,N为8,则对应X(k)当k为0时为直流量,k为1时为1kHz频率成分,依此类推

    从上图我们还可以看到X(k)信号具有某种对称性,准确的关系为

    X(k) = X(k+N/2)*

    即X(k)与X(k+N/2)共轭,也就是说,对于N点频域信号,只有N/2个点的信号是独立的

    所以虽然从图中看出好像是有6kHz和7kHz的信号成分,但实际上是不存在的,这也符合奈奎斯特采样定理,采样频率必须大于两倍的信号频率,从侧面反应出用8kHz去采样最多只能采到4kHz以内的信号

    所以我们可以看到,采样率和做几个点的DFT运算很关键,假设我们让N=4,则就得不到1kHz频率成分的情况

    最后再解释频域幅值大小与时域幅值大小的关系,这里我们的输入信号为实数信号,对应频域幅值为时域幅值的N/2倍

    写在最后,刚刚接触信号处理,写点东西整理下思路。文中的例子来自Lyons的Understanding Digital Signal Processing,这是一本很不错的教材,强烈推荐

  • 相关阅读:
    基于 BP 神经网络的识别手写体数字
    【science封面文章】Human-level concept learning through probabilistic program induction
    漫谈小样本的类人概念学习与大数据的深度强化学习
    Setting up a Deep Learning Machine from Scratch (Software)
    Building Apache Thrift on CentOS 6.5¶
    ---Ubuntu 14.04下配置caffe---
    markdown基本语法说明
    Andrew ng清华报告听后感
    Median of Two Sorted Arrays
    LeetCode Question Difficulty Distribution
  • 原文地址:https://www.cnblogs.com/qingkai/p/8621047.html
Copyright © 2011-2022 走看看