【问题标题】:How to Generate a Root-Raised cosine impulse response in the time domain in Python如何在 Python 中生成时域中的根升余弦脉冲响应
【发布时间】:2019-10-09 11:09:37
【问题描述】:

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

我在 rrcosfilter 函数中专门查看了 commPy 库,但由于某些原因,它似乎不起作用。我尝试对频率响应进行编码,然后进行傅里叶逆变换来获得它,但这也没有成功。

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


Beta = 0.5
Ts = 1/100000


x = np.linspace(0, 1000/2.4e6, 1/2.4e6 )
root_raised_cosine_time = []

for i in range(len(x)):
    if x[i] == 0:
        root_raised_cosine_time.append((1/Ts)*(1 + Beta*((4/np.pi - 1))))

    elif (x[i] == Ts/(4*Beta) or x[i] == -Ts/(4*Beta)):
        root_raised_cosine_time.append((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))))))

    else:
        root_raised_cosine_time.append((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 函数非常相似的图形。目前,未绘制根升余弦。

【问题讨论】:

  • 您的代码中没有任何内容会尝试绘制某些内容 - 因此没有任何内容被绘制出来也就不足为奇了。你的问题到底是什么?

标签: python plot signals signal-processing


【解决方案1】:

你调用 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多