2020年7月18日土曜日

パルスで直交復調(2) -フーリエ級数展開-



フーリエ級数展開を思い出す


こういう場合。

(1)a0=1TT2T2f(t)dt
(2)an=2TT2T2f(t)cos(2πnTt)dt
(3)bn=2TT2T2f(t)sin(2πnTt)dt
(4)f(t)=a0+n=1{ancos(2πnTt)+bnsin(2πnTt)}

こうなるらしい。

ここで、

(5)a0=0

なのは、まぁそうかなっと。

で、cosはY軸について左右対称で、f(t)はまぁいうなれば左側を上下反転するわけなので、

(6)an=0

も、まぁそうかなっと。では、式(3)について、sinは原点について点対称で、f(t)も原点について点対称なので、

(7)bn=4T0T2sin(2πnTt)dt

と、積分区間を半分にして、倍にしていいのかなっと。で、なんとか思い出し思い出し計算すると、

(8)bn=4TT2πn[cos(2πnTt)]0T2
(9)bn=2πn(cosπn+1)

となるので、

(10)b1=4πb2=0b3=43πb4=0b5=45π...

(5)(6)(10)を(4)に代入する。

(11)f(t)=4πsin(2πTt)+43πsin(32πTt)+45πsin(52πTt)+...

で、これをもう一度一般的に書き直すと、

(12)f(t)=4πn=1sin{(2n1)2πTt}2n1

う~む、、、あっているのかわからないので、確かめてみる。

  1. # 変数クリア
  2. from IPython import get_ipython
  3. get_ipython().magic('reset -sf')
  4.  
  5. import matplotlib.pyplot as plt
  6. import numpy as np
  7. import scipy.signal as signal
  8.  
  9. # よく使う変数
  10. pi=np.pi
  11.  
  12. # 設定
  13. T=1
  14.  
  15. # 計算する範囲と刻みで計算ポイントを作る
  16. t=np.arange(-T,T,0.01)
  17.  
  18. # 式に値を入れて結果を得る
  19. f1_t=4/np.pi*np.sin(2*pi/T*t)
  20. f2_t=f1_t+4/(3*np.pi)*np.sin(3*2*pi/T*t)
  21. f3_t=f2_t+4/(5*np.pi)*np.sin(5*2*pi/T*t)
  22. f4_t=f3_t+4/(7*np.pi)*np.sin(7*2*pi/T*t)
  23. f5_t=f4_t+4/(9*np.pi)*np.sin(9*2*pi/T*t)
  24. f6_t=f5_t+4/(11*np.pi)*np.sin(11*2*pi/T*t)
  25. f7_t=f6_t+4/(13*np.pi)*np.sin(13*2*pi/T*t)
  26.  
  27. # プロット
  28. fig=plt.figure()
  29. plt.plot(t,f1_t,label="n=1")
  30. plt.plot(t,f2_t,label="n=1,2")
  31. plt.plot(t,f3_t,label="n=1,2,3")
  32. plt.plot(t,f4_t,label="n=1,2,3,4")
  33. plt.plot(t,f5_t,label="n=1,...,5")
  34. plt.legend()
  35.  
  36. fig=plt.figure()
  37. plt.plot(t,f7_t,label="n=1,...,7")
  38. plt.legend()

どうやら、あっているらしい。

道のりが長い、、、

0 件のコメント:

コメントを投稿