从DFS到DFT

周期序列的级数展开

正如连续时间周期信号可以表示为一系列正弦信号的和的形式,周期序列也可以表示为一系列正弦之和的形式,假设序列\(\tilde{x}[n]\)的周期为\(N\),那么它的基频为\(\frac{2\pi}{N}\),所以有
\[
\tilde{x}[n]=\frac{1}{N}\sum_{k=0}^{N-1}\tilde{X}[k]e^{j\frac{2\pi}{N}kn}
\]

这里与连续时间信号不同的是,不需要无穷多个成谐波关系的复指数,只需要\(N\)个成谐波关系的复指数。

为求傅里叶级数系数\(\tilde{X}[k]\),两边同时乘以\(e^{-j\frac{2\pi}{N}rn}\),并在\(0 \backsim (N-1)\)求和
\[
\sum_{n=0}^{N-1}\tilde{x}[n]e^{-j\frac{2\pi}{N}rn}=\sum_{k=0}^{N-1}\tilde{X}[k]\frac{1}{N}\sum_{n=0}^{N-1}e^{j\frac{2\pi}{N}(k-r)n}
\]
由于
\[
\frac{1}{N}\sum_{n=0}^{N-1}e^{j\frac{2\pi}{N}(k-r)n}=
\begin{cases}
1, k - r = mN \\
0, 其他
\end{cases}
\]
代入上式,得到
\[
\tilde{X}[r]=\sum_{n=0}^{N-1}\tilde{x}[n]e^{-j\frac{2\pi}{N}rn}
\]
从上看出,\(\tilde{X}[r]\)也是周期序列,周期为\(N\)。

总结一下周期序列的展开及其系数的表示
\[
\tilde{x}[n]=\frac{1}{N}\sum_{k=0}^{N-1}\tilde{X}[k]e^{j\frac{2\pi}{N}kn}
\]
\[
\tilde{X}[k]=\sum_{n=0}^{N-1}\tilde{x}[n]e^{-j\frac{2\pi}{N}kn}
\]

周期信号的傅里叶变换

将周期信号的傅里叶级数纳入傅里叶变换的框架常常是有益的。但是周期序列不是绝对可和的,也不是平方可和的,所以周期序列的傅里叶变换应该是冲激串的形式。为导出周期序列的傅里叶变换的表达式,不妨先看一下连续周期信号的傅里叶变换。

连续周期信号可以将其进行傅里叶级数展开
\[
\tilde{x}(t)=\sum_{n=-\infty}^{\infty}F_ne^{jn\Omega_0 t}
\]
两边同时进行傅里叶变换
\[
\tilde{X}(j\Omega)=\sum_{n=-\infty}^{\infty}2\pi F_n\delta(\Omega -n\Omega_0)
\]
同理,周期序列的傅里叶变换可以写为
\[
\tilde{X}(e^{jw})=\sum_{k=0}^{N-1}\frac{2\pi}{N}\tilde{X}[k]\delta(w-\frac{2\pi k}{N})
\]
为验证其正确性,对上式进行傅里叶反变换
\[
\begin{aligned}
\frac{1}{2\pi}\int_{0-\epsilon}^{2\pi-\epsilon}\tilde{X}(e^{jw})e^{jwn}dw&=\frac{1}{N}\sum_{k=0}^{N-1}\tilde{X}[k]\int_{0-\epsilon}^{2\pi-\epsilon}\delta(w-\frac{2\pi k}{N})e^{jwn}dw\\
&=\frac{1}{N}\sum_{k=0}^{N-1}\tilde{X}[k]e^{j\frac{2\pi k}{N}n} \\
&=\tilde{x}[n]
\end{aligned}
\]

例:周期脉冲串的傅里叶变换
\[
\tilde{p}[n]=\sum_{r=-\infty}^{\infty}\delta[n-rN]
\]
\[
\tilde{P}[k]=\sum_{n=0}^{N-1}\tilde{p}[n]e^{-j\frac{2\pi kn}{N}}=1
\]
那么其傅里叶变换为
\[
\tilde{P}(e^{jw})=\sum_{k=0}^{N-1}\frac{2\pi}{N}\tilde{P}[k]\delta(w-\frac{2\pi k}{N})=\sum_{k=0}^{N-1}\frac{2\pi}{N}\delta(w-\frac{2\pi k}{N})
\]

