從傅里葉級數到傅里葉變換


周期信號的傅里葉級數和傅里葉系數如下所示

對於非周期信號,我們也想得到其頻譜,為了得到非周期信號的頻譜,可以將非周期信號可以看作周期無窮大的信號。下圖展示了當一個周期信號的周期不斷增大時,頻譜的變化規律。

可以看到,當周期 \(T\) 增大,譜線高度將減小(這是由於隨着周期增大,信號在時域上變得稀疏,信號的平均功率將減小),取極限后得到的每條譜線的高度都是0。為了解決這個問題,我們將(2)式兩端乘以 \(T\)。我們知道,在離散頻譜中,相鄰兩條譜線的間隔是 \(\Omega\),而 \(T=\frac{2\pi}{\Omega}\),所以將(2)式兩端乘以 \(T\) 就是將譜線除以它所占據的頻帶寬度再乘以\(2\pi\),因此得到的是頻譜密度,如下圖所示。

可以看到,隨着周期增大,密度曲線逐漸趨於光滑,但是曲線的高度不會發生改變。當周期趨於無窮大時,密度曲線變成了完全光滑的曲線。

由於當周期趨於無窮大時,譜線間隔 \(\Omega\) 趨於無窮小,因此諧波頻率 \(n\Omega\) 可以取到實數中的任意頻率,用 \(\omega\) 代替(2)式中的 \(n\Omega\),於是我們得到了非周期信號的傅里葉變換。

根據(1)式可以推導出非周期信號的傅里葉反變換

傅里葉反變換的式子也映證了“傅里葉變換得到的是頻譜密度”這一物理含義


附: 頻譜密度作圖代碼

import numpy as np
import matplotlib.pyplot as plt

tao = 1
T = 4*tao  # 通過這一行修改周期大小
Omega = 2*np.pi/T
n_max = int(14/(Omega*tao))+1

def Sa(w):
    if w == 0:
        sa = 1
    else:
        sa = np.sin(w)/w
    return sa

def F(n):
    return (tao/T)*Sa((n*Omega*tao)/2)

omega = []
dense = []
for n in range(-1*n_max,n_max+1):
    omega.append(n*Omega-Omega/2)
    omega.append(n*Omega)
    omega.append(n*Omega+Omega/2)
    dense.append(F(n)*2*np.pi/Omega)
    dense.append(F(n)*2*np.pi/Omega)
    dense.append(F(n)*2*np.pi/Omega)
plt.figure(figsize=(6,2))
plt.plot(omega,dense)
plt.axhline(y=0,color='black')
plt.show()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM