-
[python] 신호 및 시스템 - 임펄스 함수python/신호및시스템 - python 2021. 7. 31. 00:23
단위 임펄스 함수는 t=0에서만 1의 값을 가지고 그 외의 시간에서는 0의 값을 가집니다.
식으로 표현하면 아래와 같습니다.
이번에 사용할 함수는 where()입니다. 다른 좋은 방법이 있을 거 같은데 잘 모르겠네요.
np.where( 조건식, 참일때, 거짓일때) np.where()를 사용하면 단점이 있는데 아래와 같이 np.aragne()를 음수부터 시작하면 지수 표기법으로 바뀝니다.
때문에 t가 0일 때를 못 찾습니다.
t = np.arange(-2, 2, 0.1) [-2.00000000e+00 -1.90000000e+00 -1.80000000e+00 -1.70000000e+00 -1.60000000e+00 -1.50000000e+00 -1.40000000e+00 -1.30000000e+00 -1.20000000e+00 -1.10000000e+00 -1.00000000e+00 -9.00000000e-01 -8.00000000e-01 -7.00000000e-01 -6.00000000e-01 -5.00000000e-01 -4.00000000e-01 -3.00000000e-01 -2.00000000e-01 -1.00000000e-01 1.77635684e-15 1.00000000e-01 2.00000000e-01 3.00000000e-01 4.00000000e-01 5.00000000e-01 6.00000000e-01 7.00000000e-01 8.00000000e-01 9.00000000e-01 1.00000000e+00 1.10000000e+00 1.20000000e+00 1.30000000e+00 1.40000000e+00 1.50000000e+00 1.60000000e+00 1.70000000e+00 1.80000000e+00 1.90000000e+00] import numpy as np import matplotlib.pylab as plt t = np.arange(0, 4, 0.1) x = np.where(t==1, 1, 0) plt.plot(t, x) plt.show()
np.arrange()의 범위를 양수로 하면 간단히 됩니다
t=1에서 삼각형이 되는 이유는 plot()은 점을 잇는 그래프를 출력하기 때문입니다.
해결방법은 두 개가 있는데 x축 값을 좀 더 세밀하게 하는 방법과 plt.stem()를 쓰는 방법이 있습니다.
t = np.arange(0, 4, 0.1) x = np.where(t==1, 1, 0) plt.stem(t, x) plt.show()
t = np.arange(0, 4, 0.1) x = np.where(t==1, 1, 0) + 2*np.where(t==2, 1, 0) - 2*np.where(t==3, 1, 0) plt.stem(t, x) plt.show()
'python > 신호및시스템 - python' 카테고리의 다른 글
[python] 신호 및 시스템 - 컨볼루션 (0) 2021.08.09 [python] 신호 및 시스템 - 램프 함수 (0) 2021.07.26 [python] 신호 및 시스템 - 계단 함수 (0) 2021.05.22 [python] 신호 및 시스템 - 환경설정 (0) 2021.03.22