我正在使用以下代码来生成脉冲幅度 通过使用正弦波与噪声之间的布尔运算来调制信号 脉宽调制(PWM)信号。我正在使用矢量化方法 以便在PWM信号为低电平(零或假)的情况下获得零值,并且 PWM值为高(正或1)的正弦波。请参考 下面的屏幕截图显示了所需的输出。此外,该怎么做 当我面临问题时,您可以自动生成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()
答案 0 :(得分:1)
在删除行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()