考虑傅里叶级数系数与其一个周期傅里叶变换的关系,为什么要考虑这个问题,因为在连续时间周期信号其傅里叶级数与其主周期傅里叶变换的关系为:
\[
F_n=\frac{1}{T}X_T(j\Omega)\vert_{\Omega = n\Omega_0}
\]
其傅里叶级数系数是其主周期傅里叶变换在\(\Omega =n \Omega_0\)时的抽样值除以周期。同理,周期序列与其主周期的傅里叶变换应该也有类似的关系,下面具体探究一下。

假设周期序列\(\tilde{x}[n]\)在主区间\(0\backsim N-1\)(后若未加说明,主区间均指\(0 \backsim N-1\))上为\(x[n]\),那么二者之间的关系为
\[
\tilde{x}[n]=\sum_{r=-\infty}^{\infty}x[n-rN]=x[n]*\tilde{p}[n]
\]
\(\tilde{p}[n]\)即为上例中的周期冲激序列。对上式两边同时进行傅里叶变换
\[
\begin{aligned}
\tilde{X}(e^{jw})&=X(e^{jw})\tilde{P}(e^{jw}) \\
&=X(e^{jw})\sum_{k=0}^{N-1}\frac{2\pi}{N}\delta(w-\frac{2\pi k}{N}) \\
&=\sum_{k=0}^{N-1}\frac{2\pi}{N}X(e^{j\frac{2\pi k}{N}})\delta(w-\frac{2\pi k}{N})
\end{aligned}
\]
与式
\[
\tilde{X}(e^{jw})=\sum_{k=0}^{N-1}\frac{2\pi}{N}\tilde{X}[k]\delta(w-\frac{2\pi k}{N})
\]
进行比较发现
\[
\tilde{X}[k]=X(e^{j\frac{2\pi k}{N}})=X(e^{jw})\vert_{w=\frac{2\pi k}{N}}
\]
所以傅里叶级数系数是其主区间傅里叶变换在\(w=\frac{2\pi k}{N}\)处的抽样值。

离散傅里叶变换

我们知道,序列进行傅里叶变换得到的频谱都是连续的,而对信号进行数字处理一般都是计算机或者专门的处理器,但无论是计算机还是专门的处理器,其存储精度及存储容量都是有限的,无法处理连续的信号。

我们对连续信号进行处理时,是将其进行抽样转换为数字信号,为了无损的恢复出原信号,其抽样速率必须满足奈奎斯特抽样定理。那么可不可以对序列的频谱进行抽样处理呢?为了无损的恢复出原信号,抽样又该满足什么样的条件?

假设对于一有限长的信号\(x[n]\),其长度为\(M\),其傅里叶变换为\(X(e^{jw})\),现对其频谱的主周期进行均匀的\(N\)点抽样,得到序列\(X[k]\),即
\[
X[k]=X(e^{jw})\vert_{w=\frac{2\pi k}{N}}, \quad k = 0, ... , N-1
\]
这与我们之前对傅里叶级数的讨论十分的相似,如果把\(X[k]\)看作是傅里叶级数系数,那么由\(X[k]\)恢复出的信号为
\[
\begin{aligned}
\tilde{x}[n]&=\frac{1}{N}\sum_{k=0}^{N-1}X[k]e^{j\frac{2\pi kn}{N}} \\
&=\frac{1}{N}\sum_{k=0}^{N-1}\sum_{m=-\infty}^{\infty}x[m]e^{-j\frac{2\pi k}{N}m}e^{j\frac{2\pi kn}{N}} \\
&=\sum_{m=-\infty}^{\infty}x[m](\frac{1}{N}\sum_{k=0}^{N-1}e^{j\frac{2\pi k(n-m)}{N}}) \\
&=\sum_{m=-\infty}^{\infty}x[m]\tilde{p}[n-m] \\
&=x[n]*\tilde{p}[n] \\
&=x[n] * \sum_{r=-\infty}^{\infty}\delta[n-rN] \\
&=\sum_{r=-\infty}^{\infty}x[n-rN]
\end{aligned}
\]
恢复出的信号\(\tilde{x}[n]\)是原信号以周期\(N\)进行周期延拓得到的结果,如果\(N\geq M\),那么周期延拓得到的信号没有发生混叠,那么可以取其\(0\backsim N-1\)一个周期中前\(M\)个恢复原来的信号。

所以我们可以通过对其频谱进行抽样来处理,并如果满足抽样点数\(N\)大于等于序列的长度\(M\),那么就可以无损的恢复出原来的信号。这个原则叫做频域抽样定理。

