そもそもの式は
めんどくさいので、答えだけ
numpyで確認
- # 変数クリア
- from IPython import get_ipython
- get_ipython().magic('reset -sf')
- import matplotlib.pyplot as plt
- import numpy as np
- # よく使う変数
- pi=np.pi
- # 設定
- T=1
- tp=0.001
- repeat_num=20
- # 計算する範囲と刻みで計算ポイントを作る
- t=np.arange(-T,T,0.00001)
- # 式に値を入れて結果を得る
- a=np.zeros(repeat_num)
- f_t=np.zeros((repeat_num,t.size))
- a[0]=tp/T
- f_t[0,:]=np.ones_like(t)*a[0]
- for n in range(1,repeat_num):
- a[n]=2/n/pi*(np.sin(n*pi/T*tp))
- f_t[n,:]=f_t[n-1,:]+a[n]*np.cos(2*pi*n/T*t)
- # プロット
- fig=plt.figure()
- plt.plot(t,f_t[1],label="n=1")
- plt.plot(t,f_t[2],label="n=1,2")
- plt.plot(t,f_t[3],label="n=1,2,3")
- plt.plot(t,f_t[4],label="n=1,2,3,4")
- plt.plot(t,f_t[5],label="n=1,...,5")
- plt.legend()
- fig=plt.figure()
- plt.plot(t,f_t[repeat_num-1],label="n=1,...,"+str(repeat_num))
- plt.legend()
(4)でtの代わりにt-T/4と書けばよい。
答えがきれいにならないので、もうこれ以上やらない。
numpyで確認
- # 変数クリア
- from IPython import get_ipython
- get_ipython().magic('reset -sf')
- import matplotlib.pyplot as plt
- import numpy as np
- # よく使う変数
- pi=np.pi
- # 設定
- T=1
- tp=0.001
- repeat_num=20
- # 計算する範囲と刻みで計算ポイントを作る
- t=np.arange(-T,T,0.00001)
- # 式に値を入れて結果を得る
- a=np.zeros(repeat_num)
- f_t=np.zeros((repeat_num,t.size))
- a[0]=tp/T
- f_t[0,:]=np.ones_like(t)*a[0]
- for n in range(1,repeat_num):
- a[n]=2/n/pi*(np.sin(n*pi/T*tp))
- f_t[n,:]=f_t[n-1,:]+a[n]*np.cos(2*pi*n/T*(t-T/4))
- # プロット
- fig=plt.figure()
- plt.plot(t,f_t[1],label="n=1")
- plt.plot(t,f_t[2],label="n=1,2")
- plt.plot(t,f_t[3],label="n=1,2,3")
- plt.plot(t,f_t[4],label="n=1,2,3,4")
- plt.plot(t,f_t[5],label="n=1,...,5")
- plt.legend()
- fig=plt.figure()
- plt.plot(t,f_t[repeat_num-1],label="n=1,...,"+str(repeat_num))
- plt.legend()
それらしい結果になりました。
で、一番低い周波数成分が、1/Tになっているので、矩形波と同じように、パルスで直交復調してもよいってことでしょ。
0 件のコメント:
コメントを投稿