当前位置:网站首页>傅里叶分析概述
傅里叶分析概述
2022-07-05 22:34:00 【小裘HUST】
傅里叶变换主要分为连续和离散两大块。对连续时间信号的分析,从周期信号的傅里叶级数(FS)展开到统一的傅里叶变换(FT),是一套完整地体系。离散时间信号的傅里叶分析和连续时间信号的分析非常像,但确实是不同,没法统一地表示,主要区别在“求和”和“积分”上。FS,FT,DFS,DTFT,DFT构成了整个傅里叶分析的体系。
不管是哪种变换,都满足“周期-离散”,“非周期-连续”的对应关系。这个关系对帮助记忆非常有用。
| 分析方法 | 缩写 | 变换过程 时域信号 → 频域信号 |
|---|---|---|
| 傅里叶级数 | FS | 连续周期 → 非周期离散 |
| 傅里叶变换 | FT | (引入 δ ( ω ) \delta(\omega) δ(ω))连续周期 → 非周期离散 连续非周期 → 非周期连续 |
| 离散傅里叶级数 | DFS | 离散周期 → 周期离散 |
| 离散时间傅里叶变换 | DTFT | 离散非周期 → 周期连续 |
| 离散傅里叶变换 | DFT | 离散非周期 → 离散非周期 (本质)离散周期 → 周期离散 |
连续时间傅里叶分析
傅里叶级数
连续时间的分析得从傅里叶级数开始讲起。
f ( t ) = f ( t + T 0 ) f ( t ) = ∑ n = − ∞ + ∞ a n e − j n ω 0 f(t) = f(t + {T_0})\;\;\;\;\;f(t) = \sum\limits_{n = - \infty }^{ + \infty } { {a_n}{e^{ - jn{\omega _0}}}} f(t)=f(t+T0)f(t)=n=−∞∑+∞ane−jnω0
任何周期为 T 0 T_0 T0(频率为 f 0 f_0 f0,角频率为 ω 0 \omega_0 ω0)的周期信号,都可以用角频率为 ω 0 \omega_0 ω0整数倍的复指数信号 e − j n ω 0 e^{ - jn{\omega _0}} e−jnω0线性表示。
比如余弦信号 A c o s ( ω 0 t ) Acos(\omega_0t) Acos(ω0t)傅里叶级数展开可以表示为:
A c o s ( ω 0 t ) = A 2 ( e − j ω 0 t + e j ω 0 t ) Acos(\omega_0t)={A \over 2}\left( { {e^{ - j{\omega_0}t}} + {e^{j{\omega_0}t}}} \right) Acos(ω0t)=2A(e−jω0t+ejω0t)

实信号的傅里叶变换得到的幅度谱总是偶对称的,相位谱总是奇对称的。一个余弦信号能分解成两个共轭的复指数信号,如下图所示。

