Matplotlib을 사용하여 간단한 직사각형 펄스 함수를 플롯하려고합니다. 플롯 그림에서 y의 값은 반전됩니다. 콘솔에서 값이 정확합니다.직사각형 함수로 반전 된 출력
무엇이 문제입니까?
import numpy as np
import scipy as sp
import matplotlib.pyplot as plt
class DSP(object):
def __init__(self) :
plt.clf()
scale, rect = self.my_own_rect(fs=10, T=np.pi, print_values=True)
plt.plot(scale, rect)
plt.show()
def my_own_rect(self, fs, T, print_values):
rect = np.zeros(fs)
scale = np.linspace(-T, T, fs, endpoint=False)
for t in scale:
if(t >= -T/2 and t <= T/2):
rect[t] = 1
if(print_values==True):
print t, rect[t]
return scale, rect
이 콘솔 출력된다 : 여기서
코드이다t - RECT [t]
-3.14159265359 - 0.0
-2.51327412287 - 0.0
-1.88495559215 - 0.0
-1.25663706144 - 1.0
-0.628318530718 - 1.0
0.0 - 1.0
0.628318530718-1.0
1.25663706144-1.0
1.88495559215-1.0
2.51327412287-0.0
스케일의 값은 부동 소수점입니다. 't'를 사용하여 항목 하나를 선택하고 이것을 사용하여'rect' 색인을 만듭니다. 인덱싱의 경우 정수 또는 부울 벡터 만 사용해야합니다. 그리고 당신은 루프가 필요 없습니다 : rect [-T/2