如何将函数的变换作为返回?

2024-10-04 07:39:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是实现以下系统(摘自信号处理原理图-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=真),可能不是正确的术语)函数,以获得仅依赖于初始输入信号但通过子系统沿途变换的最终答案。我可以手动完成,并得到一个表达式的结果系统,但我这样做是作为一个学习练习,所以请与我忍受。我的问题是如何改变输入符号的参数。例如,S1(np.exp公司,n,finalSys=False)(2)应返回与np.exp公司(1). 你知道吗


Tags: 函数trueoutputreturnif信号系统np