首页/文章/ 详情

DFT学习笔记

11月前浏览581

数字信号处理过程中,两大有用的步骤是离散傅里叶变换(DFT)和数字滤波(digital filtering).

DFT是一个数学过程,可以用来确定离散信号序列的频率等。

尽管DFT是计算时域信号的频谱的最直接的数学过程,但是他的效率是非常低的。所以,在1965年,Cooley和Tukey提出了用于快速实现DFT的算法。这个算法即是FFT。FFT并不是近似于DFT,而是等于DFT,就是DFT,是实现DFT的方法。

DFT公式简单理解

 DFT的变换公式如下:

其中:

  • X(m)是DFT输出的第m项,如X(0),X(1),X(2),X(3)

  • m是在DFT输出在频域上的序号,m=0,1,2,---N-1;

  • x(n)是输入样本序列,如x(0),x(1),x(2),x(3)

  • nDFT输入在时域上的序号,n=0,1,2,----N-1;

  • NDFT输入时的样本数量以及DFT输出的频率点数量。

          N是一个很重要的参数,其决定了:

   (1) 需要的输入样本数量;

   (2) 频域输出的分辨率;

  (3) 计算N-点DFT需要的时间。

DFT的输入和输出的序号,在标准的DFT中,都是从0到N-1。也就是说,如果时域样本数量为N,则DFT则计算出N个等频率间隔上的频率分量。

DFT的确切的输出频率,与采样率fs(将时域连续信号转换成数字信号的采样率)以及N有关。

N点DFT的输出频率为:

取DFT变换式中的m为0,可以得到:

可以看到X(0)是N个x(n)采样点的和,或者说X(0)等于N乘以x(n)的平均值。X(0)代表x(n)的直流分量,如果X(0)为非零值 ,则代表x(n)序列有一个直流分量。

可以看到X(m)中包括j, 所以,DFT同时计算出隐含在输入信号中的各频率分量的幅度与相位。

也就是说,通过DFT计算(或者说是FFT计算),可以得出输入信号中的直流分量、各频率分量的幅度以及相位。

测试ADC各通道之间的同步性能,用的就是这个相位。刚开始测试的时候,还不知道怎么才能测试通道间的同步性能。当时,正好准备学习一下数字信号处理方面的知识,然后在书中看到了,然后就用到工作上了。虽然在学校也有数字信号处理这门课,但是真的是忘干净了。


假设有一连续信号:

即包含频率为1KHz和2KHz的信号,而且2KHz信号的相位与1KHz的相比,有135度的移相。

对其做8点DFT,所以我们需要有8个采样点,假设采样频率为8000/s。则用matlab按照DFT的转换公式进行编程运算。

程序如下:

    clc;clear all;ts=1/8000;N=8; for m=0:1:(N-1)    Xm=0; for n=0:1:(N-1)    Xm=Xm+(sin(2*pi*1000*n*ts)+0.5*sin(2*pi*2000*n*ts+3*pi/4)).*exp(-j*2*pi*n.*m/N);    Wm(m+1)=Xm; endendm=0:1:(N-1); subplot(2,1,1)%画DFT输出的幅度图stem(m,abs(Wm))axis([0 7 0 4])title('Magnitude of X(m)')xlabel('m') subplot(2,1,2)%画DFT输出的相位图 %忽略掉幅度很小的频率分类tol = 1e-6;Wm(abs(Wm) < tol) = 0;%忽略掉幅度很小的频率分类stem(m,angle(Wm)*180/pi)set(gca,'xtick',[0:1:7])set(gca,'ytick',[-90:45:90])title('phase of X(m)')xlabel('m')
       

    运算的结果,如下图:

    m=1,即代表为mfs/N=1KHz处。

    由欧拉公式

    可知,

    所以,X(m)的相位是基于余弦函数的相位。由上图可知,1KHz处的信号相位为-90度。代表的函数即为cos(2*pi*mfs/N*t-90)=sin(2*pi*mfs/N*t)=sin(2*pi*1000*t),即和输入函数等同。

    DFT的对称性

    由上图可知,DFT具有明显的对称性。尽管标准的DFT可以接受复数序列,但是实际生活中的大多数输入为实数序列。

    当输入序列x(n)为实数序列时,第mDFT的频率分量的幅度与第(N-m)DFT的频率分量的幅度相同,相位相反。

    即:

    也就是说,X(m)X(N-m)互为复共轭(complex conjugate)。即如果知道X(m),即可知道X(N-m)。

    这样的对称关系表明,如果我们对一个实数序列做N点DFT,我们能得到N个复数的DFT输出,但是只有前面的N/2+1个是独立的,后面的数都可以由前面的数计算得到,不提供新的频谱信息。

    这就与,厂家的评估软件上,为什么频谱的计算是到fs/2截止 对应上了。

     DFT的线性特性

    即:

    如果DFT没有这个线性特性的话,则DFT只能分析单音信号,这样的话,DFT就没有什么用了。

    DFT的幅度

    在使用软件或者浮点硬件来计算DFT时,可能不需要太关注DFT的这个幅度特性(DFT的幅度是输入信号幅度的倍数);但是如果用定点硬件来执行DFT的话,则需要注意这点。

    有时候看到DFT的表达式为:

    这个公式,使得DFT的输出幅度为输入信号幅度的一半,但是增加了一个除以N的除法运算。

    在实际的分析中,我们对相对幅度感兴趣,对绝对幅度并没有那么关心。

    DFT 的时移特性

    书中是这样定义的:

    It states that a shift in time of a periodic x(n) input sequence manifests itself as a constant phase shift in the angles associated with the DFT results

    有一周期序列,x(n),假设n=0为第一个采样点,则

    假设n=k为第一个采样点,则

    即,当n=k为第一个采样点时的DFT与n=0为第一个采样点时的DFT相比,具有rad的相移。

    需要注意:

    (1) 时移特性,是指把n=k的数据作为第一个采样点,即

    2) 证明中用到了

    还是比较不容易绕过弯来。

    可以这样举个例子:

    来源:加油射频工程师
    理论通用
    著作权归作者所有,欢迎分享,未经许可,不得转载
    首次发布时间:2023-06-03
    最近编辑:11月前
    加油射频工程师
    分享所学知识
    获赞 204粉丝 60文章 470课程 1
    点赞
    收藏
    未登录
    还没有评论

    课程
    培训
    服务
    行家

    VIP会员 学习 福利任务 兑换礼品
    下载APP
    联系我们
    帮助与反馈