傅里叶变换推导

Posted hongxiwong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了傅里叶变换推导相关的知识,希望对你有一定的参考价值。

由于笔者水平有限,文中难免存在一些不足和错误之处,诚请各位批评指正。

三角函数系

众所周知,傅里叶级数Fourier series)是把类似波的函数表示成简单正弦波的方式。更正式地说,它能将任何周期函数或周期信号分解成一个(可能由无穷个元素组成的)简单振荡函数的集合,即正弦函数和余弦函数,(或者,等价地使用复指数)。

在应用傅里叶级数之前,需要先了解三角函数系及其正交性。三角函数系本质上是一个函数的集合,也可以理解为一个函数空间的基函数。通过对这组基函数进行线性组合,我们可以得到任意的周期函数:

[sin0x,cos0x,sinx,cosx,sin2x,cos2x......sinnx,cosnx...... ]

其中 (sin0x = 0,cos0x = 1) ,因此我们一般用以下形式表示:

[1,sinx,cosx,sin2x,cos2x......sinnx,cosnx...... ]

在运用这组基前,我们需要先了解这组基的性质。这里需要补充函数正交的条件,与有限维向量内积为零则正交相同,当两个函数的内积为0时这两个函数正交。而函数内积定义如下:

现规定两函数 (f(x))(g(x)) 与区间 ([a,b]),且两函数在该区间上可积且平方可积。则其内积为:

[<f(x), g(x)>=int_{a}^{b} f(x) g(x) d x ]

对于三角函数系,有:

[<sin mx,cos nx> =int_{0}^{2pi}sin mxcdot cos nx dx = 0,m eq n\<cos mx,cos nx> =int_{0}^{2pi}cos mxcdot cos nx dx = 0,m eq n\<sin mx,sin nx> =int_{0}^{2pi}sin mxcdot sin nx dx = 0,m eq n\]

因此,这组基函数两两正交。

2(pi)周期函数傅里叶展开

设函数 (f(x)) 为周期 (T = 2pi) 的函数,即 (f(x) = f(x+2pi)) ,我们可以将其展成以下形式:

[f(x)=frac{a_{0}}{2}+sum_{n=1}^{infty}left(a_{n} cos n x+b_{n} sin n x ight) ]

不难看出其中的线性组合形式,最关键的就是解出这些系数。

  • 一种解法

第一步先求 (a_0) :

[int_{0}^{2pi} f(x) d x=int_{0}^{2pi} frac{a_{0}}{2} d x+int_{0}^{2pi} sum_{n=1}^{infty} a_{n} cos n x d x+int_{0}^{2pi} sum_{n=1}^{infty} b_{n} sin n x d x ]

根据三角函数系基函数的正交性:

[egin{aligned}int_{0}^{2pi} sum_{n=1}^{infty} a_{n} cos n x d x+int_{0}^{2pi} sum_{n=1}^{infty} b_{n} sin n x d x &= a_{n}int_{0}^{2pi} sum_{n=1}^{infty} 1cdotcos n x d x+ b_{n} int_{0}^{2pi} sum_{n=1}^{infty}1cdotsin n x d x\&=a_n cdot0+b_ncdot 0\&=0end{aligned} ]

所以:

[int_{0}^{2pi} f(x) d x=int_{0}^{2pi} frac{a_{0}}{2} d x ]

即:

[a_{0}=frac{1}{ pi} int_{0}^{2pi} f(x) d x ]

值得注意的是,这里用 (frac{a_{0}}{2}) 而不是 (a_{0}) 是为与其他系数统一形式;

第二步(a_n)

先对等式两边同乘 (cos mx) :

[int_{0}^{2pi} f(x) cos m x d x=int_{0}^{2pi} frac{a_0}{2} cos m x d x+int_{0}^{2pi} sum_{n=1}^{infty} a_{n} cos n x cos m x d x+int_{0}^{2pi} sum_{n=1}^{infty}b_{n} sin nx cos m xd x ]

根据三角函数系基函数的正交性:

[int_{0}^{2pi} frac{a_0}{2} cos m x d x =0\int_{0}^{2pi} sum_{n=1}^{infty}b_{n} sin nx cos m xd x=0\int_{0}^{2pi} sum_{n=1}^{infty} a_{n} cos n x cos m x d x = int_{0}^{2pi} a_{n} cos n x cos m x d x quad m=n ]

带入得:

[int_{0}^{2pi} f(x) cos n x d x=int_{0}^{2pi} a_{n} cos^2 n x d x ]

其中 (int_{0}^{2pi} cos^2 n x d x = pi) ,可得:

[a_{n}=frac{1}{pi} int_{0}^{2pi} f(x) cos n x d x ]

第三步(b_n)

与求 (a_n) 同理,先对等式两边同乘 (sin mx) ,经过计算可得:

[b_{n}=frac{1}{pi} int_{0}^{2pi} f(x) sin n x d x ]

综上,我们可以对周期为2(pi)的周期函数按照傅里叶级数展开:

[f(x)=frac{a_{0}}{2}+sum_{n=1}^{infty} a_{n} cos n x+sum_{n=1}^{infty} b_n sin n x ]