随着时间 t t t的增加,它们在复平面上不断转动,但是它们的矢量和总是落在实轴上,对外表现出来就是一个实信号。
这也是为什么有“负频率”存在的原因,这里的“负”指的是复指数信号的角频率是负数,与“正频率”的信号是共轭关系。相互成共轭关系的复指数信号一同构成实信号。
傅里叶变换
傅里叶级数仅限于对周期信号的分析,对于非周期信号,可以把信号的周期看作无穷大,基于这样的想法,可以从傅里叶级数的分析合成式推广到傅里叶变换对。以下是傅里叶级数的分析合成式:
a n = 1 T 0 ∫ T 0 f ( t ) e − j n ω 0 t d t f ( t ) = ∑ n = − ∞ + ∞ a n e j n ω 0 {a_n} = {1 \over { {T_0}}}\int\limits_{ {T_0}} {f(t){e^{ - jn{\omega _0}t}}dt} \;\;\;\;f(t) = \sum\limits_{n = - \infty }^{ + \infty } { {a_n}{e^{jn{\omega _0}}}} an=T01T0∫f(t)e−jnω0tdtf(t)=n=−∞∑+∞anejnω0
a n a_n an表示傅里叶级数中与基波成 n n n次谐波关系的复指数信号的系数。把它们写在一起可以得到:
f ( t ) = ∑ n = − ∞ + ∞ ( 1 T 0 ∫ T 0 f ( t ) e − j n ω 0 t d t ) e j n ω 0 f(t) = \sum\limits_{n = - \infty }^{ + \infty } {\left( { {1 \over { {T_0}}}\int\limits_{ {T_0}} {f(t){e^{ - jn{\omega _0}t}}dt} } \right){e^{jn{\omega _0}}}} \; f(t)=n=−∞∑+∞⎝⎛T01T0∫f(t)e−jnω0tdt⎠⎞ejnω0
= ∫ − ∞ + ∞ ( ∫ − ∞ + ∞ f ( t ) e − j n ω 0 t d t ) e j n ω 0 d f = \int_{ - \infty }^{ + \infty } {\left( {\int_{ - \infty }^{ + \infty } {f(t){e^{ - jn{\omega _0}t}}dt} } \right){e^{jn{\omega _0}}}df} =∫−∞+∞(∫−∞+∞f(t)e−jnω0tdt)ejnω0df
当 T 0 T_0 T0趋于无穷时, f 0 f_0 f0趋于无穷小,原来的求和就需要改为积分,微分变量是从原来的 1 / T 0 1/T_0 1/T0转变过来的 d f df df。
= 1 2 π ∫ − ∞ + ∞ ( ∫ − ∞ + ∞ f ( t ) e − j n ω 0 t d t ) e j n ω 0 d ω = {1 \over {2\pi }}\int_{ - \infty }^{ + \infty } {\left( {\int_{ - \infty }^{ + \infty } {f(t){e^{ - jn{\omega _0}t}}dt} } \right){e^{jn{\omega _0}}}d\omega } =2π1∫−∞+∞(∫−∞+∞f(t)e−jnω0tdt)ejnω0dω
d f df df到 d ω d\omega dω需要乘以 2 π 2\pi 2π,所以最后傅里叶变换的合成式里就有一个 1 / 2 π 1/2\pi 1/2π的系数。
X ( j ω ) = ∫ − ∞ + ∞ f ( t ) e − j ω t d t f ( t ) = 1 2 π ∫ − ∞ + ∞ X ( j ω ) e j ω t d ω X(j\omega ) = \int_{ - \infty }^{ + \infty } {f(t){e^{ - j\omega t}}dt} \;\;\;\;\;\;f(t) = {1 \over {2\pi }}\int_{ - \infty }^{ + \infty } {X(j\omega ){e^{j\omega t}}d\omega } X(jω)=∫−∞+∞f(t)e−jωtdtf(t)=2π1∫−∞+∞X(jω)ejωtdω
周期与非周期信号的统一
在引入了冲激信号 δ ( t ) \delta(t) δ(t)之后,周期信号和非周期信号的傅里叶变换得到了统一。周期信号做傅里叶变换的问题在于傅里叶变换的分析式是在无穷范围内的积分,周期信号做这样的积分无法收敛。
周期信号可以分解成多个复指数信号之和。所以我们只要能表示出复指数信号的傅里叶变换就可以得到周期信号的傅里叶变换。再结合傅里叶变换的频移性质:
e j ω 0 t x ( t ) ⇔ X ( j ( ω − ω 0 ) ) {e^{j{\omega _0}t}}x(t) \Leftrightarrow X\left( {j\left( {\omega - {\omega _0}} \right)} \right) ejω0tx(t)⇔X(j(ω−ω0))
我们只要知道"1"的傅里叶变换就能得到复指数信号的傅里叶变换。具体的求解过程有人写过,文章中给出了比较完整的推导过程,这里就不详细说了,结果是下面这个:
1 ⇔ 2 π δ ( ω ) 1 \Leftrightarrow 2\pi \delta \left( \omega \right) 1⇔2πδ(ω)
这个结果也很自然成立,把 2 π δ ( ω ) 2\pi \delta \left( \omega \right) 2πδ(ω)代入到傅里叶变换合成式里很明显就能成立。
F ( A cos ( ω 0 t ) ) = A 2 ⋅ 2 π δ ( ω − ω 0 ) + A 2 ⋅ 2 π δ ( ω + ω 0 ) {\mathcal F}\left( {A\cos ({\omega _0}t)} \right) = {A \over 2} \cdot 2\pi \delta \left( {\omega - {\omega _0}} \right) + {A \over 2} \cdot 2\pi \delta \left( {\omega + {\omega _0}} \right) F(Acos(ω0t))=2A⋅2πδ(ω−ω0)+2A⋅2πδ(ω+ω0)
所以周期信号的傅里叶变换的结果会包含 2 π δ ( ω − ω ′ ) 2\pi \delta \left( {\omega - {\omega'}} \right) 2πδ(ω−ω′)的冲激信号,而且每个冲激信号前面的系数正好是对应的傅里叶级数的各个系数。
离散时间傅里叶变换
离散时间的傅里叶变换和连续时间的傅里叶变换有很多相似的地方,但它们俩又是两套完全不同的分析体系,最大的区别在于从“积分”变为了“求和”。
离散傅里叶级数
傅里叶变换的本质是在频域对信号进行正交分解。在连续时间信号的情况下,对一个频率为 ω 0 \omega_0 ω0的周期信号来说,就是将它投影到 ω 0 \omega_0 ω0、 2 ω 0 2\omega_0 2ω0、 3 ω 0 3\omega_0 3ω0等这些与基频成谐波关系的频率上去。
连续的情况下,谐波是无限的.而在离散的情况下,周期为 N N N的数字序列,基频可以表示为 2 π / N 2\pi/N 2π/N,由于复指数信号的周期性:
e − j 2 π / N = e − j 2 π ( N + 1 ) / N {e^{ - j2\pi /N}} = {e^{ - j2\pi (N + 1)/N}} e−j2π/N=e−j2π(N+1)/N
所以在离散的情况下,一个周期为N的序列,只能在频域上分解为N个不同的复指数序列。
X ~ [ k ] = ∑ n = 0 N − 1 x ~ [ n ] W N k n x ~ [ n ] = 1 N ∑ n = 0 N − 1 X ~ [ k ] W N − k n \widetilde X[k] = \sum\limits_{n = 0}^{N - 1} {\widetilde x[n]W_N^{kn}} \;\;\;\;\widetilde x[n] = {1 \over N}\sum\limits_{n = 0}^{N - 1} {\widetilde X[k]W_N^{ - kn}} X[k]=n=0∑N−1x[n]WNknx[n]=N1n=0∑N−1X[k]WN−kn
上面是离散傅里叶级数的分析式和合成式, W N k n W_N^{kn} WNkn是对 e − j 2 π k n N e^{-j2\pi\frac{kn}{N}} e−j2πNkn的简记,也叫做旋转因子。
离散傅里叶级数,不管是时域的数字序列还是频域的复指数序列都是周期的, x ~ [ n ] \widetilde x[n] x[n]和 X ~ [ n ] \widetilde X[n] X[n]上的波浪线表示它们是周期信号。
离散傅里叶变换
先直接给出离散傅里叶变换的分析式和合成式:
X [ k ] = ∑ n = 0 N − 1 x [ n ] W N k n , 0 ≤ k ≤ N − 1 X[k] = \sum\limits_{n = 0}^{N - 1} {x[n]W_N^{kn}} ,\;\;0 \le k \le N - 1 X[k]=n=0∑N−1x[n]WNkn,0≤k≤N−1
x [ n ] = 1 N ∑ n = 0 N − 1 X [ k ] W N − k n , 0 ≤ n ≤ N − 1 x[n] = {1 \over N}\sum\limits_{n = 0}^{N - 1} {X[k]W_N^{ - kn}} ,\;\;0 \le n \le N - 1 x[n]=N1n=0∑N−1X[k]WN−kn,0≤n≤N−1
离散傅里叶变换也是为了处理非周期序列的分析问题,这里干脆就直接把非周期序列看作是周期序列,相当于从离散傅里叶级数中截取一个周期长度的序列来表示。这就是DFT固有的周期性。
离散时间傅里叶变换
课本上在讲DFT之前还讲了DTFT,这是正统的分析有限长序列的频谱的方法。它也是通过离散傅里叶级数,令N趋于无穷得到的。下面是DTFT的分析式和合成式:
x [ n ] = 1 2 π ∫ 2 π X ( e j ω ) e j ω n d ω X ( e j ω ) = ∑ n = − ∞ + ∞ x [ n ] e − j ω n x[n] = {1 \over {2\pi }}\int\limits_{2\pi } {X\left( { {e^{j\omega }}} \right){e^{j\omega n}}d\omega } \;\;\;\;X\left( { {e^{j\omega }}} \right) = \sum\nolimits_{n = - \infty }^{ + \infty } {x[n]{e^{ - j\omega n}}} x[n]=2π12π∫X(ejω)ejωndωX(ejω)=∑n=−∞+∞x[n]e−jωn
DTFT得到的频谱是周期连续的频谱,并且是以 2 π 2\pi 2π为周期,就像下面这样:

如果将这个有限长序列按照它的长度 N N N进行周期延拓,相当于将它和一个周期为 N N N的冲激串(由单位冲激函数组成的序列)卷积。时域卷积相当于频域相乘。时域周期为 N N N的冲激串在频域就是周期为 2 π / N 2\pi/N 2π/N的冲激串。所以有限长序列的DFT相当于在其DTFT的频谱上采样。

边栏推荐
- Leetcode simple question ring and rod
- 二叉树(三)——堆排序优化、TOP K问题
- Thinkphp5.1 cross domain problem solving
- Some tutorials install the database on ubantu so as not to occupy computer memory?
- 航海日答题小程序之航海知识竞赛初赛
- Win11缺少dll文件怎么办?Win11系统找不到dll文件修复方法
- 119. Pascal‘s Triangle II. Sol
- Distance from point to line intersection and included angle of line
- 如何快速体验OneOS
- Sub total of Pico development
猜你喜欢

点到直线的距离直线的交点及夹角

What about data leakage? " Watson k'7 moves to eliminate security threats

Business introduction of Zhengda international futures company

U盘的文件无法删除文件怎么办?Win11无法删除U盘文件解决教程

Metasploit (MSF) uses MS17_ 010 (eternal blue) encoding:: undefined conversionerror problem

點到直線的距離直線的交點及夾角

Practice: fabric user certificate revocation operation process

Pl/sql basic syntax

科技云报道:算力网络,还需跨越几道坎?

我对新中台模型的一些经验思考总结
随机推荐
Solutions for unexplained downtime of MySQL services
CA certificate trampled pit
Business introduction of Zhengda international futures company
Request preview display of binary data and Base64 format data
Exponential weighted average and its deviation elimination
Cobaltstrike builds an intranet tunnel
2022-07-05: given an array, you want to query the maximum value in any range at any time. If it is only established according to the initial array and has not been modified in the future, the RMQ meth
Evolution of APK reinforcement technology, APK reinforcement technology and shortcomings
二叉树(三)——堆排序优化、TOP K问题
The statistics of leetcode simple question is the public string that has appeared once
航海日答题小程序之航海知识竞赛初赛
Analysis of the problem that the cookie value in PHP contains a plus sign (+) and becomes a space
2022软件测试工程师涨薪攻略,3年如何达到30K
Matlab draws a cute fat doll
The countdown to the launch of metaverse ape is hot
[Chongqing Guangdong education] National Open University autumn 2018 0088-21t Insurance Introduction reference questions
MySQL服务莫名宕机的解决方案
Metaverse ape received $3.5 million in seed round financing from negentropy capital
509. Fibonacci Number. Sol
[groovy] groovy dynamic language features (automatic type inference of function arguments in groovy | precautions for function dynamic parameters)