是否可以使用 IFFT 逼近给定的偏度和峰度值?

信息处理 matlab fft 功率谱密度 IFFT 信号合成
2022-02-07 19:01:47

我有一个随机行为但具有非随机(非高斯?)偏度和峰度值分别为 ~0.9 和 ~7.4 的信号的时域数据。

信号的 FFT 表明它不是宽带随机的——它通常在 100 Hz 以下是平坦的,并且在 100 Hz 以上时以大约 -3 dB/oct 逐渐变小,直到 400 Hz 的奈奎斯特。

我想创建一个与我的参考信号在统计上等效(或大致等效)的合成信号,几乎相同

  1. 频率内容
  2. 有效值
  3. 偏度和
  4. 峰度。

此外,我已经推断出高达 10 kHz 的 PSD 幅度,我想将其添加到混音中并反转到时域。

过去,我通过使用例如 MATLAB 的randn()函数来创建随机白噪声(即创建随机相位角),对白噪声应用 FFT,缩放其频率分量,仅满足 (1) 和 (2)匹配所需的 FFT 频谱,并执行 IFFT 以转换为时域。rand()函数分别接近 0.0 和 3.0 的偏度和峰度,因此我最初的想法是创建具有指定偏度和峰度的白噪声。

我已经使用 MATLAB 的pearsnd()函数尝试了相同的过程,该函数允许指定偏度和峰度值,但上述过程似乎没有保留缩放时域信号的偏度和峰度。我相信IFFT假设一个高斯分布。有解决办法吗?

谢谢!

1个回答

当您知道生成数据的过程是非线性的(并且您很幸运能够完全控制采集),您可以尝试Attractor Reconstruction

这种技术试图重建系统可能通过相空间的轨迹,从而导致被记录的复杂信号。信号本身可能表现出混乱的行为,带有看似不可预测的尖峰或看起来像宽带噪声的痕迹。然而,通过Taken 定理,可以找到一个“延迟嵌入”,在该“延迟嵌入”中,这种行为是“可解释的”。

在实践中,这看起来像是信号上的两个(例如)指针,相隔一定距离(或延迟)k. 给定一维信号x[n],这导致二维信号由x[n],x[n+k]n,kN,k>0. 如果k(以及维数,这里是 2)选择正确,点的子集(这里x[n],x[n+k]) 绘制在笛卡尔平原上,将显示吸引子

所以,给定这个分析框架,“合成信号”的任务变成了恢复吸引子,在模型中捕获它,然后随意回放,以生成数据。

您可能会怀疑,选择k维数是这里的主要问题。从理论上讲,这应该等于吸引子的分形维数(这并不总是已知的),但是有许多不同的度量和方法来估计它。

本文提供了整个过程的示例,或者更广泛地在Kantz 的书中提供。

最后,近年来,吸引子的“建模”部分无法逃脱机器学习的处理,因此对于更新的方法,您可以参考类似方法,甚至可以参考GAN方法。这些天到处都是。

您可以在这里看到……吸引力,尤其是当您控制实验条件时。我认为这样的事情会以更好的方式捕捉您所追求的动态,并设法重现您(曾经(?))面临的条件。

希望这可以帮助。