从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. winform中的DataGridView的列宽设置

    DataGridView有一个属性AutoSizeColumnMode,他有很多枚举值: 1.AllCells 调整列宽,以适合该列中的所有单元格的内容,包括标题单元格.  2.AllCellsExc ...

  2. 【SSH】spring 整合 hibernate

    spring-hibernate-1.2.9.jar applicationContext.xml <bean id="sessionFactory" class=" ...

  3. django model 高级进阶

    十.model高级用法: 10.1 ORM映射: Object Relational Mapping: orm映射的任务: 将list ,object 的操作转化为sql语句,根据对象生成数据表,将查 ...

  4. Wx-小程序-长按复制文本

    view: <text bindlongtap='copy' data-name='{{name}}'>{{item.name}}</text> js: copy(e) { v ...

  5. 李超线段树(segment[HEOI2013]-洛谷T4097)

    (neng了好久好久才糊弄懂得知识点...) 一.李超线段树 在线动态维护一个二维平面直角坐标系, 支持插入一条线段, 询问与直线x = x0相交的所有线段中,交点y的最大/小值 (若有多条线段符合条 ...

  6. wordpress 支持上传中文名称文件

    添加文章难免要传个图.文件啥的,可是呢,上传中文名称的文件竟然不行,找了半天,中文乱码,脑残了,竟然忘了这个事,哎 修改其实很简单,只需要两步 1./wp-admin/includes/file.ph ...

  7. 谈谈一些有趣的CSS题目-- 单行居中,两行居左,超过两行省略

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  8. React项目中遇到的那些坑

    1.react中路由跳转后页面不置顶问题 问题: 从页面A跳转到页面B,页面A滚动到中间位置,跳转后页面B也会在中间位置 解决方法:在顶部组件的生命周期中进行判断,例如 componentWillRe ...

  9. C++标准库里面没有字符分割函数split,自己编写函数实现字符串分割功能

    #include <vector> #include <string> #include <iostream> using namespace std; vecto ...

  10. springboot:配置多个数据源

    参考:还未整理 https://www.cnblogs.com/carrychan/p/9401471.html https://www.cnblogs.com/lijianda/p/11022892 ...