У меня есть две функции: time_reversal
, которая переворачивает мой компонент времени "n";и time_shift
, который сдвигает мою временную координату "n" на величину "k".Это функции:
#time_reversal
def time_reversal(n):
ind = arange(n.size-1,-1,-1)
n_r=n[ind]
return n_r
# time_shift
def time_shift(n,k):
N=n.size
if k>=0:
N_ts=concatenate( (zeros(k),n[0:N-k]), 0)
else:
k=-k
N_ts=concatenate( (n[k:N],zeros(k)), 0)
return N_ts
Учитывая уравнение: y[n]=y[n]+x[k]*h[n-k]
Мне нужно применить это уравнение к массиву "h".Мне нужно поменять местами «n» и сдвинуть его на «k».Массив "х" остается неизменным.
Проблема в том, что я не знаю, как применить эти функции к моей проблеме.Я попытался заменить "n_r" и "N_ts" следующим образом: y[n]=y[n]+x[k]*h[n_r-N_ts]
, но это дает мне ошибки.РЕДАКТИРОВАТЬ: ПРОГРАММА
from numpy import*
from matplotlib.pyplot import*
x=array([2,1,-1])
h=array([1,2,1,0,1,2,1])
y=array([0,0,0,0,0,0,0,0,0])
def time_reversal(n):
ind = arange(n.size-1,-1,-1)
n_r=n[ind]
return n_r
def time_shift(n,k):
N=n.size
if k>=0:
N_ts=concatenate( (zeros(k),n[0:N-k]), 0)
else:
k=-k
N_ts=concatenate( (n[k:N],zeros(k)), 0)
return N_ts
for n in range(0,9):
for k in range(0,3):
y[n]=y[n]+x[k]*h[n_r-N_ts]
print("y = ",y)
Он говорит, что n_r и N_ts не определены по некоторым причинам.