· 

パルスで直交復調(6) -こんどこそ1-

そもそもの式は

\[ f \left( t \right)= a_{0}+\displaystyle \sum_{n=1}^\infty \left\{ a_{n}\cos \left( \frac{2 \pi n}{T} t \right) + b_{n}\sin \left( \frac{2 \pi n}{T} t \right) \right\} \tag{1} \]

めんどくさいので、答えだけ

\[ a_0=\frac{t_p}{T} \tag{2} \]
\[ a_n=\frac{2}{\pi n} \sin \left( \frac{\pi n}{T} t_p \right) \tag{3} \]
\[ f \left( t \right)= \frac{t_p}{T} +\displaystyle \sum_{n=1}^\infty \left\{ \frac{2}{\pi n}\sin\left(\frac{\pi n}{T}t_p\right) \cos \left( \frac{2 \pi n}{T} t \right) \right\} \tag{4} \]

numpyで確認

  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.   
  8. # よく使う変数
  9. pi=np.pi
  10.  
  11. # 設定
  12. T=1
  13. tp=0.001 
  14. repeat_num=20
  15.  
  16. # 計算する範囲と刻みで計算ポイントを作る
  17. t=np.arange(-T,T,0.00001)
  18.   
  19. # 式に値を入れて結果を得る
  20. a=np.zeros(repeat_num)
  21. f_t=np.zeros((repeat_num,t.size))
  22. a[0]=tp/T
  23. f_t[0,:]=np.ones_like(t)*a[0]
  24. for n in range(1,repeat_num):
  25.     a[n]=2/n/pi*(np.sin(n*pi/T*tp))
  26.     f_t[n,:]=f_t[n-1,:]+a[n]*np.cos(2*pi*n/T*t)
  27.   
  28. # プロット
  29. fig=plt.figure()
  30. plt.plot(t,f_t[1],label="n=1")
  31. plt.plot(t,f_t[2],label="n=1,2")
  32. plt.plot(t,f_t[3],label="n=1,2,3")
  33. plt.plot(t,f_t[4],label="n=1,2,3,4")
  34. plt.plot(t,f_t[5],label="n=1,...,5")
  35. plt.legend()
  36.   
  37. fig=plt.figure()
  38. plt.plot(t,f_t[repeat_num-1],label="n=1,...,"+str(repeat_num))
  39. plt.legend()

(4)でtの代わりにt-T/4と書けばよい。

答えがきれいにならないので、もうこれ以上やらない。

\[ f \left( t \right)= \frac{t_p}{T} +\displaystyle \sum_{n=1}^\infty \left\{ \frac{2}{\pi n}\sin\left(\frac{\pi n}{T}t_p\right) \cos \left( \frac{2 \pi n}{T} \left(t-\frac{T}{4}\right) \right) \right\} \tag{5} \]

numpyで確認

  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.   
  8. # よく使う変数
  9. pi=np.pi
  10.   
  11. # 設定
  12. T=1
  13. tp=0.001 
  14. repeat_num=20
  15.  
  16. # 計算する範囲と刻みで計算ポイントを作る
  17. t=np.arange(-T,T,0.00001)
  18.   
  19. # 式に値を入れて結果を得る
  20. a=np.zeros(repeat_num)
  21. f_t=np.zeros((repeat_num,t.size))
  22. a[0]=tp/T
  23. f_t[0,:]=np.ones_like(t)*a[0]
  24. for n in range(1,repeat_num):
  25.     a[n]=2/n/pi*(np.sin(n*pi/T*tp))
  26.     f_t[n,:]=f_t[n-1,:]+a[n]*np.cos(2*pi*n/T*(t-T/4))
  27.   
  28. # プロット
  29. fig=plt.figure()
  30. plt.plot(t,f_t[1],label="n=1")
  31. plt.plot(t,f_t[2],label="n=1,2")
  32. plt.plot(t,f_t[3],label="n=1,2,3")
  33. plt.plot(t,f_t[4],label="n=1,2,3,4")
  34. plt.plot(t,f_t[5],label="n=1,...,5")
  35. plt.legend()
  36.   
  37. fig=plt.figure()
  38. plt.plot(t,f_t[repeat_num-1],label="n=1,...,"+str(repeat_num))
  39. plt.legend()

それらしい結果になりました。

 

で、一番低い周波数成分が、1/Tになっているので、矩形波と同じように、パルスで直交復調してもよいってことでしょ。