【问题标题】:Simulate impulsive signal and plotting模拟脉冲信号和绘图
【发布时间】:2016-09-10 18:05:16
【问题描述】:

我正在尝试绘制一个脉冲信号(取自一篇科学论文),脉冲信号的方程是:

地点:

Ar= 脉冲幅度,等于 1.5

fm= 故障特征频率。等于 50 赫兹

f=谐振频率等于 2000 Hz

F=采样频率。等于 10 kHz

betha= 衰减参数等于 500}

总共为信号模拟了 20.000 个样本

模拟信号的对应图应如下所示:

我所做的是:

#Constants:
A_r=1.5
f=2000
r=-0.01
F=10**3
f_m=50
b=500
y_plt=[]

def y(k):
    return A_r*np.sin(2*pi*f*(k-r*F/f_m)/F)*np.exp(-b*(k-r*F/f_m))/F
x=np.linspace(0,0.2,20000)
for i in x:
    y_plt.append(y(i))

fig=plt.figure(1)
ax=plt.subplot(111)
ax.plot(x,y_plt)

得到下一个情节:

plt.show()

(这与所需的情节不相似) 所以我的问题是,如果每个人都知道我做错了什么,那么 r 参数也没有给出。

--编辑--

#Constants:
A_r=1.5
f=2000
r0=2
F=10**4
f_m=50
b=500
y_plt=[]
y_sum=[]

def y(k,r):
    t=(k- r*F/f_m)/F
    return A_r*np.sin(2*pi*f*t)*np.exp(-b*t)

for j in np.linspace(0,20000,20000,endpoint=False):   #k
    for i in np.linspace(0,r0,r0,endpoint=False):   #r
        y_sum.append(y(j,i))
        pene=np.sum(y_sum)
    y_plt.append(pene)
    
plt.figure(1)        
plt.plot(np.linspace(0,20000,20000,endpoint=False),y_plt)
plt.show()

现在,我想不通的是如何使它成为一个周期性信号。我认为它与 r 因素有关,但如果我改变它根本不会改变情节。

【问题讨论】:

    标签: python numpy signal-processing


    【解决方案1】:

    1.

    F=采样频率。等于 10 kHz

    但是你写的

    F = 10 ** 3
    

    在 Python 中 ** 表示取幂,所以这只是 103 = 1000。也就是说,您在代码中使用了 F = 1 kHz。

    如果要表示 10.0 × 103,请使用:

    F = 10e3
    #     ^
    

    2.

    A_r * np.sin(2*pi*f*(k-r*F/f_m)/F) * np.exp(-b*(k-r*F/f_m))/F
    #                                    ^~~~~~~~~~~~~~~~~~~~~~~~
    

    与你的方程式比较

    请注意,/ F 部分应np.exp 内部,但您已将其放在外部。

    同一行中有很多括号,很容易发生错误。您应该更好地分解中间变量以使其更易于阅读:

    def y(k):
        t = (k - r*F/f_m) / F
        return A_r * np.sin(2*pi*f*t) * np.exp(-b*t)
    

    3.

    请注意,您的方程有一个 ∑r——它是许多 r 上的波的总和。你确定 A_r 只是一个值吗?

    【讨论】:

    • 我做了更正,谢谢你的好眼光。 Ar是一个常数,等于1.5。我没有考虑总和(非常好的一点)。我怎样才能添加这个总和。作为函数的一部分?
    • @tomzko:使用 for 循环,例如 total = 0 ↵ for r in ......: ↵ total += ......。但是你需要知道 r 的有效范围。
    猜你喜欢
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    相关资源
    最近更新 更多