f(t) = t的傅里葉系數


  計算機網絡課程講到物理層,布置作業的第一題是求f(t)=t (0≤t≤1)的傅里葉系數。

  我們知道任何一個周期函數都可以被傅里葉級數逼近。如果是實值函數,則可以用正弦分量,余弦分量,直流分量來近似。公式如下:$$f(x)=\frac{a_0}{2}+\sum_{n=1}^{\infty}(a_n cosnx+b_n sinnx)$$

  利用正余弦函數的正交性反變換可得到f(x)的系數。本題中認為函數周期是1,進行延拓可以看成是無數個f(t)沿着x軸平移。

  簡單計算得$a_0=1$, $a_n=0$, $b_n=-\frac{1}{\pi n}$ 至此題目結束。

  但是我想練習一下最近自己剛剛接觸到的numpy和matplotlib,於是動手寫了一個python小程序想看看擬合的效果是什么樣的。效果圖和代碼如下。  

import numpy as np
import matplotlib.pyplot as plt


x = np.linspace(0, 1, 100)
y_ = np.zeros_like(x)
y = x
y_ = y_ + 0.5
for n in range(1, 11):
    y_ = y_ - 1/np.pi/n * np.sin(2*np.pi*x*n)

plt.plot(x, y, label='y=x')
plt.plot(x, y_, label='approximation')

plt.xlabel('x')
plt.ylabel('y')

plt.title("CFS")
plt.legend()
plt.show()

 

  代碼一直擬合到十階分量。可看到效果還是不錯的,增加x采樣點可以增加圖像平滑


免責聲明!

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



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