使用 python 使用正弦波和 PWM 信号生成脉冲幅度调制

Generating Pulse Amplitude Modulation using sine wave and PWM signal using python

我正在使用以下代码来生成脉冲幅度 通过正弦波和之间的布尔运算调制信号 脉冲宽度调制 (PWM) signal.I 正在使用矢量化方法 以便在 PWM 信号较低(零或假)时获得零值,并且 PWM 值高(真或一)的正弦波。请参阅 下面是所需 output.In 的屏幕截图,除此之外该怎么做 当我遇到问题时,你自动生成 PAM 波 x 值的间距?

        import numpy as np
        import matplotlib.pyplot as plt
        from pylab import *

        percent=50.0
        TimePeriod=10.0 #Frozen Value Do not change
        Cycles=10 #Frozen Value Do not change
        dt=0.01 #Frozen Value Do not change

        t=np.arange(0,Cycles*TimePeriod,dt); 
        pwm= t%TimePeriod<TimePeriod*percent/100

        x=np.linspace(-10,10,10000) #Frozen Value Do not change
        y=(np.sin(x))

        y[(pwm =='False')] = 0      #Vectorisation for zero values
        y[(pwm =='True')] = (y-pwm) # #Vectorisation for sine wave
        plt.plot(t,y)

        plt.ylim([-3,3])
        plt.grid()
        plt.show() 

当删除行 y[(pwm =='True')] = (y-pwm)(我不明白)并且不与字符串进行比较时,您会得到以下内容,它看起来非常像所需的情节。

import numpy as np
import matplotlib.pyplot as plt

percent=40.0
TimePeriod=10.0
Cycles=30
dt=0.01

t=np.arange(0,Cycles*TimePeriod,dt); 
pwm= (t%TimePeriod) < (TimePeriod*percent/100)

x=np.linspace(-10,10,len(pwm))
y=(np.sin(x))

y[pwm == 0] = 0

plt.plot(t,y)

plt.ylim([-3,3])
plt.grid()
plt.show()