【发布时间】:2020-11-13 15:07:02
【问题描述】:
我需要绘制一个由分段函数定义的离散信号:
if n < 0 , x = (135/56) * (0.9)^n - (1/8)(0.1)^n - (2/7)(0.2)^n
if 0<=n< 4, x = (135/56) * (0.9)^n + (7/8)(0.1)^n + (5/7)(0.2)^n
if n>=4 , x = (135/56) * (0.9)^n + (7/8)(0.1)^n + (5/7)(0.2)^n + (0.1)^(-4) + (0.2)^(-4)
我在网上搜索了很多,尤其是在这里,我想出了这段代码,经过多次更正后,它实际上在 spyder 中运行。但结果绝对不是预期的。谁能帮帮我?
import numpy as np
import matplotlib.pyplot as plt
xPoints = []
nPoints = []
q = (135 / 56)
z= -(1/8)
r = -(2/7)
m = 7/8
p = 5 /7
j = np.power(0.1, -3.5)
a = np.power(0.2, -3.5)
for n in range(-5,11):
if n<0 :
x = q *np.power(0.9, n) + z* np.power(0.1, n) + r* np.power(0.2, n)
elif (n>=0 and n<4):
x =q *np.power(0.9, n) + m* np.power(0.1, n) + p* np.power(0.2, n)
else:
x =q *np.power(0.9, n) + m* np.power(0.1, n) + p* np.power(0.2, n)+ j + a
xPoints.append(x)
nPoints.append(n)
plt.plot(nPoints, xPoints)
plt.plot.show()
【问题讨论】:
-
您的问题到底是什么?输出错了吗?你怎么知道,错了?
-
我知道这是错误的,因为我用计算器手动计算了一些值,但它们不匹配
-
喜欢什么值? -2? 4? 1.3?
-
是的,例如对于
n=0,x[n] = 4,对于n=-4,x[-4]=0 等等,但是结果的明显问题是它是连续的 -
x[0]是 4,但为什么x[-4]会是 0?x[-1]为 0。
标签: python-3.x numpy matplotlib signal-processing