Моя цель - внедрить следующую систему (взято из схемы обработки сигналов - ish ): 
Теперь X [n] может бытьлюбой сигнал, любая функция, для простоты и для тестирования программы мы могли бы видеть ее как экспоненциальную функцию.И когда сигнал проходит по подсистемам, он претерпевает некоторые преобразования, для S1 это преобразование:

и после S2:

и до сих пор я сделал это:
import numpy as np
import timeit
n=np.arange(-20,20)
y=np.zeros(n.shape)
x=np.exp(n)
def S1(inputSign, x_values, finalSys=True):
if finalSys==True:
output=np.zeros(x_values.shape)
for i in range(len(x_values)):
if x_values[i]%2==0:
output[i]=inputSign(x_values[i]/2)
else:
output[i] = 0
return output
else:
return inputSign
def S2(inputSign, x_values, finalSys=True):
if finalSys==True:
output=np.zeros(x_values.shape)
for i in range(len(x_values)):
output[i]=inputSign(x_values)+0.5*inputSign(x_values)+0.25*inputSign(x_values)
return output
else:
return inputSign+0.5*?????
Теперь функции определены с условием finalSys, которое должно быть таковым, если оноэто последняя система, которая дает мне массив значений.Цель состоит в том, чтобы «каскадировать» (S2 (S1, n, finalSys = True), возможно, не правильный термин) функции, чтобы получить окончательный ответ, зависящий только от исходного входного сигнала, но преобразованный по пути подсистемами.Я мог бы сделать это вручную и получить выражение для получающейся системы, но я делаю это как учебное упражнение, поэтому, пожалуйста, потерпите меня.Моя проблема была в том, как изменить аргументы inputSign.Например, S1 (np.exp, n, finalSys = False) (2) должно возвращать то же, что и np.exp (1).