稍微总结一下上面的过程,我们首先对序列\(x[n]\)进行傅里叶变换,然后对其频谱进行抽样得到\(X[k]\),然后以\(X[k]\)作为傅里叶级数的系数得到序列\(\tilde{x}[n]\),如果满足频域抽样定理,那么取其主区间的前\(M\)个即可恢复出原信号。

我们不妨省略对序列进行傅里叶变换,然后对其进行抽样的过程,直接定义一个变换由\(x[n]\)直接得到\(X[k]\),然后省略有\(X[k]\)得到\(\tilde{x}[n]\),然后取其主周期得到\(x[n]\)的过程,也直接定理一个变换由\(X[k]\)直接得到\(x[n]\)。

假设有限长序列\(x[n]\)的长度为\(N\),并假设其有值区间为\(0 \leq n \leq N-1\),为了满足频域抽样定理,我们不妨设采样的点数为\(N\),这样做的好处是由\(X[k]\)得到\(x[n]\)时,直接取其主区间即可,不用取其前多少个。

为了得到\(X[k]\)这个表达式,首先得知道\(X[k]\)是怎么来的,通过上面的介绍我们知道
\[
X[k]=X(e^{jw})\vert_{w=\frac{2\pi k}{N}}, \quad k = 0, ... , N-1
\]

\[
X[k]=\sum_{n=-\infty}^{\infty}x[n]e^{-jwn}\vert_{w=\frac{2\pi k}{N}}=\sum_{n=0}^{N-1}x[n]e^{-j\frac{2\pi}{N}kn}, \quad 0\leq k \leq N-1
\]
为了得到\(x[n]\),以\(X[k]\)为傅里叶级数系数得到\(\tilde{x}[n]\),并取其主区间,所以
\[
x[n]=\frac{1}{N}\sum_{k=0}^{N-1}X[k]e^{j\frac{2\pi kn}{N}}, ]\quad 0 \leq n \leq N-1
\]

所以我们得到一组变换
\[
X[k]=\sum_{n=0}^{N-1}x[n]e^{-j\frac{2\pi}{N}kn}, \quad 0\leq k \leq N-1
\]
\[
x[n]=\frac{1}{N}\sum_{k=0}^{N-1}X[k]e^{j\frac{2\pi kn}{N}}, ]\quad 0 \leq n \leq N-1
\]

我们把上面的变换称为离散傅里叶变换,简称\(DFT\)。

DFT与DFS的关系

上面的推导我虽然是从对有限长序列频谱抽样推导得到的DFT,但是其中运用了DFS的理论,所以DFTDFS之间关系是什么呢?

首先引用一下之前得到的结论:

傅里叶级数系数是其主区间傅里叶变换在\(w=\cfrac{2\pi k}{N}\)处的抽样值

如果把有限长序列\(x[n]\)以其长度\(N\)进行周期延拓的话,由上面的结论,DFS得到的\(\tilde{X}[k]\)是\(x[n]\)傅里叶变换在\(w=\cfrac{2\pi k}{N}\)处的抽样值,而DFT得到的\(X[k]\)是在傅里叶变换的主区间抽样得到的,所以\(X[k]\)是\(\tilde{X}[k]\)的主区间。明显的,\(x[n]\)是由\(\tilde{X}[k]\)得到的\(\tilde{x}[n]\)的主区间。

所以计算DFT的另一方法是,对于一有限长序列\(x[n]\),以其长度\(N\)进行周期延拓得到\(\tilde{x}[n]\),对\(\tilde{x}[n]\)进行DFS得到\(\tilde{X}[k]\),那么对\(\tilde{X}[k]\)取其主区间即可得到\(X[k]\),同样的,对\(\tilde{X}[k]\)得到的\(\tilde{x}[n]\),取其主区间即可得到\(x[n]\)。

