[英]How to plot odd even square wave using python
我正在使用以下python代碼,以便在一個特定位置生成方波。 例如:輸入0,信號僅在0到1 [Odd = High]之間為高1 。 輸入1,輸出僅在1到2之間為高1 [Even = High]。 如何擴展以下python代碼,以便在整個時間范圍內(而不是在單個位置)生成奇數或偶數方波。 我在這里遇到2 * n + 1公式的問題,有人可以幫我嗎?
請參考下圖
import numpy as np
import matplotlib.pyplot as plt
def SquareWave(n):
xmin=0;
xmax=10;
ymin=-2;
ymax=2;
Nx=1000;
offset=1;
x=np.linspace(xmin, xmax, Nx);
y=np.sign(x+n)*offset;
y[(x<n)]=0;
y[(x>n+1)]=0;
plt.plot(x, y);
plt.axis([xmin, xmax, ymin, ymax]);
plt.grid()
plt.show()
不要用;
。
import numpy as np
import matplotlib.pyplot as plt
def SquareWave(n,xmin=0,xmax=10,ymin=-2,Nx=1000,ymax=2,offset=1):
x=np.sort(np.concatenate([np.arange(xmin, xmax)-1E-6,np.arange(xmin, xmax)+1E-6]))
#You can use np.linspace(xmin,xmax,Nx) if you want the intermediate points
y=np.array(x+n+offset,dtype=int)%2
plt.plot(x, y)
plt.axis([xmin, xmax, ymin, ymax])
plt.grid()
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.