作为上下文,我试图在我正在进行的模拟中理解和实现这个Von Karman 湍流模型。为了使用该模型在飞行中生成湍流速度,给出了经验确定的功率谱密度的因式分解,它被认为用作整形滤波器,当用白噪声驱动时,它将产生具有正确 PSD 的彩色噪声。
我试图通过一个简单的例子来理解它是如何工作的,所以我知道如何使用 scipy 在 python 中实现它。我假设一个简单的PSD由并将其分解到过滤器中这样.
我起草了一个 python 脚本来在一组随机高斯样本上运行这个过滤器。
from scipy.signal import welch, lfilter, bilinear, filtfilt
from numpy.random import normal
from numpy import linspace
import matplotlib.pyplot as plt
w = linspace(0, 5, 1000)
Sxx = 1/(1 + w**2)
plt.plot(w, Sxx)
z, p = bilinear([1], [1, 1])
x = normal(size=1000000)
y = filtfilt(z, p, x)
f, Pxx = welch(y)
plt.plot(f, Pxx)
plt.show()
但是,输出 PSD 和分析 PSD 不匹配,我很难看到我在这里缺少什么。我怀疑这与我不理解的离散化有关。