首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

DFT

DFT

一、离散傅立叶变换
  
离散傅里叶变换(Discrete Fourier Transform)一词是为适应计算机作傅里叶变换运算而引出的一个专用名词,这是因为,对信号X(L)进行博里叶变换(FT)或逆傅里叶变换(IFT)运算时,无论在时域或在频域都需要进行包括(-∞,+∞)区间的积分运算,若在计算机上实现这一运算,则必须做到:(l)把连续信号(包括时域、频域)改造为离散数据;(2)把计算范围收缩到一个有限区间;(3)实现正、逆博里叶变换运算.在这种条件下所构成的变换对称为离散傅里叶变换对.其特点是,在时域和频域中都只取有限个离散数据,这些数据分别构成周期性的离散时间函数和频率函数.
 
  连续时间信号x(t)经过加窗截断后在区间[0,T]上经过A/D转换离散化,采样间隔Δt按采样频率确定为:


Δt=1/fs
    
在时间点{0,Δt,2Δt,3Δt,....}进行取样,得到长度为N(N=T/Δt)的时间序列{x(n)}


  经加窗和周期延拓处理后的信号是一个周期信号,其傅立叶积分式为:

<img title="6.5 DFT与FFT" style="BORDER-LEFT-WIDTH: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px" alt="6.5 DFT与FFT" src="http://course.cug.edu.cn/21cn/%E6%9C%BA%E6%A2%B0%E5%B7%A5%E7%A8%8B%E6%B5%8B%E8%AF%95%E6%8A%80%E6%9C%AF/c6/Image57.gif" width="135" height="30">

A/D采样离散化后的计算公式为:
<img title="6.5 DFT与FFT" style="BORDER-LEFT-WIDTH: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px" alt="6.5 DFT与FFT" src="http://course.cug.edu.cn/21cn/%E6%9C%BA%E6%A2%B0%E5%B7%A5%E7%A8%8B%E6%B5%8B%E8%AF%95%E6%8A%80%E6%9C%AF/c6/zz4.gif" width="216" height="50" align="middle">Δt
 周期信号的频谱是线谱和离散谱,X(f)只能离散取值,频率取样间隔为:

Δf=fs/N
 
频率取样点为{0,Δf,2Δf,3Δf,....},有:

<img title="6.5 DFT与FFT" style="BORDER-LEFT-WIDTH: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px" alt="6.5 DFT与FFT" src="http://course.cug.edu.cn/21cn/%E6%9C%BA%E6%A2%B0%E5%B7%A5%E7%A8%8B%E6%B5%8B%E8%AF%95%E6%8A%80%E6%9C%AF/c6/zz5.gif" width="357" height="46" align="middle">Δt  k=0,1,2,...N-1

这就是离散傅立叶变换计算公式。为便于计算,写为三角函数形式:

<img title="6.5 DFT与FFT" style="border-width: 0px; list-style-type: none; font-size: 14px; font-family: simsun; color: rgb(73, 73, 73); padding: 0px; margin: 0px; line-height: 21px;" alt="6.5 DFT与FFT" src="http://course.cug.edu.cn/21cn/%E6%9C%BA%E6%A2%B0%E5%B7%A5%E7%A8%8B%E6%B5%8B%E8%AF%95%E6%8A%80%E6%9C%AF/c6/zz6.gif" width="530" height="179">

k=0,1,2......   
 

  计算出实部HR(kΔf)和虚部HR(kΔf)后,可按下式转换为信号在kΔf频率点的幅值与相位:

 |X(kΔf)|=Sqrt(XR2(kΔf)+XI2(kΔf))
Q(kΔf)=arctg(XI(kΔf)/XR(kΔf))
 如不考虑计算效率,用计算机编程是很容易实现的。例如,用Signal VBScript编程计算4Δf频率点的幅值与相位的程序代码为:
pi=3.1415926
k=4
DF=Fs/N
XR=0
XI=0
For i=0 To N-1
  XR=XR+x(i)*cos(2*pi*k*i/N)
  XI=XI+x(i)*sin(2*pi*k*i/N)
Next
XR=(T/N)*XR
XI=(T/N)*XI
A=sqrt(XR*XR+XI*XI)
Q=atn(XI/XR)
将k作为变量,就可以计算出信号在整个频带上的频谱。


返回列表