10 从DFS到DFT的更多相关文章

  1. nyoj 10 skiing (DFS)

    skiing 时间限制:3000 ms  |  内存限制:65535 KB 难度:5   描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当 ...

  2. 转载:一幅图弄清DFT与DTFT,DFS的关系

    转载:http://www.cnblogs.com/BitArt/archive/2012/11/24/2786390.html 很多同学学习了数字信号处理之后,被里面的几个名词搞的晕头转向,比如DF ...

  3. DFT,DTFT,DFS,FFT区别

        学习了数字信号处理之后,被里面的几个名词搞的晕头转向,比如DFT,DTFT,DFS,FFT,FT,FS等,FT和FS属于信号与系统课程的内容,是对连续时间信号的处理,这里就不过多讨论,只解释一 ...

  4. FS,FT,DFT,DFS和DTFT的关系

    对于初学数字信号(Digital Signal Processing,DSP)的人来说,这几种变换是最为头疼的,它们是数字信号处理的理论基础,贯穿整个信号的处理. FS:时域上任意连续的周期信号可以分 ...

  5. 几幅图片弄清DFT、DTFT、DFS的关系 数字信号处理

    原址:http://www.cnblogs.com/BitArt/archive/2012/11/24/2786390.html 很多同学学习了数字信号处理之后,被里面的几个名词搞的晕头转向,比如DF ...

  6. DFT、DTFT、DFS、FFT之间的关系

    DFT.DTFT.DFS.FFT.FT.FS之间的关系 FT和FS是研究连续信号的,在数字信号处理中不涉及. 主要是前四种的关系: DFT(Discrete Fourier Transform):离散 ...

  7. FS,FT,DFS,DTFT,DFT,FFT的联系和区别

    DCT变换的原理及算法 文库介绍 对于初学数字信号处理(DSP)的人来说,这几种变换是最为头疼的,它们是数字信号处理的理论基础,贯穿整个信号的处理. 学习过<高等数学>和<信号与系统 ...

  8. FS,FT,DFS,DTFT,DFT,FFT的联系和区别 数字信号处理

    DCT变换的原理及算法 文库介绍 对于初学数字信号处理(DSP)的人来说,这几种变换是最为头疼的,它们是数字信号处理的理论基础,贯穿整个信号的处理. 学习过<高等数学>和<信号与系统 ...

  9. dfs:10元素取5个元素的组合数

    #include "iostream.h" #include "string.h" #include "stdlib.h" int sele ...

随机推荐

  1. 第十九篇 vim编辑器的使用技巧

    vim编辑器 ~/.viminfo文件中存储了vim编辑器中常用的命令 vim编辑器共有3中模式:命令模式.末行模式和输入模式,三种模式的转换方式如下图所示: vim 文件名      # 编辑一个文 ...

  2. Day3 集合

    数组与集合的区别 数组可以看作是一种集合,但是数组初始化后大小不可变:数组只能按索引顺序存取. https://www.cnblogs.com/tiandi/p/10641773.html Java标 ...

  3. Java:反射机制学习笔记

    目录 一.反射机制 1.概述 2.优缺点 3.类加载的过程 二.获取Class对象的三种方式 1.Class.forName("全类名") 2.类名.class 3.对象.getC ...

  4. Vue基础笔记4

    路由传参 第一种 router.js { path: '/course/detail/:pk/', name: 'course-detail', component: CourseDetail } 传 ...

  5. pycharm中可以运行的程序,在命令行中运行提示模块不存在的问题

    运行模块(包含main函数的模块),在模块开头添加以下代码,原因是pycharm运行python脚本时,会自动添加以下代码,将当前库加入到系统库目录集合中,在命令行中运行需要手动添加import os ...

  6. PTA点赞狂魔

     点赞狂魔 (25 分) 微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持.每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性.然而有这么一种人,他们会通过给自己看 ...

  7. SaaS paas iaas是什么

    saas:软件即服务,必须对云服务商的定价及合同 条款进行仔细审查保证其安全性,如果存在纠纷云商切断服务话企业可能立马面临困境. paas:平台即服务 iaas :基础架构即服务.

  8. 猜解数据库(MYSQL)信息

    /Less-1/?id=1' and if (length(database())=8,sleep(5),0) --+ 注:http://43.247.91.228:84/Less-1/为靶场地址,发 ...

  9. 中山纪中Day1--普及

    早上一起,扑面是瓢泼的大雨.跨过千山万水,来到纪中门前,毅然以一种大无畏的英雄气概跨进了考场. 面对四道神题.然后,我成功过五关斩六将,A掉了2道题!!! 收获:优先队列(大.小根堆) T1:APPL ...

  10. PyQt5中Web操作与多线程定时器

    1.装载外部网页页面'''用web浏览器控件QWebEngineView控件显示网页PyQt5和Web的交互技术 同时使用python和Web开发程序,混合开发 Python+JavaScript+H ...