时间信号的谱分析

satis的Python项目详细描述


欢迎来到Satis

logo

时间信号的谱分析。

Satis是一个python3/scipy实现的幅度和功率谱密度的傅里叶频谱。 它特别适用于具有以下特征的CFD信号:

  • 采样时间短
  • 可能录制时间短
  • 低信噪比
  • 提供多种测量方法。在
安装

该软件包在PyPI上可用,因此您可以使用pip安装它:

pip install satis
如何使用它
^{pr2}$

satis上有几个命令行。您可以通过运行命令satis --help显示它们。在

初学者数据集
satis datasetforbeginners

通过这个命令,您可以在本地目录中复制一个文件my_first_dataset.dat,开始使用satis。它包含CFD模拟的几个信号。这些信号被记录在不同的位置,以产生对噪声不太敏感的平均信号。对于您第一次使用satis,我们建议按照my_first_dataset.dat的顺序进行以下诊断。在

时间
satis time my_first_dataset.dat

此诊断图绘制信号的时间图。此图旨在显示平均信号是否收敛良好或是否存在瞬态行为。要删除瞬时行为,可以在诊断命令的末尾添加-t *starting_time*,以声明聚合行为的开始。在

如果周期模式是可见的,您应该计算它的频率并用-f *calculated_frequency*来声明它

还有一个累积时间平均值。如果这条曲线不是几乎平坦的,你可能没有删除足够的瞬态行为。在

time diagnostic

傅里叶可变性
satis fouriervariability my_first_dataset.dat -t 0.201 -f 560

在这个诊断中,每个信号在指定频率下的傅立叶系数被绘制出来,以便检查信号是否等效。如果一个信号与其他信号具有不同的特性,您应该考虑将其移除。平均信号会更清晰。为此,请声明要与之一起使用的信号子集:--subset 1 3 14 ...

fourier variability diagnostic

傅里叶收敛
satis fourierconvergence my_first_dataset.dat -t 0.201 -f 560

由于此诊断基于平均信号,用户应该事先检查所有输入信号是否等效,这要归功于fouriervariability诊断。 上图显示了对整个平均信号、信号的最后“一半”和信号的最后“四分之一”执行的离散傅里叶变换的振幅。 下图显示了在指定频率下,信号的振幅和相位随时间的增加而收敛。在

fourier convergence diagnostic

PSD可变性
satis psdvariability my_first_dataset.dat -t 0.201 -f 560

这个诊断显示了目标上起伏的光谱能量的分布 频率,其一次谐波和二次谐波以及其他频率。 注意,这个分布与波动有关,时间平均值 从信号中移除。在

psd variability diagnostic

PSD收敛
satis psdconvergence my_first_dataset.dat -t 0.201 -f 560

正如傅里叶收敛一样,PSD收敛诊断显示了强大的威力 对完整信号、上半部分和最后四分之一获得的光谱密度。左派 使用标准线性标度,而右图显示与对数标度相同的结果。在

啊!【psd会聚诊断】https://cerfacs.fr/coop/images/satis/psdconvergence.png

Satis套装

当然,您可以在自己的项目中使用satis将其作为包导入:

importosimportglobimportsatisimportmatplotlib.pyplotasplt*youawesomecode*time,signals=satis.read_signal('your_dataset.dat')clean_time=satis.define_good_time_array(time,signals)clean_signals=satis.interpolate_signals(time,signals,clean_time)new_time,new_signals=satis.get_clean_signals(clean_time,signals,calculated_frequency)plt.plot(new_time,new_signals)fourier=satis.get_coeff_fourier(new_time,new_signals,calculated_frequency)*yourawesomecode

致谢

这个包是Cerfacs的合作小组所做工作的结果。 本项目的贡献者是:

  • 弗朗西妮
  • 安托万·道普坦
  • Tamon Nakano公司
  • 马修·罗西

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何读取、验证和移动数据。csv文件?   用于在线蛇游戏的java解析scaing   java JavaFX:在窗口上移动元素(阶段)调整大小   mysql如何使用java中的IOUtils包在jsp中显示多个图像?   Java dateFormat不可解析日期异常   spring mvc java。执行单元测试时lang.AssertionError   java在一个webapp中运行多个调度器有什么问题吗?   JAVAlang.ArrayIndexOutofBounds异常:1未来。get()多线程   java使用MDC或spring boot中的任何过滤器屏蔽日志消息中的密码,而不使用logback。xml文件   与应用服务器的java AJP和SSL通信   java Hibernate更新列表中的特定对象   Java小程序:使用keylistener移动多边形   java访问是一个独立于MainActivity的进程   来自服务器的java重复密钥或完整性约束冲突消息:“列“volume”不能为null”   java是否有任何方法可以确保在Flink on job cancel with savepoint上通知所有检查点侦听器检查点完成?