其中:

[egin{aligned}&a_{0}=frac{1}{ pi} int_{0}^{2pi} f(x) d x\&a_{n}=frac{1}{pi} int_{0}^{2pi} f(x) cos n x d x\&b_{n}=frac{1}{pi} int_{0}^{2pi} f(x) sin n x d xend{aligned} ]

2L周期函数傅里叶展开

设函数 (f(t)) 为周期 (T = 2L) 的函数,即 (f(t) = f(t+2L)) ,对其换元:

[x = frac{pi}{L} t \ t = frac{L}{pi}x\f(t) = f(frac{L}{pi}x) = g(x) ]

根据 (f(t) = f(t+2L)) ,有:

[g(x) = g(x+2pi) ]

这样一来便可以通过对周期 (T = 2pi) 的函数 (g(x)) 按照傅里叶级数展开:

[g(x)=frac{a_{0}}{2}+sum_{n=1}^{infty} a_{n} cos n x+sum_{n=1}^{infty} b_n sin n x ]

其中:

[egin{aligned}&a_{0}=frac{1}{ pi} int_{0}^{2pi} g(x) d x\&a_{n}=frac{1}{pi} int_{0}^{2pi} g(x) cos n x d x\&b_{n}=frac{1}{pi} int_{0}^{2pi} g(x) sin n x d xend{aligned} ]

代入 (x = frac{pi}{L} t) 得:

[egin{aligned}f(t) &= g(x)\cos nx &= cos frac{npi}{L}t \sin nx &= sin frac{npi}{L}t\int_{0}^{2pi}dx &= int_{0}^{2L}dfrac{pi}{L}t\&=frac{pi}{L}int_{0}^{2L}dtend{aligned} ]

将上式代入函数 (g(x)) 的傅里叶级数展开可得:

[f(t)=frac{a_{0}}{2}+sum_{n=1}^{infty} a_{n} cos frac{npi}{L}t+sum_{n=1}^{infty} b_n sin frac{npi}{L}t ]

其中:

[egin{aligned}&a_{0}=frac{1}{L} int_{0}^{2pi} f(t) d t\&a_{n}=frac{1}{L} int_{0}^{2pi} f(t) cos frac{npi}{L}t\&b_{n}=frac{1}{L} int_{0}^{2pi} f(t) sin frac{npi}{L}tend{aligned} ]

在工程中,习惯用 (T = 2L) 中的 (T) 直接表示函数周期,用 (omega=frac{pi}{L}=frac{2 pi}{T}) 表示频率,因此我们可以将上式改写为:

[egin{aligned}f(t)&=frac{a_{0}}{2}+sum_{n=1}^{infty} a_{n} cos nomega t+sum_{n=1}^{infty} b_n sin nomega t\end{aligned} ]

其中:

[egin{aligned}a_{0}&=frac{2}{T} int_{0}^{T} f(t) d t\a_{n}&=frac{2}{T} int_{0}^{T} f(t) cos nomega t\b_{n}&=frac{2}{T} int_{0}^{T} f(t) sin nomega tend{aligned} ]

傅里叶级数的复数形式

傅里叶级数的复数形式是推导傅里叶变换的基础,我们可以通过欧拉公式:

[e^{i heta} = cos heta + isin heta\]

将傅里叶级数中的三角函数转化为指数形式:

[egin{aligned}cos heta&=frac{1}{2}left(e^{i heta}+e^{-i heta} ight) \sin heta&=-frac{1}{2} ileft(e^{i heta}-e^{-i heta} ight)end{aligned} ]

将上式带入傅里叶级数公式:

[egin{aligned}f(t)&=frac{a_{0}}{2}+sum_{n=1}^{infty} a_{n} frac{1}{2}left(e^{inomega t}+e^{-i nomega t} ight)-sum_{n=1}^{infty} b_n frac{1}{2} ileft(e^{i nomega t}-e^{-i nomega t} ight)\&=frac{a_{0}}{2}+sum_{n=1}^{infty}frac{a_{n}-ib_n}{2}e^{i nomega t}+ sum_{n=1}^{infty}frac{a_{n}+ib_n}{2}e^{-i nomega t}\&令sum_{n=1}^{infty}frac{a_{n}+ib_n}{2}e^{-i nomega t}中n = -n\&=frac{a_{0}}{2}+sum_{n=1}^{infty}frac{a_{n}-ib_n}{2}e^{i nomega t}+ sum_{n=-infty}^{-1}frac{a_{-n}+ib_{-n}}{2}e^{i nomega t}\&=sum_{n=0}^{0}frac{a_{0}}{2}e^{i nomega t}+sum_{n=1}^{infty}frac{a_{n}-ib_n}{2}e^{i nomega t}+ sum_{n=-infty}^{-1}frac{a_{-n}+ib_{-n}}{2}e^{i nomega t}\&=sum_{n=-infty}^{infty}c_ne^{i nomega t}end{aligned} ]

其中:

