Как получить преобразование функции в качестве возврата? - PullRequest
0 голосов
/ 20 февраля 2019

Моя цель - внедрить следующую систему (взято из схемы обработки сигналов - ish ): enter image description here

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

enter image description here

и после S2:

enter image description here

и до сих пор я сделал это:

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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...