i canot do it...please help me
我想在scipy中执行窦信号和矩形脉冲卷积的操作。我用sininus信号对正弦信号进行了卷积,并将其绘制在图表上,但我想知道如何用矩形脉冲创建数组,类似于这个matlab表达式
y = rectpulse(x,nsamp)
所以我可以卷入他们。我用这个来创建我的鼻窦和余弦信号
x=r_[0:50] (my array)
y01=sin(2*pi*x/49)
y02=cos(2*pi*x/49)
所以我尝试创建一个nu.zeros(50),并手动将位置15-25的零从0.0更改为零。为0.9它看起来像矩形但是在窦阵列上的卷积和这个矩形'数组很奇怪,当没有交点但我得到正弦信号时应该为零,这里是代码:
from numarray import*
from numarray.fft import*
from pylab import*
x=r_[0:50]
y1=sin(2*pi*x/49)
#y2=cos(2*pi*x/49)
y2=np.zeros((y1.shap))
for i in range(15,25):
y2[i]=0.9
#print len(y1),len(y2)
#y3=convolve(y2,y1,mode="same")
y3=convolve(y2,y1)
subplot(2,2,1)
plot(x,y1)
hold(True)
plot(x,y2)
hold(True)
subplot(2,2,2)
print len(x),len(y3)
xx=r_[0:len(y3)]
print len(xx),len(y3)
plot(xx,y3)
hold(True)
show()
答案 0 :(得分:0)
from scipy import signal
import matplotlib.pyplot as plt
t = np.linspace(0, 1, 500, endpoint=False)
ts = signal.square(2 * np.pi * 5 * t)
plt.plot(t, ts)
plt.ylim(-2, 2)
您可以根据自己的喜好进行修改。例如,要使所有内容从0.6 null开始:
ts[t>0.6] = 0