【问题标题】:convolution of sinus signal with rectangular pulse正弦信号与矩形脉冲的卷积
【发布时间】:2014-02-19 11:44:07
【问题描述】:

我想执行正弦信号的卷积运算和 scipy 中的矩形脉冲。我将正弦信号与余弦信号卷积 并将其绘制在图表上, 但我想知道如何用矩形脉冲创建阵列, 类似于这个 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 scipy import *
from pylab import *

x = r_[0:50]
y1 = sin(2*pi*x/49)
#y2 = cos(2*pi*x/49)
y2 = np.zeros(50)
for i in range(15,25):
    y2[i] = 0.9
#print len(y1),len(y2)
y3 = convolve(y2,y1,mode="same")
subplot(2,2,1)
plot(x,y1)
hold(True)
plot(x,y2)
hold(True)
subplot(2,2,2)
print len(x),len(y3)
plot(x,y3)
hold(True)
show()

我提前道歉,我觉得这是最简单的事情,但我可以 找不到有关如何创建矩形脉冲的任何参考。

【问题讨论】:

  • 一个鼻窦信号是你在打喷嚏之前的感觉
  • 英文中,我们称这个函数为sine
  • 在英文中,sinusoidal这个词也用来描述正弦曲线的一般形状。
  • Aaaaa 实际上,“sinus signal”这个词很常见。事实上,我在 Google 上获得的“正弦信号”结果是“正弦信号”的两倍。所以大家都放松一下!

标签: python scipy signals convolution


【解决方案1】:

您已经很好地绘制了卷积,然后对其进行分析以发现它不是您所期望的,+1!但是,我认为您的担忧与 convolve 函数有关。由于您将参数 mode="same" 传递给它,它会切掉等于零的卷积部分,并留下“有趣”的部分。你已经很好地构建了rect() 函数,尽管我同意你的观点,应该有另一种内置的方法来 scipy 某处。当我允许绘制整个卷积时,我得到:

从此代码:

from scipy import *
from pylab import *

x = r_[0:50]
y1 = sin(2*pi*x/49)
#y2 = cos(2*pi*x/49)
y2 = np.zeros((y1.shape))
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()

鉴于此功能的documentation,这是我所期望的。让我知道我是否还有其他遗漏!

【讨论】:

    猜你喜欢
    • 2015-05-09
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 2018-01-23
    • 2015-06-24
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多