我试图找出一种方法来通过算法获得在 Maxima 计算机代数系统中具有正弦项的函数的幅度和相位。这仅适用于稳态(因为 t -> 无穷大和 transient 衰减)。例如,一个微不足道的案例是:
f(t) = 1 / w * sin(w * t + theta) + exp(-a * t) + 8
在这种情况下,增益为 1/w,相位偏移为 theta,我们将忽略 transient 项 exp(-a * t),因为我们只关心稳态增益和相位延迟,而 exp(- a * t) -> 0 作为 t -> 无穷大。我们也会忽略“+ 8”项,因为它只是一个 DC 偏移。在我的工程类(class)中,我被教导这样做的方式需要大量的启发式方法和繁琐的方程式重新排列,以使它们具有与上述类似的形式,其中的答案很明显。
假设我拥有计算机代数系统的全部功能(以及人们期望 CAS 具有的标准功能),有没有人知道一种通用的算法方法来查找增益和相位延迟,假设它们存在的话?尽管我可能会在 Maxima 中实现它,但我当然会很感激仅用数学解释的通用答案。
编辑: 我认为从我的例子中可以清楚地看出,我想要象征性的答案,就 w 而言。 w 实际上应该是 omega,表示输入的频率。我真正要问的是是否有任何标准的数学运算可以产生增益和相位项,而无需大量启发式手动方程重新排列。
最佳答案
你的意思是象征性的还是数字的?
从数字上讲,您想要执行 Fourier transform :
关于通过算法获得正弦波的幅度和相位?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1449290/