簡體   English   中英

如何使用python繪制奇偶方波

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM