如何获得函数的转换作为收益?

时间:2019-02-20 18:34:04

标签: python function

我的目标是实现以下系统(摘自信号处理原理图- 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)相同的结果。

0 个答案:

没有答案