如何在Python中在时域中生成根升余弦脉冲响应

如何在Python中在时域中生成根升余弦脉冲响应,python,plot,signals,signal-processing,Python,Plot,Signals,Signal Processing,我想生成一个根升余弦的脉冲响应,它可以用作一组特定数据的脉冲形状滤波器 我已经详细研究了commPy库中的rrcosfilter函数,但由于某些原因,它似乎不起作用。我曾尝试对频率响应进行编码,然后进行傅里叶逆变换,但都没有成功 我使用一个linspace来生成一个时间引用,然后在for循环中使用它来绘制响应。采样频率为2.4e6 β=0.5 Ts=1/100000 x=np.linspace(0,1000/2.4e6,1/2.4e6) 根\u提升的\u余弦\u时间=[] 对于范围内的i(le

我想生成一个根升余弦的脉冲响应,它可以用作一组特定数据的脉冲形状滤波器

我已经详细研究了commPy库中的rrcosfilter函数,但由于某些原因,它似乎不起作用。我曾尝试对频率响应进行编码,然后进行傅里叶逆变换,但都没有成功

我使用一个linspace来生成一个时间引用,然后在for循环中使用它来绘制响应。采样频率为2.4e6


β=0.5
Ts=1/100000
x=np.linspace(0,1000/2.4e6,1/2.4e6)
根\u提升的\u余弦\u时间=[]
对于范围内的i(len(x)):
如果x[i]==0:
根提升余弦时间追加((1/Ts)*(1+Beta*((4/np.pi-1)))
elif(x[i]==Ts/(4*Beta)或x[i]==Ts/(4*Beta)):
根加高余弦时间附加((β/(Ts*np.sqrt(2))*((1+2/np.pi)*((np.sin(np.pi/(4*Beta)))+(1-(2/np.pi)*np.cos(np.pi/(4*Betaϊϊ))
其他:
根余弦时间附加((1/Ts)*((np.sin((np.pi*x[i]/Ts)*(1-Beta))+(4*Beta)*(x[i]/Ts)*np.cos((np.pi*x[i]/Ts)*(1+Beta))/(np.pi*x[i]/Ts)(1-((4*Beta*x[i]/Ts)**2)))

需要绘制一个看起来非常类似于sinc函数的图形。目前,根升余弦未绘制。

您将np.linspace称为错误。您需要指定数组中的停止值和元素数,而不是步长和结束值

如果查看Python shell中关于np.linspace的帮助:

help(np.linspce)

Help on function linspace in module numpy.core.function_base:

linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
    Return evenly spaced numbers over a specified interval.

    Returns `num` evenly spaced samples, calculated over the
    interval [`start`, `stop`].

    The endpoint of the interval can optionally be excluded.
试一试


您的代码中没有任何内容会试图绘制某些内容,因此,没有任何内容被绘制也就不足为奇了。你的问题到底是什么?
x = np.linspace(0, 1/2.4e6, 1000)