[c_{n}=left{egin{array}{cl}frac{a_{0}}{2}, & n=0 \frac{a_{n}-i b_{n}}{2}, & n=1,2,3,4...\frac{a_{-n}+ib_{-n}}{2} & n=-1,-2,-3,-4...end{array} ight. ]

根据:

[egin{aligned}a_{0}&=frac{2}{T} int_{0}^{2pi} f(t) d t\a_{n}&=frac{2}{T} int_{0}^{2pi} f(t) cos nomega t\b_{n}&=frac{2}{T} int_{0}^{2pi} f(t) sin nomega tend{aligned} ]

代入可得到 (c_n)

  • (n = 0)

[egin{aligned}c_n &= frac{a_{0}}{2} \&=frac{1}{T} int_{0}^{T} f(t) d t\&=frac{1}{T} int_{0}^{T} f(t)f(t)e^{0} d tend{aligned} ]

  • (n=1,2,3,4...)

[egin{aligned}c_n &= frac{a_{n}-i b_{n}}{2} \&=frac{1}{T} int_{0}^{T} f(t)(cos nomega t - isin nomega t) d t\&=frac{1}{T} int_{0}^{T} f(t)e^{-inomega t} d tend{aligned} ]

  • (n=-1,-2,-3,-4...)

[egin{aligned}n&=-1,-2,-3,-4...\c_n &= frac{a_{-n}+i b_{-n}}{2} \&=frac{1}{T} int_{0}^{T} f(t)[cos (-nomega t) + isin (-nomega t) ] d t\&=frac{1}{T} int_{0}^{T} f(t)e^{-inomega t} d tend{aligned} ]

我们发现,无论 (n) 的取值如何, (c_n) 都可以通过一个式子表示:

[c_n =frac{1}{T} int_{0}^{T} f(t)e^{-inomega t} d t ]

从傅里叶级数到傅里叶变换

以上我们始终在讨论周期函数的傅里叶级数展开,因为非周期函数无法写出傅立叶级数。非周期函数意味着在定义域内不重复,或者说在无穷远处重复,所以说,非周期函数的周期 (T) 就趋近于无穷,即 (T ightarrow infty)

[lim _{T ightarrow infty} f_{T}(t)=f(t) ]

进一步,根据 (T = frac{2pi}{Deltaomega}) ,我们有:

[lim _{T ightarrow infty}Delta omega=0 ]

回顾傅里叶级数的复数形式:

[egin{aligned}f_T(t)=sum_{n=-infty}^{infty}c_ne^{i nomega t}end{aligned} ]

其中:

[c_n =frac{1}{T} int_{0}^{T} f(t)e^{-inomega t} d t ]

我们将 (c_n) 代入,可以得到:

[f_T(t)=sum_{n=-infty}^{infty}frac{1}{T} int_{0}^{T} f(t)e^{-inomega t} d tcdot e^{i nomega t} ]

(T = frac{2pi}{Deltaomega}) 代入得:

[f_T(t)=sum_{n=-infty}^{infty}frac{Deltaomega}{2pi} int_{0}^{T} f(t)e^{-inomega t} d te^{i nomega t} ]

(T ightarrow infty) 时:

[egin{aligned}lim _{T ightarrow infty} f_{T}(t)&=lim _{T ightarrow infty}sum_{n=-infty}^{infty}frac{Deltaomega}{2pi} int_{0}^{T} f(t)e^{-inomega t} d tcdot e^{i nomega t}\&=int_{-infty}^{infty}frac{domega}{2pi} int_{0}^{infty} f(t)e^{-iomega t} d tcdot e^{i omega t}\&=frac{1}{2pi}int_{-infty}^{infty} int_{0}^{infty} f(t)e^{-iomega t} d tcdot e^{i omega t}domega\&=f(t)end{aligned} ]

即:

[f(t)=frac{1}{2pi}int_{-infty}^{infty} int_{0}^{infty} f(t)e^{-iomega t} d tcdot e^{i omega t}domega\]

等式右侧的中间部分即为傅里叶变换

[F(omega)=int_{0}^{infty} f(t)e^{-iomega t} d tcdot ]

而等式右侧以外的部分即为傅里叶逆变换

[f(t)=frac{1}{2pi}int_{-infty}^{infty} F(omega) e^{i omega t}domega\]

注意到此处推导出的傅里叶变换积分下限为0而非负无穷,是因为在工程中时间 (t) 有起点,即从零开始,与 (F(omega)=int_{-infty}^{infty} f(t)e^{-iomega t} d t) 无本质区别。将上文中 (int_{0}^{2pi}、int_{0}^{2L})(int_{0}^{T}) 分别替换为(int_{-pi}^{pi}、int_{-L}^{L})(int_{-T/2}^{T/2}) 即可得到从负无穷积分到正无穷的形式,即 (F(omega)=int_{-infty}^{infty} f(t)e^{-iomega t} d t)

以上是关于傅里叶变换推导的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV C++(十)----傅里叶变换

音频算法入门-傅里叶变换

傅里叶变换推导

数字信号处理序列傅里叶变换 ( 基本序列的傅里叶变换 | 求 a^nu(n) 的傅里叶变换 )

数字信号处理序列傅里叶变换 ( 基本序列的傅里叶变换 | 求 a^nu(n) 的傅里叶变换 )

傅里叶变换学习总结